This is an automatic generated email to let you know that the following patch 
were queued at the 
http://git.linuxtv.org/media_tree.git tree:

Subject: [media] cx231xx: return an error if it can't read PCB config
Author:  Mauro Carvalho Chehab <[email protected]>
Date:    Sun Jul 27 16:27:32 2014 -0300

Instead of using some random value, return an error if the
PCB config is not available or doesn't match a know profile

Signed-off-by: Mauro Carvalho Chehab <[email protected]>

 drivers/media/usb/cx231xx/cx231xx-cards.c   |    6 +++++-
 drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c |   10 +++++++---
 drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h |    2 +-
 3 files changed, 13 insertions(+), 5 deletions(-)

---

http://git.linuxtv.org/media_tree.git?a=commitdiff;h=52841e5e145afdf5cc070863c383f41db8472575

diff --git a/drivers/media/usb/cx231xx/cx231xx-cards.c 
b/drivers/media/usb/cx231xx/cx231xx-cards.c
index 75b24b7..db69307 100644
--- a/drivers/media/usb/cx231xx/cx231xx-cards.c
+++ b/drivers/media/usb/cx231xx/cx231xx-cards.c
@@ -997,7 +997,11 @@ static int cx231xx_init_dev(struct cx231xx *dev, struct 
usb_device *udev,
        dev->cx231xx_gpio_i2c_write = cx231xx_gpio_i2c_write;
 
        /* Query cx231xx to find what pcb config it is related to */
-       initialize_cx231xx(dev);
+       retval = initialize_cx231xx(dev);
+       if (retval < 0) {
+               cx231xx_errdev("Failed to read PCB config\n");
+               return retval;
+       }
 
        /*To workaround error number=-71 on EP0 for VideoGrabber,
                 need set alt here.*/
diff --git a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c 
b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c
index 2a34cee..3052c4c 100644
--- a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c
+++ b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.c
@@ -654,8 +654,9 @@ static struct pcb_config cx231xx_Scenario[] = {
 
 /*****************************************************************/
 
-u32 initialize_cx231xx(struct cx231xx *dev)
+int initialize_cx231xx(struct cx231xx *dev)
 {
+       int retval;
        u32 config_info = 0;
        struct pcb_config *p_pcb_info;
        u8 usb_speed = 1;       /* from register,1--HS, 0--FS  */
@@ -670,7 +671,10 @@ u32 initialize_cx231xx(struct cx231xx *dev)
 
        /* read board config register to find out which
        pcb config it is related to */
-       cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, BOARD_CFG_STAT, data, 4);
+       retval = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, BOARD_CFG_STAT,
+                                      data, 4);
+       if (retval < 0)
+               return retval;
 
        config_info = le32_to_cpu(*((__le32 *)data));
        usb_speed = (u8) (config_info & 0x1);
@@ -767,7 +771,7 @@ u32 initialize_cx231xx(struct cx231xx *dev)
                        cx231xx_info("bad senario!!!!!\n");
                        cx231xx_info("config_info=%x\n",
                                     (config_info & SELFPOWER_MASK));
-                       return 1;
+                       return -ENODEV;
                }
        }
 
diff --git a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h 
b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h
index b3c6190..4511dc5 100644
--- a/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h
+++ b/drivers/media/usb/cx231xx/cx231xx-pcb-cfg.h
@@ -221,6 +221,6 @@ enum INDEX_PCB_CONFIG{
 /***************************************************************************/
 struct cx231xx;
 
-u32 initialize_cx231xx(struct cx231xx *p_dev);
+int initialize_cx231xx(struct cx231xx *p_dev);
 
 #endif

_______________________________________________
linuxtv-commits mailing list
[email protected]
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits

Reply via email to