Re: [PATCH 00/17] various fixes for atomisp to make it work

Tsuchiya Yuto
2021-10-19T13:50:36Z

On Mon, 2021-10-18 at 09:48 +0200, Hans de Goede wrote:
> <Added some more people to the Cc who are also definitely interested in this>

[removed Alan from Cc as not reachable]

As I also mentioned on another thread, sorry, I failed to add people
to Cc who I should have definitly added...

And I might have sent all of the emails to people who I should not
by blindly using `scripts/get_maintainer.pl` for the first patch with
`--cc-cmd`...

Sorry if that's the case for some of you...

> Hi Tsuchiya,
>
> On 10/17/21 18:19, Tsuchiya Yuto wrote:
> > Hi all,
> >
> > This patch series contains fixes for atomisp to work (again). Tested on
> > Microsoft Surface 3 (Windows) and Xiaomi Mi Pad 2 (Android model) with
> > v5.15-rc5. Both are Cherry Trail (ISP2401) devices.
> >
> > I'm still not used to Linux patch sending flow. Sorry in advance
> > if there is some weirdness :-) but I did my best.
>
> You actually did pretty good AFAICT.
>
> Also thank you so much for working on this. Finally getting working
> atomisp2 support is awesome!
>
> I actually have been working on and off on this myself
> (even did a bit of work on it this weekend).

Thanks! and I'm glad you're also interested in this!

> 1. Find android (5.1) x86 kernel sources which I can build from
> source and get a working Android (on a device with Android pre-installed)
> with a kernel build from source -> Done
>
> 2. Get a regular Linux distro to boot with the kernel from 1. -> Done
> (normal Linux v4l2 utils do not give a picture, might be the need
> to set preview mode)
>
> 3. Add ioctl debugging to the kernel from 1. capture a trace to see what
> Android userspace is doing -> Done . See here for an example log:
>
> https://fedorapeople.org/~jwrdegoede/atomisp-logs-t116/
>
> 4. Write a userspace utility mimicking Android userspace, I started on
> this this weekend

What I did is rather, as soon as I set up chroot environment on Android
kernel (mipad2), I gave up writing userspace tools by myself and searched
for an existing ones :D

> 5. Once I've 4. working the plan was a bit vague, the idea was to see if
> I could use that to quickly get the mainline staging version to work; or
> alternatively forward port the working Android kernel sources to
> mainline from scratch.
>
> But it looks like 4 and 5 will no longer be necessary, which is awesome,
> thank you so much!
>
> I'll try to look into this series in more detail; and try to get thing
> working on one of my own devices when I can make some time for this.

Thanks. It's great if this series is tested by many upstream devs.

>
> >
> > [...]
> >
> > One of the issues on the upstreamed atomisp is, the driver is a result
> > of the following two different versions of driver merged by tools using
> > `ifdef ISP2401`:
> >
> > - ISP2400: irci_stable_candrpv_0415_20150521_0458
> > - ISP2401: irci_master_20150911_0724
> >
> > and we don't have such firmware made for irci_master_20150911_0724.
>
> Right this is something which I also noticed (but I did not do anything with /
> about yet)
>
> > I confirmed that the driver version irci_stable_candrpv_0415_20150521_0458
> > works well on the intel-aero version atomisp for ISP2401, too.
>
> "irci_stable_candrpv_0415_20150521_0458" is also the version of the atomisp
> firmware shipped in CHT tablets which come with Android pre-installed. So
> I agree that this is the version which we should go for.

OK.

> > [...]
> >
> > ## for mipad2 (and whiskey cove pmic based devices)
> >
> > For devices which equip whiskey cove PMIC, you need to add non-upstream
> > regulator driver [1].
> >
> > [1] work done by jekhor, which seems to be from intel-aero or old
> > Android kernel
> > https://github.com/jekhor/yogabook-linux-kernel/commit/11c05b365fb2eeb4fced5aa66b362c511be32a34
> > ("intel_soc_pmic_chtwc: Add regulator driver and definition for VPROG1B")
>
> Interesting I recently bought a 2nd hand mipad2 myself too. I still need
> to put Linux on there. I'm definitely motivated to do that now :)

I'm glad to hear that you also got a mipad2 :) It might be a interesting
device to look into. It even won't boot without nomodeset, no battery
charging/status on mainline kernel.

By the way, instead of adding whiskey cove regulator driver, we may also
add a "hack" like the other PMIC in atomisp_gmin_platform to control
regulators [1].

It seems that to do so, it needs to "read" value from the PMIC before
writing. So, I'm not sure if this can be achieved easily with the current
mainline kernel though.

[1] https://github.com/MiCode/Xiaomi_Kernel_OpenSource/commit/6204d4b7aeefc4db622f8ac57b87bf2c76c6c8aa
("atomisp_platform: add whiskey cove pmic support")

Regards,
Tsuchiya Yuto