Thread (65 messages) 65 messages, 8 authors, 2025-09-08

Re: [PATCH v2 05/12] media: ipu-bridge: Use v4l2_fwnode for unknown rotations

From: Hans de Goede <hansg@kernel.org>
Date: 2025-07-14 13:12:02
Also in: linux-acpi, linux-gpio, linux-media, linux-usb, lkml

Hi,

On 8-Jul-25 16:58, Ricardo Ribalda wrote:
On Tue, 8 Jul 2025 at 14:21, Sakari Ailus [off-list ref] wrote:
quoted
Hi Ricardo,

On Tue, Jul 08, 2025 at 02:09:28PM +0200, Ricardo Ribalda wrote:
quoted
On Tue, 8 Jul 2025 at 11:22, Sakari Ailus [off-list ref] wrote:
quoted
Hi Ricardo,

On Tue, Jul 08, 2025 at 11:16:25AM +0200, Ricardo Ribalda wrote:
quoted
Hi Sakari

Thanks for your review

On Mon, 7 Jul 2025 at 23:45, Sakari Ailus [off-list ref] wrote:
quoted
Hi Ricardo,

On Thu, Jun 05, 2025 at 05:52:58PM +0000, Ricardo Ribalda wrote:
quoted
The v4l2_fwnode_device_properties contains information about the
rotation. Use it if the ssdb data is inconclusive.
As SSDB and _PLD provide the same information, are they always aligned? Do
you have any experience on how is this actually in firmware?
Not really, in ChromeOS we are pretty lucky to control the firmware.

@HdG Do you have some experience/opinion here?
quoted
_PLD is standardised so it would seem reasonable to stick to that -- if it
exists. Another approach could be to pick the one that doesn't translate to
a sane default (0°).
I'd rather stick to the current prioritization unless there is a
strong argument against it. Otherwise there is a chance that we will
have regressions (outside CrOS)
My point was rather there are no such rules currently for rotation: only
SSDB was being used by the IPU bridge to obtain the rotation value,
similarly only _PLD is consulted when it comes to orientation.
So something like this:?

static u32 ipu_bridge_parse_rotation(struct acpi_device *adev,
                                     struct ipu_sensor_ssdb *ssdb,
                                     struct
v4l2_fwnode_device_properties *props)
{
        if (props->rotation != V4L2_FWNODE_PROPERTY_UNSET)
                return props->rotation;

        switch (ssdb->degree) {
        case IPU_SENSOR_ROTATION_NORMAL:
                return 0;
        case IPU_SENSOR_ROTATION_INVERTED:
                return 180;
        }

        dev_warn(ADEV_DEV(adev),
                 "Unknown rotation %d. Assume 0 degree rotation\n",
                 ssdb->degree);
Maybe:

        acpi_handle_warn(acpi_device_handle(adev), ...);

?
quoted
        return 0;
}
Looks good to me. Maybe something similar for orientation?
Do you mean using ssdb also for orientation or using acpi_handle_warn?


I cannot find anything related to orientation for SSDB
https://github.com/coreboot/coreboot/blob/main/src/drivers/intel/mipi_camera/chip.h#L150

Am I looking in the right place?
I believe that orientation is only available in the PLD,
so for orientation we can just use the value returned in
v4l2_fwnode_device_properties defaulting to front when
it is not set.

Otherwise I agree with what has been discussed in this
thread (for this patch) so far.

Regards,

Hans
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help