On Sun, 18 Jan 2009, Hans Verkuil wrote: > I've taken a look at Mike's workaround and that will indeed no longer > work. I suspect that the core problem is related to the > SAA7134_BOARD_KWORLD_ATSC110 case in saa7134_board_init2 in > saa7134-cards.c. There the 'tuner is enabled', whatever that means. I'm > beginning to suspect that this code should perhaps be executed before > the tuner module is loaded. Does anyone know more about what is going > on here? If my analysis is correct, then this should be executed IIRC, some hybrid cards have the ability to power down or hold in reset the analog and/or digital demod when they are not in use. Since the module load order between tuner and the bridge can't be depended on, there really should be another way to make sure all i2c devices are out of reset before scanning for them. If the demod is controlled by a bridge gpio, then just turn it on _before_ adding the I2C adapter. Then the chip will be there when the scan happens. Might need to check how long the demod takes to some out of reset and add a delay. If one I2C chip is controlled by another I2C chip on the same bus (e.g., analog demod controlled by a gpio on the digital demod), then there is currently no way to scan for it. Maybe if the i2c core gave us a "rescan" function? Not a bad idea really, other busses have this. But I think trying to making scanning work with these complex inter-device dependencies is just perpetuating the mistake of scanning for devices in the first place. Much better would be if the tuner driver would let us use i2c_new_device() or an attach function like the dvb drivers use. One of the reasons why I think refactoring the hybrid tuners to use the v4l-style tuner module from dvb style attachment was a move in the wrong direction. -- 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