2024-06-12 06:50:12

by Ekansh Gupta

[permalink] [raw]
Subject: [PATCH v1] misc: fastrpc: Move fastrpc driver to misc/fastrpc/

Move fastrpc.c from misc/ to misc/fastrpc/. New C files are planned
to be added for PD notifications and other missing features. Adding
and maintaining new files from within fastrpc directory would be easy.

Example of feature that is being planned to be introduced in a new C
file:
https://lore.kernel.org/all/[email protected]/

Signed-off-by: Ekansh Gupta <[email protected]>
---
MAINTAINERS | 2 +-
drivers/misc/Kconfig | 13 +------------
drivers/misc/Makefile | 2 +-
drivers/misc/fastrpc/Kconfig | 16 ++++++++++++++++
drivers/misc/fastrpc/Makefile | 2 ++
drivers/misc/{ => fastrpc}/fastrpc.c | 0
6 files changed, 21 insertions(+), 14 deletions(-)
create mode 100644 drivers/misc/fastrpc/Kconfig
create mode 100644 drivers/misc/fastrpc/Makefile
rename drivers/misc/{ => fastrpc}/fastrpc.c (100%)

diff --git a/MAINTAINERS b/MAINTAINERS
index d6c90161c7bf..e9c79e9063f8 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -18501,7 +18501,7 @@ M: Amol Maheshwari <[email protected]>
L: [email protected]
S: Maintained
F: Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
-F: drivers/misc/fastrpc.c
+F: drivers/misc/fastrpc/
F: include/uapi/misc/fastrpc.h

QUALCOMM HEXAGON ARCHITECTURE
diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
index faf983680040..630e8ccd8669 100644
--- a/drivers/misc/Kconfig
+++ b/drivers/misc/Kconfig
@@ -276,18 +276,6 @@ config QCOM_COINCELL
to maintain PMIC register and RTC state in the absence of
external power.

-config QCOM_FASTRPC
- tristate "Qualcomm FastRPC"
- depends on ARCH_QCOM || COMPILE_TEST
- depends on RPMSG
- select DMA_SHARED_BUFFER
- select QCOM_SCM
- help
- Provides a communication mechanism that allows for clients to
- make remote method invocations across processor boundary to
- applications DSP processor. Say M if you want to enable this
- module.
-
config SGI_GRU
tristate "SGI GRU driver"
depends on X86_UV && SMP
@@ -602,4 +590,5 @@ source "drivers/misc/cardreader/Kconfig"
source "drivers/misc/uacce/Kconfig"
source "drivers/misc/pvpanic/Kconfig"
source "drivers/misc/mchp_pci1xxxx/Kconfig"
+source "drivers/misc/fastrpc/Kconfig"
endmenu
diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
index 153a3f4837e8..f83d73844ea5 100644
--- a/drivers/misc/Makefile
+++ b/drivers/misc/Makefile
@@ -16,7 +16,6 @@ obj-$(CONFIG_TIFM_CORE) += tifm_core.o
obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
obj-$(CONFIG_PHANTOM) += phantom.o
obj-$(CONFIG_QCOM_COINCELL) += qcom-coincell.o
-obj-$(CONFIG_QCOM_FASTRPC) += fastrpc.o
obj-$(CONFIG_SENSORS_BH1770) += bh1770glc.o
obj-$(CONFIG_SENSORS_APDS990X) += apds990x.o
obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
@@ -69,3 +68,4 @@ obj-$(CONFIG_TMR_INJECT) += xilinx_tmr_inject.o
obj-$(CONFIG_TPS6594_ESM) += tps6594-esm.o
obj-$(CONFIG_TPS6594_PFSM) += tps6594-pfsm.o
obj-$(CONFIG_NSM) += nsm.o
+obj-y += fastrpc/
diff --git a/drivers/misc/fastrpc/Kconfig b/drivers/misc/fastrpc/Kconfig
new file mode 100644
index 000000000000..3243dc56b2a0
--- /dev/null
+++ b/drivers/misc/fastrpc/Kconfig
@@ -0,0 +1,16 @@
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Qualcomm FastRPC devices
+#
+
+config QCOM_FASTRPC
+ tristate "Qualcomm FastRPC"
+ depends on ARCH_QCOM || COMPILE_TEST
+ depends on RPMSG
+ select DMA_SHARED_BUFFER
+ select QCOM_SCM
+ help
+ Provides a communication mechanism that allows for clients to
+ make remote method invocations across processor boundary to
+ applications DSP processor. Say M if you want to enable this
+ module.
\ No newline at end of file
diff --git a/drivers/misc/fastrpc/Makefile b/drivers/misc/fastrpc/Makefile
new file mode 100644
index 000000000000..77fd2b763b6b
--- /dev/null
+++ b/drivers/misc/fastrpc/Makefile
@@ -0,0 +1,2 @@
+# SPDX-License-Identifier: GPL-2.0
+obj-$(CONFIG_QCOM_FASTRPC) += fastrpc.o
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc/fastrpc.c
similarity index 100%
rename from drivers/misc/fastrpc.c
rename to drivers/misc/fastrpc/fastrpc.c
--
2.43.0



2024-06-12 18:38:25

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v1] misc: fastrpc: Move fastrpc driver to misc/fastrpc/

