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.

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).
