mbox series

[v12,0/6] staging: vc04_services: vchiq: Register devices with a custom bus_type

Message ID 20230923143200.268063-1-umang.jain@ideasonboard.com (mailing list archive)
Headers show
Series staging: vc04_services: vchiq: Register devices with a custom bus_type | expand

Message

Umang Jain Sept. 23, 2023, 2:31 p.m. UTC
The patch series added a new bus type vchiq_bus_type and registers
child devices in order to move them away from using platform
device/driver.

Tested on RPi-3-b with media tree master branch.

Patch 1/6 and 2/6 adds explicit DMA mask to bcm2835-camera
and bcm2835-audio respectively to avoid regression when moving
to away from platform device/driver model.

Patch 3/6 and 4/6 adds a new bus_type and registers them to vchiq
interface

Patch 5/6 and 6/6 moves the bcm2835-camera and bcm2835-audio
to the new bus respectively

Patch 5/5 removes a platform registeration helper which is no
longer required.

Changes in v12:
- Add initial two patches to set DMA Mask explicitly to avoid regression
- fixup vchiq_device.c bad squash in v11
- Rename vchiq_device.[ch] to vchiq_bus.[ch]
- Fix memory leak if device cannot be registered
- Make vchiq_bus_type_match() use bool values
- vchiq_register_child() helper removal folded in 6/6
  instead of creating extra patch.

Changes in v11:
- Move setting of DMA mask in child devices (3/5 and 4/5)
- Fixes "DMA mask not set issue" reported in v10.

Changes in v10:
- fix dma_attr WARN issue with bcm2835-audio module loading
- Unregister bus on parent platform device fails to register
- Reword commit to highlight bcm2835_audio to bcm2835-audio name change

Changes in v9:
- Fix module autoloading
- Implement bus_type's probe() callback to load drivers
- Implement bus_type's uevent() to make sure appropriate drivers are
  loaded when device are registed from vchiq.

Changes in v8:
- Drop dual licensing. Instead use GPL-2.0 only for patch 1/5

Changes in v7:
(5 out of 6 patches from v6 merged)
- Split the main patch (6/6) as requested.
- Use struct vchiq_device * instead of struct device * in
  all bus functions.
- Drop additional name attribute displayed in sysfs (redundant info)
- Document vchiq_interface doesn't enumerate device discovery
- remove EXPORT_SYMBOL_GPL(vchiq_bus_type)

Changes in v6:
- Split struct device and struct driver wrappers in vchiq_device.[ch]
- Move vchiq_bus_type definition to vchiq_device.[ch] as well
- return error on bus_register() failure
- drop dma_set_mask_and_coherent
- trivial variable name change

Changes in v5:
- Fixup missing "staging: " in commits' subject line
- No code changes from v4

Changes in v4:
- Introduce patches to drop include directives from Makefile

Changes in v3:
- Rework entirely to replace platform devices/driver model

-v2:
https://lore.kernel.org/all/20221222191500.515795-1-umang.jain@ideasonboard.com/

-v1:
https://lore.kernel.org/all/20221220084404.19280-1-umang.jain@ideasonboard.com/

Umang Jain (6):
  staging: vc04_services: bcm2835-camera: Explicitly set DMA mask
  staging: vc04_services: bcm2835-audio: Explicitly set DMA mask
  staging: vc04_services: vchiq_arm: Add new bus type and device type
  staging: vc04_services: vchiq_arm: Register vchiq_bus_type
  staging: bcm2835-camera: Register bcm2835-camera with vchiq_bus_type
  staging: bcm2835-audio: Register bcm2835-audio with vchiq_bus_type

 drivers/staging/vc04_services/Makefile        |   1 +
 .../vc04_services/bcm2835-audio/bcm2835.c     |  26 +++--
 .../bcm2835-camera/bcm2835-camera.c           |  23 ++--
 .../interface/vchiq_arm/vchiq_arm.c           |  52 ++++-----
 .../interface/vchiq_arm/vchiq_bus.c           | 100 ++++++++++++++++++
 .../interface/vchiq_arm/vchiq_bus.h           |  54 ++++++++++
 6 files changed, 209 insertions(+), 47 deletions(-)
 create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c
 create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.h


base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d

Comments

Umang Jain Sept. 23, 2023, 2:33 p.m. UTC | #1
Hi all,

On 9/23/23 8:01 PM, Umang Jain wrote:
> The patch series added a new bus type vchiq_bus_type and registers
> child devices in order to move them away from using platform
> device/driver.
>
> Tested on RPi-3-b with media tree master branch.
>
> Patch 1/6 and 2/6 adds explicit DMA mask to bcm2835-camera
> and bcm2835-audio respectively to avoid regression when moving
> to away from platform device/driver model.
>
> Patch 3/6 and 4/6 adds a new bus_type and registers them to vchiq
> interface
>
> Patch 5/6 and 6/6 moves the bcm2835-camera and bcm2835-audio
> to the new bus respectively
>
> Patch 5/5 removes a platform registeration helper which is no
> longer required.

Please ignore theĀ  just above line, forgot to delete while editing the 
cover letter.
>
> Changes in v12:
> - Add initial two patches to set DMA Mask explicitly to avoid regression
> - fixup vchiq_device.c bad squash in v11
> - Rename vchiq_device.[ch] to vchiq_bus.[ch]
> - Fix memory leak if device cannot be registered
> - Make vchiq_bus_type_match() use bool values
> - vchiq_register_child() helper removal folded in 6/6
>    instead of creating extra patch.
>
> Changes in v11:
> - Move setting of DMA mask in child devices (3/5 and 4/5)
> - Fixes "DMA mask not set issue" reported in v10.
>
> Changes in v10:
> - fix dma_attr WARN issue with bcm2835-audio module loading
> - Unregister bus on parent platform device fails to register
> - Reword commit to highlight bcm2835_audio to bcm2835-audio name change
>
> Changes in v9:
> - Fix module autoloading
> - Implement bus_type's probe() callback to load drivers
> - Implement bus_type's uevent() to make sure appropriate drivers are
>    loaded when device are registed from vchiq.
>
> Changes in v8:
> - Drop dual licensing. Instead use GPL-2.0 only for patch 1/5
>
> Changes in v7:
> (5 out of 6 patches from v6 merged)
> - Split the main patch (6/6) as requested.
> - Use struct vchiq_device * instead of struct device * in
>    all bus functions.
> - Drop additional name attribute displayed in sysfs (redundant info)
> - Document vchiq_interface doesn't enumerate device discovery
> - remove EXPORT_SYMBOL_GPL(vchiq_bus_type)
>
> Changes in v6:
> - Split struct device and struct driver wrappers in vchiq_device.[ch]
> - Move vchiq_bus_type definition to vchiq_device.[ch] as well
> - return error on bus_register() failure
> - drop dma_set_mask_and_coherent
> - trivial variable name change
>
> Changes in v5:
> - Fixup missing "staging: " in commits' subject line
> - No code changes from v4
>
> Changes in v4:
> - Introduce patches to drop include directives from Makefile
>
> Changes in v3:
> - Rework entirely to replace platform devices/driver model
>
> -v2:
> https://lore.kernel.org/all/20221222191500.515795-1-umang.jain@ideasonboard.com/
>
> -v1:
> https://lore.kernel.org/all/20221220084404.19280-1-umang.jain@ideasonboard.com/
>
> Umang Jain (6):
>    staging: vc04_services: bcm2835-camera: Explicitly set DMA mask
>    staging: vc04_services: bcm2835-audio: Explicitly set DMA mask
>    staging: vc04_services: vchiq_arm: Add new bus type and device type
>    staging: vc04_services: vchiq_arm: Register vchiq_bus_type
>    staging: bcm2835-camera: Register bcm2835-camera with vchiq_bus_type
>    staging: bcm2835-audio: Register bcm2835-audio with vchiq_bus_type
>
>   drivers/staging/vc04_services/Makefile        |   1 +
>   .../vc04_services/bcm2835-audio/bcm2835.c     |  26 +++--
>   .../bcm2835-camera/bcm2835-camera.c           |  23 ++--
>   .../interface/vchiq_arm/vchiq_arm.c           |  52 ++++-----
>   .../interface/vchiq_arm/vchiq_bus.c           | 100 ++++++++++++++++++
>   .../interface/vchiq_arm/vchiq_bus.h           |  54 ++++++++++
>   6 files changed, 209 insertions(+), 47 deletions(-)
>   create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.c
>   create mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_bus.h
>
>
> base-commit: 0bb80ecc33a8fb5a682236443c1e740d5c917d1d
Stefan Wahren Sept. 30, 2023, 10:10 a.m. UTC | #2
Am 23.09.23 um 16:31 schrieb Umang Jain:
> The patch series added a new bus type vchiq_bus_type and registers
> child devices in order to move them away from using platform
> device/driver.
>
> Tested on RPi-3-b with media tree master branch.
>
> Patch 1/6 and 2/6 adds explicit DMA mask to bcm2835-camera
> and bcm2835-audio respectively to avoid regression when moving
> to away from platform device/driver model.
>
> Patch 3/6 and 4/6 adds a new bus_type and registers them to vchiq
> interface
>
> Patch 5/6 and 6/6 moves the bcm2835-camera and bcm2835-audio
> to the new bus respectively
>
> Patch 5/5 removes a platform registeration helper which is no
> longer required.
>
> Changes in v12:
> - Add initial two patches to set DMA Mask explicitly to avoid regression
> - fixup vchiq_device.c bad squash in v11
> - Rename vchiq_device.[ch] to vchiq_bus.[ch]
> - Fix memory leak if device cannot be registered
> - Make vchiq_bus_type_match() use bool values
> - vchiq_register_child() helper removal folded in 6/6
>    instead of creating extra patch.

The whole series is

Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
gregkh@linuxfoundation.org Oct. 5, 2023, 8:05 a.m. UTC | #3
On Sat, Sep 23, 2023 at 08:01:54PM +0530, Umang Jain wrote:
> The patch series added a new bus type vchiq_bus_type and registers
> child devices in order to move them away from using platform
> device/driver.
> 
> Tested on RPi-3-b with media tree master branch.

Thanks for sticking with this through so many different revisions. I
only had minor comments on the series, you can address them in follow-on
patches if needed (one at the least is needed.)  All are now queued up
in my tree.

greg k-h