Message ID | 20180430115544.22903-3-wsa+renesas@sang-engineering.com |
---|---|
State | Superseded |
Delegated to: | Peter Rosin |
Headers | show |
Series | i2c: mux: demux-pinctrl: improve device relationships | expand |
On 2018-04-30 13:55, Wolfram Sang wrote: > Similar to mux devices, create special symlinks to connect the demuxed > bus with the demux device. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > --- > drivers/i2c/muxes/i2c-demux-pinctrl.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c > index 035032e20327..d5e7d4aa6ee1 100644 > --- a/drivers/i2c/muxes/i2c-demux-pinctrl.c > +++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c > @@ -116,6 +116,11 @@ static int i2c_demux_activate_master(struct i2c_demux_pinctrl_priv *priv, u32 ne > if (ret < 0) > goto err_with_put; > > + sysfs_create_link(&priv->cur_adap.dev.kobj, &priv->dev->kobj, > + "demux_device"); > + sysfs_create_link(&priv->dev->kobj, &priv->cur_adap.dev.kobj, > + "channel-0"); > + From sysfs.h: int __must_check sysfs_create_link(...); Cheers, Peter > return 0; > > err_with_put: > @@ -135,6 +140,9 @@ static int i2c_demux_deactivate_master(struct i2c_demux_pinctrl_priv *priv) > if (cur < 0) > return 0; > > + sysfs_remove_link(&priv->dev->kobj, "channel-0"); > + sysfs_remove_link(&priv->cur_adap.dev.kobj, "demux_device"); > + > i2c_del_adapter(&priv->cur_adap); > i2c_put_adapter(priv->chan[cur].parent_adap); > >
> > + sysfs_create_link(&priv->cur_adap.dev.kobj, &priv->dev->kobj, > > + "demux_device"); > > + sysfs_create_link(&priv->dev->kobj, &priv->cur_adap.dev.kobj, > > + "channel-0"); > > + > > From sysfs.h: > int __must_check sysfs_create_link(...); Darn, right... Will fix!
diff --git a/drivers/i2c/muxes/i2c-demux-pinctrl.c b/drivers/i2c/muxes/i2c-demux-pinctrl.c index 035032e20327..d5e7d4aa6ee1 100644 --- a/drivers/i2c/muxes/i2c-demux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-demux-pinctrl.c @@ -116,6 +116,11 @@ static int i2c_demux_activate_master(struct i2c_demux_pinctrl_priv *priv, u32 ne if (ret < 0) goto err_with_put; + sysfs_create_link(&priv->cur_adap.dev.kobj, &priv->dev->kobj, + "demux_device"); + sysfs_create_link(&priv->dev->kobj, &priv->cur_adap.dev.kobj, + "channel-0"); + return 0; err_with_put: @@ -135,6 +140,9 @@ static int i2c_demux_deactivate_master(struct i2c_demux_pinctrl_priv *priv) if (cur < 0) return 0; + sysfs_remove_link(&priv->dev->kobj, "channel-0"); + sysfs_remove_link(&priv->cur_adap.dev.kobj, "demux_device"); + i2c_del_adapter(&priv->cur_adap); i2c_put_adapter(priv->chan[cur].parent_adap);
Similar to mux devices, create special symlinks to connect the demuxed bus with the demux device. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- drivers/i2c/muxes/i2c-demux-pinctrl.c | 8 ++++++++ 1 file changed, 8 insertions(+)