On Fri Dec 6 10:26:48 2024 +0200, Tomi Valkeinen wrote:
> Add error handling for i2c read/write calls to
> ub960_log_status_ub960_sp_eq().
> 
> Reported-by: Sakari Ailus <sakari.ai...@linux.intel.com>
> Closes: https://lore.kernel.org/all/Zv40EQSR__JDN_0M@kekkonen.localdomain/
> Reviewed-by: Jai Luthra <jai.lut...@ideasonboard.com>
> Signed-off-by: Tomi Valkeinen <tomi.valkei...@ideasonboard.com>
> Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
> Signed-off-by: Mauro Carvalho Chehab <mchehab+hua...@kernel.org>

Patch committed.

Thanks,
Mauro Carvalho Chehab

 drivers/media/i2c/ds90ub960.c | 23 +++++++++++++++++------
 1 file changed, 17 insertions(+), 6 deletions(-)

---

diff --git a/drivers/media/i2c/ds90ub960.c b/drivers/media/i2c/ds90ub960.c
index 20a37755248b..c948893e6a6e 100644
--- a/drivers/media/i2c/ds90ub960.c
+++ b/drivers/media/i2c/ds90ub960.c
@@ -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,

Reply via email to