Patch "i2c: mux: demux-pinctrl: run properly with multiple instances" has been added to the 4.7-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
i2c: mux: demux-pinctrl: run properly with multiple instances
to the 4.7-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
i2c-mux-demux-pinctrl-run-properly-with-multiple-instances.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
e35478eac030990e23a56bf11dc074c5a069124aMon Sep 17 00:00:00 2001
From: Wolfram Sang <[email protected]>
Date: Tue, 23 Aug 2016 17:28:03 +0200
Subject: i2c: mux: demux-pinctrl: run properly with multiple instances
From: Wolfram Sang <[email protected]>
commit e35478eac030990e23a56bf11dc074c5a069124a upstream.
We can't use a static property for all the changesets, so we now create dynamic ones for each changeset.
--- drivers/i2c/muxes/i2c-demux-pinctrl.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-)
drivers/i2c/muxes/i2c-demux-pinctrl.c +10 -4
@@ -37,8 +37,6 @@ struct i2c_demux_pinctrl_priv {struct i2c_demux_pinctrl_chan chan[]; }; -static struct property status_okay = { .name ="status" , .length =3 , .value ="ok" }; -static int i2c_demux_master_xfer (struct i2c_adapter *adap,struct i2c_msg msgs[],int num) {struct i2c_demux_pinctrl_priv *priv = adap->algo_data;
@@ -192,6 +190,7 @@ static int i2c_demux_pinctrl_probe(struc {struct device_node *np = pdev->dev.of_node;struct i2c_demux_pinctrl_priv *priv; +struct property *props;int num_chan, i, j, err; num_chan =of_count_phandle_with_args (np,"i2c-parent" ,NULL );
@@ -202,7 +201,10 @@ static int i2c_demux_pinctrl_probe(struc priv =devm_kzalloc (&pdev->dev,sizeof (*priv) + num_chan *sizeof (struct i2c_demux_pinctrl_chan ),GFP_KERNEL ); -if (!priv) + + props =devm_kcalloc (&pdev->dev, num_chan,sizeof (*props),GFP_KERNEL ); + +if (!priv || !props)return -ENOMEM ; err =of_property_read_string (np,"i2c-bus-name" , &priv->bus_name);
@@ -220,8 +222,12 @@ static int i2c_demux_pinctrl_probe(struc } priv->chan[i].parent_np = adap_np; + props[i].name =devm_kstrdup (&pdev->dev,"status" ,GFP_KERNEL ); + props[i].value =devm_kstrdup (&pdev->dev,"ok" ,GFP_KERNEL ); + props[i].length =3 ; +of_changeset_init (&priv->chan[i].chgset); -of_changeset_update_property (&priv->chan[i].chgset, adap_np, &status_okay); +of_changeset_update_property (&priv->chan[i].chgset, adap_np, &props[i]); } priv->num_chan = num_chan;
Patches currently in stable-queue which might be from [email protected] are
queue-4.7/i2c-mux-demux-pinctrl-run-properly-with-multiple-instances.patch