]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: i2c: ds90ub960: Handle errors in ub960_log_status_ub960_sp_eq()
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Fri, 6 Dec 2024 08:26:48 +0000 (10:26 +0200)
committerMauro Carvalho Chehab <mchehab+huawei@kernel.org>
Thu, 19 Dec 2024 11:50:16 +0000 (12:50 +0100)
Add error handling for i2c read/write calls to
ub960_log_status_ub960_sp_eq().

Reported-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Closes: https://lore.kernel.org/all/Zv40EQSR__JDN_0M@kekkonen.localdomain/
Reviewed-by: Jai Luthra <jai.luthra@ideasonboard.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
drivers/media/i2c/ds90ub960.c

index 20a37755248b3c5bf093bb5de38298d76888a42b..c948893e6a6e3f956f82e12feff69776ab19e3ba 100644 (file)
@@ -2981,38 +2981,49 @@ static void ub960_log_status_ub960_sp_eq(struct ub960_data *priv,
        struct device *dev = &priv->client->dev;
        u8 eq_level;
        s8 strobe_pos;
-       u8 v = 0;
+       int ret;
+       u8 v;
 
        /* Strobe */
 
-       ub960_read(priv, UB960_XR_AEQ_CTL1, &v);
+       ret = ub960_read(priv, UB960_XR_AEQ_CTL1, &v);
+       if (ret)
+               return;
 
        dev_info(dev, "\t%s strobe\n",
                 (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) ? "Adaptive" :
                                                          "Manual");
 
        if (v & UB960_XR_AEQ_CTL1_AEQ_SFILTER_EN) {
-               ub960_read(priv, UB960_XR_SFILTER_CFG, &v);
+               ret = ub960_read(priv, UB960_XR_SFILTER_CFG, &v);
+               if (ret)
+                       return;
 
                dev_info(dev, "\tStrobe range [%d, %d]\n",
                         ((v >> UB960_XR_SFILTER_CFG_SFILTER_MIN_SHIFT) & 0xf) - 7,
                         ((v >> UB960_XR_SFILTER_CFG_SFILTER_MAX_SHIFT) & 0xf) - 7);
        }
 
-       ub960_rxport_get_strobe_pos(priv, nport, &strobe_pos);
+       ret = ub960_rxport_get_strobe_pos(priv, nport, &strobe_pos);
+       if (ret)
+               return;
 
        dev_info(dev, "\tStrobe pos %d\n", strobe_pos);
 
        /* EQ */
 
-       ub960_rxport_read(priv, nport, UB960_RR_AEQ_BYPASS, &v);
+       ret = ub960_rxport_read(priv, nport, UB960_RR_AEQ_BYPASS, &v);
+       if (ret)
+               return;
 
        dev_info(dev, "\t%s EQ\n",
                 (v & UB960_RR_AEQ_BYPASS_ENABLE) ? "Manual" :
                                                    "Adaptive");
 
        if (!(v & UB960_RR_AEQ_BYPASS_ENABLE)) {
-               ub960_rxport_read(priv, nport, UB960_RR_AEQ_MIN_MAX, &v);
+               ret = ub960_rxport_read(priv, nport, UB960_RR_AEQ_MIN_MAX, &v);
+               if (ret)
+                       return;
 
                dev_info(dev, "\tEQ range [%u, %u]\n",
                         (v >> UB960_RR_AEQ_MIN_MAX_AEQ_FLOOR_SHIFT) & 0xf,