phy: mapphone-mdm6600: Fix uninitialized status value regression
commit af5d44de571811a151510bfd1236407b7f551cd9 upstream. Only the used bits get cleared with bitmap_zero() when we call gpiod_get_array_value_cansleep(). We must mask only the bits we're using for ddata->status as the other bits in the bitmap may not be initialized. And let's also drop useless debug code accidentally left over while at it. Fixes: b9762bebc633 ("gpiolib: Pass bitmaps, not integer arrays, to get/set array") Cc: Jacopo Mondi <jacopo@jmondi.org> Cc: Janusz Krzysztofik <jmkrzyszt@gmail.com> Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Marcel Partap <mpartap@gmx.net> Cc: Merlijn Wajer <merlijn@wizzup.org> Cc: Michael Scott <hashcode0f@gmail.com> Cc: NeKit <nekit1000@gmail.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: Sebastian Reichel <sre@kernel.org> Signed-off-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b12c83520b
commit
21b5fa1340
@ -200,7 +200,7 @@ static void phy_mdm6600_status(struct work_struct *work)
|
||||
struct phy_mdm6600 *ddata;
|
||||
struct device *dev;
|
||||
DECLARE_BITMAP(values, PHY_MDM6600_NR_STATUS_LINES);
|
||||
int error, i, val = 0;
|
||||
int error;
|
||||
|
||||
ddata = container_of(work, struct phy_mdm6600, status_work.work);
|
||||
dev = ddata->dev;
|
||||
@ -212,16 +212,11 @@ static void phy_mdm6600_status(struct work_struct *work)
|
||||
if (error)
|
||||
return;
|
||||
|
||||
for (i = 0; i < PHY_MDM6600_NR_STATUS_LINES; i++) {
|
||||
val |= test_bit(i, values) << i;
|
||||
dev_dbg(ddata->dev, "XXX %s: i: %i values[i]: %i val: %i\n",
|
||||
__func__, i, test_bit(i, values), val);
|
||||
}
|
||||
ddata->status = values[0];
|
||||
ddata->status = values[0] & ((1 << PHY_MDM6600_NR_STATUS_LINES) - 1);
|
||||
|
||||
dev_info(dev, "modem status: %i %s\n",
|
||||
ddata->status,
|
||||
phy_mdm6600_status_name[ddata->status & 7]);
|
||||
phy_mdm6600_status_name[ddata->status]);
|
||||
complete(&ddata->ack);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user