Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: vchiq: add more tasks to the TODO list

The TODO list was missing some tasks needed before upstreaming the
device.

Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Nicolas Saenz Julienne and committed by
Greg Kroah-Hartman
7626e002 4ab0f5ce

+42
+42
drivers/staging/vc04_services/interface/vchi/TODO
··· 49 49 50 50 A short top-down description of this driver's architecture (function of 51 51 kthreads, userspace, limitations) could be very helpful for reviewers. 52 + 53 + 7) Review and comment memory barriers 54 + 55 + There is a heavy use of memory barriers in this driver, it would be very 56 + beneficial to go over all of them and, if correct, comment on their merits. 57 + Extra points to whomever confidently reviews the remote_event_*() family of 58 + functions. 59 + 60 + 8) Get rid of custom function return values 61 + 62 + Most functions use a custom set of return values, we should force proper Linux 63 + error numbers. Special care is needed for VCHIQ_RETRY. 64 + 65 + 9) Reformat core code with more sane indentations 66 + 67 + The code follows the 80 characters limitation yet tends to go 3 or 4 levels of 68 + indentation deep making it very unpleasant to read. This is specially relevant 69 + in the character driver ioctl code and in the core thread functions. 70 + 71 + 10) Reorganize file structure: Move char driver to it's own file and join both 72 + platform files 73 + 74 + The cdev is defined alongside with the platform code in vchiq_arm.c. It would 75 + be nice to completely decouple it from the actual core code. For instance to be 76 + able to use bcm2835-audio without having /dev/vchiq created. One could argue 77 + it's better for security reasons or general cleanliness. It could even be 78 + interesting to create two different kernel modules, something the likes of 79 + vchiq-core.ko and vchiq-dev.ko. This would also ease the upstreaming process. 80 + 81 + The code in vchiq_bcm2835_arm.c should fit in the generic platform file. 82 + 83 + 12) Get rid of all the struct typedefs 84 + 85 + Most structs are typedefd, it's not encouraged in the kernel. 86 + 87 + 13) Get rid of all non essential global structures and create a proper per 88 + device structure 89 + 90 + The first thing one generally sees in a probe function is a memory allocation 91 + for all the device specific data. This structure is then passed all over the 92 + driver. This is good practice since it makes the driver work regardless of the 93 + number of devices probed.