From aecf0d5cc63229da1b77d0aeb97c2f8e203c54f4 Mon Sep 17 00:00:00 2001 From: Michael Hunold Date: Mon, 20 Oct 2003 17:55:40 -0700 Subject: [PATCH] [PATCH] Fix bugs in various DVB drivers - DVB networking uses big endian crc32, so change all occurences of crc32_le to crc32_be - fix usage of firmware location Kconfig option in tda1004x frontend driver - add missing VBI line decoding initialization to saa7113 code for av7110 driver - make av7110 firmware static and *not* __initdata, so recover_arm() can work in case the driver is compiled in statically --- drivers/media/dvb/dvb-core/dvb_demux.c | 4 ++-- drivers/media/dvb/frontends/tda1004x.c | 6 +++--- drivers/media/dvb/ttpci/av7110.c | 24 ++++++++++++++++++++++++ drivers/media/dvb/ttpci/av7110_firm.h | 4 ++-- 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/drivers/media/dvb/dvb-core/dvb_demux.c b/drivers/media/dvb/dvb-core/dvb_demux.c index 24ef9fb730651..e0181c00cc680 100644 --- a/drivers/media/dvb/dvb-core/dvb_demux.c +++ b/drivers/media/dvb/dvb-core/dvb_demux.c @@ -105,7 +105,7 @@ void dvb_set_crc32(u8 *data, int length) { u32 crc; - crc = crc32_le(~0, data, length); + crc = crc32_be(~0, data, length); data[length] = (crc >> 24) & 0xff; data[length+1] = (crc >> 16) & 0xff; @@ -116,7 +116,7 @@ void dvb_set_crc32(u8 *data, int length) static u32 dvb_dmx_crc32 (struct dvb_demux_feed *f, const u8 *src, size_t len) { - return (f->feed.sec.crc_val = crc32_le (f->feed.sec.crc_val, src, len)); + return (f->feed.sec.crc_val = crc32_be (f->feed.sec.crc_val, src, len)); } diff --git a/drivers/media/dvb/frontends/tda1004x.c b/drivers/media/dvb/frontends/tda1004x.c index bdcda54df4f1d..b16ceaf780076 100644 --- a/drivers/media/dvb/frontends/tda1004x.c +++ b/drivers/media/dvb/frontends/tda1004x.c @@ -44,12 +44,12 @@ #include "dvb_frontend.h" #include "dvb_functions.h" -#ifndef CONFIG_TDA1004X_MC_LOCATION -#define CONFIG_TDA1004X_MC_LOCATION "/etc/dvb/tda1004x.mc" +#ifndef DVB_TDA1004X_FIRMWARE_FILE +#define DVB_TDA1004X_FIRMWARE_FILE "/etc/dvb/tda1004x.mc" #endif static int tda1004x_debug = 0; -static char *tda1004x_firmware = CONFIG_TDA1004X_MC_LOCATION; +static char *tda1004x_firmware = DVB_TDA1004X_FIRMWARE_FILE; #define TDA10045H_ADDRESS 0x08 diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c index 63211afd820bb..fce4501baab47 100644 --- a/drivers/media/dvb/ttpci/av7110.c +++ b/drivers/media/dvb/ttpci/av7110.c @@ -4498,6 +4498,30 @@ static u8 saa7113_init_regs[] = { 0x1d, 0x00, 0x1e, 0x00, + 0x41, 0x77, + 0x42, 0x77, + 0x43, 0x77, + 0x44, 0x77, + 0x45, 0x77, + 0x46, 0x77, + 0x47, 0x77, + 0x48, 0x77, + 0x49, 0x77, + 0x4a, 0x77, + 0x4b, 0x77, + 0x4c, 0x77, + 0x4d, 0x77, + 0x4e, 0x77, + 0x4f, 0x77, + 0x50, 0x77, + 0x51, 0x77, + 0x52, 0x77, + 0x53, 0x77, + 0x54, 0x77, + 0x55, 0x77, + 0x56, 0x77, + 0x57, 0xff, + 0xff }; diff --git a/drivers/media/dvb/ttpci/av7110_firm.h b/drivers/media/dvb/ttpci/av7110_firm.h index 8c69bb971831e..de96ccda11f48 100644 --- a/drivers/media/dvb/ttpci/av7110_firm.h +++ b/drivers/media/dvb/ttpci/av7110_firm.h @@ -1,7 +1,7 @@ #include -u8 Dpram [] __initdata = { +static u8 Dpram [] = { 0xe5, 0x9f, 0xf0, 0x1c, 0xe1, 0xb0, 0xf0, 0x0e, 0xe5, 0x9f, 0xf0, 0x18, 0xe2, 0x5e, 0xf0, 0x04, 0xe2, 0x5e, 0xf0, 0x08, 0xe1, 0xa0, 0x00, 0x00, @@ -41,7 +41,7 @@ u8 Dpram [] __initdata = { }; -u8 Root [] __initdata = { +static u8 Root [] = { 0xb4, 0x90, 0x49, 0x18, 0x1c, 0x0b, 0x4a, 0x18, 0x1a, 0x50, 0x4f, 0x18, 0x1a, 0x79, 0x10, 0x8f, 0x21, 0x00, 0x2f, 0x00, 0xdd, 0x04, 0xcb, 0x10, -- 2.53.0