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