The series addresses the following TODO item: ``` * Fix kernel module support Even the VPU firmware doesn't support a VCHI re-connect, the driver should properly handle a module unload. This also includes that all resources must be freed (kthreads, debugfs entries, ...) and global variables avoided. ``` Patch 1/5 to 3/5 are log cleanups spotted during the reading of the driver. Patch 4/5 implements .remove() function vptr so that individual devices(bcm2835-audio, bcm2835-camera, bcm2835-isp etc.) can run their cleanup when removed from the vchiq_bus, during their own module unload. Patch 5/5 stops the kthreads started by vchiq - on shutdown path. Rest of the module cleanup (debugfs entries, deregister char device etc.) is already done as part of vchiq_remove(). Testing on RPi4 for vchiq module unload: ``` uajain@ATX:~$ uname -r 6.8.0-rc1-00128-gab2b09f632fa-dirty uajain@ATX:~$ dmesg | grep vchiq [ 21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned. uajain@ATX:~$ sudo modprobe bcm2835_mmal_vchiq sudo: unable to resolve host ATX: Temporary failure in name resolution uajain@ATX:~$ dmesg | grep vchiq [ 21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 96.388148] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. uajain@ATX:~$ lsmod | grep vchiq bcm2835_mmal_vchiq 40960 0 vchiq 581632 1 bcm2835_mmal_vchiq uajain@ATX:~$ sudo rmmod bcm2835_mmal_vchiq vchiq sudo: unable to resolve host ATX: Temporary failure in name resolution uajain@ATX:~$ lsmod | grep vchiq uajain@ATX:~$ dmesg | grep vchiq [ 21.401426] vchiq: module is from the staging directory, the quality is unknown, you have been warned. [ 96.388148] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned. uajain@ATX:~$ ``` Umang Jain (5): staging: vc04_services: Remove unused function declarations staging: vc04_services: vchiq_arm: Use appropriate dev_* log helpers staging: vc04_services: Do not log error on kzalloc() staging: vc04_services: Implement vchiq_bus .remove staging: vc04_services: vchiq_core: Stop kthreads on shutdown drivers/staging/vc04_services/interface/TODO | 7 ------- .../interface/vchiq_arm/vchiq_arm.c | 18 ++++++++++-------- .../interface/vchiq_arm/vchiq_bus.c | 9 +++++++++ .../interface/vchiq_arm/vchiq_core.c | 10 +++++++--- .../interface/vchiq_arm/vchiq_core.h | 6 ------ 5 files changed, 26 insertions(+), 24 deletions(-) base-commit: 68bb540b1aefded1d58a9f956568d5316643d291 -- 2.43.0