hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
TODO (general):
==================================
 
- User space interface refinement
   - Controls should be used when possible rather than private ioctl
   - No enums should be used
   - Use of MC and V4L2 subdev APIs when applicable
   - Single interface header might suffice
   - Current interface forces to configure everything at once
- Get rid of the dm365_ipipe_hw.[ch] layer
- Active external sub-devices defined by link configuration; no strcmp
  needed
- More generic platform data (i2c adapters)
- The driver should have no knowledge of possible external subdevs; see
  struct vpfe_subdev_id
- Some of the hardware control should be refactorede
- Check proper serialisation (through mutexes and spinlocks)
- Names that are visible in kernel global namespace should have a common
  prefix (or a few)
- While replacing the older driver in media folder, provide a compatibility
  layer and compatibility tests that warrants (using the libv4l's LD_PRELOAD
  approach) there is no regression for the users using the older driver.
- make it independent of arch-specific APIs (mach/mux.h).
 
Building of uImage and Applications:
==================================
 
As of now since the interface will undergo few changes all the include
files are present in staging itself, to build for dm365 follow below steps,
 
- copy vpfe.h from drivers/staging/media/davinci_vpfe/ to
  include/media/davinci/ folder for building the uImage.
- copy davinci_vpfe_user.h from drivers/staging/media/davinci_vpfe/ to
  include/uapi/linux/davinci_vpfe.h, and add a entry in Kbuild (required
  for building application).
- copy dm365_ipipeif_user.h from drivers/staging/media/davinci_vpfe/ to
  include/uapi/linux/dm365_ipipeif.h and a entry in Kbuild (required
  for building application).