All of lore.kernel.org
 help / color / mirror / Atom feed
From: remi schwartz <remi.schwartz@gmail.com>
To: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: linux-media@vger.kernel.org
Subject: Re: patch for Asus My Cinema PS3-100 (1043:48cd)
Date: Sat, 19 May 2012 12:11:47 +0200	[thread overview]
Message-ID: <201205191211.48021.remi.schwartz@gmail.com> (raw)
In-Reply-To: <201205162046.16977.remi.schwartz@gmail.com>

Some good news !!

With kernel 3.2.15 and latest media-build tree, no more kernel Oops.
DVB-T and remote work fine.

Here is the complete patch against latest media-build tree, with fixed IR keytable.

Regards,

Rémi

################################################################################

Signed-off-by: Remi Schwartz <remi.schwartz@gmail.com>

Index: patchwork/drivers/media/video/saa7134/saa7134-input.c
===================================================================
--- patchwork.orig/drivers/media/video/saa7134/saa7134-input.c
+++ patchwork/drivers/media/video/saa7134/saa7134-input.c
@@ -753,6 +753,13 @@ int saa7134_input_init1(struct saa7134_d
                mask_keycode = 0xffff;
                raw_decode   = true;
                break;
+       case SAA7134_BOARD_ASUSTeK_PS3_100:
+		ir_codes     = RC_MAP_ASUS_PS3_100;
+		mask_keydown = 0x0040000;
+		mask_keyup   = 0x0040000;
+		mask_keycode = 0xffff;
+		raw_decode   = true;
+		break;
        case SAA7134_BOARD_ENCORE_ENLTV:
        case SAA7134_BOARD_ENCORE_ENLTV_FM:
                ir_codes     = RC_MAP_ENCORE_ENLTV;
Index: patchwork/drivers/media/video/saa7134/saa7134-dvb.c
===================================================================
--- patchwork.orig/drivers/media/video/saa7134/saa7134-dvb.c
+++ patchwork/drivers/media/video/saa7134/saa7134-dvb.c
@@ -881,6 +881,20 @@ static struct tda1004x_config asus_tiger
        .request_firmware = philips_tda1004x_request_firmware
 };
 
+static struct tda1004x_config asus_ps3_100_config = {
+       .demod_address = 0x0b,
+       .invert        = 1,
+       .invert_oclk   = 0,
+       .xtal_freq     = TDA10046_XTAL_16M,
+       .agc_config    = TDA10046_AGC_TDA827X,
+       .gpio_config   = TDA10046_GP11_I,
+       .if_freq       = TDA10046_FREQ_045,
+       .i2c_gate      = 0x4b,
+       .tuner_address = 0x61,
+       .antenna_switch = 1,
+       .request_firmware = philips_tda1004x_request_firmware
+};
+
 /* ------------------------------------------------------------------
  * special case: this card uses saa713x GPIO22 for the mode switch
  */
@@ -1649,6 +1663,31 @@ static int dvb_init(struct saa7134_dev *
                                                " found!\n", __func__);
                                        goto dettach_frontend;
                                }
+                       }
+               }
+               break;
+       case SAA7134_BOARD_ASUSTeK_PS3_100:
+               if (!use_frontend) {     /* terrestrial */
+                       if (configure_tda827x_fe(dev, &asus_ps3_100_config,
+                                                       &tda827x_cfg_2) < 0)
+                               goto dettach_frontend;
+               } else {                /* satellite */
+                       fe0->dvb.frontend = dvb_attach(tda10086_attach,
+                                               &flydvbs, &dev->i2c_adap);
+                       if (fe0->dvb.frontend) {
+                               if (dvb_attach(tda826x_attach,
+                                               fe0->dvb.frontend, 0x60,
+                                               &dev->i2c_adap, 0) == NULL) {
+                                       wprintk("%s: Asus My Cinema PS3-100, no "
+                                               "tda826x found!\n", __func__);
+                                       goto dettach_frontend;
+                               }
+                               if (dvb_attach(lnbp21_attach, fe0->dvb.frontend,
+                                               &dev->i2c_adap, 0, 0) == NULL) {
+                                       wprintk("%s: Asus My Cinema PS3-100, no lnbp21"
+                                               " found!\n", __func__);
+                                       goto dettach_frontend;
+                               }
                        }
                }
                break;
Index: patchwork/drivers/media/video/saa7134/saa7134-cards.c
===================================================================
--- patchwork.orig/drivers/media/video/saa7134/saa7134-cards.c
+++ patchwork/drivers/media/video/saa7134/saa7134-cards.c
@@ -5080,6 +5080,36 @@ struct saa7134_board saa7134_boards[] =
                        .gpio = 0x0200000,
                },
        },
+       [SAA7134_BOARD_ASUSTeK_PS3_100] = {
+               .name           = "Asus My Cinema PS3-100",
+               .audio_clock    = 0x00187de7,
+               .tuner_type     = TUNER_PHILIPS_TDA8290,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .tuner_config   = 2,
+               .gpiomask       = 1 << 21,
+               .mpeg           = SAA7134_MPEG_DVB,
+               .inputs         = {{
+                       .name = name_tv,
+                       .vmux = 1,
+                       .amux = TV,
+                       .tv   = 1,
+               }, {
+                       .name = name_comp,
+                       .vmux = 0,
+                       .amux = LINE2,
+               }, {
+                       .name = name_svideo,
+                       .vmux = 8,
+                       .amux = LINE2,
+               } },
+               .radio = {
+                       .name = name_radio,
+                       .amux = TV,
+                       .gpio = 0x0200000,
+               },
+       },
        [SAA7134_BOARD_REAL_ANGEL_220] = {
                .name           = "Zogis Real Angel 220",
                .audio_clock    = 0x00187de7,
@@ -6877,6 +6907,12 @@ struct pci_device_id saa7134_pci_tbl[] =
                .driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
        }, {
                .vendor       = PCI_VENDOR_ID_PHILIPS,
+               .device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
+               .subvendor    = 0x1043,
+               .subdevice    = 0x48cd,
+               .driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
+       }, {
+               .vendor       = PCI_VENDOR_ID_PHILIPS,
                .device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
                .subvendor    = 0x17de,
                .subdevice    = 0x7128,
@@ -7350,6 +7386,7 @@ int saa7134_board_init1(struct saa7134_d
        case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
        case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
        case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
+       case SAA7134_BOARD_ASUSTeK_PS3_100:
        case SAA7134_BOARD_FLYDVBTDUO:
        case SAA7134_BOARD_PROTEUS_2309:
        case SAA7134_BOARD_AVERMEDIA_A16AR:
@@ -7807,6 +7844,14 @@ int saa7134_board_init2(struct saa7134_d
        {
                u8 data[] = { 0x3c, 0x33, 0x60};
                struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
+                                                       .len = sizeof(data)};
+               i2c_transfer(&dev->i2c_adap, &msg, 1);
+               break;
+       }
+       case SAA7134_BOARD_ASUSTeK_PS3_100:
+       {
+               u8 data[] = { 0x3c, 0x33, 0x60};
+               struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
                                                        .len = sizeof(data)};
                i2c_transfer(&dev->i2c_adap, &msg, 1);
                break;
Index: patchwork/drivers/media/video/saa7134/saa7134.h
===================================================================
--- patchwork.orig/drivers/media/video/saa7134/saa7134.h
+++ patchwork/drivers/media/video/saa7134/saa7134.h
@@ -332,6 +332,7 @@ struct saa7134_card_ir {
 #define SAA7134_BOARD_BEHOLD_503FM          187
 #define SAA7134_BOARD_SENSORAY811_911       188
 #define SAA7134_BOARD_KWORLD_PC150U         189
+#define SAA7134_BOARD_ASUSTeK_PS3_100      190
 
 #define SAA7134_MAXBOARDS 32
 #define SAA7134_INPUT_MAX 8
Index: patchwork/drivers/media/rc/keymaps/rc-asus-ps3-100.c
===================================================================
--- /dev/null
+++ patchwork/drivers/media/rc/keymaps/rc-asus-ps3-100.c
@@ -0,0 +1,91 @@
+/* asus-ps3-100.h - Keytable for asus_ps3_100 Remote Controller
+ *
+ * Copyright (c) 2012 by Mauro Carvalho Chehab <mche...@redhat.com>
+ *
+ * Based on a previous patch from Remi Schwartz <remi.schwa...@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ */
+
+#include <media/rc-map.h>
+#include <linux/module.h>
+
+static struct rc_map_table asus_ps3_100[] = {
+       { 0x081c, KEY_HOME },             /* home */
+       { 0x081e, KEY_TV },               /* tv */
+       { 0x0803, KEY_TEXT },             /* teletext */
+       { 0x0829, KEY_POWER },            /* close */
+
+       { 0x080b, KEY_RED },              /* red */
+       { 0x080d, KEY_YELLOW },           /* yellow */
+       { 0x0806, KEY_BLUE },             /* blue */
+       { 0x0807, KEY_GREEN },            /* green */
+
+       /* Keys 0 to 9 */
+       { 0x082a, KEY_0 },
+       { 0x0816, KEY_1 },
+       { 0x0812, KEY_2 },
+       { 0x0814, KEY_3 },
+       { 0x0836, KEY_4 },
+       { 0x0832, KEY_5 },
+       { 0x0834, KEY_6 },
+       { 0x080e, KEY_7 },
+       { 0x080a, KEY_8 },
+       { 0x080c, KEY_9 },
+
+       { 0x0815, KEY_VOLUMEUP },
+       { 0x0826, KEY_VOLUMEDOWN },
+       { 0x0835, KEY_CHANNELUP },        /* channel / program + */
+       { 0x0824, KEY_CHANNELDOWN },      /* channel / program - */
+
+       { 0x0808, KEY_UP },
+       { 0x0804, KEY_DOWN },
+       { 0x0818, KEY_LEFT },
+       { 0x0810, KEY_RIGHT },
+       { 0x0825, KEY_ENTER },            /* enter */
+
+       { 0x0822, KEY_EXIT },             /* back */
+       { 0x082c, KEY_AB },               /* recall */
+
+       { 0x0820, KEY_AUDIO },            /* TV audio */
+       { 0x0837, KEY_SCREEN },           /* snapshot */
+       { 0x082e, KEY_ZOOM },             /* full screen */
+       { 0x0802, KEY_MUTE },             /* mute */
+
+       { 0x0831, KEY_REWIND },           /* backward << */
+       { 0x0811, KEY_RECORD },           /* recording */
+       { 0x0809, KEY_STOP },
+       { 0x0805, KEY_FASTFORWARD },      /* forward >> */
+       { 0x0821, KEY_PREVIOUS },         /* rew */
+       { 0x081a, KEY_PAUSE },            /* pause */
+       { 0x0839, KEY_PLAY },             /* play */
+       { 0x0819, KEY_NEXT },             /* forward */
+};
+
+static struct rc_map_list asus_ps3_100_map = {
+       .map = {
+               .scan    = asus_ps3_100,
+               .size    = ARRAY_SIZE(asus_ps3_100),
+               .rc_type = RC_TYPE_RC5,
+               .name    = RC_MAP_ASUS_PS3_100,
+       }
+};
+
+static int __init init_rc_map_asus_ps3_100(void)
+{
+       return rc_map_register(&asus_ps3_100_map);
+}
+
+static void __exit exit_rc_map_asus_ps3_100(void)
+{
+       rc_map_unregister(&asus_ps3_100_map);
+}
+
+module_init(init_rc_map_asus_ps3_100)
+module_exit(exit_rc_map_asus_ps3_100)
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Mauro Carvalho Chehab <mche...@redhat.com>");
Index: patchwork/include/media/rc-map.h
===================================================================
--- patchwork.orig/include/media/rc-map.h
+++ patchwork/include/media/rc-map.h
@@ -62,6 +62,7 @@
 #define RC_MAP_ANYSEE                    "rc-anysee"
 #define RC_MAP_APAC_VIEWCOMP             "rc-apac-viewcomp"
 #define RC_MAP_ASUS_PC39                 "rc-asus-pc39"
+#define RC_MAP_ASUS_PS3_100              "rc-asus-ps3-100"
 #define RC_MAP_ATI_TV_WONDER_HD_600      "rc-ati-tv-wonder-hd-600"
 #define RC_MAP_ATI_X10                   "rc-ati-x10"
 #define RC_MAP_AVERMEDIA_A16D            "rc-avermedia-a16d"
Index: patchwork/drivers/media/rc/keymaps/Makefile
===================================================================
--- patchwork.orig/drivers/media/rc/keymaps/Makefile
+++ patchwork/drivers/media/rc/keymaps/Makefile
@@ -3,6 +3,7 @@
 			rc-anysee.o \
 			rc-apac-viewcomp.o \
 			rc-asus-pc39.o \
+			rc-asus-ps3-100.o \
 			rc-ati-tv-wonder-hd-600.o \
 			rc-ati-x10.o \
 			rc-avermedia-a16d.o \
################################################################################


Le mercredi 16 mai 2012, remi schwartz a écrit :
> Ok, I used your patch against the last media-build tree.
> Here are the results.
> 
> 
> * first, I added these lines to the patch to get the modules compiled :
> 
> ###################################################################
> Signed-off-by: Remi Schwartz <remi.schwartz@gmail.com>
> 
> Index: patchwork/include/media/rc-map.h
> ===================================================================
> --- patchwork.orig/include/media/rc-map.h
> +++ patchwork/include/media/rc-map.h
> @@ -62,6 +62,7 @@
>  #define RC_MAP_ANYSEE                    "rc-anysee"
>  #define RC_MAP_APAC_VIEWCOMP             "rc-apac-viewcomp"
>  #define RC_MAP_ASUS_PC39                 "rc-asus-pc39"
> +#define RC_MAP_ASUS_PS3_100              "rc-asus-ps3-100"
>  #define RC_MAP_ATI_TV_WONDER_HD_600      "rc-ati-tv-wonder-hd-600"
>  #define RC_MAP_ATI_X10                   "rc-ati-x10"
>  #define RC_MAP_AVERMEDIA_A16D            "rc-avermedia-a16d"
> Index: patchwork/drivers/media/rc/keymaps/Makefile
> ===================================================================
> --- patchwork.orig/drivers/media/rc/keymaps/Makefile
> +++ patchwork/drivers/media/rc/keymaps/Makefile
> @@ -3,6 +3,7 @@
>  			rc-anysee.o \
>  			rc-apac-viewcomp.o \
>  			rc-asus-pc39.o \
> +			rc-asus-ps3-100.o \
>  			rc-ati-tv-wonder-hd-600.o \
>  			rc-ati-x10.o \
>  			rc-avermedia-a16d.o \
> ###################################################################
> 
> 
> * then, I wanted to compile the RC part using "CONFIG_RC_CORE=y",
> this is what I have obtained :
> 
> WARNING: "rc_unregister_device" [/usr/src/media_build/v4l/saa7134.ko]
> undefined! WARNING: "rc_allocate_device"
> [/usr/src/media_build/v4l/saa7134.ko] undefined! WARNING: "rc_free_device"
> [/usr/src/media_build/v4l/saa7134.ko] undefined! WARNING:
> "ir_raw_event_store_edge" [/usr/src/media_build/v4l/saa7134.ko] undefined!
> WARNING: "rc_register_device" [/usr/src/media_build/v4l/saa7134.ko]
> undefined! WARNING: "rc_keydown_notimeout"
> [/usr/src/media_build/v4l/saa7134.ko] undefined! WARNING: "rc_keyup"
> [/usr/src/media_build/v4l/saa7134.ko] undefined! WARNING:
> "ir_raw_event_handle" [/usr/src/media_build/v4l/saa7134.ko] undefined!
> 
> and the compiled modules don't load because of unknown symbols
> 
> 
> * changing to "CONFIG_RC_CORE=m" lets the modules compile and load, but
> when loading, I get "BUG: unable to handle kernel NULL pointer dereference
> at (null)".
> 
> More precisely :
> 
> [   15.730917] saa7130/34: v4l2 driver version 0, 2, 17 loaded
> [   15.732471] saa7134 0000:01:09.0: PCI INT A -> Link[APC2] -> GSI 17
> (level, low) -> IRQ 17 [   15.732477] saa7133[0]: found at 0000:01:09.0,
> rev: 209, irq: 17, latency: 32, mmio: 0xfddfe000 [   15.732484]
> saa7133[0]: subsystem: 1043:48cd, board: Asus My Cinema PS3-100
> [card=190,autodetected] [   15.732510] saa7133[0]: board init: gpio is
> 40000
> [   15.816459] Registered IR keymap rc-asus-ps3-100
> [   15.816554] input: saa7134 IR (Asus My Cinema PS3- as
> /devices/pci0000:00/0000:00:10.0/0000:01:09.0/rc/rc0/input5 [   15.816611]
> rc0: saa7134 IR (Asus My Cinema PS3- as
> /devices/pci0000:00/0000:00:10.0/0000:01:09.0/rc/rc0 [   15.830376] IRQ
> 17/saa7133[0]: IRQF_DISABLED is not guaranteed on shared IRQs [  
> 15.830428] BUG: unable to handle kernel NULL pointer dereference at (null)
> [   15.830431] IP: [<ffffffff812fcd21>] _spin_lock_irqsave+0x1a/0x34 [  
> 15.830438] PGD 0
> [   15.830440] Oops: 0002 [#1] SMP
> [   15.830442] last sysfs file: /sys/devices/virtual/dmi/id/sys_vendor
> [   15.830445] CPU 0
> [   15.830446] Modules linked in: snd_hda_intel(+) snd_hda_codec snd_hwdep
> snd_pcm_oss snd_mixer_oss rc_asus_ps3_100 snd_pcm snd_seq_midi snd_rawmidi
> saa7134(+) snd_seq_midi_event snd_seq rc_core snd_timer snd_seq_device
> parport_pc parport videobuf_dma_sg videobuf_core v4l2_common videodev
> tveeprom asus_atk0110 snd amd64_edac_mod(-) i2c_nforce2 button evdev
> pcspkr psmouse serio_raw soundcore snd_page_alloc edac_core edac_mce_amd
> k8temp i2c_core processor ext4 mbcache jbd2 crc16 sg sd_mod crc_t10dif
> sr_mod cdrom ohci_hcd ata_generic sata_nv ehci_hcd fan pata_amd
> firewire_ohci floppy firewire_core crc_itu_t thermal libata scsi_mod
> usbcore nls_base thermal_sys forcedeth [last unloaded: scsi_wait_scan]
> [   15.830479] Pid: 810, comm: rc0 Not tainted 2.6.32-5-amd64 #1 System
> Product Name [   15.830481] RIP: 0010:[<ffffffff812fcd21>] 
> [<ffffffff812fcd21>] _spin_lock_irqsave+0x1a/0x34 [   15.830486] RSP:
> 0018:ffff8800ae147e90  EFLAGS: 00010086
> [   15.830488] RAX: 0000000000000086 RBX: ffff8800ad60cde0 RCX:
> ffff8800ae15a350 [   15.830490] RDX: 0000000000010000 RSI:
> 0000000000000086 RDI: 0000000000000000 [   15.830492] RBP:
> ffff8800abc86a00 R08: ffff8800ae146000 R09: ffff880001815780 [  
> 15.830494] R10: 0000000000000011 R11: ffff8800aec0f000 R12:
> ffff8800ae7a3c58 [   15.830496] R13: ffff8800abc86a18 R14:
> ffff8800ae15a350 R15: 0000000000000000 [   15.830498] FS: 
> 00007f3c4693d7a0(0000) GS:ffff880001800000(0000) knlGS:0000000000000000 [ 
>  15.830500] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
> [   15.830502] CR2: 0000000000000000 CR3: 00000000ad2b7000 CR4:
> 00000000000006f0 [   15.830504] DR0: 0000000000000000 DR1:
> 0000000000000000 DR2: 0000000000000000 [   15.830506] DR3:
> 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [  
> 15.830509] Process rc0 (pid: 810, threadinfo ffff8800ae146000, task
> ffff8800ae15a350) [   15.830510] Stack:
> [   15.830511]  0000000300000b2f ffffffffa031a533 ffff8800abc86a00
> ffff8800ae7a3c60 [   15.830514] <0> 0000000000000286 ffff8800ae147ef8
> ffff8800abc86a00 ffff8800ae7a3c58 [   15.830517] <0> ffffffffa031a4f8
> 0000000000000001 0000000000000000 ffffffff81064d75 [   15.830520] Call
> Trace:
> [   15.830526]  [<ffffffffa031a533>] ? ir_raw_event_thread+0x3b/0x103
> [rc_core] [   15.830530]  [<ffffffffa031a4f8>] ?
> ir_raw_event_thread+0x0/0x103 [rc_core] [   15.830534] 
> [<ffffffff81064d75>] ? kthread+0x79/0x81
> [   15.830538]  [<ffffffff81011baa>] ? child_rip+0xa/0x20
> [   15.830541]  [<ffffffff81064cfc>] ? kthread+0x0/0x81
> [   15.830543]  [<ffffffff81011ba0>] ? child_rip+0x0/0x20
> [   15.830544] Code: 31 d2 89 d0 c3 f0 83 2f 01 79 05 e8 7a 98 e9 ff c3 48
> 83 ec 08 9c 58 66 66 90 66 90 48 89 c6 fa 66 66 90 66 66 90 ba 00 00 01 00
> <f0> 0f c1 17 0f b7 ca c1 ea 10 39 d1 74 07 f3 90 0f b7 0f eb f5 [  
> 15.830561] RIP  [<ffffffff812fcd21>] _spin_lock_irqsave+0x1a/0x34 [  
> 15.830564]  RSP <ffff8800ae147e90>
> [   15.830566] CR2: 0000000000000000
> [   15.830568] ---[ end trace b4dbd3b68f659105 ]---
> [   17.488028] saa7133[0]: i2c eeprom 00: 43 10 cd 48 54 20 1c 00 43 43 a9
> 1c 55 d2 b2 92 [   17.539962] input: ImPS/2 Generic Wheel Mouse as
> /devices/platform/i8042/serio1/input/input6 [   17.568983] saa7133[0]: i2c
> eeprom 10: ff ff ff 0f ff 20 ff ff ff ff ff ff ff ff ff ff [   17.596222]
> saa7133[0]: i2c eeprom 20: 01 40 01 02 03 01 01 03 08 ff 00 2c ff ff ff ff
> [   17.623127] saa7133[0]: i2c eeprom 30: ff ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff [   17.649744] saa7133[0]: i2c eeprom 40: ff 28 00 c2 96 16
> 03 02 c0 1c ff ff ff ff ff ff [   17.649750] saa7133[0]: i2c eeprom 50: ff
> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [   17.649756] saa7133[0]:
> i2c eeprom 60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [  
> 17.649761] saa7133[0]: i2c eeprom 70: ff ff ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff [   17.649767] saa7133[0]: i2c eeprom 80: ff ff ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff [   17.649772] saa7133[0]: i2c eeprom 90: ff ff
> ff ff ff ff ff ff ff ff ff ff ff ff ff ff [   17.649777] saa7133[0]: i2c
> eeprom a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [   17.649783]
> saa7133[0]: i2c eeprom b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> [   17.649788] saa7133[0]: i2c eeprom c0: ff ff ff ff ff ff ff ff ff ff ff
> ff ff ff ff ff [   17.649794] saa7133[0]: i2c eeprom d0: ff ff ff ff ff ff
> ff ff ff ff ff ff ff ff ff ff [   17.649799] saa7133[0]: i2c eeprom e0: ff
> ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [   17.649804] saa7133[0]:
> i2c eeprom f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff [  
> 17.940097] tuner 2-004b: Tuner -1 found with type(s) Radio TV. [  
> 18.036085] tda829x 2-004b: setting tuner address to 61
> [   18.116017] tda829x 2-004b: type set to tda8290+75a
> [   22.076088] saa7133[0]: registered device video0 [v4l2]
> [   22.098506] saa7133[0]: registered device vbi0
> [   22.120431] saa7133[0]: registered device radio0
> [   22.160012] dvb_init() allocating 1 frontend
> [   22.256099] DVB: registering new adapter (saa7133[0])
> [   22.276274] DVB: registering adapter 0 frontend 0 (Philips TDA10046H
> DVB-T)... [   22.648018] tda1004x: setting up plls for 48MHz sampling
> clock
> [   22.952014] tda1004x: found firmware revision 29 -- ok
> [   23.444186] saa7134 ALSA driver for DMA sound loaded
> [   23.465213] IRQ 17/saa7133[0]: IRQF_DISABLED is not guaranteed on shared
> IRQs [   23.486751] saa7133[0]/alsa: saa7133[0] at 0xfddfe000 irq 17
> registered as card -1
> 
> There seems to be a problem in the RC code.
> I haven't found where the problem is. It is perhaps related to this :
> 
> http://article.gmane.org/gmane.linux.kernel.input/15312
> 
> I have tested the DVB-T part and it works fine but remote doesn't work.
> If I hit a remote key, the kernel freeze.
> 
> If you find a solution to this pointer problem, I can finish the work on
> the RC keycode table.
> 
> Regards,
> 
> Rémi
> 
> Le mardi 15 mai 2012, Mauro Carvalho Chehab a écrit :
> > Em 05-04-2012 06:40, remi schwartz escreveu:
> > > Hi all,
> > > 
> > > This is the patch against kernel 2.6.32 I used to get my TV card Asus
> > > My Cinema PS3-100 (1043:48cd) to work.
> > 
> > Please, don't sent patches against older kernel versions, as they won't
> > apply anymore upstream. In particular, since kernel 2.6.32, the entire
> > RC code were re-written.
> > 
> > You can test the very latest media code using the media-build tree,
> > 
> > available at:
> > 	http://git.linuxtv.org/media_build.git
> > 
> > It compiles against old kernels (although won't compile the gspca driver
> > since yesterday, as I'm applying a massive amount of patches those days
> > and didn't have any time yet to fix gspca build).
> > 
> > > More information on this card can be found on this page :
> > > 
> > > http://www.0xf8.org/2009/09/asus-mycinema-ps3-100-3-in-1-tv-card/
> > > 
> > > This card seems to be a clone of the Asus Tiger 3in1, numbered 147 in
> > > the SAA7134 module, so I gave it the temporary number of 1470.
> > > 
> > > DVB-T and remote have been tested and work fine.
> > > DVB-S, FM and Composite input haven't been tested.
> > > 
> > > Hope that will help some of you.
> > 
> > In order to help adding support for this board, I re-wrote your code to
> > apply it against the latest build.
> > 
> > I suspect that your RC keycode table is incomplete, as it is getting just
> > the 8 least significant bits. So, you'll need to test it and fix the
> > IR keytable.
> > 
> > Please test. Feel free to modify it, as I suspect that you'll need to
> > re-work with the RC part of it.
> > 
> > Regards,
> > Mauro
> > 
> > -
> > 
> > Add support for Asus My Cinema PS3-100 (1043:48cd)
> > 
> > Based on a previous patch from remi schwartz <remi.schwartz@gmail.com>
> > 
> > Thanks-to: Remi Schwartz <remi.schwartz@gmail.com>
> > Signed-off-to: Mauro Carvalho Chehab <mchehab@redhat.com>
> > 
> > 
> > Index: patchwork/drivers/media/video/saa7134/saa7134-input.c
> > ===================================================================
> > --- patchwork.orig/drivers/media/video/saa7134/saa7134-input.c
> > +++ patchwork/drivers/media/video/saa7134/saa7134-input.c
> > @@ -753,6 +753,11 @@ int saa7134_input_init1(struct saa7134_d
> > 
> >  		mask_keycode = 0xffff;
> >  		raw_decode   = true;
> >  		break;
> > 
> > +	case SAA7134_BOARD_ASUSTeK_PS3_100:
> > +		ir_codes     = RC_MAP_ASUS_PS3_100;
> > +		mask_keydown = 0x0040000;
> > +		raw_decode   = true;
> > +		break;
> > 
> >  	case SAA7134_BOARD_ENCORE_ENLTV:
> >  	
> >  	case SAA7134_BOARD_ENCORE_ENLTV_FM:
> >  		ir_codes     = RC_MAP_ENCORE_ENLTV;
> > 
> > Index: patchwork/drivers/media/video/saa7134/saa7134-dvb.c
> > ===================================================================
> > --- patchwork.orig/drivers/media/video/saa7134/saa7134-dvb.c
> > +++ patchwork/drivers/media/video/saa7134/saa7134-dvb.c
> > @@ -881,6 +881,20 @@ static struct tda1004x_config asus_tiger
> > 
> >  	.request_firmware = philips_tda1004x_request_firmware
> >  
> >  };
> > 
> > +static struct tda1004x_config asus_ps3_100_config = {
> > +	.demod_address = 0x0b,
> > +	.invert        = 1,
> > +	.invert_oclk   = 0,
> > +	.xtal_freq     = TDA10046_XTAL_16M,
> > +	.agc_config    = TDA10046_AGC_TDA827X,
> > +	.gpio_config   = TDA10046_GP11_I,
> > +	.if_freq       = TDA10046_FREQ_045,
> > +	.i2c_gate      = 0x4b,
> > +	.tuner_address = 0x61,
> > +	.antenna_switch = 1,
> > +	.request_firmware = philips_tda1004x_request_firmware
> > +};
> > +
> > 
> >  /* ------------------------------------------------------------------
> >  
> >   * special case: this card uses saa713x GPIO22 for the mode switch
> >   */
> > 
> > @@ -1649,6 +1663,31 @@ static int dvb_init(struct saa7134_dev *
> > 
> >  						" found!\n", __func__);
> >  					
> >  					goto dettach_frontend;
> >  				
> >  				}
> > 
> > +			}
> > +		}
> > +		break;
> > +	case SAA7134_BOARD_ASUSTeK_PS3_100:
> > +		if (!use_frontend) {     /* terrestrial */
> > +			if (configure_tda827x_fe(dev, &asus_ps3_100_config,
> > +							&tda827x_cfg_2) < 0)
> > +				goto dettach_frontend;
> > +		} else {  		/* satellite */
> > +			fe0->dvb.frontend = dvb_attach(tda10086_attach,
> > +						&flydvbs, &dev->i2c_adap);
> > +			if (fe0->dvb.frontend) {
> > +				if (dvb_attach(tda826x_attach,
> > +						fe0->dvb.frontend, 0x60,
> > +						&dev->i2c_adap, 0) == NULL) {
> > +					wprintk("%s: Asus My Cinema PS3-100, no "
> > +						"tda826x found!\n", __func__);
> > +					goto dettach_frontend;
> > +				}
> > +				if (dvb_attach(lnbp21_attach, fe0->dvb.frontend,
> > +						&dev->i2c_adap, 0, 0) == NULL) {
> > +					wprintk("%s: Asus My Cinema PS3-100, no lnbp21"
> > +						" found!\n", __func__);
> > +					goto dettach_frontend;
> > +				}
> > 
> >  			}
> >  		
> >  		}
> >  		break;
> > 
> > Index: patchwork/drivers/media/video/saa7134/saa7134-cards.c
> > ===================================================================
> > --- patchwork.orig/drivers/media/video/saa7134/saa7134-cards.c
> > +++ patchwork/drivers/media/video/saa7134/saa7134-cards.c
> > @@ -5080,6 +5080,36 @@ struct saa7134_board saa7134_boards[] =
> > 
> >  			.gpio = 0x0200000,
> >  		
> >  		},
> >  	
> >  	},
> > 
> > +	[SAA7134_BOARD_ASUSTeK_PS3_100] = {
> > +		.name           = "Asus My Cinema PS3-100",
> > +		.audio_clock    = 0x00187de7,
> > +		.tuner_type     = TUNER_PHILIPS_TDA8290,
> > +		.radio_type     = UNSET,
> > +		.tuner_addr     = ADDR_UNSET,
> > +		.radio_addr     = ADDR_UNSET,
> > +		.tuner_config   = 2,
> > +		.gpiomask       = 1 << 21,
> > +		.mpeg           = SAA7134_MPEG_DVB,
> > +		.inputs         = {{
> > +			.name = name_tv,
> > +			.vmux = 1,
> > +			.amux = TV,
> > +			.tv   = 1,
> > +		}, {
> > +			.name = name_comp,
> > +			.vmux = 0,
> > +			.amux = LINE2,
> > +		}, {
> > +			.name = name_svideo,
> > +			.vmux = 8,
> > +			.amux = LINE2,
> > +		} },
> > +		.radio = {
> > +			.name = name_radio,
> > +			.amux = TV,
> > +			.gpio = 0x0200000,
> > +		},
> > +	},
> > 
> >  	[SAA7134_BOARD_REAL_ANGEL_220] = {
> >  	
> >  		.name           = "Zogis Real Angel 220",
> >  		.audio_clock    = 0x00187de7,
> > 
> > @@ -6877,6 +6907,12 @@ struct pci_device_id saa7134_pci_tbl[] =
> > 
> >  		.driver_data  = SAA7134_BOARD_ASUSTeK_TIGER_3IN1,
> >  	
> >  	}, {
> >  	
> >  		.vendor       = PCI_VENDOR_ID_PHILIPS,
> > 
> > +		.device       = PCI_DEVICE_ID_PHILIPS_SAA7133,
> > +		.subvendor    = 0x1043,
> > +		.subdevice    = 0x48cd,
> > +		.driver_data  = SAA7134_BOARD_ASUSTeK_PS3_100,
> > +	}, {
> > +		.vendor       = PCI_VENDOR_ID_PHILIPS,
> > 
> >  		.device       = PCI_DEVICE_ID_PHILIPS_SAA7134,
> >  		.subvendor    = 0x17de,
> >  		.subdevice    = 0x7128,
> > 
> > @@ -7350,6 +7386,7 @@ int saa7134_board_init1(struct saa7134_d
> > 
> >  	case SAA7134_BOARD_ASUSTeK_P7131_DUAL:
> >  	case SAA7134_BOARD_ASUSTeK_P7131_HYBRID_LNA:
> > 
> >  	case SAA7134_BOARD_ASUSTeK_P7131_ANALOG:
> > +	case SAA7134_BOARD_ASUSTeK_PS3_100:
> >  	case SAA7134_BOARD_FLYDVBTDUO:
> >  	case SAA7134_BOARD_PROTEUS_2309:
> > 
> >  	case SAA7134_BOARD_AVERMEDIA_A16AR:
> > @@ -7807,6 +7844,14 @@ int saa7134_board_init2(struct saa7134_d
> > 
> >  	{
> >  	
> >  		u8 data[] = { 0x3c, 0x33, 0x60};
> >  		struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
> > 
> > +							.len = sizeof(data)};
> > +		i2c_transfer(&dev->i2c_adap, &msg, 1);
> > +		break;
> > +	}
> > +	case SAA7134_BOARD_ASUSTeK_PS3_100:
> > +	{
> > +		u8 data[] = { 0x3c, 0x33, 0x60};
> > +		struct i2c_msg msg = {.addr = 0x0b, .flags = 0, .buf = data,
> > 
> >  							.len = sizeof(data)};
> >  		
> >  		i2c_transfer(&dev->i2c_adap, &msg, 1);
> >  		break;
> > 
> > Index: patchwork/drivers/media/video/saa7134/saa7134.h
> > ===================================================================
> > --- patchwork.orig/drivers/media/video/saa7134/saa7134.h
> > +++ patchwork/drivers/media/video/saa7134/saa7134.h
> > @@ -332,6 +332,7 @@ struct saa7134_card_ir {
> > 
> >  #define SAA7134_BOARD_BEHOLD_503FM          187
> >  #define SAA7134_BOARD_SENSORAY811_911       188
> >  #define SAA7134_BOARD_KWORLD_PC150U         189
> > 
> > +#define SAA7134_BOARD_ASUSTeK_PS3_100	    190
> > 
> >  #define SAA7134_MAXBOARDS 32
> >  #define SAA7134_INPUT_MAX 8
> > 
> > Index: patchwork/drivers/media/rc/keymaps/rc-asus-ps3-100.c
> > ===================================================================
> > --- /dev/null
> > +++ patchwork/drivers/media/rc/keymaps/rc-asus-ps3-100.c
> > @@ -0,0 +1,91 @@
> > +/* asus-ps3-100.h - Keytable for asus_ps3_100 Remote Controller
> > + *
> > + * Copyright (c) 2012 by Mauro Carvalho Chehab <mchehab@redhat.com>
> > + *
> > + * Based on a previous patch from Remi Schwartz
> > <remi.schwartz@gmail.com> + *
> > + * This program is free software; you can redistribute it and/or modify
> > + * it under the terms of the GNU General Public License as published by
> > + * the Free Software Foundation; either version 2 of the License, or
> > + * (at your option) any later version.
> > + */
> > +
> > +#include <media/rc-map.h>
> > +#include <linux/module.h>
> > +
> > +static struct rc_map_table asus_ps3_100[] = {
> > +	{ 0x23, KEY_HOME },		/* home */
> > +	{ 0x21, KEY_TV },		/* tv */
> > +	{ 0x3c, KEY_TEXT },		/* teletext */
> > +	{ 0x16, KEY_POWER },		/* close */
> > +
> > +	{ 0x34, KEY_RED },		/* red */
> > +	{ 0x32, KEY_YELLOW },		/* yellow */
> > +	{ 0x39, KEY_BLUE },		/* blue */
> > +	{ 0x38, KEY_GREEN },		/* green */
> > +
> > +	/* Keys 0 to 9 */
> > +	{ 0x15, KEY_0 },
> > +	{ 0x29, KEY_1 },
> > +	{ 0x2d, KEY_2 },
> > +	{ 0x2b, KEY_3 },
> > +	{ 0x09, KEY_4 },
> > +	{ 0x0d, KEY_5 },
> > +	{ 0x0b, KEY_6 },
> > +	{ 0x31, KEY_7 },
> > +	{ 0x35, KEY_8 },
> > +	{ 0x33, KEY_9 },
> > +
> > +	{ 0x2a, KEY_VOLUMEUP },
> > +	{ 0x19, KEY_VOLUMEDOWN },
> > +	{ 0x0a, KEY_CHANNELUP },	/* channel / program + */
> > +	{ 0x1b, KEY_CHANNELDOWN },	/* channel / program - */
> > +
> > +	{ 0x37, KEY_UP },
> > +	{ 0x3b, KEY_DOWN },
> > +	{ 0x27, KEY_LEFT },
> > +	{ 0x2f, KEY_RIGHT },
> > +	{ 0x1a, KEY_ENTER },		/* enter */
> > +
> > +	{ 0x1d, KEY_EXIT },		/* back */
> > +	{ 0x13, KEY_AB },		/* recall */
> > +
> > +	{ 0x1f, KEY_AUDIO },		/* TV audio */
> > +	{ 0x08, KEY_SCREEN },		/* snapshot */
> > +	{ 0x11, KEY_ZOOM },		/* full screen */
> > +	{ 0x3d, KEY_MUTE },		/* mute */
> > +
> > +	{ 0x0e, KEY_REWIND },		/* backward << */
> > +	{ 0x2e, KEY_RECORD },		/* recording */
> > +	{ 0x36, KEY_STOP },
> > +	{ 0x3a, KEY_FASTFORWARD },	/* forward >> */
> > +	{ 0x1e, KEY_PREVIOUS },		/* rew */
> > +	{ 0x25, KEY_PAUSE },		/* pause */
> > +	{ 0x06, KEY_PLAY },		/* play */
> > +	{ 0x26, KEY_NEXT },		/* forward */
> > +};
> > +
> > +static struct rc_map_list asus_ps3_100_map = {
> > +	.map = {
> > +		.scan    = asus_ps3_100,
> > +		.size    = ARRAY_SIZE(asus_ps3_100),
> > +		.rc_type = RC_TYPE_RC5,
> > +		.name    = RC_MAP_ASUS_PS3_100,
> > +	}
> > +};
> > +
> > +static int __init init_rc_map_asus_ps3_100(void)
> > +{
> > +	return rc_map_register(&asus_ps3_100_map);
> > +}
> > +
> > +static void __exit exit_rc_map_asus_ps3_100(void)
> > +{
> > +	rc_map_unregister(&asus_ps3_100_map);
> > +}
> > +
> > +module_init(init_rc_map_asus_ps3_100)
> > +module_exit(exit_rc_map_asus_ps3_100)
> > +
> > +MODULE_LICENSE("GPL");
> > +MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@redhat.com>");


  reply	other threads:[~2012-05-19 10:11 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-05  9:40 patch for Asus My Cinema PS3-100 (1043:48cd) remi schwartz
2012-05-15 13:17 ` Mauro Carvalho Chehab
2012-05-16 18:46   ` remi schwartz
2012-05-19 10:11     ` remi schwartz [this message]
  -- strict thread matches above, loose matches on Subject: below --
2012-04-05  9:38 remi schwartz
2011-07-19  9:47 remzouille
2011-07-14  9:28 remzouille
2011-07-14 16:50 ` Mauro Carvalho Chehab
2011-07-15 17:18   ` remzouille
2011-07-19  9:08     ` remi schwartz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201205191211.48021.remi.schwartz@gmail.com \
    --to=remi.schwartz@gmail.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.