diff mbox

cx23885: Add IR Rx support for HVR-1270 boards

Message ID 1307579065.2461.8.camel@localhost (mailing list archive)
State Accepted
Headers show

Commit Message

Andy Walls June 9, 2011, 12:24 a.m. UTC
On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net> wrote:
> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
> >
> >>I have a capture card that was sold as a Hauppauge HVR-1250 (according
> >>to the box) that I am trying to use but I am having trouble getting
> >>all it's features at once. When I leave it auto detected by the module
> >>I have working TV in MythTV even though it thinks it is a 1270 but IR
> >>isn't setup.
> >>
> >>dmesg outputs
> >>#modprobe cx23885 enable_885_ir=1
> >>[    7.592714] cx23885 driver version 0.0.2 loaded
> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level, low)
> >>-> IRQ 17
> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board: Hauppauge
> >>WinTV-HVR1270 [card=18,autodetected]
> >>[    7.728163] IR JVC protocol handler initialized
> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
> >>serial# 6429897
> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx 155,
> >>type 54)
> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB Digital
> >>(eeprom 0x88)
> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx 40)
> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx 34)
> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has no
> >>IR transmitter
> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
> >>[    7.738991] cx23885[0]: cx23885 based dvb card
> >>[    7.961122] IR Sony protocol handler initialized
> >>[    7.977301] tda18271 1-0060: creating new instance
> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
> >>[    8.209663] DVB: registering new adapter (cx23885[0])
> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG Electronics
> >>LGDT3305 VSB/QAM Frontend)...
> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision = 0xd0
> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq: 17,
> >>latency: 0, mmio: 0xf7c00000
> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X

> >>#ir-keytable -a /etc/rc_maps.cfg
> >>Old keytable cleared
> >>Wrote 136 keycode(s) to driver
> >>Protocols changed to RC-5

> >>I have heard this should show up as a normal keyboard to the system
> >>but no button presses cause anything to happen to the system and
> >>trying lirc with devinput (with devinput lircd.conf) and then opening
> >>irw doesn't show any button presses either


> > Don't force your card to a 1250, if the driver detects it is a 1270
> with a CX23888 chip.  No need to use the enable_885_ir parameter with
> a CX23888 chip, either.  It only applies for two board models with
> actual CX23885 chips.
> >
> > Use of IR with the CX23888 chip should be realtively trouble free,
> *if* the 1270's IR has been enabled in the driver code.  It likely has
> not been.  I don't have the source code in front of me at the moment
> to check.
> >
> > It shouldn't be hard for anyone to patch a few files in the cx23885
> driver to add it.  Patches are welcome...
> >

> Under auto detect without the enable_885_ir there is no difference so
> I can only hope someone will add support for it.

I wasn't kidding when I said the patch is sholdn't be hard for anyone.
It is really, really simple cut-and-paste job.  In fact here is an
*untested* patch.

Regards,
Andy

cx23885: Add IR Rx support for HVR-1270 boards

Signed-off-by: Andy Walls <awalls@md.metrocast.net>






--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Andy Walls June 9, 2011, 12:35 a.m. UTC | #1
On Wed, 2011-06-08 at 20:24 -0400, Andy Walls wrote:
> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
> > On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net> wrote:
> > > Dark Shadow <shadowofdarkness@gmail.com> wrote:

> > > It shouldn't be hard for anyone to patch a few files in the cx23885
> > driver to add it.  Patches are welcome...


> I wasn't kidding when I said the patch is sholdn't be hard for anyone.
                                         ^^^^^^^^^^^
                                          shouldn't
   
> It is really, really simple cut-and-paste job.  In fact here is an
       ^
       a

> *untested* patch.


Good grief, I need to wear my glasses when I type emails. :P

-Andy


