lkml.org 
[lkml]   [2021]   [Jul]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH v4 06/16] firmware: arm_scmi, smccc, mailbox: Make shmem based transports optional
    Date
    On 11.06.21 18:59, Cristian Marussi wrote:
    > From: Igor Skalkin <igor.skalkin@opensynergy.com>
    >
    > Upon adding the virtio transport in this patch series, SCMI will also
    > work without shared memory based transports. Also, the mailbox transport
    > may not be needed if the smc transport is used.
    >
    > - Compile shmem.c only if a shmem based transport is available.
    >
    > - Remove hard dependency of SCMI on mailbox.

    The hard dependency has now already been removed with

    c05b07963e96 ("firmware: arm_scmi: Add SMCCC discovery dependency in")

    >
    > [ Peter: Adapted patch for submission to upstream. ]
    >
    > Co-developed-by: Peter Hilber <peter.hilber@opensynergy.com>
    > Signed-off-by: Igor Skalkin <igor.skalkin@opensynergy.com>
    > Signed-off-by: Peter Hilber <peter.hilber@opensynergy.com>
    > ---
    > drivers/firmware/Kconfig | 8 +++++++-
    > drivers/firmware/arm_scmi/Makefile | 2 +-
    > drivers/firmware/arm_scmi/common.h | 2 ++
    > drivers/firmware/smccc/Kconfig | 1 +
    > drivers/mailbox/Kconfig | 1 +
    > 5 files changed, 12 insertions(+), 2 deletions(-)
    >
    > diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig
    > index 1db738d5b301..358f895847b5 100644
    > --- a/drivers/firmware/Kconfig
    > +++ b/drivers/firmware/Kconfig
    > @@ -9,7 +9,7 @@ menu "Firmware Drivers"
    > config ARM_SCMI_PROTOCOL
    > tristate "ARM System Control and Management Interface (SCMI) Message Protocol"
    > depends on ARM || ARM64 || COMPILE_TEST
    > - depends on MAILBOX || HAVE_ARM_SMCCC_DISCOVERY
    > + depends on ARM_SCMI_HAVE_SHMEM
    > help
    > ARM System Control and Management Interface (SCMI) protocol is a
    > set of operating system-independent software interfaces that are
    > @@ -27,6 +27,12 @@ config ARM_SCMI_PROTOCOL
    > This protocol library provides interface for all the client drivers
    > making use of the features offered by the SCMI.
    >
    > +config ARM_SCMI_HAVE_SHMEM
    > + bool
    > + help
    > + This declares whether a shared memory based transport for SCMI is
    > + available.
    > +
    > config ARM_SCMI_POWER_DOMAIN
    > tristate "SCMI power domain driver"
    > depends on ARM_SCMI_PROTOCOL || (COMPILE_TEST && OF)
    > diff --git a/drivers/firmware/arm_scmi/Makefile b/drivers/firmware/arm_scmi/Makefile
    > index 6a2ef63306d6..5a2d4c32e0ae 100644
    > --- a/drivers/firmware/arm_scmi/Makefile
    > +++ b/drivers/firmware/arm_scmi/Makefile
    > @@ -1,7 +1,7 @@
    > # SPDX-License-Identifier: GPL-2.0-only
    > scmi-bus-y = bus.o
    > scmi-driver-y = driver.o notify.o
    > -scmi-transport-y = shmem.o
    > +scmi-transport-$(CONFIG_ARM_SCMI_HAVE_SHMEM) = shmem.o
    > scmi-transport-$(CONFIG_MAILBOX) += mailbox.o
    > scmi-transport-$(CONFIG_HAVE_ARM_SMCCC_DISCOVERY) += smc.o
    > scmi-protocols-y = base.o clock.o perf.o power.o reset.o sensors.o system.o voltage.o
    > diff --git a/drivers/firmware/arm_scmi/common.h b/drivers/firmware/arm_scmi/common.h
    > index 0edc04bc434c..4666777019fa 100644
    > --- a/drivers/firmware/arm_scmi/common.h
    > +++ b/drivers/firmware/arm_scmi/common.h
    > @@ -375,7 +375,9 @@ struct scmi_desc {
    > bool support_xfers_delegation;
    > };
    >
    > +#ifdef CONFIG_MAILBOX
    > extern const struct scmi_desc scmi_mailbox_desc;
    > +#endif
    > #ifdef CONFIG_HAVE_ARM_SMCCC_DISCOVERY
    > extern const struct scmi_desc scmi_smc_desc;
    > #endif
    > diff --git a/drivers/firmware/smccc/Kconfig b/drivers/firmware/smccc/Kconfig
    > index 15e7466179a6..69c4d6cabf62 100644
    > --- a/drivers/firmware/smccc/Kconfig
    > +++ b/drivers/firmware/smccc/Kconfig
    > @@ -9,6 +9,7 @@ config HAVE_ARM_SMCCC_DISCOVERY
    > bool
    > depends on ARM_PSCI_FW
    > default y
    > + select ARM_SCMI_HAVE_SHMEM
    > help
    > SMCCC v1.0 lacked discoverability and hence PSCI v1.0 was updated
    > to add SMCCC discovery mechanism though the PSCI firmware
    > diff --git a/drivers/mailbox/Kconfig b/drivers/mailbox/Kconfig
    > index 68de2c6af727..fc02c38c0739 100644
    > --- a/drivers/mailbox/Kconfig
    > +++ b/drivers/mailbox/Kconfig
    > @@ -1,6 +1,7 @@
    > # SPDX-License-Identifier: GPL-2.0-only
    > menuconfig MAILBOX
    > bool "Mailbox Hardware Support"
    > + select ARM_SCMI_HAVE_SHMEM
    > help
    > Mailbox is a framework to control hardware communication between
    > on-chip processors through queued messages and interrupt driven
    >



    \
     
     \ /
      Last update: 2021-07-01 10:43    [W:9.762 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site