Messages in this thread | | | Date | Mon, 29 Aug 2022 15:36:24 +0200 | Subject | Re: [PATCH] drm/bridge: sii902x: add support for DRM_BRIDGE_ATTACH_NO_CONNECTOR | From | Neil Armstrong <> |
| |
On 25/08/2022 14:48, Linus Walleij wrote: > On Wed, Aug 17, 2022 at 3:31 PM Neil Armstrong <narmstrong@baylibre.com> wrote: >> On 15/08/2022 02:15, Dmitry Osipenko wrote: >>> 08.08.2022 12:51, Neil Armstrong пишет: >>>> On 08/08/2022 11:15, Neil Armstrong wrote: > >>>>>> This patch broke ARM/QEMU vexpress display because of_drm_find_bridge() >>>>>> always fail with -EPROBE_DEFER. Reverting this patch returns display >>>>>> back. Please fix or revert, thanks in advance. >>>>> >>>>> Can you share a QEMU cmdline to reproduce ? >>>> >>>> Actually the vexpress DT has multiple input ports instead of a single >>>> input port at @0 >>>> and an output port at @1 like documented in the bindings: >>>> >>>> vexpress-v2m.dtsi#L303-L307: >>>> ports { >>>> #address-cells = <1>; >>>> #size-cells = <0>; >>>> >>>> /* >>>> * Both the core tile and the motherboard routes their output >>>> * pads to this transmitter. The motherboard system controller >>>> * can select one of them as input using a mux register in >>>> * "arm,vexpress-muxfpga". The Vexpress with the CA9 core tile is >>>> * the only platform with this specific set-up. >>>> */ >>>> port@0 { >>>> reg = <0>; >>>> dvi_bridge_in_ct: endpoint { >>>> remote-endpoint = <&clcd_pads_ct>; >>>> }; >>>> }; >>>> port@1 { >>>> reg = <1>; >>>> dvi_bridge_in_mb: endpoint { >>>> remote-endpoint = <&clcd_pads_mb>; >>>> }; >>>> }; >>>> }; >>>> >>>> bindings: >>>> ports: >>>> $ref: /schemas/graph.yaml#/properties/ports >>>> >>>> properties: >>>> port@0: >>>> $ref: /schemas/graph.yaml#/properties/port >>>> description: Parallel RGB input port >>>> >>>> port@1: >>>> $ref: /schemas/graph.yaml#/properties/port >>>> description: HDMI output port >>>> >>>> port@3: >>>> $ref: /schemas/graph.yaml#/properties/port >>>> description: Sound input port >>>> >>>> The patch is conform to the bindings, the DT was working but is actually >>>> not valid. >>> >>> I haven't looked closely at how to fix this properly, but if we can fix >>> it using of_machine_is_compatible("arm,vexpress") workaround in the >>> driver, then it will be good enough at least as a temporal fix, IMO. >> >> If other maintainers are ok with that, it can be temporary fix until the DT gets fixed. > > That's fine with me, will you send a patch?
Who, me ?
> > I don't know how you expect the DT to get "fixed" though. > > The hardware looks like this, it's maybe not the most elegant > electronics design but it exists, so... I wrote this DT with two > inputs, see commit f1fe12c8bf332, the code handling this > awkward mux is part of the DRM driver, see > drivers/gpu/drm/pl111/pl111_versatile.c function > pl111_vexpress_clcd_init() for an idea of how it works.
The proper fix would be the other way around, adding a mux bridge before the sii902x returning the next bridge or nothing to the right controller.
> > Yours, > Linus Walleij
Neil
| |