65 lines
2.6 KiB
Plaintext
65 lines
2.6 KiB
Plaintext
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.
|
|
|