On 3 февраля 2010 00:07:36 Nameer Kazzaz wrote: > Nameer Kazzaz wrote: > > Igor M. Liplianin wrote: > >> On 2 февраля 2010 17:21:46 Nameer Kazzaz wrote: > >>> Hi Igor, > >>> What do you think ? if I can help you solve this, let me know > >>> what I > >>> can do. > >>> > >>> Thanks > >>> Nameer > >>> > >>> Nameer Kazzaz wrote: > >>>> Hi there, > >>>> dmesg output with patched dm1105.c against current v4l-dvb 'modprob > >>>> dm1105 card=4' > >>>> > >>>> dm1105 0000:05:0f.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16 > >>>> DVB: registering new adapter (dm1105) > >>>> dm1105 0000:05:0f.0: MAC dd49b0dc > >>>> dm1105 0000:05:0f.0: could not attach frontend > >>>> dm1105 0000:05:0f.0: PCI INT A disabled > >>>> > >>>> Thanks > >>>> Nameer Kazzaz > >>>> > >>>> Igor M. Liplianin wrote: > >>>>> On 20 ?????? 2010 23:20:20 paul10@xxxxxxxxxxxx wrote: > >>>>>> Igor wrote: > >>>>>>> Oh, that is wrong. It is registers addresses, Never touch this. > >>>>>>> > >>>>>>> Let's look on that part of code: > >>>>>>> > >>>>>>> /* GPIO's for LNB power control */ > >>>>>>> #define DM1105_LNB_MASK 0x00000000 // > >>>>>>> later in > >>>>>> > >>>>>> code write it to > >>>>>> > >>>>>>> DM1105_GPIOCTR, all GPIO's as OUT > >>>>>>> #define DM1105_LNB_OFF 0x00020000 // > >>>>>>> later in > >>>>>> > >>>>>> code write it to > >>>>>> > >>>>>>> DM1105_GPIOVAL, set GPIO17 to HIGH > >>>>>>> > >>>>>>> But you have not to change this. > >>>>>>> Right way is to write another entry in cards structure and so on. > >>>>>>> Better leave it to me. > >>>>>>> > >>>>>>> Regards > >>>>>>> Igor > >>>>>> > >>>>>> Thanks for all your help, I understand better now. I have moved to > >>>>>> code > >>>>>> like that at the bottom. It still doesn't work, but feels a lot > >>>>>> closer. > >>>>>> > >>>>>> Before I keep playing with values, I want to check I'm on the right > >>>>>> track. > >>>>>> Does it look right? Specific questions: > >>>>>> 1. I see there is a hw_init function. Should I be using that? I > >>>>>> put the > >>>>>> logic into fe_attach because there was already card-specific > >>>>>> logic in > >>>>>> there. But this feels like hw initialisation. > >>>>>> > >>>>>> 2. Should I set the control to input or output? I'm assuming input > >>>>>> = 1. > >>>>>> > >>>>>> 3. Would pin 15 be numbered from the left or right - is it 0x4, or > >>>>>> 0x2000? > >>>>>> > >>>>>> Thanks, > >>>>>> > >>>>>> Paul > >>>>>> > >>>>>> *** dm1105.c.old 2010-01-13 16:15:00.000000000 +1100 > >>>>>> --- dm1105.c 2010-01-21 08:13:14.000000000 +1100 > >>>>>> *************** > >>>>>> *** 51,56 **** > >>>>>> --- 51,57 ---- > >>>>>> #define DM1105_BOARD_DVBWORLD_2002 1 > >>>>>> #define DM1105_BOARD_DVBWORLD_2004 2 > >>>>>> #define DM1105_BOARD_AXESS_DM05 3 > >>>>>> + #define DM1105_BOARD_UNBRANDED 4 > >>>>>> > >>>>>> /* ----------------------------------------------- */ > >>>>>> /* > >>>>>> *************** > >>>>>> *** 171,176 **** > >>>>>> --- 172,181 ---- > >>>>>> #define DM05_LNB_13V 0x00020000 > >>>>>> #define DM05_LNB_18V 0x00030000 > >>>>>> > >>>>>> + /* GPIO's for demod reset for unbranded 195d:1105 */ > >>>>>> + #define UNBRANDED_DEMOD_MASK 0x00008000 > >>>>>> + #define UNBRANDED_DEMOD_RESET 0x00008000 > >>>>>> + > >>>>>> static unsigned int card[] = {[0 ... 3] = UNSET }; > >>>>>> module_param_array(card, int, NULL, 0444); > >>>>>> MODULE_PARM_DESC(card, "card type"); > >>>>>> *************** > >>>>>> *** 206,211 **** > >>>>>> --- 211,219 ---- > >>>>>> [DM1105_BOARD_AXESS_DM05] = { > >>>>>> .name = "Axess/EasyTv DM05", > >>>>>> }, > >>>>>> + [DM1105_BOARD_UNBRANDED] = { > >>>>>> + .name = "Unbranded 195d:1105", > >>>>>> + }, > >>>>>> }; > >>>>>> > >>>>>> static const struct dm1105_subid dm1105_subids[] = { > >>>>>> *************** > >>>>>> *** 229,234 **** > >>>>>> --- 237,246 ---- > >>>>>> .subvendor = 0x195d, > >>>>>> .subdevice = 0x1105, > >>>>>> .card = DM1105_BOARD_AXESS_DM05, > >>>>>> + }, { > >>>>>> + .subvendor = 0x195d, > >>>>>> + .subdevice = 0x1105, > >>>>>> + .card = DM1105_BOARD_UNBRANDED, > >>>>>> }, > >>>>>> }; > >>>>>> > >>>>>> *************** > >>>>>> *** 698,703 **** > >>>>>> --- 710,727 ---- > >>>>>> dm1105dvb->fe->ops.set_voltage = > >>>>>> dm1105dvb_set_voltage; > >>>>>> > >>>>>> break; > >>>>>> + case DM1105_BOARD_UNBRANDED: > >>>>>> + printk(KERN_ERR "Attaching as board_unbranded\n"); > >>>>>> + outl(UNBRANDED_DEMOD_MASK, > >>>>>> dm_io_mem(DM1105_GPIOCTR)); > >>>>>> + outl(UNBRANDED_DEMOD_RESET , > >>>>>> dm_io_mem(DM1105_GPIOVAL)); > >>>>>> + dm1105dvb->fe = dvb_attach( > >>>>>> + si21xx_attach, &serit_config, > >>>>>> + &dm1105dvb->i2c_adap); > >>>>>> + if (dm1105dvb->fe) > >>>>>> + dm1105dvb->fe->ops.set_voltage = > >>>>>> + dm1105dvb_set_voltage; > >>>>>> + > >>>>>> + break; > >>>>>> case DM1105_BOARD_DVBWORLD_2002: > >>>>>> case DM1105_BOARD_AXESS_DM05: > >>>>>> default: > >>>>> > >>>>> Some things are missed, like keep GPIO15 high in set_voltage > >>>>> function. > >>>>> Try attached patch against current v4l-dvb tree with modprobe option > >>>>> card=4 > >>>>> modprobe dm1105 card=4 > >> > >> Hi Nameer, > >> You can modify sended by me patch to guess GPIO pin. Simply try all > >> of them, it is only 17. Just replace all appearances DM1105_GPIO(15) > >> with number you want. > > > > Ok I will do that. > > > > Thanks > > Nameer > > Hi Igor, > I tried all DM1105_GPIO(0) to DM1105_GPIO(17), same error. Any Idea ? > > Nameer Hi I have some ideas, for example, to add to driver i2c_scan function. -- Igor M. Liplianin Microsoft Windows Free Zone - Linux used for all Computing Tasks -- 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