V4L/DVB (7184): make hybrid_tuner_request_state tolerant of devices without i2c adapters
authorMichael Krufky <mkrufky@linuxtv.org>
Tue, 22 Apr 2008 17:42:05 +0000 (14:42 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Thu, 24 Apr 2008 17:07:43 +0000 (14:07 -0300)
Some dvb demodulators access the tuner directly without using i2c.
In these cases, i2c_adap may be NULL.  This patch fixes
hybrid_tuner_request_state to allow for NULL i2c_adapters.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/video/tuner-i2c.h

index c53c327a487ccfe7b09c16b51ee5bfffe50f42ec..60ba794809feabb881b64b4e030a03e4b62c89dd 100644 (file)
@@ -83,7 +83,8 @@ static inline int tuner_i2c_xfer_send_recv(struct tuner_i2c_props *props,
 
 #define tuner_printk(kernlvl, i2cprops, fmt, arg...) do {              \
        printk(kernlvl "%s %d-%04x: " fmt, i2cprops.name,               \
-                       i2c_adapter_id(i2cprops.adap),                  \
+                       i2cprops.adap ?                                 \
+                               i2c_adapter_id(i2cprops.adap) : -1,     \
                        i2cprops.addr, ##arg);                          \
         } while (0)
 
@@ -128,9 +129,10 @@ static inline int tuner_i2c_xfer_send_recv(struct tuner_i2c_props *props,
 ({                                                                     \
        int __ret = 0;                                                  \
        list_for_each_entry(state, &list, hybrid_tuner_instance_list) { \
-               if ((i2c_adapter_id(state->i2c_props.adap) ==           \
-                    i2c_adapter_id(i2cadap)) &&                        \
-                   (state->i2c_props.addr == i2caddr)) {               \
+               if ((state->i2c_props.addr == i2caddr) &&               \
+                   ((state->i2c_props.adap ?                           \
+                       i2c_adapter_id(state->i2c_props.adap) : -1) ==  \
+                    (i2cadap ? i2c_adapter_id(i2cadap) : -1))) {       \
                        __tuner_info(state->i2c_props,                  \
                                     "attaching existing instance\n");  \
                        state->i2c_props.count++;                       \