<div dir="ltr">Hi Laurent, <div><br></div><div>Thanks for your feedback.</div><div><br></div><div>1/ Camera drivers </div><div><br></div><div>I found ov2740 and imx135 sensors drivers in a LG G3 Kernel sources: </div><div><br></div><div><a href="https://github.com/daeiron/LG_G3_Kernel/blob/master/drivers/media/platform/msm/camera_v2/sensor/ov2740.c">https://github.com/daeiron/LG_G3_Kernel/blob/master/drivers/media/platform/msm/camera_v2/sensor/ov2740.c</a> </div><div><a href="https://github.com/daeiron/LG_G3_Kernel/blob/master/drivers/media/platform/msm/camera_v2/sensor/imx135.c">https://github.com/daeiron/LG_G3_Kernel/blob/master/drivers/media/platform/msm/camera_v2/sensor/imx135.c</a> <br></div><div><br></div><div>The first job is to 'port' these drivers to the Linux Kernel, right ? </div><div><br></div><div><div>2/ ACPI Binding</div><div></div></div><div><br></div><div>Do you have an example of a ChromeOS  "CIO2 ACPI device entry"  that works ? </div><div>I'd like to understand what is missing in MS ACPI tables first.</div><div><br></div><div>Can I 'patch' my ACPI tables to add these missing entries ?</div><div>At least for testing/developpement stage ...</div><div><br></div><div>Thanks </div><div>Olivier</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le ven. 3 janv. 2020 à 01:23, Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com">laurent.pinchart@ideasonboard.com</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello Olivier,<br>
<br>
On Thu, Jan 02, 2020 at 05:11:58PM +0100, Olivier Fauchon wrote:<br>
> Hi, <br>
> <br>
> I just installed Arch Linux (kernel 5.4.6) on my MS Surface Go tablet. <br>
> <br>
> It seems to use IPU3,CIO2 driver, but the camera is not working.<br>
> <br>
> Please find the acpidump, dmidecode, lsmod, lspci, lsusb outputs here: <br>
> <br>
> <a href="https://github.com/ofauchon/surface_go_linux/tree/master/logs" rel="noreferrer" target="_blank">https://github.com/ofauchon/surface_go_linux/tree/master/logs</a> <br>
>  <br>
> Hope this will help to fix the problem. <br>
> Please ask if more tests needed. <br>
<br>
Thank you for the information. This is helpful, but to fix the problem<br>
we need someone to do the actual work :-)<br>
<br>
There are a few issues to be solved here. The first one lies on the<br>
sensor side, we need drivers for the camera sensors used in your device.<br>
Looking at the DSDT ACPI table, the back and front sensors are a Sony<br>
IMX135 and an Omnivision OV2740. Neither of those two are supported<br>
upstream, but there's some code floating around that could be leveraged.<br>
<br>
The second issue lies on the CIO2 side and its ACPI bindings. The CIO2<br>
Linux driver was developed for Chrome OS, and Chrome OS devices ship<br>
ACPI tables with CIO2 information differing significantly from the ACPI<br>
tables shipped in devices developed for Windows. In particular the CIO2<br>
driver expects the CIO2 ACPI device entry to contain pointers to the<br>
camera sensors, which isn't the case on your device. A quick glance at<br>
the DSDT didn't show an easy way to get that information, but I may have<br>
missed something. An alternative would be to add board drivers to the<br>
kernel to store this kind of data. Other solutions may be possible.<br>
<br>
Once all this gets solved libcamera should be able to support your<br>
device. We just need a volunteer to do the kernel work :-)<br>
<br>
-- <br>
Regards,<br>
<br>
Laurent Pinchart<br>
</blockquote></div>