This series aims to drop the remaining (non-essential) global members to address the following TODO item: ``` * Get rid of all non essential global structures and create a proper per device structure ``` Mainly the global members are moved to be contained inside platform driver data. They can be access via platform_get_drvdata(). More re-fractoring has gone into this version now. Please look for individual commit for details. --- NOTE: Series has been developed on top of [1] "[PATCH] staging: vc04_services: Stop kthreads on .remove" The fate of that patch is still undecided, so we need to take into account on the direction the discussions take. That will only affect Patch 10/11 of this series, rest is fairly independent in that regard. --- Changes in v4: - New patch to drop vchiq_connected.[ch] files and move the functions to vchiq_arm.c (5/11) - De-globalise remapped memory region pointer (7/11) - De-globalise global spinlocks too (8/11) - De-globalise global vchiq_pointer g_state (10/11) - commit message updates and trivial variable renaming Changes in v3: - Rework 2/6 to 5/6 as per Laurent's review in v2 [2]. - Add a comment for g_regs global __iomem ptr. [1]: https://lore.kernel.org/linux-staging/4ba0d745-fc8d-4886-b71a-1f19962e9103@moroto.mountain/T/#m440ee992442cc82ea43092b7c895823c918d105f Changes in v2: - Found even more g_* global variables than v1, so new patches to drop them - Introduce 1/6 as suggested during v1 review - Introuce 6/6 to cleanup the TODO list [1]: https://lore.kernel.org/linux-staging/171161507013.3072637.12125782507523919379@xxxxxxxxxxxxxxxxxxxxxxxx/T/#m1d3de7d2fa73b2447274858353bbd4a0c3a8ba14 Umang Jain (11): staging: vc04_services: Drop g_once_init global variable staging: vc04_services: vchiq_arm: Split driver static and runtime data staging: vc04_services: vchiq_arm: Drop g_cache_line_size staging: vc04_services: Move variables for tracking connections staging: vc04_services: Drop vchiq_connected.[ch] files staging: vc04_services: Move global variables tracking allocated pages staging: vc04_services: Move global memory mapped pointer staging: vc04_services: Move spinlocks to vchiq_state staging: vc04_services: vchiq_mmal: Rename service_callback() staging: vc04_services: Move global g_state vchiq_state pointer staging: vc04_services: Drop completed TODO item drivers/staging/vc04_services/Makefile | 1 - .../bcm2835-camera/bcm2835-camera.c | 4 +- .../include/linux/raspberrypi/vchiq.h | 4 +- drivers/staging/vc04_services/interface/TODO | 15 -- .../interface/vchiq_arm/vchiq_arm.c | 253 ++++++++++-------- .../interface/vchiq_arm/vchiq_arm.h | 56 +++- .../interface/vchiq_arm/vchiq_bus.c | 3 + .../interface/vchiq_arm/vchiq_bus.h | 3 + .../interface/vchiq_arm/vchiq_connected.c | 74 ----- .../interface/vchiq_arm/vchiq_connected.h | 12 - .../interface/vchiq_arm/vchiq_core.c | 51 ++-- .../interface/vchiq_arm/vchiq_core.h | 10 +- .../interface/vchiq_arm/vchiq_debugfs.c | 5 +- .../interface/vchiq_arm/vchiq_dev.c | 34 +-- .../vc04_services/vchiq-mmal/mmal-vchiq.c | 14 +- .../vc04_services/vchiq-mmal/mmal-vchiq.h | 3 +- 16 files changed, 265 insertions(+), 277 deletions(-) delete mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_connected.c delete mode 100644 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_connected.h -- 2.43.0