X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=drivers%2Fi2c%2Fmuxes%2Fi2c-demux-pinctrl.c;h=b6b9d2582fac561958fee93abe6deb93cb0142c4;hb=9a5382e8ffe86412f442f6a34fde43f94aae530b;hp=8de073aed001482461b3ad12398c00fa9417fc95;hpb=0422e5e0be4cce09ed6a095410efa7ee0f978607;p=cascardo%2Flinux.git diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c index 8de073aed001..b6b9d2582fac 100644 --- a/drivers/i2c/muxes/i2c-demux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c @@ -68,7 +68,7 @@ static int i2c_demux_activate_master(struct i2c_demux_pinctrl_priv *priv, u32 ne adap = of_find_i2c_adapter_by_node(priv->chan[new_chan].parent_np); if (!adap) { ret = -ENODEV; - goto err; + goto err_with_revert; } p = devm_pinctrl_get_select(adap->dev.parent, priv->bus_name); @@ -103,8 +103,11 @@ static int i2c_demux_activate_master(struct i2c_demux_pinctrl_priv *priv, u32 ne err_with_put: i2c_put_adapter(adap); + err_with_revert: + of_changeset_revert(&priv->chan[new_chan].chgset); err: dev_err(priv->dev, "failed to setup demux-adapter %d (%d)\n", new_chan, ret); + priv->cur_chan = -EINVAL; return ret; }