Stefan Ringel wrote: > Am 02.02.2010 21:03, schrieb Mauro Carvalho Chehab: >>>>> @@ -404,6 +432,7 @@ int tm6000_init (struct tm6000_core *dev) >>>>> { >>>>> int board, rc=0, i, size; >>>>> struct reg_init *tab; >>>>> + u8 buf[40]; >>>>> >>>>> >>>> Why "40" ? Please avoid using magic numbers here, especially if you're >>>> not checking at the logic if you're writing outside the buffer. >>>> >>>> >>>> >>> It important for tm6010 init sequence to enable the demodulator, because >>> the demodulator haven't found after init tuner. >>> >> Probably, there is some i2c gate to enable/disable the i2c access to the >> demodulator. The better way is to add a call to the tm6000-dvb and let it >> init the demodulator. >> >> Also, since there's a gate for the demodulator, the proper way is to add >> a callback to control it. Please take a look at saa7134 and seek for i2c_gate_ctrl >> to see how such logic works. >> >> > It has followed structure schema without the GPIOs: > 1. tm6010 init > 2. enable zl10353 > 3. tm6010 re-init > > If it board specific then it's better when board number definition > switch from tm6000-card.c to tm6000.h . We can use in all tm6000*.c > files the board definition . What's board specific: all stuff that has GPIO, and the demod/frontend enable code. In order to have a better structure, the demod/frontend enable code should be at the tm6000-dvb, just like the other drivers. There, you'll have a switch for those devices that have DVB (Among others, I have here one 10moons device that is analog-only, with a tm5600 - a stripped down version of tm6000, without the DVB part). -- Cheers, Mauro -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html