[PATCH] staging: vchiq: Update TODO file

From: Ojaswin Mujoo
Date: Mon Sep 27 2021 - 14:13:56 EST

Remove completed tasks from TODO and add some relevant details to task

Signed-off-by: Ojaswin Mujoo <ojaswin98@xxxxxxxxx>
drivers/staging/vc04_services/interface/TODO | 43 ++++----------------
1 file changed, 7 insertions(+), 36 deletions(-)

diff --git a/drivers/staging/vc04_services/interface/TODO b/drivers/staging/vc04_services/interface/TODO
index 39810ce017cd..5a6b3fc2663a 100644
--- a/drivers/staging/vc04_services/interface/TODO
+++ b/drivers/staging/vc04_services/interface/TODO
@@ -16,23 +16,6 @@ some of the ones we want:
to manage these buffers as dmabufs so that we can zero-copy import
camera images into vc4 for rendering/display.

-2) Garbage-collect unused code
-One of the reasons this driver wasn't upstreamed previously was that
-there's a lot code that got built that's probably unnecessary these
-days. Once we have the set of VCHI-using drivers we want in tree, we
-should be able to do a sweep of the code to see what's left that's
-3) Make driver more portable
-Building this driver with arm/multi_v7_defconfig or arm64/defconfig
-leads to data corruption during the following command:
- vchiq_test -f 1
-This should be fixed.
4) Fix kernel module support

Even the VPU firmware doesn't support a VCHI re-connect, the driver
@@ -68,22 +51,6 @@ The code follows the 80 characters limitation yet tends to go 3 or 4 levels of
indentation deep making it very unpleasant to read. This is specially relevant
in the character driver ioctl code and in the core thread functions.

-10) Reorganize file structure: Move char driver to it's own file and join both
-platform files
-The cdev is defined alongside with the platform code in vchiq_arm.c. It would
-be nice to completely decouple it from the actual core code. For instance to be
-able to use bcm2835-audio without having /dev/vchiq created. One could argue
-it's better for security reasons or general cleanliness. It could even be
-interesting to create two different kernel modules, something the likes of
-vchiq-core.ko and vchiq-dev.ko. This would also ease the upstreaming process.
-The code in vchiq_bcm2835_arm.c should fit in the generic platform file.
-12) Get rid of all the struct typedefs
-Most structs are typedefd, it's not encouraged in the kernel.
13) Get rid of all non essential global structures and create a proper per
device structure

@@ -92,6 +59,10 @@ for all the device specific data. This structure is then passed all over the
driver. This is good practice since it makes the driver work regardless of the
number of devices probed.

-14) Clean up Sparse warnings from __user annotations. See
-vchiq_irq_queue_bulk_tx_rx(). Ensure that the address of "&waiter->bulk_waiter"
-is never disclosed to userspace.
+14) Clean up Sparse warnings from __user annotations.
+This warning can be seen in vchiq_irq_queue_bulk_tx_rx(). Ensure that the
+address of "&waiter->bulk_waiter" is never disclosed to userspace. Refer the
+following link for a better insight into the issue: