| Required firmware |
| ================= |
| |
| The atomisp driver requires the following firmware: |
| |
| - for BYT: /lib/firmware/shisp_2400b0_v21.bin |
| |
| With a version of "irci_stable_candrpv_0415_20150423_1753" to check |
| the version run: "strings shisp_2400b0_v21.bin | head -n1", sha256sum: |
| |
| 3847b95fb9f1f8352c595ba7394d55b33176751372baae17f89aa483ec02a21b shisp_2400b0_v21.bin |
| |
| The shisp_2400b0_v21.bin file with this version can be found on |
| the Android factory images of various X86 Android tablets such as |
| e.g. the Chuwi Hi8 Pro. |
| |
| - for CHT: /lib/firmware/shisp_2401a0_v21.bin |
| |
| With a version of "irci_stable_candrpv_0415_20150521_0458", sha256sum: |
| |
| e89359f4e4934c410c83d525e283f34c5fcce9cb5caa75ad8a32d66d3842d95c shisp_2401a0_v21.bin |
| |
| This can be found here: |
| https://github.com/intel-aero/meta-intel-aero-base/blob/master/recipes-kernel/linux/linux-yocto/shisp_2401a0_v21.bin |
| |
| |
| TODO |
| ==== |
| |
| 1. Items which MUST be fixed before the driver can be moved out of staging: |
| |
| * The atomisp ov2680 and ov5693 sensor drivers bind to the same hw-ids as |
| the standard ov2680 and ov5693 drivers under drivers/media/i2c, which |
| conflicts. Drop the atomisp private ov2680 and ov5693 drivers: |
| * Port various ov2680 improvements from atomisp_ov2680.c to regular ov2680.c |
| and switch to regular ov2680 driver |
| * Make atomisp work with the regular ov5693 driver and drop atomisp_ov5693 |
| |
| * Fix atomisp causing the whole machine to hang in its probe() error-exit |
| path taken in the firmware missing case |
| |
| * Remove/disable private IOCTLs |
| |
| * Remove/disable custom v4l2-ctrls |
| |
| * Remove custom sysfs files created by atomisp_drvfs.c |
| |
| * Remove abuse of priv field in various v4l2 userspace API structs |
| |
| * Without a 3A library the capture behaviour is not very good. To take a good |
| picture, the exposure/gain needs to be tuned using v4l2-ctl on the sensor |
| subdev. To fix this, support for the atomisp needs to be added to libcamera. |
| |
| This MUST be done before moving the driver out of staging so that we can |
| still make changes to e.g. the mediactl topology if necessary for |
| libcamera integration. Since this would be a userspace API break, this |
| means that at least proof-of-concept libcamera integration needs to be |
| ready before moving the driver out of staging. |
| |
| |
| 2. Items which SHOULD also be fixed eventually: |
| |
| * 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 (only a problem on BYT). |
| |
| There are some patches adding i915 GPU support floating at the Yocto's |
| Aero repository (so far, untested upstream). |
| |
| * Ensure that the driver will pass v4l2-compliance tests |
| |
| * Fix not all v4l2 apps working, e.g. cheese does not work |
| |
| * Get manufacturer's authorization to redistribute the binaries for |
| the firmware files |
| |
| * The atomisp code still has a lot of cruft which needs cleaning up |
| |
| |
| Testing |
| ======= |
| |
| Since libcamera support is not available yet, the easiest way to test for |
| now is using v4l2-ctl to select the input and gstreamer for streaming. |
| |
| To select the input run: |
| |
| v4l2-ctl -i <input> |
| |
| Where <input> is 0 (front cam) or 1 (back cam). |
| |
| The simplest gstreamer pipeline for testing running the sensor |
| at its max resolution is: |
| |
| gst-launch-1.0 v4l2src ! videoconvert ! xvimagesink sync=false |
| |
| To select e.g 640x480 as resolution use: |
| |
| gst-launch-1.0 v4l2src ! video/x-raw,format=YV12,width=640,height=480 ! \ |
| videoconvert ! xvimagesink sync=false |
| |
| And to show fps use: |
| |
| gst-launch-1.0 v4l2src ! video/x-raw,format=YV12,width=640,height=480 ! \ |
| videoconvert ! fpsdisplaysink video-sink=xvimagesink sync=false |
| |
| Often the image will be over / under exposed. This can be fixed by using |
| v4l2-ctl on the sensor subdev to tweak the exposure ctrl; or by using a GUI |
| app for v4l2-controls which also supports subdev such as the Fedora patched |
| gtk-v4l tool. |