diff --git a/docs/design/camera.md b/docs/design/camera.md index 9baa44f0..601e8bb7 100644 --- a/docs/design/camera.md +++ b/docs/design/camera.md @@ -21,7 +21,9 @@ to grant it, and the grant visible for as long as it lasts. device made for it. - **Not covered:** the MIPI cameras of many Intel laptops since 2022, behind the IPU6, which need a camera stack in userspace (libcamera and Intel's - image processing), and infrared face-login cameras. + image processing); those behind the image processor of AMD's Ryzen AI Max + (HP's ZBook Ultra G1a), whose driver came in Linux 7.2, after 6.18; and + infrared face-login cameras. ## Who reaches that code, and when @@ -115,9 +117,10 @@ itself waits for the tests on physical hardware. ## Not covered -- MIPI cameras behind the IPU6 (below), and infrared cameras. Of several - cameras, a grant gives the zone the lowest numbered node that is its - device's first (`index` 0), which a camera's metadata node is not +- MIPI cameras behind Intel's IPU6 and AMD's image processor (below), and + infrared cameras. Of several cameras, a grant gives the zone the lowest + numbered node that is its device's first (`index` 0), which a camera's + metadata node is not (`camera_in` in `camera.rs`). On a laptop whose infrared face-login camera is a USB device of its own, that node may be the infrared camera's, which gives a call no picture. Preferring a node that offers a colour format @@ -159,3 +162,13 @@ it; a USB camera works on those laptops. The firmware is the small part of the cost. Where the image processing runs and what a grant hands over are the questions, and they wait for a machine with such a camera to answer them on. + +AMD's Ryzen AI Max has an image processor of its own, the ISP4, behind the +MIPI camera of HP's ZBook Ultra G1a. Its firmware drives the sensor and +makes the picture, and its driver gives one capture node of NV12 or YUYV +frames, as a USB camera does, rather than a graph of raw ones, so it would +fit a grant of one node. That driver (`VIDEO_AMD_ISP4_CAPTURE`) came in +Linux 7.2, and Kryptik builds 6.18. It would also need amdgpu's half +(`DRM_AMD_ISP`, off), platform cameras in the media filter (off), the +processor's firmware (`amdgpu/isp_*`, which `firmware.list` leaves out), +and kryptikd's grant loading it beside `uvcvideo`. diff --git a/docs/user-guide.md b/docs/user-guide.md index f8befcdf..ee798e63 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -423,7 +423,8 @@ as well. A window in full screen covers those windows, so the bar above it names the zone that may use the microphone (`MIC`) and the zone that has the camera (`CAM`), whichever zones they are. Built-in and USB cameras that speak the USB Video Class work, as most do; the cameras of recent Intel laptops that need Intel's image -processing in userspace (MIPI cameras behind the IPU6) and infrared +processing in userspace (MIPI cameras behind the IPU6), those behind the +image processor of AMD's Ryzen AI Max (HP's ZBook Ultra G1a), and infrared face-login cameras do not. `vault` and the net zone never get the camera. Firefox in a zone is not told when the camera is given or taken back.