Em Fri, 15 May 2020 11:42:45 +0200 Mauro Carvalho Chehab <mchehab@xxxxxxxxxx> escreveu: > Em Fri, 15 May 2020 11:10:21 +0200 > Hans de Goede <hdegoede@xxxxxxxxxx> escreveu: > > > Hi all, > > > > On 5/15/20 10:32 AM, Mauro Carvalho Chehab wrote: > > > Em Mon, 4 May 2020 15:44:20 +0200 > > > Patrik Gfeller <patrik.gfeller@xxxxxxxxx> escreveu: > > > > > >>>> Maybe this is related to my partial build (only the module to test if > > >>>> it builds). I'll now do a full build of the kernel. > > >>> > > >>> Yeah, either that or there are some config options with different values. > > >>> > > >>> I was able to do a full build here without the above errors, although > > >>> I had to turn of some CONFIG options that were otherwise failing. > > >> > > >> Strange - I do not get it :-/ ... can you send me the .config file and > > >> Makefile you use; probably I missed something. > > > > > > I posted an alternate version, with the driver from the Yocto Aero tree > > > ported to Kernel 5.7-rc2. The Kernel sources used are at this directory: > > > > > > https://download.01.org/aero/deb/pool/main/l/linux-4.4.76-aero-1.3/ > > > > > > Such port is at the atomisp_yocto_v1: > > > > > > https://git.linuxtv.org/mchehab/experimental.git/log/?h=atomisp_yocto_v1 > > > > > > The goal of this port is not for upstreaming it. Instead, it is meant > > > to be used just for testing, using a version that should work - at least > > > with the Intel Aero board with the Aero drone's camera (tests needed, as > > > I don't have myself such hardware). This version is ISP2401 only. > > > > > > The firmware for it is at: > > > https://download.01.org/aero/deb/pool/main/f/firmware-atomisp/firmware-atomisp_0.1.orig.tar.xz > > > > > > If the ISP revision is equal or bigger than rev 02, this file should be > > > renamed to: > > > > > > shisp_2401b0_v21.bin > > > > > > Before getting excited, this version didn't work so far on my hardware: > > > > > > atomisp: Loaded firmware version 'irci_stable_candrpv_0415_20150521_0458'. > > > atomisp-isp2 0000:00:03.0: css load fw failed. > > > atomisp-isp2 0000:00:03.0: Failed to init css. > > > > > > (I didn't try to check why it is failing yet - maybe it is just > > > some version port related issue) > > > > > > If someone has access to the Intel Aero board, I'd appreciate if you > > > could test it and send the results. If it fails too, it would be > > > nice to have the dmesg output of this version and the dmesg from > > > a version which works. > > > > Mauro, first of all thank you for working on this. > > > > I wonder if you have tried to build and run the linux-4.4.76-aero-1.3 > > kernel on your T101HA ? It would be interesting to see if that one > > does (not) have the "css load fw failed" errors and who knows you > > might even be able to get that to actually show some sort of picture > > from one of the 2 sensors on the T101HA ? > > Yes, I tried, but the Kernel doesn't even boot. Grub2 simply doesn't > show any messages when trying to boot a Kernel 4.4 Kernel on it. > > As this device doesn't have any physical serial ports, and the only > USB cables I have are based on a chipset not supported by GRUB[1], I > can't see where it is failing. > > [1] A side note to myself: I need to spend some time checking what > serial cables would work with grub2 and try to buy one such cable. Eureka! Looking at the Yocto's port, I noticed this comment: #ifdef CONFIG_INTEL_MID_ISP /* Moorefield lacks PCI PM, BYT advertises it but it's broken, use PUNIT */ #define ATOMISP_INTERNAL_PM (IS_MOFD || IS_BYT || IS_CHT) #endif And some other codes like this: #ifdef CONFIG_INTEL_MID_ISP if (ATOMISP_INTERNAL_PM) { ret = atomisp_mrfld_power_up(isp); if (ret) return ret; } #endif Basically, for some types of hardware, it has to disable the atomisp_mrfld_power_up() and atomisp_mrfld_power_down() calls. So, a hack like this: <code snip> diff --git a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c index 8c7b42221659..5c1f8bcc24f4 100644 --- a/drivers/staging/media/atomisp/pci/atomisp_v4l2.c +++ b/drivers/staging/media/atomisp/pci/atomisp_v4l2.c @@ -824,12 +824,15 @@ static int atomisp_mrfld_power(struct atomisp_device *isp, bool enable) /* Workaround for pmu_nc_set_power_state not ready in MRFLD */ int atomisp_mrfld_power_down(struct atomisp_device *isp) { +return 0; + return atomisp_mrfld_power(isp, false); } /* Workaround for pmu_nc_set_power_state not ready in MRFLD */ int atomisp_mrfld_power_up(struct atomisp_device *isp) { +return 0; return atomisp_mrfld_power(isp, true); } </code snip> Made the firmware to properly load, and the driver now shows signs of life: v4l2-ctl --all Driver Info: Driver name : atomisp Card type : ATOM ISP Bus info : PCI:0000:00:03.0 Driver version : 5.7.0 Capabilities : 0xa4200003 Video Capture Video Output Streaming Extended Pix Format Device Capabilities Device Caps : 0x24200003 Video Capture Video Output Streaming Extended Pix Format Media Driver Info: Driver name : atomisp-isp2 Model : Intel Atom ISP Serial : Bus info : Media version : 5.7.0 Hardware revision: 0x00002010 (8208) Driver version : 5.7.0 Interface Info: ID : 0x03000016 Type : V4L Video Entity Info: ID : 0x00000014 (20) Name : ATOMISP ISP CAPTURE output Function : V4L2 I/O Pad 0x01000015 : 0: Sink Link 0x02000062: from remote pad 0x1000010 of entity 'ATOMISP_SUBDEV_0': Data Priority: 0 Video input : 0 (ATOMISP ISP CAPTURE output: ok) Format Video Capture: Width/Height : 0/0 Pixel Format : '' Field : Any Bytes per Line : 0 Size Image : 0 Colorspace : Default Transfer Function : Default (maps to Rec. 709) YCbCr/HSV Encoding: Default (maps to ITU-R 601) Quantization : Default (maps to Full Range) Flags : Streaming Parameters Video Capture: Frames per second: invalid (0/0) Read buffers : 0 error 22 getting ctrl Automatic White Balance error 22 getting ctrl Red Balance error 22 getting ctrl Blue Balance error 22 getting ctrl Gamma error 22 getting ctrl exposure error 22 getting ctrl Light frequency filter image_color_effect 0x0098091f (int) : min=0 max=9 step=1 default=0 value=0 error 22 getting ctrl Image Color Effect CbCr bad_pixel_correction 0x08000000 (int) : min=0 max=1 step=1 default=0 value=1 gdc_cac 0x08000001 (int) : min=0 max=1 step=1 default=0 value=0 video_stablization 0x08000002 (int) : min=0 max=1 step=1 default=0 value=0 fixed_pattern_noise_reduction 0x08000003 (int) : min=0 max=1 step=1 default=0 value=0 false_color_correction 0x08000004 (int) : min=0 max=1 step=1 default=0 value=0 low_light_mode 0x08000005 (bool) : default=1 value=0 It doesn't stream on yet: [ 1040.688130] atomisp-isp2 0000:00:03.0: sh_css_init success [ 1040.688748] BUG: unable to handle page fault for address: 0000000000004518 [ 1040.688754] #PF: supervisor read access in kernel mode [ 1040.688757] #PF: error_code(0x0000) - not-present page [ 1040.688760] PGD 0 P4D 0 But at least it is now showing some signals of life. There are still lots of work to do before it can run, but it sounds that we'll eventually get there. Thanks, Mauro