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 pau...@planar.id.au 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.
--
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 majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html