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. Testing on top of RPi 3 with staging next. Changes in v5: - Rebase over latest staging-testing that contains kthreads revert [2] - commit messages fixup - Add suggested-by in 5/11 - Use spinlock_t(typedef) instead of 'struct spinlock_t' in 8/11 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 [1]. - Add a comment for g_regs global __iomem ptr. 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/4ba0d745-fc8d-4886-b71a-1f19962e9103@moroto.mountain/T/#m440ee992442cc82ea43092b7c895823c918d105f [2]: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git/commit/?h=staging-testing&id=ebee9ca2f59e35a60a6704a79df6477b3c84ac96 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 to vchiq_state staging: vc04_services: Drop completed TODO item drivers/staging/vc04_services/Makefile | 1 - .../bcm2835-audio/bcm2835-vchiq.c | 5 +- .../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 | 252 ++++++++++-------- .../interface/vchiq_arm/vchiq_arm.h | 41 ++- .../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 | 11 +- .../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 +- 17 files changed, 255 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 base-commit: e4d5e3a9ae68250f7cc7e930ffeecba2c9f32832 -- 2.44.0