|
1 |
| -1. A single AtomISP driver needs to be implemented to support both BYT and |
2 |
| - CHT platforms. The current driver is a mechanical and hand combined merge |
3 |
| - of the two using an ifdef ISP2401 to select the CHT version, which at the |
4 |
| - moment is not enabled. Eventually this should become a runtime if check, |
5 |
| - but there are some quite tricky things that need sorting out before that |
6 |
| - will be possible. |
| 1 | +1. A single AtomISP driver needs to be implemented to support both |
| 2 | + Baytrail (BYT and Cherrytail (CHT) platforms at the same time. |
| 3 | + The current driver is a mechanical and hand combined merge of the |
| 4 | + two using several runtime macros, plus some ifdef ISP2401 to select the |
| 5 | + CHT version. Yet, there are some ISP-specific headers that change the |
| 6 | + driver's behavior during compile time. |
7 | 7 |
|
8 | 8 | 2. The file structure needs to get tidied up to resemble a normal Linux
|
9 | 9 | driver.
|
|
12 | 12 |
|
13 | 13 | 3. The sensor drivers read MIPI settings from EFI variables or default to the
|
14 | 14 | settings hard-coded in the platform data file for different platforms.
|
15 |
| - This isn't ideal but may be hard to improve as this is how existing |
16 |
| - platforms work. |
| 15 | + It should be possible to improve it, by adding support for _DSM tables. |
17 | 16 |
|
18 |
| -4. The sensor drivers use the regulator framework API. In the ideal world it |
19 |
| - would be using ACPI but that's not how the existing devices work. |
| 17 | +4. The sensor drivers use PMIC and the regulator framework API. In the ideal |
| 18 | + world it would be using ACPI but that's not how the existing devices work. |
20 | 19 |
|
21 | 20 | 5. The AtomISP driver includes some special IOCTLS (ATOMISP_IOC_XXXX_XXXX)
|
22 |
| - that may need some cleaning up. |
| 21 | + and controls that require some cleanup. |
23 | 22 |
|
24 | 23 | 6. Correct Coding Style. Please don't send coding style patches for this
|
25 | 24 | driver until the other work is done.
|
26 | 25 |
|
27 |
| -7. The ISP code depends on the exact FW version. The version defined in |
28 |
| - BYT: |
29 |
| - drivers/staging/media/atomisp/pci/atomisp2/pci/sh_css_firmware.c |
30 |
| - static const char *release_version = STR(irci_stable_candrpv_0415_20150521_0458); |
| 26 | +7. The ISP code has some dependencies of the exact FW version. |
| 27 | + The version defined in pci/sh_css_firmware.c: |
| 28 | + BYT: |
| 29 | + static const char *isp2400_release_version = STR(irci_stable_candrpv_0415_20150521_0458); |
| 30 | + |
31 | 31 | CHT:
|
32 |
| - drivers/staging/media/atomisp/pci/atomisp2/css/sh_css_firmware.c |
33 |
| - static const char *release_version = STR(irci_ecr-master_20150911_0724); |
| 32 | + static const char *isp2401_release_version = STR(irci_ecr - master_20150911_0724); |
| 33 | + |
| 34 | + Those versions don't seem to be available anymore. On the tests we've |
| 35 | + done so far, this version also seems to work for isp2401: |
| 36 | + |
| 37 | + irci_stable_candrpv_0415_20150521_0458 |
34 | 38 |
|
35 | 39 | At some point we may need to round up a few driver versions and see if
|
36 | 40 | there are any specific things that can be done to fold in support for
|
|
50 | 54 |
|
51 | 55 | 11. Switch from videobuf1 to videobuf2. Videobuf1 is being removed!
|
52 | 56 |
|
| 57 | +12. There are some memory management code that seems to be |
| 58 | + forked from Kernel 3.10 inside hmm/ directory. Get rid of it, |
| 59 | + making the driver to use a more standard memory management module. |
| 60 | + |
| 61 | +13. While the driver probes the hardware and reports itself as a |
| 62 | + V4L2 driver, there are still some issues preventing it to |
| 63 | + stream (at least it doesn't with the standard V4L2 applications. |
| 64 | + Didn't test yet with some custom-made app for this driver). |
| 65 | + Solving the related bugs and issues preventing it to work is |
| 66 | + needed. |
| 67 | + |
53 | 68 | Limitations:
|
54 | 69 |
|
55 | 70 | 1. To test the patches, you also need the ISP firmware
|
56 | 71 |
|
57 |
| - for BYT:/lib/firmware/shisp_2400b0_v21.bin |
58 |
| - for CHT:/lib/firmware/shisp_2401a0_v21.bin |
| 72 | + for BYT: /lib/firmware/shisp_2400b0_v21.bin |
| 73 | + for CHT: /lib/firmware/shisp_2401a0_v21.bin |
59 | 74 |
|
60 | 75 | The firmware files will usually be found in /etc/firmware on an Android
|
61 | 76 | device but can also be extracted from the upgrade kit if you've managed
|
|
0 commit comments