--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dark Shadow June 9, 2011, 1:25 a.m. UTC | #2
On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net> wrote:
> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net> wrote:
>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>> >
>> >>I have a capture card that was sold as a Hauppauge HVR-1250 (according
>> >>to the box) that I am trying to use but I am having trouble getting
>> >>all it's features at once. When I leave it auto detected by the module
>> >>I have working TV in MythTV even though it thinks it is a 1270 but IR
>> >>isn't setup.
>> >>
>> >>dmesg outputs
>> >>#modprobe cx23885 enable_885_ir=1
>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level, low)
>> >>-> IRQ 17
>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board: Hauppauge
>> >>WinTV-HVR1270 [card=18,autodetected]
>> >>[    7.728163] IR JVC protocol handler initialized
>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>> >>serial# 6429897
>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx 155,
>> >>type 54)
>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB Digital
>> >>(eeprom 0x88)
>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx 40)
>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx 34)
>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has no
>> >>IR transmitter
>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>> >>[    7.961122] IR Sony protocol handler initialized
>> >>[    7.977301] tda18271 1-0060: creating new instance
>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG Electronics
>> >>LGDT3305 VSB/QAM Frontend)...
>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision = 0xd0
>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq: 17,
>> >>latency: 0, mmio: 0xf7c00000
>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>
>> >>#ir-keytable -a /etc/rc_maps.cfg
>> >>Old keytable cleared
>> >>Wrote 136 keycode(s) to driver
>> >>Protocols changed to RC-5
>
>> >>I have heard this should show up as a normal keyboard to the system
>> >>but no button presses cause anything to happen to the system and
>> >>trying lirc with devinput (with devinput lircd.conf) and then opening
>> >>irw doesn't show any button presses either
>
>
>> > Don't force your card to a 1250, if the driver detects it is a 1270
>> with a CX23888 chip.  No need to use the enable_885_ir parameter with
>> a CX23888 chip, either.  It only applies for two board models with
>> actual CX23885 chips.
>> >
>> > Use of IR with the CX23888 chip should be realtively trouble free,
>> *if* the 1270's IR has been enabled in the driver code.  It likely has
>> not been.  I don't have the source code in front of me at the moment
>> to check.
>> >
>> > It shouldn't be hard for anyone to patch a few files in the cx23885
>> driver to add it.  Patches are welcome...
>> >
>
>> Under auto detect without the enable_885_ir there is no difference so
>> I can only hope someone will add support for it.
>
> I wasn't kidding when I said the patch is sholdn't be hard for anyone.
> It is really, really simple cut-and-paste job.  In fact here is an
> *untested* patch.
>
> Regards,
> Andy
>
> cx23885: Add IR Rx support for HVR-1270 boards
>
> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>
>
> diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
> index ea88722..5635588 100644
> --- a/drivers/media/video/cx23885/cx23885-cards.c
> +++ b/drivers/media/video/cx23885/cx23885-cards.c
> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>                /* FIXME: Implement me */
>                break;
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
> +               ret = cx23888_ir_probe(dev);
> +               if (ret)
> +                       break;
> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
> +               v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config,
> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
> +               break;
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>                ret = cx23888_ir_probe(dev);
> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>  void cx23885_ir_fini(struct cx23885_dev *dev)
>  {
>        switch (dev->board) {
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>                cx23885_irq_remove(dev, PCI_MSK_IR);
> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int tdi, int read_tdo)
>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>  {
>        switch (dev->board) {
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>                if (dev->sd_ir)
> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev *dev)
>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_MYGICA_X8506:
>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
> diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
> index e97cafd..bc28d2c 100644
> --- a/drivers/media/video/cx23885/cx23885-input.c
> +++ b/drivers/media/video/cx23885/cx23885-input.c
> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
>                return;
>
>        switch (dev->board) {
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>        case CX23885_BOARD_TEVII_S470:
> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct cx23885_dev *dev)
>
>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>        switch (dev->board) {
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>                return -ENODEV;
>
>        switch (dev->board) {
> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>
>
>
>
>

Thank you I just tested those changes and they work (in getting the IR
to work to the same level as forcing the card model and not cause
problems for the video)

I still can't use the remote any more then forcing the card model but
I have a guess on that. According to everything I have read the
ir-kbd-i2c module is needed but it never auto loads on my system so I
am thinking it is just not updated to know about this card and may
only need the same type of changes as the cx23885 module. (I am
guessing since I can't even program a Hello World) Is there any chance
you would be able to see if any easy changes could be done to it.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andy Walls June 9, 2011, 1:34 a.m. UTC | #3
Dark Shadow <shadowofdarkness@gmail.com> wrote:

>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>wrote:
>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>wrote:
>>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>> >
>>> >>I have a capture card that was sold as a Hauppauge HVR-1250
>(according
>>> >>to the box) that I am trying to use but I am having trouble
>getting
>>> >>all it's features at once. When I leave it auto detected by the
>module
>>> >>I have working TV in MythTV even though it thinks it is a 1270 but
>IR
>>> >>isn't setup.
>>> >>
>>> >>dmesg outputs
>>> >>#modprobe cx23885 enable_885_ir=1
>>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>low)
>>> >>-> IRQ 17
>>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>Hauppauge
>>> >>WinTV-HVR1270 [card=18,autodetected]
>>> >>[    7.728163] IR JVC protocol handler initialized
>>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>> >>serial# 6429897
>>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>155,
>>> >>type 54)
>>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>Digital
>>> >>(eeprom 0x88)
>>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>40)
>>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>34)
>>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>no
>>> >>IR transmitter
>>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>>> >>[    7.961122] IR Sony protocol handler initialized
>>> >>[    7.977301] tda18271 1-0060: creating new instance
>>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG
>Electronics
>>> >>LGDT3305 VSB/QAM Frontend)...
>>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision =
>0xd0
>>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>17,
>>> >>latency: 0, mmio: 0xf7c00000
>>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>
>>> >>#ir-keytable -a /etc/rc_maps.cfg
>>> >>Old keytable cleared
>>> >>Wrote 136 keycode(s) to driver
>>> >>Protocols changed to RC-5
>>
>>> >>I have heard this should show up as a normal keyboard to the
>system
>>> >>but no button presses cause anything to happen to the system and
>>> >>trying lirc with devinput (with devinput lircd.conf) and then
>opening
>>> >>irw doesn't show any button presses either
>>
>>
>>> > Don't force your card to a 1250, if the driver detects it is a
>1270
>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>with
>>> a CX23888 chip, either.  It only applies for two board models with
>>> actual CX23885 chips.
>>> >
>>> > Use of IR with the CX23888 chip should be realtively trouble free,
>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>has
>>> not been.  I don't have the source code in front of me at the moment
>>> to check.
>>> >
>>> > It shouldn't be hard for anyone to patch a few files in the
>cx23885
>>> driver to add it.  Patches are welcome...
>>> >
>>
>>> Under auto detect without the enable_885_ir there is no difference
>so
>>> I can only hope someone will add support for it.
>>
>> I wasn't kidding when I said the patch is sholdn't be hard for
>anyone.
>> It is really, really simple cut-and-paste job.  In fact here is an
>> *untested* patch.
>>
>> Regards,
>> Andy
>>
>> cx23885: Add IR Rx support for HVR-1270 boards
>>
>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>
>>
>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>b/drivers/media/video/cx23885/cx23885-cards.c
>> index ea88722..5635588 100644
>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>                /* FIXME: Implement me */
>>                break;
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>> +               ret = cx23888_ir_probe(dev);
>> +               if (ret)
>> +                       break;
>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>s_io_pin_config,
>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>> +               break;
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>                ret = cx23888_ir_probe(dev);
>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>  {
>>        switch (dev->board) {
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>tdi, int read_tdo)
>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>  {
>>        switch (dev->board) {
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>                if (dev->sd_ir)
>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>*dev)
>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_MYGICA_X8506:
>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>b/drivers/media/video/cx23885/cx23885-input.c
>> index e97cafd..bc28d2c 100644
>> --- a/drivers/media/video/cx23885/cx23885-input.c
>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>cx23885_dev *dev, u32 events)
>>                return;
>>
>>        switch (dev->board) {
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>        case CX23885_BOARD_TEVII_S470:
>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>cx23885_dev *dev)
>>
>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>        switch (dev->board) {
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>                return -ENODEV;
>>
>>        switch (dev->board) {
>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>
>>
>>
>>
>>
>
>Thank you I just tested those changes and they work (in getting the IR
>to work to the same level as forcing the card model and not cause
>problems for the video)
>
>I still can't use the remote any more then forcing the card model but
>I have a guess on that. According to everything I have read the
>ir-kbd-i2c module is needed but it never auto loads on my system so I
>am thinking it is just not updated to know about this card and may
>only need the same type of changes as the cx23885 module. (I am
>guessing since I can't even program a Hello World) Is there any chance
>you would be able to see if any easy changes could be done to it.

You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.

The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.

If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.

I don't have a 1270 of my own, so I can't help too much.

Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dark Shadow June 9, 2011, 2:31 a.m. UTC | #4
On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@md.metrocast.net> wrote:
> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>
>>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>>wrote:
>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>>wrote:
>>>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>> >
>>>> >>I have a capture card that was sold as a Hauppauge HVR-1250
>>(according
>>>> >>to the box) that I am trying to use but I am having trouble
>>getting
>>>> >>all it's features at once. When I leave it auto detected by the
>>module
>>>> >>I have working TV in MythTV even though it thinks it is a 1270 but
>>IR
>>>> >>isn't setup.
>>>> >>
>>>> >>dmesg outputs
>>>> >>#modprobe cx23885 enable_885_ir=1
>>>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>>>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>>low)
>>>> >>-> IRQ 17
>>>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>Hauppauge
>>>> >>WinTV-HVR1270 [card=18,autodetected]
>>>> >>[    7.728163] IR JVC protocol handler initialized
>>>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>>> >>serial# 6429897
>>>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>>155,
>>>> >>type 54)
>>>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>>Digital
>>>> >>(eeprom 0x88)
>>>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>>40)
>>>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>>34)
>>>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>>no
>>>> >>IR transmitter
>>>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>>>> >>[    7.961122] IR Sony protocol handler initialized
>>>> >>[    7.977301] tda18271 1-0060: creating new instance
>>>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>>>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>Electronics
>>>> >>LGDT3305 VSB/QAM Frontend)...
>>>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision =
>>0xd0
>>>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>>17,
>>>> >>latency: 0, mmio: 0xf7c00000
>>>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>
>>>> >>#ir-keytable -a /etc/rc_maps.cfg
>>>> >>Old keytable cleared
>>>> >>Wrote 136 keycode(s) to driver
>>>> >>Protocols changed to RC-5
>>>
>>>> >>I have heard this should show up as a normal keyboard to the
>>system
>>>> >>but no button presses cause anything to happen to the system and
>>>> >>trying lirc with devinput (with devinput lircd.conf) and then
>>opening
>>>> >>irw doesn't show any button presses either
>>>
>>>
>>>> > Don't force your card to a 1250, if the driver detects it is a
>>1270
>>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>>with
>>>> a CX23888 chip, either.  It only applies for two board models with
>>>> actual CX23885 chips.
>>>> >
>>>> > Use of IR with the CX23888 chip should be realtively trouble free,
>>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>>has
>>>> not been.  I don't have the source code in front of me at the moment
>>>> to check.
>>>> >
>>>> > It shouldn't be hard for anyone to patch a few files in the
>>cx23885
>>>> driver to add it.  Patches are welcome...
>>>> >
>>>
>>>> Under auto detect without the enable_885_ir there is no difference
>>so
>>>> I can only hope someone will add support for it.
>>>
>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>anyone.
>>> It is really, really simple cut-and-paste job.  In fact here is an
>>> *untested* patch.
>>>
>>> Regards,
>>> Andy
>>>
>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>
>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>
>>>
>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>b/drivers/media/video/cx23885/cx23885-cards.c
>>> index ea88722..5635588 100644
>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>                /* FIXME: Implement me */
>>>                break;
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>> +               ret = cx23888_ir_probe(dev);
>>> +               if (ret)
>>> +                       break;
>>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>s_io_pin_config,
>>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>>> +               break;
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>                ret = cx23888_ir_probe(dev);
>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>  {
>>>        switch (dev->board) {
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>>tdi, int read_tdo)
>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>  {
>>>        switch (dev->board) {
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>                if (dev->sd_ir)
>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>>*dev)
>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_MYGICA_X8506:
>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>b/drivers/media/video/cx23885/cx23885-input.c
>>> index e97cafd..bc28d2c 100644
>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>cx23885_dev *dev, u32 events)
>>>                return;
>>>
>>>        switch (dev->board) {
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>        case CX23885_BOARD_TEVII_S470:
>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>cx23885_dev *dev)
>>>
>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>>        switch (dev->board) {
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>>                return -ENODEV;
>>>
>>>        switch (dev->board) {
>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>
>>>
>>>
>>>
>>>
>>
>>Thank you I just tested those changes and they work (in getting the IR
>>to work to the same level as forcing the card model and not cause
>>problems for the video)
>>
>>I still can't use the remote any more then forcing the card model but
>>I have a guess on that. According to everything I have read the
>>ir-kbd-i2c module is needed but it never auto loads on my system so I
>>am thinking it is just not updated to know about this card and may
>>only need the same type of changes as the cx23885 module. (I am
>>guessing since I can't even program a Hello World) Is there any chance
>>you would be able to see if any easy changes could be done to it.
>
> You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.
>
> The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.
>
> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.
>
> I don't have a 1270 of my own, so I can't help too much.
>
> Andy
>



I have been unable to get any debug output but on two occasions I got
the down arrow to work on the XBMC menu but both times were followed
by the system locking up and I can't reproduce it anymore.

Do I need the parameter to enable ir or not? I have tried it both ways.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dark Shadow June 9, 2011, 3:17 a.m. UTC | #5
On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@md.metrocast.net> wrote:
>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>
>>>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>>>wrote:
>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>>>wrote:
>>>>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>> >
>>>>> >>I have a capture card that was sold as a Hauppauge HVR-1250
>>>(according
>>>>> >>to the box) that I am trying to use but I am having trouble
>>>getting
>>>>> >>all it's features at once. When I leave it auto detected by the
>>>module
>>>>> >>I have working TV in MythTV even though it thinks it is a 1270 but
>>>IR
>>>>> >>isn't setup.
>>>>> >>
>>>>> >>dmesg outputs
>>>>> >>#modprobe cx23885 enable_885_ir=1
>>>>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>>>>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>>>low)
>>>>> >>-> IRQ 17
>>>>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>>Hauppauge
>>>>> >>WinTV-HVR1270 [card=18,autodetected]
>>>>> >>[    7.728163] IR JVC protocol handler initialized
>>>>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>>>> >>serial# 6429897
>>>>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>>>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>>>155,
>>>>> >>type 54)
>>>>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>>>Digital
>>>>> >>(eeprom 0x88)
>>>>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>>>40)
>>>>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>>>34)
>>>>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>>>no
>>>>> >>IR transmitter
>>>>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>>>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>>>>> >>[    7.961122] IR Sony protocol handler initialized
>>>>> >>[    7.977301] tda18271 1-0060: creating new instance
>>>>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>>>>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>>Electronics
>>>>> >>LGDT3305 VSB/QAM Frontend)...
>>>>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision =
>>>0xd0
>>>>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>>>17,
>>>>> >>latency: 0, mmio: 0xf7c00000
>>>>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>>>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>>
>>>>> >>#ir-keytable -a /etc/rc_maps.cfg
>>>>> >>Old keytable cleared
>>>>> >>Wrote 136 keycode(s) to driver
>>>>> >>Protocols changed to RC-5
>>>>
>>>>> >>I have heard this should show up as a normal keyboard to the
>>>system
>>>>> >>but no button presses cause anything to happen to the system and
>>>>> >>trying lirc with devinput (with devinput lircd.conf) and then
>>>opening
>>>>> >>irw doesn't show any button presses either
>>>>
>>>>
>>>>> > Don't force your card to a 1250, if the driver detects it is a
>>>1270
>>>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>>>with
>>>>> a CX23888 chip, either.  It only applies for two board models with
>>>>> actual CX23885 chips.
>>>>> >
>>>>> > Use of IR with the CX23888 chip should be realtively trouble free,
>>>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>>>has
>>>>> not been.  I don't have the source code in front of me at the moment
>>>>> to check.
>>>>> >
>>>>> > It shouldn't be hard for anyone to patch a few files in the
>>>cx23885
>>>>> driver to add it.  Patches are welcome...
>>>>> >
>>>>
>>>>> Under auto detect without the enable_885_ir there is no difference
>>>so
>>>>> I can only hope someone will add support for it.
>>>>
>>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>>anyone.
>>>> It is really, really simple cut-and-paste job.  In fact here is an
>>>> *untested* patch.
>>>>
>>>> Regards,
>>>> Andy
>>>>
>>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>>
>>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>>
>>>>
>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>>b/drivers/media/video/cx23885/cx23885-cards.c
>>>> index ea88722..5635588 100644
>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>>                /* FIXME: Implement me */
>>>>                break;
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>> +               ret = cx23888_ir_probe(dev);
>>>> +               if (ret)
>>>> +                       break;
>>>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>>s_io_pin_config,
>>>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>>>> +               break;
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>                ret = cx23888_ir_probe(dev);
>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>>  {
>>>>        switch (dev->board) {
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>>>tdi, int read_tdo)
>>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>>  {
>>>>        switch (dev->board) {
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>                if (dev->sd_ir)
>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>>>*dev)
>>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_MYGICA_X8506:
>>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>>b/drivers/media/video/cx23885/cx23885-input.c
>>>> index e97cafd..bc28d2c 100644
>>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>>cx23885_dev *dev, u32 events)
>>>>                return;
>>>>
>>>>        switch (dev->board) {
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>        case CX23885_BOARD_TEVII_S470:
>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>>cx23885_dev *dev)
>>>>
>>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>>>        switch (dev->board) {
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>>>                return -ENODEV;
>>>>
>>>>        switch (dev->board) {
>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>Thank you I just tested those changes and they work (in getting the IR
>>>to work to the same level as forcing the card model and not cause
>>>problems for the video)
>>>
>>>I still can't use the remote any more then forcing the card model but
>>>I have a guess on that. According to everything I have read the
>>>ir-kbd-i2c module is needed but it never auto loads on my system so I
>>>am thinking it is just not updated to know about this card and may
>>>only need the same type of changes as the cx23885 module. (I am
>>>guessing since I can't even program a Hello World) Is there any chance
>>>you would be able to see if any easy changes could be done to it.
>>
>> You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.
>>
>> The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.
>>
>> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.
>>
>> I don't have a 1270 of my own, so I can't help too much.
>>
>> Andy
>>
>
>
>
> I have been unable to get any debug output but on two occasions I got
> the down arrow to work on the XBMC menu but both times were followed
> by the system locking up and I can't reproduce it anymore.
>
> Do I need the parameter to enable ir or not? I have tried it both ways.
>

After a couple more 1 button freezes the computer. I had one occasion
that for about 20 seconds the remote was working perfect (play/pause,
arrows, volume) then it just stopped working for no reason (but
luckily didn't crash the computer) This was with no module parameters.

So it can work but is extremely flaky.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dark Shadow June 9, 2011, 3:27 a.m. UTC | #6
On Wed, Jun 8, 2011 at 9:17 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
> On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@md.metrocast.net> wrote:
>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>
>>>>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>>>>wrote:
>>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>>>>wrote:
>>>>>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>> >
>>>>>> >>I have a capture card that was sold as a Hauppauge HVR-1250
>>>>(according
>>>>>> >>to the box) that I am trying to use but I am having trouble
>>>>getting
>>>>>> >>all it's features at once. When I leave it auto detected by the
>>>>module
>>>>>> >>I have working TV in MythTV even though it thinks it is a 1270 but
>>>>IR
>>>>>> >>isn't setup.
>>>>>> >>
>>>>>> >>dmesg outputs
>>>>>> >>#modprobe cx23885 enable_885_ir=1
>>>>>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>>>>>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>>>>low)
>>>>>> >>-> IRQ 17
>>>>>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>>>Hauppauge
>>>>>> >>WinTV-HVR1270 [card=18,autodetected]
>>>>>> >>[    7.728163] IR JVC protocol handler initialized
>>>>>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>>>>> >>serial# 6429897
>>>>>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>>>>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>>>>155,
>>>>>> >>type 54)
>>>>>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>>>>Digital
>>>>>> >>(eeprom 0x88)
>>>>>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>>>>40)
>>>>>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>>>>34)
>>>>>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>>>>no
>>>>>> >>IR transmitter
>>>>>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>>>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>>>>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>>>>>> >>[    7.961122] IR Sony protocol handler initialized
>>>>>> >>[    7.977301] tda18271 1-0060: creating new instance
>>>>>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>>>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>>>>>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>>>Electronics
>>>>>> >>LGDT3305 VSB/QAM Frontend)...
>>>>>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision =
>>>>0xd0
>>>>>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>>>>17,
>>>>>> >>latency: 0, mmio: 0xf7c00000
>>>>>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>>>>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>>>
>>>>>> >>#ir-keytable -a /etc/rc_maps.cfg
>>>>>> >>Old keytable cleared
>>>>>> >>Wrote 136 keycode(s) to driver
>>>>>> >>Protocols changed to RC-5
>>>>>
>>>>>> >>I have heard this should show up as a normal keyboard to the
>>>>system
>>>>>> >>but no button presses cause anything to happen to the system and
>>>>>> >>trying lirc with devinput (with devinput lircd.conf) and then
>>>>opening
>>>>>> >>irw doesn't show any button presses either
>>>>>
>>>>>
>>>>>> > Don't force your card to a 1250, if the driver detects it is a
>>>>1270
>>>>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>>>>with
>>>>>> a CX23888 chip, either.  It only applies for two board models with
>>>>>> actual CX23885 chips.
>>>>>> >
>>>>>> > Use of IR with the CX23888 chip should be realtively trouble free,
>>>>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>>>>has
>>>>>> not been.  I don't have the source code in front of me at the moment
>>>>>> to check.
>>>>>> >
>>>>>> > It shouldn't be hard for anyone to patch a few files in the
>>>>cx23885
>>>>>> driver to add it.  Patches are welcome...
>>>>>> >
>>>>>
>>>>>> Under auto detect without the enable_885_ir there is no difference
>>>>so
>>>>>> I can only hope someone will add support for it.
>>>>>
>>>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>>>anyone.
>>>>> It is really, really simple cut-and-paste job.  In fact here is an
>>>>> *untested* patch.
>>>>>
>>>>> Regards,
>>>>> Andy
>>>>>
>>>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>>>
>>>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>>>
>>>>>
>>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>>>b/drivers/media/video/cx23885/cx23885-cards.c
>>>>> index ea88722..5635588 100644
>>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>>>                /* FIXME: Implement me */
>>>>>                break;
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>> +               ret = cx23888_ir_probe(dev);
>>>>> +               if (ret)
>>>>> +                       break;
>>>>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>>>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>>>s_io_pin_config,
>>>>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>>>>> +               break;
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>                ret = cx23888_ir_probe(dev);
>>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>>>  {
>>>>>        switch (dev->board) {
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>>>>tdi, int read_tdo)
>>>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>>>  {
>>>>>        switch (dev->board) {
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>                if (dev->sd_ir)
>>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>>>>*dev)
>>>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_MYGICA_X8506:
>>>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>>>b/drivers/media/video/cx23885/cx23885-input.c
>>>>> index e97cafd..bc28d2c 100644
>>>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>>>cx23885_dev *dev, u32 events)
>>>>>                return;
>>>>>
>>>>>        switch (dev->board) {
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>        case CX23885_BOARD_TEVII_S470:
>>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>>>cx23885_dev *dev)
>>>>>
>>>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>>>>        switch (dev->board) {
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>>>>                return -ENODEV;
>>>>>
>>>>>        switch (dev->board) {
>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>Thank you I just tested those changes and they work (in getting the IR
>>>>to work to the same level as forcing the card model and not cause
>>>>problems for the video)
>>>>
>>>>I still can't use the remote any more then forcing the card model but
>>>>I have a guess on that. According to everything I have read the
>>>>ir-kbd-i2c module is needed but it never auto loads on my system so I
>>>>am thinking it is just not updated to know about this card and may
>>>>only need the same type of changes as the cx23885 module. (I am
>>>>guessing since I can't even program a Hello World) Is there any chance
>>>>you would be able to see if any easy changes could be done to it.
>>>
>>> You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.
>>>
>>> The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.
>>>
>>> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.
>>>
>>> I don't have a 1270 of my own, so I can't help too much.
>>>
>>> Andy
>>>
>>
>>
>>
>> I have been unable to get any debug output but on two occasions I got
>> the down arrow to work on the XBMC menu but both times were followed
>> by the system locking up and I can't reproduce it anymore.
>>
>> Do I need the parameter to enable ir or not? I have tried it both ways.
>>
>
> After a couple more 1 button freezes the computer. I had one occasion
> that for about 20 seconds the remote was working perfect (play/pause,
> arrows, volume) then it just stopped working for no reason (but
> luckily didn't crash the computer) This was with no module parameters.
>
> So it can work but is extremely flaky.
>

I noticed something I missed from the debug parameter, when I press
the first button after loading the module this error gets printed to
the syslog

do_IRQ: 3.185 No irq handler for vector (irq -1)

I have reproduced it a few times to match up to the first button press
but not after.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dark Shadow June 9, 2011, 4:12 a.m. UTC | #7
On Wed, Jun 8, 2011 at 9:27 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
> On Wed, Jun 8, 2011 at 9:17 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>> On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@md.metrocast.net> wrote:
>>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>
>>>>>On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>>>>>wrote:
>>>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>>>>>wrote:
>>>>>>> > Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>>> >
>>>>>>> >>I have a capture card that was sold as a Hauppauge HVR-1250
>>>>>(according
>>>>>>> >>to the box) that I am trying to use but I am having trouble
>>>>>getting
>>>>>>> >>all it's features at once. When I leave it auto detected by the
>>>>>module
>>>>>>> >>I have working TV in MythTV even though it thinks it is a 1270 but
>>>>>IR
>>>>>>> >>isn't setup.
>>>>>>> >>
>>>>>>> >>dmesg outputs
>>>>>>> >>#modprobe cx23885 enable_885_ir=1
>>>>>>> >>[    7.592714] cx23885 driver version 0.0.2 loaded
>>>>>>> >>[    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>>>>>low)
>>>>>>> >>-> IRQ 17
>>>>>>> >>[    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>>>>Hauppauge
>>>>>>> >>WinTV-HVR1270 [card=18,autodetected]
>>>>>>> >>[    7.728163] IR JVC protocol handler initialized
>>>>>>> >>[    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>>>>>> >>serial# 6429897
>>>>>>> >>[    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>>>>>> >>[    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>>>>>155,
>>>>>>> >>type 54)
>>>>>>> >>[    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>>>>>Digital
>>>>>>> >>(eeprom 0x88)
>>>>>>> >>[    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>>>>>40)
>>>>>>> >>[    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>>>>>34)
>>>>>>> >>[    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>>>>>no
>>>>>>> >>IR transmitter
>>>>>>> >>[    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>>>>> >>[    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>>>>>> >>[    7.738991] cx23885[0]: cx23885 based dvb card
>>>>>>> >>[    7.961122] IR Sony protocol handler initialized
>>>>>>> >>[    7.977301] tda18271 1-0060: creating new instance
>>>>>>> >>[    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>>>>> >>[    8.209663] DVB: registering new adapter (cx23885[0])
>>>>>>> >>[    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>>>>Electronics
>>>>>>> >>LGDT3305 VSB/QAM Frontend)...
>>>>>>> >>[    8.210095] cx23885_dev_checkrevision() Hardware revision =
>>>>>0xd0
>>>>>>> >>[    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>>>>>17,
>>>>>>> >>latency: 0, mmio: 0xf7c00000
>>>>>>> >>[    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>>>>>> >>[    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>>>>
>>>>>>> >>#ir-keytable -a /etc/rc_maps.cfg
>>>>>>> >>Old keytable cleared
>>>>>>> >>Wrote 136 keycode(s) to driver
>>>>>>> >>Protocols changed to RC-5
>>>>>>
>>>>>>> >>I have heard this should show up as a normal keyboard to the
>>>>>system
>>>>>>> >>but no button presses cause anything to happen to the system and
>>>>>>> >>trying lirc with devinput (with devinput lircd.conf) and then
>>>>>opening
>>>>>>> >>irw doesn't show any button presses either
>>>>>>
>>>>>>
>>>>>>> > Don't force your card to a 1250, if the driver detects it is a
>>>>>1270
>>>>>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>>>>>with
>>>>>>> a CX23888 chip, either.  It only applies for two board models with
>>>>>>> actual CX23885 chips.
>>>>>>> >
>>>>>>> > Use of IR with the CX23888 chip should be realtively trouble free,
>>>>>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>>>>>has
>>>>>>> not been.  I don't have the source code in front of me at the moment
>>>>>>> to check.
>>>>>>> >
>>>>>>> > It shouldn't be hard for anyone to patch a few files in the
>>>>>cx23885
>>>>>>> driver to add it.  Patches are welcome...
>>>>>>> >
>>>>>>
>>>>>>> Under auto detect without the enable_885_ir there is no difference
>>>>>so
>>>>>>> I can only hope someone will add support for it.
>>>>>>
>>>>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>>>>anyone.
>>>>>> It is really, really simple cut-and-paste job.  In fact here is an
>>>>>> *untested* patch.
>>>>>>
>>>>>> Regards,
>>>>>> Andy
>>>>>>
>>>>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>>>>
>>>>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>>>>
>>>>>>
>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>> index ea88722..5635588 100644
>>>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>>>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>>>>                /* FIXME: Implement me */
>>>>>>                break;
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>> +               ret = cx23888_ir_probe(dev);
>>>>>> +               if (ret)
>>>>>> +                       break;
>>>>>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>>>>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>>>>s_io_pin_config,
>>>>>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>>>>>> +               break;
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>                ret = cx23888_ir_probe(dev);
>>>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>>>>  {
>>>>>>        switch (dev->board) {
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>>>>>tdi, int read_tdo)
>>>>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>>>>  {
>>>>>>        switch (dev->board) {
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>                if (dev->sd_ir)
>>>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>>>>>*dev)
>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_MYGICA_X8506:
>>>>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>>>>b/drivers/media/video/cx23885/cx23885-input.c
>>>>>> index e97cafd..bc28d2c 100644
>>>>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>>>>cx23885_dev *dev, u32 events)
>>>>>>                return;
>>>>>>
>>>>>>        switch (dev->board) {
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>        case CX23885_BOARD_TEVII_S470:
>>>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>>>>cx23885_dev *dev)
>>>>>>
>>>>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>>>>>        switch (dev->board) {
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>>>>>                return -ENODEV;
>>>>>>
>>>>>>        switch (dev->board) {
>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>Thank you I just tested those changes and they work (in getting the IR
>>>>>to work to the same level as forcing the card model and not cause
>>>>>problems for the video)
>>>>>
>>>>>I still can't use the remote any more then forcing the card model but
>>>>>I have a guess on that. According to everything I have read the
>>>>>ir-kbd-i2c module is needed but it never auto loads on my system so I
>>>>>am thinking it is just not updated to know about this card and may
>>>>>only need the same type of changes as the cx23885 module. (I am
>>>>>guessing since I can't even program a Hello World) Is there any chance
>>>>>you would be able to see if any easy changes could be done to it.
>>>>
>>>> You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.
>>>>
>>>> The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.
>>>>
>>>> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.
>>>>
>>>> I don't have a 1270 of my own, so I can't help too much.
>>>>
>>>> Andy
>>>>
>>>
>>>
>>>
>>> I have been unable to get any debug output but on two occasions I got
>>> the down arrow to work on the XBMC menu but both times were followed
>>> by the system locking up and I can't reproduce it anymore.
>>>
>>> Do I need the parameter to enable ir or not? I have tried it both ways.
>>>
>>
>> After a couple more 1 button freezes the computer. I had one occasion
>> that for about 20 seconds the remote was working perfect (play/pause,
>> arrows, volume) then it just stopped working for no reason (but
>> luckily didn't crash the computer) This was with no module parameters.
>>
>> So it can work but is extremely flaky.
>>
>
> I noticed something I missed from the debug parameter, when I press
> the first button after loading the module this error gets printed to
> the syslog
>
> do_IRQ: 3.185 No irq handler for vector (irq -1)
>
> I have reproduced it a few times to match up to the first button press
> but not after.
>

OK I have it working now after Googling for a bit I found a fix for
that error I had to add the kernel option "pci=nomsi" to grub. Now it
works.
I just hope that didn't cause any problems with other hardware since
during bootup it causes MSI-X to fail which I Googled to figure out
what that is and my guess is it could cause problems for other
hardware that needs it.

Now to figure out why some buttons don't seem to be in the keymap.
Like the OK button But that will be a different message.


Thank you again for your patch you have no idea how grateful I am.
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Mauro Carvalho Chehab June 21, 2011, 5:28 p.m. UTC | #8
Em 09-06-2011 01:12, Dark Shadow escreveu:
> On Wed, Jun 8, 2011 at 9:27 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>> On Wed, Jun 8, 2011 at 9:17 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>> On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls <awalls@md.metrocast.net> wrote:
>>>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>
>>>>>> On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls <awalls@md.metrocast.net>
>>>>>> wrote:
>>>>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls <awalls@md.metrocast.net>
>>>>>> wrote:
>>>>>>>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> I have a capture card that was sold as a Hauppauge HVR-1250
>>>>>> (according
>>>>>>>>>> to the box) that I am trying to use but I am having trouble
>>>>>> getting
>>>>>>>>>> all it's features at once. When I leave it auto detected by the
>>>>>> module
>>>>>>>>>> I have working TV in MythTV even though it thinks it is a 1270 but
>>>>>> IR
>>>>>>>>>> isn't setup.
>>>>>>>>>>
>>>>>>>>>> dmesg outputs
>>>>>>>>>> #modprobe cx23885 enable_885_ir=1
>>>>>>>>>> [    7.592714] cx23885 driver version 0.0.2 loaded
>>>>>>>>>> [    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17 (level,
>>>>>> low)
>>>>>>>>>> -> IRQ 17
>>>>>>>>>> [    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>>>>> Hauppauge
>>>>>>>>>> WinTV-HVR1270 [card=18,autodetected]
>>>>>>>>>> [    7.728163] IR JVC protocol handler initialized
>>>>>>>>>> [    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev C2F5,
>>>>>>>>>> serial# 6429897
>>>>>>>>>> [    7.738974] tveeprom 0-0050: MAC address is 00:0d:fe:62:1c:c9
>>>>>>>>>> [    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2 (idx
>>>>>> 155,
>>>>>>>>>> type 54)
>>>>>>>>>> [    7.738977] tveeprom 0-0050: TV standards NTSC(M) ATSC/DVB
>>>>>> Digital
>>>>>>>>>> (eeprom 0x88)
>>>>>>>>>> [    7.738979] tveeprom 0-0050: audio processor is CX23888 (idx
>>>>>> 40)
>>>>>>>>>> [    7.738980] tveeprom 0-0050: decoder processor is CX23888 (idx
>>>>>> 34)
>>>>>>>>>> [    7.738982] tveeprom 0-0050: has no radio, has IR receiver, has
>>>>>> no
>>>>>>>>>> IR transmitter
>>>>>>>>>> [    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>>>>>>>> [    7.738985] cx23885_dvb_register() allocating 1 frontend(s)
>>>>>>>>>> [    7.738991] cx23885[0]: cx23885 based dvb card
>>>>>>>>>> [    7.961122] IR Sony protocol handler initialized
>>>>>>>>>> [    7.977301] tda18271 1-0060: creating new instance
>>>>>>>>>> [    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>>>>>>>> [    8.209663] DVB: registering new adapter (cx23885[0])
>>>>>>>>>> [    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>>>>> Electronics
>>>>>>>>>> LGDT3305 VSB/QAM Frontend)...
>>>>>>>>>> [    8.210095] cx23885_dev_checkrevision() Hardware revision =
>>>>>> 0xd0
>>>>>>>>>> [    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4, irq:
>>>>>> 17,
>>>>>>>>>> latency: 0, mmio: 0xf7c00000
>>>>>>>>>> [    8.210109] cx23885 0000:07:00.0: setting latency timer to 64
>>>>>>>>>> [    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>>>>>
>>>>>>>>>> #ir-keytable -a /etc/rc_maps.cfg
>>>>>>>>>> Old keytable cleared
>>>>>>>>>> Wrote 136 keycode(s) to driver
>>>>>>>>>> Protocols changed to RC-5
>>>>>>>
>>>>>>>>>> I have heard this should show up as a normal keyboard to the
>>>>>> system
>>>>>>>>>> but no button presses cause anything to happen to the system and
>>>>>>>>>> trying lirc with devinput (with devinput lircd.conf) and then
>>>>>> opening
>>>>>>>>>> irw doesn't show any button presses either
>>>>>>>
>>>>>>>
>>>>>>>>> Don't force your card to a 1250, if the driver detects it is a
>>>>>> 1270
>>>>>>>> with a CX23888 chip.  No need to use the enable_885_ir parameter
>>>>>> with
>>>>>>>> a CX23888 chip, either.  It only applies for two board models with
>>>>>>>> actual CX23885 chips.
>>>>>>>>>
>>>>>>>>> Use of IR with the CX23888 chip should be realtively trouble free,
>>>>>>>> *if* the 1270's IR has been enabled in the driver code.  It likely
>>>>>> has
>>>>>>>> not been.  I don't have the source code in front of me at the moment
>>>>>>>> to check.
>>>>>>>>>
>>>>>>>>> It shouldn't be hard for anyone to patch a few files in the
>>>>>> cx23885
>>>>>>>> driver to add it.  Patches are welcome...
>>>>>>>>>
>>>>>>>
>>>>>>>> Under auto detect without the enable_885_ir there is no difference
>>>>>> so
>>>>>>>> I can only hope someone will add support for it.
>>>>>>>
>>>>>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>>>>> anyone.
>>>>>>> It is really, really simple cut-and-paste job.  In fact here is an
>>>>>>> *untested* patch.
>>>>>>>
>>>>>>> Regards,
>>>>>>> Andy
>>>>>>>
>>>>>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>>>>>
>>>>>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>>>>>
>>>>>>>
>>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>> b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>> index ea88722..5635588 100644
>>>>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>>>>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>>>>>                /* FIXME: Implement me */
>>>>>>>                break;
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>> +               ret = cx23888_ir_probe(dev);
>>>>>>> +               if (ret)
>>>>>>> +                       break;
>>>>>>> +               dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
>>>>>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>>>>> s_io_pin_config,
>>>>>>> +                                ir_rx_pin_cfg_count, ir_rx_pin_cfg);
>>>>>>> +               break;
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>                ret = cx23888_ir_probe(dev);
>>>>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev *dev)
>>>>>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>>>>>  {
>>>>>>>        switch (dev->board) {
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>>>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms, int
>>>>>> tdi, int read_tdo)
>>>>>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>>>>>  {
>>>>>>>        switch (dev->board) {
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>                if (dev->sd_ir)
>>>>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct cx23885_dev
>>>>>> *dev)
>>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>>>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_MYGICA_X8506:
>>>>>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>>>>> b/drivers/media/video/cx23885/cx23885-input.c
>>>>>>> index e97cafd..bc28d2c 100644
>>>>>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>>>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>>>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>>>>> cx23885_dev *dev, u32 events)
>>>>>>>                return;
>>>>>>>
>>>>>>>        switch (dev->board) {
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>        case CX23885_BOARD_TEVII_S470:
>>>>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>>>>> cx23885_dev *dev)
>>>>>>>
>>>>>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
>>>>>>>        switch (dev->board) {
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev *dev)
>>>>>>>                return -ENODEV;
>>>>>>>
>>>>>>>        switch (dev->board) {
>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> Thank you I just tested those changes and they work (in getting the IR
>>>>>> to work to the same level as forcing the card model and not cause
>>>>>> problems for the video)
>>>>>>
>>>>>> I still can't use the remote any more then forcing the card model but
>>>>>> I have a guess on that. According to everything I have read the
>>>>>> ir-kbd-i2c module is needed but it never auto loads on my system so I
>>>>>> am thinking it is just not updated to know about this card and may
>>>>>> only need the same type of changes as the cx23885 module. (I am
>>>>>> guessing since I can't even program a Hello World) Is there any chance
>>>>>> you would be able to see if any easy changes could be done to it.
>>>>>
>>>>> You don't need ir-kbd-i2c for this ir unit.  If you don't have the right keymap loaded, the remote won't work though.
>>>>>
>>>>> The cx23885 module has a parameter called ir_888_debug (or something similar).  Set it to a value of around 7 or so.  The cx23885 module will log pulse and space measurments to dmesg or var/log/messages.  That way you can at least verify pulses are being processed.
>>>>>
>>>>> If pulses are not being processed, check that the cable is firmly plugged into the card and that you have fresh batteries in the remote.
>>>>>
>>>>> I don't have a 1270 of my own, so I can't help too much.
>>>>>
>>>>> Andy
>>>>>
>>>>
>>>>
>>>>
>>>> I have been unable to get any debug output but on two occasions I got
>>>> the down arrow to work on the XBMC menu but both times were followed
>>>> by the system locking up and I can't reproduce it anymore.
>>>>
>>>> Do I need the parameter to enable ir or not? I have tried it both ways.
>>>>
>>>
>>> After a couple more 1 button freezes the computer. I had one occasion
>>> that for about 20 seconds the remote was working perfect (play/pause,
>>> arrows, volume) then it just stopped working for no reason (but
>>> luckily didn't crash the computer) This was with no module parameters.
>>>
>>> So it can work but is extremely flaky.
>>>
>>
>> I noticed something I missed from the debug parameter, when I press
>> the first button after loading the module this error gets printed to
>> the syslog
>>
>> do_IRQ: 3.185 No irq handler for vector (irq -1)
>>
>> I have reproduced it a few times to match up to the first button press
>> but not after.
>>
> 
> OK I have it working now after Googling for a bit I found a fix for
> that error I had to add the kernel option "pci=nomsi" to grub. Now it
> works.
> I just hope that didn't cause any problems with other hardware since
> during bootup it causes MSI-X to fail which I Googled to figure out
> what that is and my guess is it could cause problems for other
> hardware that needs it.
> 
> Now to figure out why some buttons don't seem to be in the keymap.
> Like the OK button But that will be a different message.
> 
> 
> Thank you again for your patch you have no idea how grateful I am.

As the patch seems were tested, I'll apply it on my tree.

Thanks!
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Andy Walls June 21, 2011, 5:53 p.m. UTC | #9
Mauro Carvalho Chehab <mchehab@redhat.com> wrote:

>Em 09-06-2011 01:12, Dark Shadow escreveu:
>> On Wed, Jun 8, 2011 at 9:27 PM, Dark Shadow
><shadowofdarkness@gmail.com> wrote:
>>> On Wed, Jun 8, 2011 at 9:17 PM, Dark Shadow
><shadowofdarkness@gmail.com> wrote:
>>>> On Wed, Jun 8, 2011 at 8:31 PM, Dark Shadow
><shadowofdarkness@gmail.com> wrote:
>>>>> On Wed, Jun 8, 2011 at 7:34 PM, Andy Walls
><awalls@md.metrocast.net> wrote:
>>>>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>>
>>>>>>> On Wed, Jun 8, 2011 at 6:24 PM, Andy Walls
><awalls@md.metrocast.net>
>>>>>>> wrote:
>>>>>>>> On Wed, 2011-06-08 at 13:18 -0600, Dark Shadow wrote:
>>>>>>>>> On Wed, Jun 8, 2011 at 4:19 AM, Andy Walls
><awalls@md.metrocast.net>
>>>>>>> wrote:
>>>>>>>>>> Dark Shadow <shadowofdarkness@gmail.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> I have a capture card that was sold as a Hauppauge HVR-1250
>>>>>>> (according
>>>>>>>>>>> to the box) that I am trying to use but I am having trouble
>>>>>>> getting
>>>>>>>>>>> all it's features at once. When I leave it auto detected by
>the
>>>>>>> module
>>>>>>>>>>> I have working TV in MythTV even though it thinks it is a
>1270 but
>>>>>>> IR
>>>>>>>>>>> isn't setup.
>>>>>>>>>>>
>>>>>>>>>>> dmesg outputs
>>>>>>>>>>> #modprobe cx23885 enable_885_ir=1
>>>>>>>>>>> [    7.592714] cx23885 driver version 0.0.2 loaded
>>>>>>>>>>> [    7.592748] cx23885 0000:07:00.0: PCI INT A -> GSI 17
>(level,
>>>>>>> low)
>>>>>>>>>>> -> IRQ 17
>>>>>>>>>>> [    7.592926] CORE cx23885[0]: subsystem: 0070:2211, board:
>>>>>>> Hauppauge
>>>>>>>>>>> WinTV-HVR1270 [card=18,autodetected]
>>>>>>>>>>> [    7.728163] IR JVC protocol handler initialized
>>>>>>>>>>> [    7.738971] tveeprom 0-0050: Hauppauge model 22111, rev
>C2F5,
>>>>>>>>>>> serial# 6429897
>>>>>>>>>>> [    7.738974] tveeprom 0-0050: MAC address is
>00:0d:fe:62:1c:c9
>>>>>>>>>>> [    7.738975] tveeprom 0-0050: tuner model is NXP 18271C2
>(idx
>>>>>>> 155,
>>>>>>>>>>> type 54)
>>>>>>>>>>> [    7.738977] tveeprom 0-0050: TV standards NTSC(M)
>ATSC/DVB
>>>>>>> Digital
>>>>>>>>>>> (eeprom 0x88)
>>>>>>>>>>> [    7.738979] tveeprom 0-0050: audio processor is CX23888
>(idx
>>>>>>> 40)
>>>>>>>>>>> [    7.738980] tveeprom 0-0050: decoder processor is CX23888
>(idx
>>>>>>> 34)
>>>>>>>>>>> [    7.738982] tveeprom 0-0050: has no radio, has IR
>receiver, has
>>>>>>> no
>>>>>>>>>>> IR transmitter
>>>>>>>>>>> [    7.738983] cx23885[0]: hauppauge eeprom: model=22111
>>>>>>>>>>> [    7.738985] cx23885_dvb_register() allocating 1
>frontend(s)
>>>>>>>>>>> [    7.738991] cx23885[0]: cx23885 based dvb card
>>>>>>>>>>> [    7.961122] IR Sony protocol handler initialized
>>>>>>>>>>> [    7.977301] tda18271 1-0060: creating new instance
>>>>>>>>>>> [    7.979325] TDA18271HD/C2 detected @ 1-0060
>>>>>>>>>>> [    8.209663] DVB: registering new adapter (cx23885[0])
>>>>>>>>>>> [    8.209668] DVB: registering adapter 0 frontend 0 (LG
>>>>>>> Electronics
>>>>>>>>>>> LGDT3305 VSB/QAM Frontend)...
>>>>>>>>>>> [    8.210095] cx23885_dev_checkrevision() Hardware revision
>=
>>>>>>> 0xd0
>>>>>>>>>>> [    8.210101] cx23885[0]/0: found at 0000:07:00.0, rev: 4,
>irq:
>>>>>>> 17,
>>>>>>>>>>> latency: 0, mmio: 0xf7c00000
>>>>>>>>>>> [    8.210109] cx23885 0000:07:00.0: setting latency timer
>to 64
>>>>>>>>>>> [    8.210186] cx23885 0000:07:00.0: irq 49 for MSI/MSI-X
>>>>>>>>
>>>>>>>>>>> #ir-keytable -a /etc/rc_maps.cfg
>>>>>>>>>>> Old keytable cleared
>>>>>>>>>>> Wrote 136 keycode(s) to driver
>>>>>>>>>>> Protocols changed to RC-5
>>>>>>>>
>>>>>>>>>>> I have heard this should show up as a normal keyboard to the
>>>>>>> system
>>>>>>>>>>> but no button presses cause anything to happen to the system
>and
>>>>>>>>>>> trying lirc with devinput (with devinput lircd.conf) and
>then
>>>>>>> opening
>>>>>>>>>>> irw doesn't show any button presses either
>>>>>>>>
>>>>>>>>
>>>>>>>>>> Don't force your card to a 1250, if the driver detects it is
>a
>>>>>>> 1270
>>>>>>>>> with a CX23888 chip.  No need to use the enable_885_ir
>parameter
>>>>>>> with
>>>>>>>>> a CX23888 chip, either.  It only applies for two board models
>with
>>>>>>>>> actual CX23885 chips.
>>>>>>>>>>
>>>>>>>>>> Use of IR with the CX23888 chip should be realtively trouble
>free,
>>>>>>>>> *if* the 1270's IR has been enabled in the driver code.  It
>likely
>>>>>>> has
>>>>>>>>> not been.  I don't have the source code in front of me at the
>moment
>>>>>>>>> to check.
>>>>>>>>>>
>>>>>>>>>> It shouldn't be hard for anyone to patch a few files in the
>>>>>>> cx23885
>>>>>>>>> driver to add it.  Patches are welcome...
>>>>>>>>>>
>>>>>>>>
>>>>>>>>> Under auto detect without the enable_885_ir there is no
>difference
>>>>>>> so
>>>>>>>>> I can only hope someone will add support for it.
>>>>>>>>
>>>>>>>> I wasn't kidding when I said the patch is sholdn't be hard for
>>>>>>> anyone.
>>>>>>>> It is really, really simple cut-and-paste job.  In fact here is
>an
>>>>>>>> *untested* patch.
>>>>>>>>
>>>>>>>> Regards,
>>>>>>>> Andy
>>>>>>>>
>>>>>>>> cx23885: Add IR Rx support for HVR-1270 boards
>>>>>>>>
>>>>>>>> Signed-off-by: Andy Walls <awalls@md.metrocast.net>
>>>>>>>>
>>>>>>>>
>>>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>> b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>>> index ea88722..5635588 100644
>>>>>>>> --- a/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>>> +++ b/drivers/media/video/cx23885/cx23885-cards.c
>>>>>>>> @@ -1097,12 +1097,19 @@ int cx23885_ir_init(struct cx23885_dev
>*dev)
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1800:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1200:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1400:
>>>>>>>> -       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1275:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1255:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1210:
>>>>>>>>                /* FIXME: Implement me */
>>>>>>>>                break;
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>> +               ret = cx23888_ir_probe(dev);
>>>>>>>> +               if (ret)
>>>>>>>> +                       break;
>>>>>>>> +               dev->sd_ir = cx23885_find_hw(dev,
>CX23885_HW_888_IR);
>>>>>>>> +               v4l2_subdev_call(dev->sd_cx25840, core,
>>>>>>> s_io_pin_config,
>>>>>>>> +                                ir_rx_pin_cfg_count,
>ir_rx_pin_cfg);
>>>>>>>> +               break;
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>                ret = cx23888_ir_probe(dev);
>>>>>>>> @@ -1156,6 +1163,7 @@ int cx23885_ir_init(struct cx23885_dev
>*dev)
>>>>>>>>  void cx23885_ir_fini(struct cx23885_dev *dev)
>>>>>>>>  {
>>>>>>>>        switch (dev->board) {
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>                cx23885_irq_remove(dev, PCI_MSK_IR);
>>>>>>>> @@ -1199,6 +1207,7 @@ int netup_jtag_io(void *device, int tms,
>int
>>>>>>> tdi, int read_tdo)
>>>>>>>>  void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
>>>>>>>>  {
>>>>>>>>        switch (dev->board) {
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>                if (dev->sd_ir)
>>>>>>>> @@ -1357,6 +1366,7 @@ void cx23885_card_setup(struct
>cx23885_dev
>>>>>>> *dev)
>>>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
>>>>>>>>        case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
>>>>>>>>        case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_MYGICA_X8506:
>>>>>>>>        case CX23885_BOARD_MAGICPRO_PROHDTVE2:
>>>>>>>> diff --git a/drivers/media/video/cx23885/cx23885-input.c
>>>>>>> b/drivers/media/video/cx23885/cx23885-input.c
>>>>>>>> index e97cafd..bc28d2c 100644
>>>>>>>> --- a/drivers/media/video/cx23885/cx23885-input.c
>>>>>>>> +++ b/drivers/media/video/cx23885/cx23885-input.c
>>>>>>>> @@ -82,6 +82,7 @@ void cx23885_input_rx_work_handler(struct
>>>>>>> cx23885_dev *dev, u32 events)
>>>>>>>>                return;
>>>>>>>>
>>>>>>>>        switch (dev->board) {
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>        case CX23885_BOARD_TEVII_S470:
>>>>>>>> @@ -133,6 +134,7 @@ static int cx23885_input_ir_start(struct
>>>>>>> cx23885_dev *dev)
>>>>>>>>
>>>>>>>>        v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters,
>&params);
>>>>>>>>        switch (dev->board) {
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>>>> @@ -257,6 +259,7 @@ int cx23885_input_init(struct cx23885_dev
>*dev)
>>>>>>>>                return -ENODEV;
>>>>>>>>
>>>>>>>>        switch (dev->board) {
>>>>>>>> +       case CX23885_BOARD_HAUPPAUGE_HVR1270:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1850:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1290:
>>>>>>>>        case CX23885_BOARD_HAUPPAUGE_HVR1250:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> Thank you I just tested those changes and they work (in getting
>the IR
>>>>>>> to work to the same level as forcing the card model and not
>cause
>>>>>>> problems for the video)
>>>>>>>
>>>>>>> I still can't use the remote any more then forcing the card
>model but
>>>>>>> I have a guess on that. According to everything I have read the
>>>>>>> ir-kbd-i2c module is needed but it never auto loads on my system
>so I
>>>>>>> am thinking it is just not updated to know about this card and
>may
>>>>>>> only need the same type of changes as the cx23885 module. (I am
>>>>>>> guessing since I can't even program a Hello World) Is there any
>chance
>>>>>>> you would be able to see if any easy changes could be done to
>it.
>>>>>>
>>>>>> You don't need ir-kbd-i2c for this ir unit.  If you don't have
>the right keymap loaded, the remote won't work though.
>>>>>>
>>>>>> The cx23885 module has a parameter called ir_888_debug (or
>something similar).  Set it to a value of around 7 or so.  The cx23885
>module will log pulse and space measurments to dmesg or
>var/log/messages.  That way you can at least verify pulses are being
>processed.
>>>>>>
>>>>>> If pulses are not being processed, check that the cable is firmly
>plugged into the card and that you have fresh batteries in the remote.
>>>>>>
>>>>>> I don't have a 1270 of my own, so I can't help too much.
>>>>>>
>>>>>> Andy
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> I have been unable to get any debug output but on two occasions I
>got
>>>>> the down arrow to work on the XBMC menu but both times were
>followed
>>>>> by the system locking up and I can't reproduce it anymore.
>>>>>
>>>>> Do I need the parameter to enable ir or not? I have tried it both
>ways.
>>>>>
>>>>
>>>> After a couple more 1 button freezes the computer. I had one
>occasion
>>>> that for about 20 seconds the remote was working perfect
>(play/pause,
>>>> arrows, volume) then it just stopped working for no reason (but
>>>> luckily didn't crash the computer) This was with no module
>parameters.
>>>>
>>>> So it can work but is extremely flaky.
>>>>
>>>
>>> I noticed something I missed from the debug parameter, when I press
>>> the first button after loading the module this error gets printed to
>>> the syslog
>>>
>>> do_IRQ: 3.185 No irq handler for vector (irq -1)
>>>
>>> I have reproduced it a few times to match up to the first button
>press
>>> but not after.
>>>
>> 
>> OK I have it working now after Googling for a bit I found a fix for
>> that error I had to add the kernel option "pci=nomsi" to grub. Now it
>> works.
>> I just hope that didn't cause any problems with other hardware since
>> during bootup it causes MSI-X to fail which I Googled to figure out
>> what that is and my guess is it could cause problems for other
>> hardware that needs it.
>> 
>> Now to figure out why some buttons don't seem to be in the keymap.
>> Like the OK button But that will be a different message.
>> 
>> 
>> Thank you again for your patch you have no idea how grateful I am.
>
>As the patch seems were tested, I'll apply it on my tree.
>
>Thanks!
>Mauro

That's fine.

Regards,
Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/media/video/cx23885/cx23885-cards.c b/drivers/media/video/cx23885/cx23885-cards.c
index ea88722..5635588 100644
--- a/drivers/media/video/cx23885/cx23885-cards.c
+++ b/drivers/media/video/cx23885/cx23885-cards.c
@@ -1097,12 +1097,19 @@  int cx23885_ir_init(struct cx23885_dev *dev)
 	case CX23885_BOARD_HAUPPAUGE_HVR1800:
 	case CX23885_BOARD_HAUPPAUGE_HVR1200:
 	case CX23885_BOARD_HAUPPAUGE_HVR1400:
-	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1275:
 	case CX23885_BOARD_HAUPPAUGE_HVR1255:
 	case CX23885_BOARD_HAUPPAUGE_HVR1210:
 		/* FIXME: Implement me */
 		break;
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
+		ret = cx23888_ir_probe(dev);
+		if (ret)
+			break;
+		dev->sd_ir = cx23885_find_hw(dev, CX23885_HW_888_IR);
+		v4l2_subdev_call(dev->sd_cx25840, core, s_io_pin_config,
+				 ir_rx_pin_cfg_count, ir_rx_pin_cfg);
+		break;
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 		ret = cx23888_ir_probe(dev);
@@ -1156,6 +1163,7 @@  int cx23885_ir_init(struct cx23885_dev *dev)
 void cx23885_ir_fini(struct cx23885_dev *dev)
 {
 	switch (dev->board) {
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 		cx23885_irq_remove(dev, PCI_MSK_IR);
@@ -1199,6 +1207,7 @@  int netup_jtag_io(void *device, int tms, int tdi, int read_tdo)
 void cx23885_ir_pci_int_enable(struct cx23885_dev *dev)
 {
 	switch (dev->board) {
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 		if (dev->sd_ir)
@@ -1357,6 +1366,7 @@  void cx23885_card_setup(struct cx23885_dev *dev)
 	case CX23885_BOARD_NETUP_DUAL_DVBS2_CI:
 	case CX23885_BOARD_NETUP_DUAL_DVB_T_C_CI_RF:
 	case CX23885_BOARD_COMPRO_VIDEOMATE_E800:
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_MYGICA_X8506:
 	case CX23885_BOARD_MAGICPRO_PROHDTVE2:
diff --git a/drivers/media/video/cx23885/cx23885-input.c b/drivers/media/video/cx23885/cx23885-input.c
index e97cafd..bc28d2c 100644
--- a/drivers/media/video/cx23885/cx23885-input.c
+++ b/drivers/media/video/cx23885/cx23885-input.c
@@ -82,6 +82,7 @@  void cx23885_input_rx_work_handler(struct cx23885_dev *dev, u32 events)
 		return;
 
 	switch (dev->board) {
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 	case CX23885_BOARD_TEVII_S470:
@@ -133,6 +134,7 @@  static int cx23885_input_ir_start(struct cx23885_dev *dev)
 
 	v4l2_subdev_call(dev->sd_ir, ir, rx_g_parameters, &params);
 	switch (dev->board) {
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 	case CX23885_BOARD_HAUPPAUGE_HVR1250:
@@ -257,6 +259,7 @@  int cx23885_input_init(struct cx23885_dev *dev)
 		return -ENODEV;
 
 	switch (dev->board) {
+	case CX23885_BOARD_HAUPPAUGE_HVR1270:
 	case CX23885_BOARD_HAUPPAUGE_HVR1850:
 	case CX23885_BOARD_HAUPPAUGE_HVR1290:
 	case CX23885_BOARD_HAUPPAUGE_HVR1250: