The patch number 11847 was added via Mauro Carvalho Chehab <mche...@redhat.com>
to http://linuxtv.org/hg/v4l-dvb master development tree.

Kernel patches in this development tree may be modified to be backward
compatible with older kernels. Compatibility modifications will be
removed before inclusion into the mainstream Kernel

If anyone has any objections, please let us know by sending a message to:
        Linux Media Mailing List <linux-me...@vger.kernel.org>

------

From: Jean Delvare  <kh...@linux-fr.org>
saa7134: Simplify handling of IR on MSI t...@nywhere Plus


Now that we instantiate I2C IR devices explicitly, we can skip probing
altogether on boards where the I2C IR device address is known. The MSI
t...@nywhere Plus is one of these boards.

Signed-off-by: Jean Delvare <kh...@linux-fr.org>
Signed-off-by: Mauro Carvalho Chehab <mche...@redhat.com>


---

 linux/drivers/media/video/saa7134/saa7134-input.c |   30 +++++++-------
 1 file changed, 16 insertions(+), 14 deletions(-)

diff -r ba901349d271 -r 69f011b8c94a 
linux/drivers/media/video/saa7134/saa7134-input.c
--- a/linux/drivers/media/video/saa7134/saa7134-input.c Wed May 13 19:50:11 
2009 +0000
+++ b/linux/drivers/media/video/saa7134/saa7134-input.c Wed May 13 19:51:46 
2009 +0000
@@ -695,9 +695,6 @@ void saa7134_probe_i2c_ir(struct saa7134
                I2C_CLIENT_END
        };
 
-       const unsigned short addr_list_msi[] = {
-               0x30, I2C_CLIENT_END
-       };
        struct i2c_msg msg_msi = {
                .addr = 0x50,
                .flags = I2C_M_RD,
@@ -751,6 +748,15 @@ void saa7134_probe_i2c_ir(struct saa7134
                init_data.name = "MSI t...@nywhere Plus";
                init_data.get_key = get_key_msi_tvanywhere_plus;
                init_data.ir_codes = ir_codes_msi_tvanywhere_plus;
+               info.addr = 0x30;
+               /* MSI t...@nywhere Plus controller doesn't seem to
+                  respond to probes unless we read something from
+                  an existing device. Weird...
+                  REVISIT: might no longer be needed */
+               rc = i2c_transfer(&dev->i2c_adap, &msg_msi, 1);
+               dprintk(KERN_DEBUG "probe 0x%02x @ %s: %s\n",
+                       msg_msi.addr, dev->i2c_adap.name,
+                       (1 == rc) ? "yes" : "no");
                break;
        case SAA7134_BOARD_HAUPPAUGE_HVR1110:
                init_data.name = "HVR 1110";
@@ -777,18 +783,14 @@ void saa7134_probe_i2c_ir(struct saa7134
 
        if (init_data.name)
                info.platform_data = &init_data;
+       /* No need to probe if address is known */
+       if (info.addr) {
+               i2c_new_device(&dev->i2c_adap, &info);
+               return;
+       }
+
+       /* Address not known, fallback to probing */
        client = i2c_new_probed_device(&dev->i2c_adap, &info, addr_list);
-       if (client)
-               return;
-
-       /* MSI t...@nywhere Plus controller doesn't seem to
-          respond to probes unless we read something from
-          an existing device. Weird... */
-       rc = i2c_transfer(&dev->i2c_adap, &msg_msi, 1);
-       dprintk(KERN_DEBUG "probe 0x%02x @ %s: %s\n",
-               msg_msi.addr, dev->i2c_adap.name,
-               (1 == rc) ? "yes" : "no");
-       client = i2c_new_probed_device(&dev->i2c_adap, &info, addr_list_msi);
        if (client)
                return;
 


---

Patch is available at: 
http://linuxtv.org/hg/v4l-dvb/rev/69f011b8c94a0d9ad036edbccd26dc391b531342

_______________________________________________
linuxtv-commits mailing list
linuxtv-commits@linuxtv.org
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to