mbox series

[00/15] firmware: arm_scmi: Add support for multiple device per protocol

Message ID 20191210145345.11616-1-sudeep.holla@arm.com
Headers show
Series firmware: arm_scmi: Add support for multiple device per protocol | expand

Message

Sudeep Holla Dec. 10, 2019, 2:53 p.m. UTC
Currently only one scmi device is created for each protocol enumerated.
However, there is requirement to make use of some procotols by multiple
kernel subsystems/frameworks. One such example is SCMI PERFORMANCE
protocol which can be used by both cpufreq and devfreq drivers.
Similarly, SENSOR protocol may be used by hwmon and iio subsystems,
and POWER protocol may be used by genpd and regulator drivers.

This series adds support for multiple device per protocol using scmi device
name if one is available. It also updates existing drivers to add
scmi device names to driver id tables.

Regards,
Sudeep

Sudeep Holla (15):
  firmware: arm_scmi: Add support for multiple device per protocol
  firmware: arm_scmi: Skip scmi mbox channel setup for addtional devices
  firmware: arm_scmi: Skip protocol initialisation for additional devices
  firmware: arm_scmi: Add names to scmi devices created
  firmware: arm_scmi: Add versions and identifier attributes using dev_groups
  firmware: arm_scmi: Update scmi_prot_init_fn_t to use device instead of handle
  firmware: arm_scmi: Stash version in protocol init functions
  firmware: arm_scmi: Add and initialise protocol version to scmi_device structure
  firmware: arm_scmi: Add scmi protocol version and id device attributes
  firmware: arm_scmi: Drop logging individual scmi protocol version
  firmware: arm_scmi: Match scmi device by both name and protocol id
  clk: scmi: Match scmi device by both name and protocol id
  cpufreq: scmi: Match scmi device by both name and protocol id
  hwmon: (scmi-hwmon) Match scmi device by both name and protocol id
  reset: reset-scmi: Match scmi device by both name and protocol id

 drivers/clk/clk-scmi.c                     |  2 +-
 drivers/cpufreq/scmi-cpufreq.c             |  2 +-
 drivers/firmware/arm_scmi/bus.c            | 53 +++++++++++--
 drivers/firmware/arm_scmi/clock.c          | 15 +++-
 drivers/firmware/arm_scmi/driver.c         | 92 +++++++++++++++++++++-
 drivers/firmware/arm_scmi/perf.c           | 15 +++-
 drivers/firmware/arm_scmi/power.c          | 15 +++-
 drivers/firmware/arm_scmi/reset.c          | 15 +++-
 drivers/firmware/arm_scmi/scmi_pm_domain.c |  2 +-
 drivers/firmware/arm_scmi/sensors.c        | 15 +++-
 drivers/hwmon/scmi-hwmon.c                 |  2 +-
 drivers/reset/reset-scmi.c                 |  2 +-
 include/linux/scmi_protocol.h              |  8 +-
 13 files changed, 202 insertions(+), 36 deletions(-)

--
2.17.1

Comments

Viresh Kumar Dec. 11, 2019, 10:30 a.m. UTC | #1
On 11-12-19, 10:13, Sudeep Holla wrote:
> On Wed, Dec 11, 2019 at 08:09:09AM +0530, Viresh Kumar wrote:

> > On 10-12-19, 14:53, Sudeep Holla wrote:

> > > The scmi bus now has support to match the driver with devices not only

> > > based on their protocol id but also based on their device name if one is

> > > available. This was added to cater the need to support multiple devices

> > > and drivers for the same protocol.

> > >

> > > Let us add the name "cpufreq" to scmi_device_id table in the driver so

> > > that in matches only with device with the same name and protocol id

> > > SCMI_PROTOCOL_PERF. This will help to add "devfreq" device/driver.

> > >

> > > Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>

> > > Cc: Viresh Kumar <viresh.kumar@linaro.org>

> > > Cc: linux-pm@vger.kernel.org

> > > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>

> > > ---

> > >  drivers/cpufreq/scmi-cpufreq.c | 2 +-

> > >  1 file changed, 1 insertion(+), 1 deletion(-)

> > >

> > > diff --git a/drivers/cpufreq/scmi-cpufreq.c b/drivers/cpufreq/scmi-cpufreq.c

> > > index e6182c89df79..61623e2ff149 100644

> > > --- a/drivers/cpufreq/scmi-cpufreq.c

> > > +++ b/drivers/cpufreq/scmi-cpufreq.c

> > > @@ -261,7 +261,7 @@ static void scmi_cpufreq_remove(struct scmi_device *sdev)

> > >  }

> > >

> > >  static const struct scmi_device_id scmi_id_table[] = {

> > > -	{ SCMI_PROTOCOL_PERF },

> > > +	{ SCMI_PROTOCOL_PERF, "cpufreq" },

> > >  	{ },

> > >  };

> > >  MODULE_DEVICE_TABLE(scmi, scmi_id_table);

> >

> > Applied. Thanks.

> 

> This will break the build without patch 1/15, so preferably must go as

> part of the series. Sorry for not missing to specify that detail.


Dropped now.

Acked-by: Viresh Kumar <viresh.kumar@linaro.org>


-- 
viresh