Re: [PATCH V3 05/13] drm: bridge: icn6211: Add DSI lane count DT property parsing

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/8/22 11:07, Jagan Teki wrote:
On Tue, Mar 8, 2022 at 3:19 PM Marek Vasut <marex@xxxxxxx> wrote:

On 3/8/22 09:03, Jagan Teki wrote:

Hi,

[...]

@@ -314,7 +321,9 @@ static const struct drm_bridge_funcs chipone_bridge_funcs = {
   static int chipone_parse_dt(struct chipone *icn)
   {
          struct device *dev = icn->dev;
+       struct device_node *endpoint;
          struct drm_panel *panel;
+       int dsi_lanes;
          int ret;

          icn->vdd1 = devm_regulator_get_optional(dev, "vdd1");
@@ -350,15 +359,42 @@ static int chipone_parse_dt(struct chipone *icn)
                  return PTR_ERR(icn->enable_gpio);
          }

+       endpoint = of_graph_get_endpoint_by_regs(dev->of_node, 0, 0);
+       dsi_lanes = of_property_count_u32_elems(endpoint, "data-lanes");
+       icn->host_node = of_graph_get_remote_port_parent(endpoint);
+       of_node_put(endpoint);
+
+       if (!icn->host_node)
+               return -ENODEV;

The non-ports-based OF graph returns a -19 example on the Allwinner
Display pipeline in R16 [1].

We need to have a helper to return host_node for non-ports as I have
done it for drm_of_find_bridge.

[1] https://patchwork.amarulasolutions.com/patch/1805/

The link points to a patch marked "DO NOT MERGE", maybe that patch is
missing the DSI host port@0 OF graph link ? Both port@0 and port@1 are
required, see:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/display/bridge/chipone,icn6211.yaml#n53

What is "non-ports-based OF graph" ?

I don't see drm_of_find_bridge() in linux-next , what is that ?

port@0 is optional as some of the DSI host OF-graph represent the
bridge or panel as child nodes instead of ports. (i think dt-binding
has to fix it to make port@0 optional)

The current upstream DT binding document says:

    required:
      - port@0
      - port@1

So port@0 is mandatory.

So I don't think any change is needed to this patch ?

Example OF-graph is on the commit message.
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/gpu/drm/drm_of.c?id=80253168dbfd256bca97cf7f13312863c5a7f2e5

It seems the current upstream DT bindings only support DSI hosts which do provide an endpoint, because port@0 is required per DT binding document. If you want to support the other options as listed in the aforementioned commit, then you would have to extend this driver and its bindings, but that is out of scope of this series.



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux