diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/firmware/scmi/mailbox_agent.c | 5 | ||||
| -rw-r--r-- | drivers/firmware/scmi/optee_agent.c | 5 | ||||
| -rw-r--r-- | drivers/firmware/scmi/scmi_agent-uclass.c | 7 | ||||
| -rw-r--r-- | drivers/firmware/scmi/smccc_agent.c | 5 | 
4 files changed, 13 insertions, 9 deletions
| diff --git a/drivers/firmware/scmi/mailbox_agent.c b/drivers/firmware/scmi/mailbox_agent.c index 8277c186060..7ad3e8da9f0 100644 --- a/drivers/firmware/scmi/mailbox_agent.c +++ b/drivers/firmware/scmi/mailbox_agent.c @@ -94,13 +94,14 @@ static int setup_channel(struct udevice *dev, struct scmi_mbox_channel *chan)  }  static int scmi_mbox_get_channel(struct udevice *dev, +				 struct udevice *protocol,  				 struct scmi_channel **channel)  {  	struct scmi_mbox_channel *base_chan = dev_get_plat(dev);  	struct scmi_mbox_channel *chan;  	int ret; -	if (!dev_read_prop(dev, "shmem", NULL)) { +	if (!dev_read_prop(protocol, "shmem", NULL)) {  		/* Uses agent base channel */  		*channel = container_of(base_chan, struct scmi_channel, ref); @@ -112,7 +113,7 @@ static int scmi_mbox_get_channel(struct udevice *dev,  		return -ENOMEM;  	/* Setup a dedicated channel for the protocol */ -	ret = setup_channel(dev, chan); +	ret = setup_channel(protocol, chan);  	if (ret) {  		free(chan);  		return ret; diff --git a/drivers/firmware/scmi/optee_agent.c b/drivers/firmware/scmi/optee_agent.c index db927fb2140..e3e46277404 100644 --- a/drivers/firmware/scmi/optee_agent.c +++ b/drivers/firmware/scmi/optee_agent.c @@ -324,6 +324,7 @@ static int setup_channel(struct udevice *dev, struct scmi_optee_channel *chan)  }  static int scmi_optee_get_channel(struct udevice *dev, +				  struct udevice *protocol,  				  struct scmi_channel **channel)  {  	struct scmi_optee_channel *base_chan = dev_get_plat(dev); @@ -331,7 +332,7 @@ static int scmi_optee_get_channel(struct udevice *dev,  	u32 channel_id;  	int ret; -	if (dev_read_u32(dev, "linaro,optee-channel-id", &channel_id)) { +	if (dev_read_u32(protocol, "linaro,optee-channel-id", &channel_id)) {  		/* Uses agent base channel */  		*channel = container_of(base_chan, struct scmi_channel, ref); @@ -343,7 +344,7 @@ static int scmi_optee_get_channel(struct udevice *dev,  	if (!chan)  		return -ENOMEM; -	ret = setup_channel(dev, chan); +	ret = setup_channel(protocol, chan);  	if (ret) {  		free(chan);  		return ret; diff --git a/drivers/firmware/scmi/scmi_agent-uclass.c b/drivers/firmware/scmi/scmi_agent-uclass.c index ec58ccd2bc5..a28692f39f4 100644 --- a/drivers/firmware/scmi/scmi_agent-uclass.c +++ b/drivers/firmware/scmi/scmi_agent-uclass.c @@ -144,13 +144,14 @@ static const struct scmi_agent_ops *transport_dev_ops(struct udevice *dev)   * On return, @channel will be set.   * Return	0 on success and a negative errno on failure   */ -static int scmi_of_get_channel(struct udevice *dev, struct scmi_channel **channel) +static int scmi_of_get_channel(struct udevice *dev, struct udevice *protocol, +			       struct scmi_channel **channel)  {  	const struct scmi_agent_ops *ops;  	ops = transport_dev_ops(dev);  	if (ops->of_get_channel) -		return ops->of_get_channel(dev, channel); +		return ops->of_get_channel(dev, protocol, channel);  	else  		return -EPROTONOSUPPORT;  } @@ -166,7 +167,7 @@ int devm_scmi_of_get_channel(struct udevice *dev)  		return -ENODEV;  	priv = dev_get_parent_priv(protocol); -	ret = scmi_of_get_channel(protocol->parent, &priv->channel); +	ret = scmi_of_get_channel(protocol->parent, protocol, &priv->channel);  	if (ret == -EPROTONOSUPPORT) {  		/* Drivers without a get_channel operator don't need a channel ref */  		priv->channel = NULL; diff --git a/drivers/firmware/scmi/smccc_agent.c b/drivers/firmware/scmi/smccc_agent.c index 6a52cd75d67..972c6addde2 100644 --- a/drivers/firmware/scmi/smccc_agent.c +++ b/drivers/firmware/scmi/smccc_agent.c @@ -81,6 +81,7 @@ static int setup_channel(struct udevice *dev, struct scmi_smccc_channel *chan)  }  static int scmi_smccc_get_channel(struct udevice *dev, +				  struct udevice *protocol,  				  struct scmi_channel **channel)  {  	struct scmi_smccc_channel *base_chan = dev_get_plat(dev); @@ -88,7 +89,7 @@ static int scmi_smccc_get_channel(struct udevice *dev,  	u32 func_id;  	int ret; -	if (dev_read_u32(dev, "arm,smc-id", &func_id)) { +	if (dev_read_u32(protocol, "arm,smc-id", &func_id)) {  		/* Uses agent base channel */  		*channel = container_of(base_chan, struct scmi_channel, ref); @@ -100,7 +101,7 @@ static int scmi_smccc_get_channel(struct udevice *dev,  	if (!chan)  		return -ENOMEM; -	ret = setup_channel(dev, chan); +	ret = setup_channel(protocol, chan);  	if (ret) {  		free(chan);  		return ret; | 