On Wed, Jun 12, 2024 at 12:17:28PM +0530, Ekansh Gupta wrote:
> Move fastrpc.c from misc/ to misc/fastrpc/. New C files are planned
> to be added for PD notifications and other missing features. Adding
> and maintaining new files from within fastrpc directory would be easy.
>
> Example of feature that is being planned to be introduced in a new C
> file:
> https://lore.kernel.org/all/[email protected]/
>
> Signed-off-by: Ekansh Gupta <[email protected]>
> ---
> MAINTAINERS | 2 +-
> drivers/misc/Kconfig | 13 +------------
> drivers/misc/Makefile | 2 +-
> drivers/misc/fastrpc/Kconfig | 16 ++++++++++++++++
> drivers/misc/fastrpc/Makefile | 2 ++
> drivers/misc/{ => fastrpc}/fastrpc.c | 0
> 6 files changed, 21 insertions(+), 14 deletions(-)
> create mode 100644 drivers/misc/fastrpc/Kconfig
> create mode 100644 drivers/misc/fastrpc/Makefile
> rename drivers/misc/{ => fastrpc}/fastrpc.c (100%)

Please consider whether it makes sense to move to drivers/accel instead
(and possibly writing a better Kconfig entry, specifying that the driver
is to be used to offload execution to the DSP).

> diff --git a/MAINTAINERS b/MAINTAINERS
> index d6c90161c7bf..e9c79e9063f8 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -18501,7 +18501,7 @@ M: Amol Maheshwari <[email protected]>
> L: [email protected]
> S: Maintained
> F: Documentation/devicetree/bindings/misc/qcom,fastrpc.yaml
> -F: drivers/misc/fastrpc.c
> +F: drivers/misc/fastrpc/
> F: include/uapi/misc/fastrpc.h
>
> QUALCOMM HEXAGON ARCHITECTURE
> diff --git a/drivers/misc/Kconfig b/drivers/misc/Kconfig
> index faf983680040..630e8ccd8669 100644
> --- a/drivers/misc/Kconfig
> +++ b/drivers/misc/Kconfig
> @@ -276,18 +276,6 @@ config QCOM_COINCELL
> to maintain PMIC register and RTC state in the absence of
> external power.
>
> -config QCOM_FASTRPC
> - tristate "Qualcomm FastRPC"
> - depends on ARCH_QCOM || COMPILE_TEST
> - depends on RPMSG
> - select DMA_SHARED_BUFFER
> - select QCOM_SCM
> - help
> - Provides a communication mechanism that allows for clients to
> - make remote method invocations across processor boundary to
> - applications DSP processor. Say M if you want to enable this
> - module.
> -
> config SGI_GRU
> tristate "SGI GRU driver"
> depends on X86_UV && SMP
> @@ -602,4 +590,5 @@ source "drivers/misc/cardreader/Kconfig"
> source "drivers/misc/uacce/Kconfig"
> source "drivers/misc/pvpanic/Kconfig"
> source "drivers/misc/mchp_pci1xxxx/Kconfig"
> +source "drivers/misc/fastrpc/Kconfig"
> endmenu
> diff --git a/drivers/misc/Makefile b/drivers/misc/Makefile
> index 153a3f4837e8..f83d73844ea5 100644
> --- a/drivers/misc/Makefile
> +++ b/drivers/misc/Makefile
> @@ -16,7 +16,6 @@ obj-$(CONFIG_TIFM_CORE) += tifm_core.o
> obj-$(CONFIG_TIFM_7XX1) += tifm_7xx1.o
> obj-$(CONFIG_PHANTOM) += phantom.o
> obj-$(CONFIG_QCOM_COINCELL) += qcom-coincell.o
> -obj-$(CONFIG_QCOM_FASTRPC) += fastrpc.o
> obj-$(CONFIG_SENSORS_BH1770) += bh1770glc.o
> obj-$(CONFIG_SENSORS_APDS990X) += apds990x.o
> obj-$(CONFIG_ENCLOSURE_SERVICES) += enclosure.o
> @@ -69,3 +68,4 @@ obj-$(CONFIG_TMR_INJECT) += xilinx_tmr_inject.o
> obj-$(CONFIG_TPS6594_ESM) += tps6594-esm.o
> obj-$(CONFIG_TPS6594_PFSM) += tps6594-pfsm.o
> obj-$(CONFIG_NSM) += nsm.o
> +obj-y += fastrpc/
> diff --git a/drivers/misc/fastrpc/Kconfig b/drivers/misc/fastrpc/Kconfig
> new file mode 100644
> index 000000000000..3243dc56b2a0
> --- /dev/null
> +++ b/drivers/misc/fastrpc/Kconfig
> @@ -0,0 +1,16 @@
> +# SPDX-License-Identifier: GPL-2.0-only
> +#
> +# Qualcomm FastRPC devices
> +#
> +
> +config QCOM_FASTRPC
> + tristate "Qualcomm FastRPC"
> + depends on ARCH_QCOM || COMPILE_TEST
> + depends on RPMSG
> + select DMA_SHARED_BUFFER
> + select QCOM_SCM
> + help
> + Provides a communication mechanism that allows for clients to
> + make remote method invocations across processor boundary to
> + applications DSP processor. Say M if you want to enable this
> + module.
> \ No newline at end of file
> diff --git a/drivers/misc/fastrpc/Makefile b/drivers/misc/fastrpc/Makefile
> new file mode 100644
> index 000000000000..77fd2b763b6b
> --- /dev/null
> +++ b/drivers/misc/fastrpc/Makefile
> @@ -0,0 +1,2 @@
> +# SPDX-License-Identifier: GPL-2.0
> +obj-$(CONFIG_QCOM_FASTRPC) += fastrpc.o
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc/fastrpc.c
> similarity index 100%
> rename from drivers/misc/fastrpc.c
> rename to drivers/misc/fastrpc/fastrpc.c
> --
> 2.43.0
>

--
With best wishes
Dmitry