XC4000: code cleanup
-------- Mensagem original --------
Assunto: XC4000: code cleanup
Data: Fri, 03 Jun 2011 12:02:15 +0200
De: [email protected] <[email protected]>
Para: Devin Heitmueller <[email protected]>
CC: Dmitri Belimov <[email protected]>, Mauro Carvalho Chehab <[email protected]>, [email protected], [email protected]
This is the first of a set of patches that update the original xc4000 sources to my modified version. It removes some unused code, and makes a few minor formatting changes.
drivers/media/common/tuners/xc4000.c +43 -115
@@ -55,8 +55,6 @@/* Note that the last version digit is my internal build number (so I can rev the firmware even if the core Xceive firmware was unchanged) */ #define XC4000_DEFAULT_FIRMWARE "dvb-fe-xc4000-1.4.1.fw" -#define XC4000_DEFAULT_FIRMWARE_SIZE 18643 -/* struct for storing firmware table */ struct firmware_description {
@@ -80,18 +78,18 @@struct tuner_i2c_props i2c_props;struct list_head hybrid_tuner_instance_list;struct firmware_description *firm; -int firm_size; -__u16 firm_version; -u32 if_khz; -u32 freq_hz; -u32 bandwidth; -u8 video_standard; -u8 rf_mode; -// struct xc2028_ctrl ctrl; +int firm_size; +__u16 firm_version; +u32 if_khz; +u32 freq_hz; +u32 bandwidth; +u8 video_standard; +u8 rf_mode; +u8 ignore_i2c_write_errors; +/* struct xc2028_ctrl ctrl; */ struct firmware_properties cur_fw; -__u16 hwmodel; -__u16 hwvers; -u8 ignore_i2c_write_errors; +__u16 hwmodel; +__u16 hwvers; };/* Misc Defines */
@@ -167,12 +165,12 @@For the RESET and WAIT commands, the two following bytes will contain immediately the length of the following transaction. -*/ +struct XC_TV_STANDARD { -char *Name; -u16 AudioMode; -u16 VideoMode; +const char *Name; +u16 AudioMode; +u16 VideoMode; };/* Tuner standards */
@@ -200,33 +198,6 @@#define XC4000_FM_Radio_INPUT2 21#define XC4000_FM_Radio_INPUT1 22 -/* WAS : -static struct XC_TV_STANDARD XC4000_Standard[MAX_TV_STANDARD] = { -{"M/N-NTSC/PAL-BTSC", 0x0400, 0x8020}, -{"M/N-NTSC/PAL-A2", 0x0600, 0x8020}, -{"M/N-NTSC/PAL-EIAJ", 0x0440, 0x8020}, -{"M/N-NTSC/PAL-Mono", 0x0478, 0x8020}, -{"B/G-PAL-A2", 0x0A00, 0x8049}, -{"B/G-PAL-NICAM", 0x0C04, 0x8049}, -{"B/G-PAL-MONO", 0x0878, 0x8059}, -{"I-PAL-NICAM", 0x1080, 0x8009}, -{"I-PAL-NICAM-MONO", 0x0E78, 0x8009}, -{"D/K-PAL-A2", 0x1600, 0x8009}, -{"D/K-PAL-NICAM", 0x0E80, 0x8009}, -{"D/K-PAL-MONO", 0x1478, 0x8009}, -{"D/K-SECAM-A2 DK1", 0x1200, 0x8009}, -{"D/K-SECAM-A2 L/DK3", 0x0E00, 0x8009}, -{"D/K-SECAM-A2 MONO", 0x1478, 0x8009}, -{"L-SECAM-NICAM", 0x8E82, 0x0009}, -{"L'-SECAM-NICAM", 0x8E82, 0x4009}, -{"DTV6", 0x00C0, 0x8002}, -{"DTV8", 0x00C0, 0x800B}, -{"DTV7/8", 0x00C0, 0x801B}, -{"DTV7", 0x00C0, 0x8007}, -{"FM Radio-INPUT2", 0x9802, 0x9002}, -{"FM Radio-INPUT1", 0x0208, 0x9002} -};*/ -static struct XC_TV_STANDARD XC4000_Standard[MAX_TV_STANDARD ] = { {"M/N-NTSC/PAL-BTSC" ,0x0000 ,0x8020 }, {"M/N-NTSC/PAL-A2" ,0x0000 ,0x8020 },
@@ -253,7 +224,6 @@ {"FM Radio-INPUT1", 0x0008, 0x9000} }; -static int xc4000_is_firmware_loaded (struct dvb_frontend *fe);static int xc4000_readreg (struct xc4000_priv *priv,u16 reg,u16 *val);static int xc4000_TunerReset (struct dvb_frontend *fe);
@@ -275,10 +245,6 @@return XC_RESULT_SUCCESS ; } -/* This routine is never used because the only time we read data from the -i2c bus is when we read registers, and we want that to be an atomic i2c -transaction in case we are on a multi-master bus */ -static void xc_wait (int wait_ms) {msleep (wait_ms);
@@ -431,7 +397,6 @@return xc_write_reg (priv,XREG_RF_FREQ , freq_code);/* WAS: XREG_FINERFREQ */ } -static int xc_get_ADC_Envelope (struct xc4000_priv *priv,u16 *adc_envelope) {return xc4000_readreg (priv,XREG_ADC_ENV , adc_envelope);
@@ -476,12 +441,6 @@return 0 ; } -/* WAS THERE -static int xc_get_buildversion(struct xc4000_priv *priv, u16 *buildrev) -{ -return xc4000_readreg(priv, XREG_BUILD, buildrev); -}*/ -static int xc_get_hsync_freq (struct xc4000_priv *priv,u32 *hsync_freq_hz) {u16 regData;
@@ -520,12 +479,10 @@return lockState; } -#define XC_TUNE_ANALOG 0 -#define XC_TUNE_DIGITAL 1static int xc_tune_channel (struct xc4000_priv *priv,u32 freq_hz,int mode) { -int found =0 ; -int result =0 ; +int found =0 ; +int result =0 ;dprintk (1 ,"%s(%u)\n" , __func__, freq_hz);
@@ -694,7 +651,6 @@if (best_nr_matches >0 ) {printk ("Selecting best matching firmware (%d bits) for " "type=" , best_nr_matches); -// dump_firm_type(type); printk ("(%x), id %016llx:\n" , type, (unsigned long long )*id); i = best_i; goto found;
@@ -749,7 +705,7 @@int rc =0 ;int n, n_array;char name[33 ]; -char *fname; +const char *fname; fname =XC4000_DEFAULT_FIRMWARE ;
@@ -770,7 +726,7 @@if (fw->size <sizeof (name) -1 +2 +2 ) {printk ("Error: firmware file %s has invalid size!\n" , - fname); + fname); goto corrupt; }
@@ -805,7 +761,7 @@ n++;if (n >= n_array) {printk ("More firmware images in file than " -"were expected!\n" ); +"were expected!\n" ); goto corrupt; }
@@ -831,7 +787,6 @@if (!size || size > endp - p) {printk ("Firmware type " ); -// dump_firm_type(type); printk("(%x), id %llx is corrupted " "(size=%d, expected %d)\n", type, (unsigned long long)id,
@@ -877,7 +832,6 @@ err:printk ("Releasing partially loaded firmware file.\n" ); -// free_firmware(priv); done:release_firmware (fw);
@@ -986,8 +940,7 @@ new_fw.type = type; new_fw.id = std; new_fw.std_req = std; -// new_fw.scode_table = SCODE | priv->ctrl.scode_table; - new_fw.scode_table =SCODE ; + new_fw.scode_table =SCODE /* | priv->ctrl.scode_table */ ; new_fw.scode_nr =0 ; new_fw.int_freq = int_freq;
@@ -1108,7 +1061,7 @@ }else if (priv->hwmodel ==0 || priv->hwmodel != hwmodel || priv->hwvers != (version &0xff00 )) {printk ("Read invalid device hardware information - tuner " -"hung?\n" ); +"hung?\n" ); goto fail; }
@@ -1140,15 +1093,14 @@static void xc_debug_dump (struct xc4000_priv *priv) { -u16 adc_envelope; -u32 freq_error_hz =0 ; -u16 lock_status; -u32 hsync_freq_hz =0 ; -u16 frame_lines; -u16 quality; -u8 hw_majorversion =0 , hw_minorversion =0 ; -u8 fw_majorversion =0 , fw_minorversion =0 ; -// u16 fw_buildversion = 0; +u16 adc_envelope; +u32 freq_error_hz =0 ; +u16 lock_status; +u32 hsync_freq_hz =0 ; +u16 frame_lines; +u16 quality; +u8 hw_majorversion =0 , hw_minorversion =0 ; +u8 fw_majorversion =0 , fw_minorversion =0 ;/* Wait for stats to stabilize. * Frame Lines needs two frame times after initial lock
@@ -1156,35 +1108,30 @@*/ xc_wait (100 ); -xc_get_ADC_Envelope (priv, &adc_envelope); +xc_get_ADC_Envelope (priv, &adc_envelope);dprintk (1 ,"*** ADC envelope (0-1023) = %d\n" , adc_envelope);xc_get_frequency_error (priv, &freq_error_hz);dprintk (1 ,"*** Frequency error = %d Hz\n" , freq_error_hz); -xc_get_lock_status (priv, &lock_status); +xc_get_lock_status (priv, &lock_status);dprintk (1 ,"*** Lock status (0-Wait, 1-Locked, 2-No-signal) = %d\n" , lock_status); -xc_get_version (priv, &hw_majorversion, &hw_minorversion, - &fw_majorversion, &fw_minorversion); -// WAS: -// xc_get_buildversion(priv, &fw_buildversion); -// dprintk(1, "*** HW: V%02x.%02x, FW: V%02x.%02x.%04x\n", -// hw_majorversion, hw_minorversion, -// fw_majorversion, fw_minorversion, fw_buildversion); -// NOW: +xc_get_version (priv, &hw_majorversion, &hw_minorversion, + &fw_majorversion, &fw_minorversion); +dprintk (1 ,"*** HW: V%02x.%02x, FW: V%02x.%02x\n" , hw_majorversion, hw_minorversion, fw_majorversion, fw_minorversion); -xc_get_hsync_freq (priv, &hsync_freq_hz); +xc_get_hsync_freq (priv, &hsync_freq_hz);dprintk (1 ,"*** Horizontal sync frequency = %d Hz\n" , hsync_freq_hz); -xc_get_frame_lines (priv, &frame_lines); +xc_get_frame_lines (priv, &frame_lines);dprintk (1 ,"*** Frame lines = %d\n" , frame_lines); -xc_get_quality (priv, &quality); +xc_get_quality (priv, &quality);dprintk (1 ,"*** Quality (0:<8dB, 7:>56dB) = %d\n" , quality); }
@@ -1193,7 +1140,7 @@ {struct xc4000_priv *priv = fe->tuner_priv;unsigned int type; -int ret; +int ret;dprintk (1 ,"%s() frequency=%d (Hz)\n" , __func__, params->frequency);
@@ -1290,30 +1237,11 @@return 0 ; } -static int xc4000_is_firmware_loaded (struct dvb_frontend *fe) -{ -struct xc4000_priv *priv = fe->tuner_priv; -int ret; -u16 id; - - ret =xc4000_readreg (priv,XREG_PRODUCT_ID , &id); -if (ret ==XC_RESULT_SUCCESS ) { -if (id ==XC_PRODUCT_ID_FW_NOT_LOADED ) - ret =XC_RESULT_RESET_FAILURE ; -else - ret =XC_RESULT_SUCCESS ; - } - -dprintk (1 ,"%s() returns %s id = 0x%x\n" , __func__, - ret ==XC_RESULT_SUCCESS ?"True" :"False" , id); -return ret; -} -static int xc4000_set_analog_params (struct dvb_frontend *fe,struct analog_parameters *params) {struct xc4000_priv *priv = fe->tuner_priv; -int ret; +int ret;dprintk (1 ,"%s() frequency=%d (in units of 62.5khz)\n" , __func__, params->frequency);
@@ -1420,7 +1348,7 @@static int xc4000_get_status (struct dvb_frontend *fe,u32 *status) {struct xc4000_priv *priv = fe->tuner_priv; -u16 lock_status =0 ; +u16 lock_status =0 ;xc_get_lock_status (priv, &lock_status);
@@ -1495,8 +1423,8 @@ struct xc4000_config *cfg) {struct xc4000_priv *priv =NULL ; -int instance; -u16 id =0 ; +int instance; +u16 id =0 ; dprintk(1, "%s(%d-%04x)\n", __func__, i2c ? i2c_adapter_id(i2c) : -1,
drivers/media/common/tuners/xc4000.h +2 -2
@@ -28,8 +28,8 @@struct i2c_adapter ;struct xc4000_config { -u8 i2c_address; -u32 if_khz; +u8 i2c_address; +u32 if_khz; };/* xc4000 callback command */
Em 03-06-2011 10:11, Mauro Carvalho Chehab escreveu:
Quoted 9 lines
-------- Mensagem original --------
Assunto: XC4000: code cleanup
Data: Fri, 03 Jun 2011 12:02:15 +0200
De: [email protected] <[email protected]>
Para: Devin Heitmueller <[email protected]>
CC: Dmitri Belimov <[email protected]>, Mauro Carvalho Chehab <[email protected]>, [email protected], [email protected]
Quoted 6 lines
This is the first of a set of patches that update the original xc4000 sources to my modified version. It removes some unused code, and makes a few minor formatting changes.
Signed-off-by Istvan Varga <[email protected]>
Patch applied at:
git://linuxtv.org/git/mchehab/experimental.git xc4000
Thanks!
Mauro
Em 03-06-2011 10:11, Mauro Carvalho Chehab escreveu:
Quoted 9 lines
-------- Mensagem original --------
Assunto: XC4000: code cleanup
Data: Fri, 03 Jun 2011 12:02:15 +0200
De: [email protected] <[email protected]>
Para: Devin Heitmueller <[email protected]>
CC: Dmitri Belimov <[email protected]>, Mauro Carvalho Chehab <[email protected]>, [email protected], [email protected]
Quoted 6 lines
This is the first of a set of patches that update the original xc4000 sources to my modified version. It removes some unused code, and makes a few minor formatting changes.
Signed-off-by Istvan Varga <[email protected]>
This patch broke compilation:
drivers/media/common/tuners/xc4000.c: In function ‘xc_tune_channel’:drivers/media/common/tuners/xc4000.c:497: error: ‘XC_TUNE_ANALOG’ undeclared (first use in this function) drivers/media/common/tuners/xc4000.c:497: error: (Each undeclared identifier is reported only once drivers/media/common/tuners/xc4000.c:497: error: for each function it appears in.) drivers/media/common/tuners/xc4000.c: In function ‘xc4000_set_params’:drivers/media/common/tuners/xc4000.c:1232: error: ‘XC_TUNE_DIGITAL’ undeclared (first use in this function) drivers/media/common/tuners/xc4000.c: In function ‘xc4000_set_analog_params’:drivers/media/common/tuners/xc4000.c:1323: error: ‘XC_TUNE_ANALOG’ undeclared (first use in this function) make[3]: ** [drivers/media/common/tuners/xc4000.o] Erro 1
I've re-added XC_TUNE_ANALOG/XC_TUNE_DIGITAL defines to it.
Cheers,
Mauro