[PATCH v4 0/5] vchiq: Patch to separate platform and cdev code

From: Ojaswin Mujoo
Date: Wed Jul 21 2021 - 12:21:24 EST


Hello,

This patchset adderesses the TODO item number 10 specified at:

drivers/staging/vc04-services/interface/TODO

For reference, the task is:

10) Reorganize file structure: Move char driver to it's own file and join
both platform files

The cdev is defined alongside with the platform code in vchiq_arm.c. It
would be nice to completely decouple it from the actual core code. For
instance to be able to use bcm2835-audio without having /dev/vchiq created.
One could argue it's better for security reasons or general cleanliness. It
could even be interesting to create two different kernel modules, something
the likes of vchiq-core.ko and vchiq-dev.ko. This would also ease the
upstreaming process.

A summary of the patches is as follows:

- Patch 1: Move cdev init code into a function
- Patch 2: Shift some devlarations from vchiq_arm.c to vchiq_arm.h for
sharing
- Patch 3: Move vchiq cdev init code from vchiq_arm.c into vchiq_dev.c
- Patch 4: Decouple cdev code by defining a Kconfig entry to allow
optional compilation of it.
- Patch 5: Merge code in vchiq_2835_arm.c to vchiq_arm.c

Changes since v3 [2]:

* In Patch 5, replace forward declarations of some of the functions with
function definition

Changes since v2 [1]:

* In Patch 1, as suggested, I have added error handling code back to
ensure the driver exits when there is an error in creating vchiq cdev

* I have built this patch against the right kernel (gregkh/staging,
staging-next branch) to avoid introducing any unwanted inconsistencies
like whitespace changes

I have tested the patch using vchiq_test utility on RPi 3B+.

Regards,
Ojaswin

[1] v2: https://lore.kernel.org/patchwork/cover/1449117/
[2] v3: https://lore.kernel.org/patchwork/cover/1453915/

Ojaswin Mujoo (5):
staging: vchiq: Refactor vchiq cdev code
staging: vchiq: Move certain declarations to vchiq_arm.h
staging: vchiq: Move vchiq char driver to its own file
staging: vchiq: Make creation of vchiq cdev optional
staging: vchiq: Combine vchiq platform code into single file

drivers/staging/vc04_services/Kconfig | 10 +
drivers/staging/vc04_services/Makefile | 5 +-
.../interface/vchiq_arm/vchiq_2835_arm.c | 564 ----
.../interface/vchiq_arm/vchiq_arm.c | 2330 +++++------------
.../interface/vchiq_arm/vchiq_arm.h | 82 +
.../interface/vchiq_arm/vchiq_dev.c | 1440 ++++++++++
6 files changed, 2251 insertions(+), 2180 deletions(-)
delete mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_dev.c

--
2.25.1