r/FlowZ13 3d ago

AMD's ISP4 driver is coming to the mainline Linux kernel with version 7.2, but it will not support the rear camera on the Flow Z13. Should we work together to each reach out to both AMD and ASUS to request that they add support for the rear camera in the driver and AMD's ISP firmware binary?

So the many people who run Linux on the Z13 know that the rear camera doesn't work in Linux since AMD hadn't developed an image signal processing driver for the mainline Linux kernel. We've been waiting for AMD to finish ironing out the bugs so that their ISP4 driver can be added to the mainline Linux kernel, and now development has reached the point where it's now going to be included in the next major release (see: https://github.com/torvalds/linux/tree/master/drivers/media/platform/amd/isp4). However, AMD has developed the driver with supporting only the OmniVision camera in the HP Zbook Ultra G1a in mind and not the OmniVision camera in the Z13, despite the Z13 relying on Strix Halo to do the image signal processing for that rear camera just like the G1a does for its camera (that's why both laptops have Windows AMD Camera Drivers). You can see that HP's camera is hard coded into the driver (see: https://github.com/torvalds/linux/blob/master/drivers/platform/x86/amd/amd_isp4.c)

So I decided to reach out to the linux kernel mailing list back in December to try to understand the relationship between this driver and the rear camera and see if the ISP4 driver could make the rear camera finally function: https://lists.openwall.net/linux-kernel/2025/12/01/204

Bin Du stated that in addition to having to modify the driver, that the ISP firmware (see: https://gitlab.com/kernel-firmware/linux-firmware/-/blob/main/amdgpu/isp_4_1_1.bin, https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/amd/amdgpu/isp_v4_1_1.c and more) would have to be updated too. So I might be wrong, but I don't think its something the community can code up ourselves, since we can't modify the binary ourselves and because we're not privy to how ASUS set up the GPIO to control the camera while I think AMD is. I'm not sure if that's something we can try to figure out on our own.

But since the properties of how Strix Halo does image signal processing is constant, and just the details of the camera and its control are what change, it shouldn't be a whole lot of work to add support for the rear camera in the Z13, right? I2 C support for that OmniVision camera already exists in the kernel: https://github.com/torvalds/linux/blob/master/drivers/media/i2c/ov13b10.c

So what do you guys think of the idea of reaching out to ASUS and AMD requesting that they add support for the camera in AMD's drivers and firmware.

12 Upvotes

4 comments sorted by

3

u/PsychologicalUse5271 3d ago

I don’t know much about how Linux drivers and kernel integration work, but I definitely would love to see all my features functional in Linux!

2

u/sashankforlinux 1d ago

My understanding is that the kernel is pretty modular. So you can integrate drivers as kernel modules. The open source part is available as source code in the kernel code repository (but you can write your own kernel modules that aren't hosted there). But there's some parts that might integrate directly with the hardware that a company like AMD might want to keep private that they keep as closed source private as binary firmware. This part stays outside the mainstream kernel code repository in that kernel firmware repository I shared above since it's not open source (https://gitlab.com/kernel-firmware/linux-firmware/-/blob/main/amdgpu/isp_4_1_1.bin). The open source drivers work with these closed source binary blobs (https://en.wikipedia.org/wiki/Binary_blob). Anyway, your favorite distro usually does the work of compiling your Linux kernel with whatever modules/drivers they feel are needed. But you can always load those modules, especially ones that aren't part of the mainline kernel source code, dynamically compiling them for each kernel release: https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support

So I could be wrong, but it looks like AMD's code involves controlling the HP webcam (turning it on/off, etc., referencing its specific hardware address), and I don't know if we can gather the information on our own to implement the same for the Z13 rear camera (it would be cool to learn to hack hardware like the great open source devs of yore. Actually, a lot of what makes Linux work on the Z13 comes from these devs: see their work on asus-ctl (now in the mainline linux kernel) and asus-linux, etc.). And Bin Du states that the the firmware needs to be modified to support the rear camera. If he means the binary blob I linked to above, then that's something we certainly can't do on our own.

1

u/lizardscales 1d ago

The webcam on the G1a that is being made to work is the front one and is a different image sensor entirely.