Re: [PATCH] i3c: master: dw: split dw-i3c-master.c into master and bus specific parts

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Boris,


On 22/11/18 20:02, Boris Brezillon wrote:
On Thu, 22 Nov 2018 17:54:54 +0000
Vitor Soares <vitor.soares@xxxxxxxxxxxx> wrote:

From: Vitor Soares <soares@xxxxxxxxxxxx>

This patch slipts dw-i3c-master.c into three pieces:
	dw-i3c-master.c - contains the code that interacts directly with the
	core in master mode.

	dw-i3c-platdrv.c - contains the code specific to the platform driver.

	dw-i3c-core.h - contains the definitions and declarations shared by
	dw-i3c-master and dw-i3c-platdrv

This patch will allow SOC integrators to add their code specific to
DesignWare I3C IP.
Isn't it too early to do this change? Can't we wait until we have a SoC
that actually embeds this IP?


I'm trying to turn it more flexible so the other can reuse the code.



Signed-off-by: Vitor Soares <soares@xxxxxxxxxxxx>
---
  drivers/i3c/master/Kconfig          |   9 +-
  drivers/i3c/master/Makefile         |   5 +-
  drivers/i3c/master/dw-i3c-core.h    | 214 ++++++++++++++++++++++++++
  drivers/i3c/master/dw-i3c-master.c  | 299 ++----------------------------------
  drivers/i3c/master/dw-i3c-platdrv.c | 112 ++++++++++++++
I'd prefer to have a dw/ subdir where you'd place all dw files.


Sure. I will change to this:

../dwc
   |-core.h
   |-master.c
   |-platdrv.c


so the user doesn't need to write dw-i3c.. several times. The folder name is the same as for other subsystem (e.g. PCI).

What do you think?


  5 files changed, 349 insertions(+), 290 deletions(-)
  create mode 100644 drivers/i3c/master/dw-i3c-core.h
  create mode 100644 drivers/i3c/master/dw-i3c-platdrv.c

diff --git a/drivers/i3c/master/Kconfig b/drivers/i3c/master/Kconfig
index 8ee1ce6..fdc6e46 100644
--- a/drivers/i3c/master/Kconfig
+++ b/drivers/i3c/master/Kconfig
@@ -5,9 +5,14 @@ config CDNS_I3C_MASTER
  	help
  	  Enable this driver if you want to support Cadence I3C master block.
-config DW_I3C_MASTER
-	tristate "Synospsys DesignWare I3C master driver"
+config DW_I3C_CORE
+	tristate
+
+config DW_I3C_PLATFORM
+	tristate "Synospsys DesignWare I3C Platform driver"
+	select DW_I3C_CORE
  	depends on I3C
+	depends on HAS_IOMEM
  	depends on !(ALPHA || PARISC)
  	# ALPHA and PARISC needs {read,write}sl()
  	help
diff --git a/drivers/i3c/master/Makefile b/drivers/i3c/master/Makefile
index fc53939..004ad1c 100644
--- a/drivers/i3c/master/Makefile
+++ b/drivers/i3c/master/Makefile
@@ -1,2 +1,5 @@
  obj-$(CONFIG_CDNS_I3C_MASTER)		+= i3c-master-cdns.o
-obj-$(CONFIG_DW_I3C_MASTER)		+= dw-i3c-master.o
+obj-$(CONFIG_DW_I3C_CORE)		+= dw-i3c-core.o
+dw-i3c-core-objs			:= dw-i3c-master.o
+obj-$(CONFIG_DW_I3C_PLATFORM)		+= dw-i3c-platform.o
+dw-i3c-platform-objs			:= dw-i3c-platdrv.o
Do we really have to create one module for the core and one per SoC?
Can't we have everything in the same .ko?


This will help the introduction of new modules. The design in my mind is to have:

-core.h

-common.c

-master.c

-slave.c

...

I'm not sure if make sense to change core.h to common.h.



Thaks for your feedback.


Best regards,

Vitor Soares




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux