| 1. A single AtomISP driver needs to be implemented to support both BYT and |
| CHT platforms. The current driver is a mechanical and hand combined merge |
| of the two using an ifdef ISP2401 to select the CHT version, which at the |
| moment is not enabled. Eventually this should become a runtime if check, |
| but there are some quite tricky things that need sorting out before that |
| will be possible. |
| |
| 2. The file structure needs to get tidied up to resemble a normal Linux |
| driver. |
| |
| 3. Lots of the midlayer glue. unused code and abstraction needs removing. |
| |
| 3. The sensor drivers read MIPI settings from EFI variables or default to the |
| settings hard-coded in the platform data file for different platforms. |
| This isn't ideal but may be hard to improve as this is how existing |
| platforms work. |
| |
| 4. The sensor drivers use the regulator framework API. In the ideal world it |
| would be using ACPI but that's not how the existing devices work. |
| |
| 5. The AtomISP driver includes some special IOCTLS (ATOMISP_IOC_XXXX_XXXX) |
| that may need some cleaning up. |
| |
| 6. Correct Coding Style. Please don't send coding style patches for this |
| driver until the other work is done. |
| |
| 7. The ISP code depends on the exact FW version. The version defined in |
| BYT: |
| drivers/staging/media/atomisp/pci/atomisp2/css2400/sh_css_firmware.c |
| static const char *release_version = STR(irci_stable_candrpv_0415_20150521_0458); |
| CHT: |
| drivers/staging/media/atomisp/pci/atomisp2/css/sh_css_firmware.c |
| static const char *release_version = STR(irci_ecr-master_20150911_0724); |
| |
| At some point we may need to round up a few driver versions and see if |
| there are any specific things that can be done to fold in support for |
| multiple firmware versions. |
| |
| |
| Limitations: |
| |
| 1. Currently the patch only support some camera sensors |
| gc2235/gc0310/0v2680/ov2722/ov5693/mt9m114... |
| |
| 2. To test the patches, you also need the ISP firmware |
| |
| for BYT:/lib/firmware/shisp_2400b0_v21.bin |
| for CHT:/lib/firmware/shisp_2401a0_v21.bin |
| |
| The firmware files will usually be found in /etc/firmware on an Android |
| device but can also be extracted from the upgrade kit if you've managed |
| to lose them somehow. |
| |
| 3. Without a 3A libary the capture behaviour is not very good. To take a good |
| picture, you need tune ISP parameters by IOCTL functions or use a 3A libary |
| such as libxcam. |
| |
| 4. The driver is intended to drive the PCI exposed versions of the device. |
| It will not detect those devices enumerated via ACPI as a field of the |
| i915 GPU driver. |
| |
| 5. The driver supports only v2 of the IPU/Camera. It will not work with the |
| versions of the hardware in other SoCs. |
| |