* [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-06-02 20:36 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-06-02 20:36 UTC (permalink / raw) To: dri-devel Cc: ch, Marek Vasut, Alexandre Torgue, Andrzej Hajda, Antonio Borneo, Benjamin Gaignard, Biju Das, Laurent Pinchart, Maxime Coquelin, Philippe Cornu, Rob Herring, Sam Ravnborg, Vincent Abriou, Yannick Fertre, devicetree, linux-arm-kernel, linux-stm32 The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, to define the pixel data sampling edge. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Antonio Borneo <antonio.borneo@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-stm32@st-md-mailman.stormreply.com To: dri-devel@lists.freedesktop.org --- V4: New patch split from combined V3 V5: Move the pclk-sample into port@0 endpoint --- .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml index 304a1367faaa7..cacafa61e3f52 100644 --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml @@ -54,6 +54,14 @@ properties: For LVDS encoders, port 0 is the parallel input For LVDS decoders, port 0 is the LVDS input + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + pclk-sample: true + port@1: $ref: /schemas/graph.yaml#/properties/port description: | @@ -71,6 +79,22 @@ properties: power-supply: true +if: + not: + properties: + compatible: + contains: + const: lvds-encoder +then: + properties: + ports: + properties: + port@0: + properties: + endpoint: + properties: + pclk-sample: false + required: - compatible - ports -- 2.30.2 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-06-02 20:36 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-06-02 20:36 UTC (permalink / raw) To: dri-devel Cc: Marek Vasut, devicetree, ch, Antonio Borneo, Vincent Abriou, Philippe Cornu, Yannick Fertre, Andrzej Hajda, Alexandre Torgue, Rob Herring, Laurent Pinchart, Maxime Coquelin, Biju Das, Sam Ravnborg, linux-stm32, linux-arm-kernel, Benjamin Gaignard The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, to define the pixel data sampling edge. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Antonio Borneo <antonio.borneo@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-stm32@st-md-mailman.stormreply.com To: dri-devel@lists.freedesktop.org --- V4: New patch split from combined V3 V5: Move the pclk-sample into port@0 endpoint --- .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml index 304a1367faaa7..cacafa61e3f52 100644 --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml @@ -54,6 +54,14 @@ properties: For LVDS encoders, port 0 is the parallel input For LVDS decoders, port 0 is the LVDS input + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + pclk-sample: true + port@1: $ref: /schemas/graph.yaml#/properties/port description: | @@ -71,6 +79,22 @@ properties: power-supply: true +if: + not: + properties: + compatible: + contains: + const: lvds-encoder +then: + properties: + ports: + properties: + port@0: + properties: + endpoint: + properties: + pclk-sample: false + required: - compatible - ports -- 2.30.2 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-06-02 20:36 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-06-02 20:36 UTC (permalink / raw) To: dri-devel Cc: ch, Marek Vasut, Alexandre Torgue, Andrzej Hajda, Antonio Borneo, Benjamin Gaignard, Biju Das, Laurent Pinchart, Maxime Coquelin, Philippe Cornu, Rob Herring, Sam Ravnborg, Vincent Abriou, Yannick Fertre, devicetree, linux-arm-kernel, linux-stm32 The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, to define the pixel data sampling edge. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Antonio Borneo <antonio.borneo@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-stm32@st-md-mailman.stormreply.com To: dri-devel@lists.freedesktop.org --- V4: New patch split from combined V3 V5: Move the pclk-sample into port@0 endpoint --- .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml index 304a1367faaa7..cacafa61e3f52 100644 --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml @@ -54,6 +54,14 @@ properties: For LVDS encoders, port 0 is the parallel input For LVDS decoders, port 0 is the LVDS input + properties: + endpoint: + $ref: /schemas/media/video-interfaces.yaml# + unevaluatedProperties: false + + properties: + pclk-sample: true + port@1: $ref: /schemas/graph.yaml#/properties/port description: | @@ -71,6 +79,22 @@ properties: power-supply: true +if: + not: + properties: + compatible: + contains: + const: lvds-encoder +then: + properties: + ports: + properties: + port@0: + properties: + endpoint: + properties: + pclk-sample: false + required: - compatible - ports -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH V5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-06-02 20:36 ` Marek Vasut @ 2021-06-02 20:36 ` Marek Vasut -1 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-06-02 20:36 UTC (permalink / raw) To: dri-devel Cc: ch, Marek Vasut, Alexandre Torgue, Andrzej Hajda, Antonio Borneo, Benjamin Gaignard, Biju Das, Laurent Pinchart, Maxime Coquelin, Philippe Cornu, Sam Ravnborg, Vincent Abriou, Yannick Fertre, linux-arm-kernel, linux-stm32 The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, and configure bus flags based on this DT property. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Antonio Borneo <antonio.borneo@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-stm32@st-md-mailman.stormreply.com To: dri-devel@lists.freedesktop.org --- V2: - Limit the pixelclk-active to encoders only - Update DT binding document V3: - Determine whether this is encoder from connector, i.e. lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS V4: - Switch to pclk-sample. Note that the value of this is inverted, so all the existing users of pixelclk-active using previous version of this patch must be reworked V5: - Move pclk-sample to endpoint. Again, all existing users of the bindings must be reworked --- drivers/gpu/drm/bridge/lvds-codec.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/gpu/drm/bridge/lvds-codec.c b/drivers/gpu/drm/bridge/lvds-codec.c index dcf579a4cf833..80ce6783d10a8 100644 --- a/drivers/gpu/drm/bridge/lvds-codec.c +++ b/drivers/gpu/drm/bridge/lvds-codec.c @@ -19,6 +19,7 @@ struct lvds_codec { struct device *dev; struct drm_bridge bridge; struct drm_bridge *panel_bridge; + struct drm_bridge_timings timings; struct regulator *vcc; struct gpio_desc *powerdown_gpio; u32 connector_type; @@ -78,8 +79,10 @@ static int lvds_codec_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *panel_node; + struct device_node *bus_node; struct drm_panel *panel; struct lvds_codec *lvds_codec; + u32 val; lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL); if (!lvds_codec) @@ -119,6 +122,27 @@ static int lvds_codec_probe(struct platform_device *pdev) if (IS_ERR(lvds_codec->panel_bridge)) return PTR_ERR(lvds_codec->panel_bridge); + /* + * Encoder might sample data on different clock edge than the display, + * for example OnSemi FIN3385 has a dedicated strapping pin to select + * the sampling edge. + */ + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS) { + bus_node = of_graph_get_endpoint_by_regs(dev->of_node, 0, 0); + if (!bus_node) { + dev_dbg(dev, "bus DT node not found\n"); + return -ENXIO; + } + + if (!of_property_read_u32(dev->of_node, "pclk-sample", &val)) { + lvds_codec->timings.input_bus_flags = val ? + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; + } + + of_node_put(bus_node); + } + /* * The panel_bridge bridge is attached to the panel's of_node, * but we need a bridge attached to our of_node for our user @@ -126,6 +150,7 @@ static int lvds_codec_probe(struct platform_device *pdev) */ lvds_codec->bridge.of_node = dev->of_node; lvds_codec->bridge.funcs = &funcs; + lvds_codec->bridge.timings = &lvds_codec->timings; drm_bridge_add(&lvds_codec->bridge); platform_set_drvdata(pdev, lvds_codec); -- 2.30.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH V5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select @ 2021-06-02 20:36 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-06-02 20:36 UTC (permalink / raw) To: dri-devel Cc: Marek Vasut, ch, Antonio Borneo, Vincent Abriou, Philippe Cornu, Yannick Fertre, Andrzej Hajda, Alexandre Torgue, Laurent Pinchart, Maxime Coquelin, Biju Das, Sam Ravnborg, linux-stm32, linux-arm-kernel, Benjamin Gaignard The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, and configure bus flags based on this DT property. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Alexandre Torgue <alexandre.torgue@st.com> Cc: Andrzej Hajda <a.hajda@samsung.com> Cc: Antonio Borneo <antonio.borneo@st.com> Cc: Benjamin Gaignard <benjamin.gaignard@st.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Philippe Cornu <philippe.cornu@st.com> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Vincent Abriou <vincent.abriou@st.com> Cc: Yannick Fertre <yannick.fertre@st.com> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-stm32@st-md-mailman.stormreply.com To: dri-devel@lists.freedesktop.org --- V2: - Limit the pixelclk-active to encoders only - Update DT binding document V3: - Determine whether this is encoder from connector, i.e. lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS V4: - Switch to pclk-sample. Note that the value of this is inverted, so all the existing users of pixelclk-active using previous version of this patch must be reworked V5: - Move pclk-sample to endpoint. Again, all existing users of the bindings must be reworked --- drivers/gpu/drm/bridge/lvds-codec.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/gpu/drm/bridge/lvds-codec.c b/drivers/gpu/drm/bridge/lvds-codec.c index dcf579a4cf833..80ce6783d10a8 100644 --- a/drivers/gpu/drm/bridge/lvds-codec.c +++ b/drivers/gpu/drm/bridge/lvds-codec.c @@ -19,6 +19,7 @@ struct lvds_codec { struct device *dev; struct drm_bridge bridge; struct drm_bridge *panel_bridge; + struct drm_bridge_timings timings; struct regulator *vcc; struct gpio_desc *powerdown_gpio; u32 connector_type; @@ -78,8 +79,10 @@ static int lvds_codec_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct device_node *panel_node; + struct device_node *bus_node; struct drm_panel *panel; struct lvds_codec *lvds_codec; + u32 val; lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL); if (!lvds_codec) @@ -119,6 +122,27 @@ static int lvds_codec_probe(struct platform_device *pdev) if (IS_ERR(lvds_codec->panel_bridge)) return PTR_ERR(lvds_codec->panel_bridge); + /* + * Encoder might sample data on different clock edge than the display, + * for example OnSemi FIN3385 has a dedicated strapping pin to select + * the sampling edge. + */ + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS) { + bus_node = of_graph_get_endpoint_by_regs(dev->of_node, 0, 0); + if (!bus_node) { + dev_dbg(dev, "bus DT node not found\n"); + return -ENXIO; + } + + if (!of_property_read_u32(dev->of_node, "pclk-sample", &val)) { + lvds_codec->timings.input_bus_flags = val ? + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; + } + + of_node_put(bus_node); + } + /* * The panel_bridge bridge is attached to the panel's of_node, * but we need a bridge attached to our of_node for our user @@ -126,6 +150,7 @@ static int lvds_codec_probe(struct platform_device *pdev) */ lvds_codec->bridge.of_node = dev->of_node; lvds_codec->bridge.funcs = &funcs; + lvds_codec->bridge.timings = &lvds_codec->timings; drm_bridge_add(&lvds_codec->bridge); platform_set_drvdata(pdev, lvds_codec); -- 2.30.2 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select 2021-06-02 20:36 ` Marek Vasut (?) @ 2021-06-10 16:09 ` Rob Herring -1 siblings, 0 replies; 18+ messages in thread From: Rob Herring @ 2021-06-10 16:09 UTC (permalink / raw) To: Marek Vasut Cc: linux-stm32, dri-devel, Maxime Coquelin, Alexandre Torgue, Philippe Cornu, Rob Herring, Vincent Abriou, Antonio Borneo, Laurent Pinchart, devicetree, linux-arm-kernel, Yannick Fertre, Biju Das, ch, Andrzej Hajda, Sam Ravnborg, Benjamin Gaignard On Wed, 02 Jun 2021 22:36:07 +0200, Marek Vasut wrote: > The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to > select input pixel data sampling edge. Add DT property "pclk-sample", not > the same as the one used by display timings but rather the same as used by > media, to define the pixel data sampling edge. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Alexandre Torgue <alexandre.torgue@st.com> > Cc: Andrzej Hajda <a.hajda@samsung.com> > Cc: Antonio Borneo <antonio.borneo@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > Cc: Biju Das <biju.das.jz@bp.renesas.com> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-stm32@st-md-mailman.stormreply.com > To: dri-devel@lists.freedesktop.org > --- > V4: New patch split from combined V3 > V5: Move the pclk-sample into port@0 endpoint > --- > .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ > 1 file changed, 24 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-06-10 16:09 ` Rob Herring 0 siblings, 0 replies; 18+ messages in thread From: Rob Herring @ 2021-06-10 16:09 UTC (permalink / raw) To: Marek Vasut Cc: Benjamin Gaignard, devicetree, Alexandre Torgue, Antonio Borneo, Sam Ravnborg, Philippe Cornu, dri-devel, Yannick Fertre, Andrzej Hajda, Rob Herring, Laurent Pinchart, Maxime Coquelin, Biju Das, Vincent Abriou, linux-stm32, linux-arm-kernel, ch On Wed, 02 Jun 2021 22:36:07 +0200, Marek Vasut wrote: > The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to > select input pixel data sampling edge. Add DT property "pclk-sample", not > the same as the one used by display timings but rather the same as used by > media, to define the pixel data sampling edge. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Alexandre Torgue <alexandre.torgue@st.com> > Cc: Andrzej Hajda <a.hajda@samsung.com> > Cc: Antonio Borneo <antonio.borneo@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > Cc: Biju Das <biju.das.jz@bp.renesas.com> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-stm32@st-md-mailman.stormreply.com > To: dri-devel@lists.freedesktop.org > --- > V4: New patch split from combined V3 > V5: Move the pclk-sample into port@0 endpoint > --- > .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ > 1 file changed, 24 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-06-10 16:09 ` Rob Herring 0 siblings, 0 replies; 18+ messages in thread From: Rob Herring @ 2021-06-10 16:09 UTC (permalink / raw) To: Marek Vasut Cc: linux-stm32, dri-devel, Maxime Coquelin, Alexandre Torgue, Philippe Cornu, Rob Herring, Vincent Abriou, Antonio Borneo, Laurent Pinchart, devicetree, linux-arm-kernel, Yannick Fertre, Biju Das, ch, Andrzej Hajda, Sam Ravnborg, Benjamin Gaignard On Wed, 02 Jun 2021 22:36:07 +0200, Marek Vasut wrote: > The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to > select input pixel data sampling edge. Add DT property "pclk-sample", not > the same as the one used by display timings but rather the same as used by > media, to define the pixel data sampling edge. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Alexandre Torgue <alexandre.torgue@st.com> > Cc: Andrzej Hajda <a.hajda@samsung.com> > Cc: Antonio Borneo <antonio.borneo@st.com> > Cc: Benjamin Gaignard <benjamin.gaignard@st.com> > Cc: Biju Das <biju.das.jz@bp.renesas.com> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> > Cc: Philippe Cornu <philippe.cornu@st.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: Vincent Abriou <vincent.abriou@st.com> > Cc: Yannick Fertre <yannick.fertre@st.com> > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-stm32@st-md-mailman.stormreply.com > To: dri-devel@lists.freedesktop.org > --- > V4: New patch split from combined V3 > V5: Move the pclk-sample into port@0 endpoint > --- > .../bindings/display/bridge/lvds-codec.yaml | 24 +++++++++++++++++++ > 1 file changed, 24 insertions(+) > Reviewed-by: Rob Herring <robh@kernel.org> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select @ 2021-10-17 0:12 Marek Vasut 2021-10-17 0:12 ` [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for " Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2021-10-17 0:12 UTC (permalink / raw) To: dri-devel Cc: Marek Vasut, Laurent Pinchart, Rob Herring, Sam Ravnborg, devicetree The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, to define the pixel data sampling edge. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: devicetree@vger.kernel.org To: dri-devel@lists.freedesktop.org --- V4: New patch split from combined V3 V5: Rebase on recent linux-next --- .../bindings/display/bridge/lvds-codec.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml index 1faae3e323a4..708de84ac138 100644 --- a/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml +++ b/Documentation/devicetree/bindings/display/bridge/lvds-codec.yaml @@ -79,6 +79,14 @@ properties: - port@0 - port@1 + pclk-sample: + description: + Data sampling on rising or falling edge. + enum: + - 0 # Falling edge + - 1 # Rising edge + default: 0 + powerdown-gpios: description: The GPIO used to control the power down line of this device. @@ -102,6 +110,16 @@ then: properties: data-mapping: false +if: + not: + properties: + compatible: + contains: + const: lvds-encoder +then: + properties: + pclk-sample: false + required: - compatible - ports -- 2.33.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 0:12 [PATCH v5 " Marek Vasut @ 2021-10-17 0:12 ` Marek Vasut 2021-10-17 16:49 ` Sam Ravnborg 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2021-10-17 0:12 UTC (permalink / raw) To: dri-devel Cc: Marek Vasut, Laurent Pinchart, Rob Herring, Sam Ravnborg, devicetree The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to select input pixel data sampling edge. Add DT property "pclk-sample", not the same as the one used by display timings but rather the same as used by media, and configure bus flags based on this DT property. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Rob Herring <robh+dt@kernel.org> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: devicetree@vger.kernel.org To: dri-devel@lists.freedesktop.org --- V2: - Limit the pixelclk-active to encoders only - Update DT binding document V3: - Determine whether this is encoder from connector, i.e. lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS V4: - Switch to pclk-sample. Note that the value of this is inverted, so all the existing users of pixelclk-active using previous previous version of this patch must be reworked V5: Rebase on recent linux-next --- drivers/gpu/drm/bridge/lvds-codec.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/gpu/drm/bridge/lvds-codec.c b/drivers/gpu/drm/bridge/lvds-codec.c index f991842a161f..702ea803a743 100644 --- a/drivers/gpu/drm/bridge/lvds-codec.c +++ b/drivers/gpu/drm/bridge/lvds-codec.c @@ -21,6 +21,7 @@ struct lvds_codec { struct device *dev; struct drm_bridge bridge; struct drm_bridge *panel_bridge; + struct drm_bridge_timings timings; struct regulator *vcc; struct gpio_desc *powerdown_gpio; u32 connector_type; @@ -119,6 +120,7 @@ static int lvds_codec_probe(struct platform_device *pdev) struct device_node *bus_node; struct drm_panel *panel; struct lvds_codec *lvds_codec; + u32 val; int ret; lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL); @@ -187,12 +189,25 @@ static int lvds_codec_probe(struct platform_device *pdev) } } + /* + * Encoder might sample data on different clock edge than the display, + * for example OnSemi FIN3385 has a dedicated strapping pin to select + * the sampling edge. + */ + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { + lvds_codec->timings.input_bus_flags = val ? + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; + } + /* * The panel_bridge bridge is attached to the panel's of_node, * but we need a bridge attached to our of_node for our user * to look up. */ lvds_codec->bridge.of_node = dev->of_node; + lvds_codec->bridge.timings = &lvds_codec->timings; drm_bridge_add(&lvds_codec->bridge); platform_set_drvdata(pdev, lvds_codec); -- 2.33.0 ^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 0:12 ` [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for " Marek Vasut @ 2021-10-17 16:49 ` Sam Ravnborg 2021-10-17 17:29 ` Marek Vasut 0 siblings, 1 reply; 18+ messages in thread From: Sam Ravnborg @ 2021-10-17 16:49 UTC (permalink / raw) To: Marek Vasut; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree Hi Marek, On Sun, Oct 17, 2021 at 02:12:04AM +0200, Marek Vasut wrote: > The OnSemi FIN3385 Parallel-to-LVDS encoder has a dedicated input line to > select input pixel data sampling edge. Add DT property "pclk-sample", not > the same as the one used by display timings but rather the same as used by > media, and configure bus flags based on this DT property. Late to the party here - sorry. > > Signed-off-by: Marek Vasut <marex@denx.de> > Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > Cc: Rob Herring <robh+dt@kernel.org> > Cc: Sam Ravnborg <sam@ravnborg.org> > Cc: devicetree@vger.kernel.org > To: dri-devel@lists.freedesktop.org > --- > V2: - Limit the pixelclk-active to encoders only > - Update DT binding document > V3: - Determine whether this is encoder from connector, i.e. > lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS > V4: - Switch to pclk-sample. Note that the value of this is inverted, > so all the existing users of pixelclk-active using previous > previous version of this patch must be reworked > V5: Rebase on recent linux-next > --- > drivers/gpu/drm/bridge/lvds-codec.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/lvds-codec.c b/drivers/gpu/drm/bridge/lvds-codec.c > index f991842a161f..702ea803a743 100644 > --- a/drivers/gpu/drm/bridge/lvds-codec.c > +++ b/drivers/gpu/drm/bridge/lvds-codec.c > @@ -21,6 +21,7 @@ struct lvds_codec { > struct device *dev; > struct drm_bridge bridge; > struct drm_bridge *panel_bridge; > + struct drm_bridge_timings timings; > struct regulator *vcc; > struct gpio_desc *powerdown_gpio; > u32 connector_type; > @@ -119,6 +120,7 @@ static int lvds_codec_probe(struct platform_device *pdev) > struct device_node *bus_node; > struct drm_panel *panel; > struct lvds_codec *lvds_codec; > + u32 val; > int ret; > > lvds_codec = devm_kzalloc(dev, sizeof(*lvds_codec), GFP_KERNEL); > @@ -187,12 +189,25 @@ static int lvds_codec_probe(struct platform_device *pdev) > } > } > > + /* > + * Encoder might sample data on different clock edge than the display, > + * for example OnSemi FIN3385 has a dedicated strapping pin to select > + * the sampling edge. > + */ > + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && > + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { > + lvds_codec->timings.input_bus_flags = val ? > + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : > + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; > + } > + > /* > * The panel_bridge bridge is attached to the panel's of_node, > * but we need a bridge attached to our of_node for our user > * to look up. > */ > lvds_codec->bridge.of_node = dev->of_node; > + lvds_codec->bridge.timings = &lvds_codec->timings; I do not understand how this will work. The only field that is set is timings.input_bus_flags but any user will see bridge.timings is set and will think this is all timing info. Maybe I just misses something obvious? Sam > drm_bridge_add(&lvds_codec->bridge); > > platform_set_drvdata(pdev, lvds_codec); > -- > 2.33.0 ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 16:49 ` Sam Ravnborg @ 2021-10-17 17:29 ` Marek Vasut 2021-10-17 17:40 ` Sam Ravnborg 0 siblings, 1 reply; 18+ messages in thread From: Marek Vasut @ 2021-10-17 17:29 UTC (permalink / raw) To: Sam Ravnborg; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree On 10/17/21 6:49 PM, Sam Ravnborg wrote: [...] >> + /* >> + * Encoder might sample data on different clock edge than the display, >> + * for example OnSemi FIN3385 has a dedicated strapping pin to select >> + * the sampling edge. >> + */ >> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >> + lvds_codec->timings.input_bus_flags = val ? >> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >> + } >> + >> /* >> * The panel_bridge bridge is attached to the panel's of_node, >> * but we need a bridge attached to our of_node for our user >> * to look up. >> */ >> lvds_codec->bridge.of_node = dev->of_node; >> + lvds_codec->bridge.timings = &lvds_codec->timings; > I do not understand how this will work. The only field that is set is timings.input_bus_flags > but any user will see bridge.timings is set and will think this is all > timing info. > > Maybe I just misses something obvious? Is there anything else in those timings that should be set ? See include/drm/drm_bridge.h around line 640 setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, so it is 0 or false anyway, i.e. no change. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 17:29 ` Marek Vasut @ 2021-10-17 17:40 ` Sam Ravnborg 2021-10-17 20:05 ` Marek Vasut 2021-10-23 23:04 ` Marek Vasut 0 siblings, 2 replies; 18+ messages in thread From: Sam Ravnborg @ 2021-10-17 17:40 UTC (permalink / raw) To: Marek Vasut; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree Hi Marek, On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: > On 10/17/21 6:49 PM, Sam Ravnborg wrote: > > [...] > > > > + /* > > > + * Encoder might sample data on different clock edge than the display, > > > + * for example OnSemi FIN3385 has a dedicated strapping pin to select > > > + * the sampling edge. > > > + */ > > > + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && > > > + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { > > > + lvds_codec->timings.input_bus_flags = val ? > > > + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : > > > + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; > > > + } > > > + > > > /* > > > * The panel_bridge bridge is attached to the panel's of_node, > > > * but we need a bridge attached to our of_node for our user > > > * to look up. > > > */ > > > lvds_codec->bridge.of_node = dev->of_node; > > > + lvds_codec->bridge.timings = &lvds_codec->timings; > > I do not understand how this will work. The only field that is set is timings.input_bus_flags > > but any user will see bridge.timings is set and will think this is all > > timing info. > > > > Maybe I just misses something obvious? > > Is there anything else in those timings that should be set ? See > include/drm/drm_bridge.h around line 640 > > setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, so it > is 0 or false anyway, i.e. no change. Just me being confused with display_timings. Patch looks good. Reviewed-by: Sam Ravnborg <sam@ravnborg.org> Ping me in a few days to apply it if there is no more feedback. Sam ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 17:40 ` Sam Ravnborg @ 2021-10-17 20:05 ` Marek Vasut 2021-10-23 23:04 ` Marek Vasut 1 sibling, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-10-17 20:05 UTC (permalink / raw) To: Sam Ravnborg; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree On 10/17/21 7:40 PM, Sam Ravnborg wrote: > Hi Marek, > > On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >> >> [...] >> >>>> + /* >>>> + * Encoder might sample data on different clock edge than the display, >>>> + * for example OnSemi FIN3385 has a dedicated strapping pin to select >>>> + * the sampling edge. >>>> + */ >>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>> + lvds_codec->timings.input_bus_flags = val ? >>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>> + } >>>> + >>>> /* >>>> * The panel_bridge bridge is attached to the panel's of_node, >>>> * but we need a bridge attached to our of_node for our user >>>> * to look up. >>>> */ >>>> lvds_codec->bridge.of_node = dev->of_node; >>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>> I do not understand how this will work. The only field that is set is timings.input_bus_flags >>> but any user will see bridge.timings is set and will think this is all >>> timing info. >>> >>> Maybe I just misses something obvious? >> >> Is there anything else in those timings that should be set ? See >> include/drm/drm_bridge.h around line 640 >> >> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, so it >> is 0 or false anyway, i.e. no change. > > Just me being confused with display_timings. Patch looks good. > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > > Ping me in a few days to apply it if there is no more feedback. ACK ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-17 17:40 ` Sam Ravnborg 2021-10-17 20:05 ` Marek Vasut @ 2021-10-23 23:04 ` Marek Vasut 2021-11-24 3:02 ` Marek Vasut 1 sibling, 1 reply; 18+ messages in thread From: Marek Vasut @ 2021-10-23 23:04 UTC (permalink / raw) To: Sam Ravnborg; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree On 10/17/21 7:40 PM, Sam Ravnborg wrote: > Hi Marek, Hi, > On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >> >> [...] >> >>>> + /* >>>> + * Encoder might sample data on different clock edge than the display, >>>> + * for example OnSemi FIN3385 has a dedicated strapping pin to select >>>> + * the sampling edge. >>>> + */ >>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>> + lvds_codec->timings.input_bus_flags = val ? >>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>> + } >>>> + >>>> /* >>>> * The panel_bridge bridge is attached to the panel's of_node, >>>> * but we need a bridge attached to our of_node for our user >>>> * to look up. >>>> */ >>>> lvds_codec->bridge.of_node = dev->of_node; >>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>> I do not understand how this will work. The only field that is set is timings.input_bus_flags >>> but any user will see bridge.timings is set and will think this is all >>> timing info. >>> >>> Maybe I just misses something obvious? >> >> Is there anything else in those timings that should be set ? See >> include/drm/drm_bridge.h around line 640 >> >> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, so it >> is 0 or false anyway, i.e. no change. > > Just me being confused with display_timings. Patch looks good. > Reviewed-by: Sam Ravnborg <sam@ravnborg.org> > > Ping me in a few days to apply it if there is no more feedback. Ping I guess ... Laurent ? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-10-23 23:04 ` Marek Vasut @ 2021-11-24 3:02 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-11-24 3:02 UTC (permalink / raw) To: Sam Ravnborg; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree On 10/24/21 1:04 AM, Marek Vasut wrote: > On 10/17/21 7:40 PM, Sam Ravnborg wrote: >> Hi Marek, > > Hi, > >> On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >>> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >>> >>> [...] >>> >>>>> + /* >>>>> + * Encoder might sample data on different clock edge than the >>>>> display, >>>>> + * for example OnSemi FIN3385 has a dedicated strapping pin to >>>>> select >>>>> + * the sampling edge. >>>>> + */ >>>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>>> + lvds_codec->timings.input_bus_flags = val ? >>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>>> + } >>>>> + >>>>> /* >>>>> * The panel_bridge bridge is attached to the panel's of_node, >>>>> * but we need a bridge attached to our of_node for our user >>>>> * to look up. >>>>> */ >>>>> lvds_codec->bridge.of_node = dev->of_node; >>>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>>> I do not understand how this will work. The only field that is set >>>> is timings.input_bus_flags >>>> but any user will see bridge.timings is set and will think this is all >>>> timing info. >>>> >>>> Maybe I just misses something obvious? >>> >>> Is there anything else in those timings that should be set ? See >>> include/drm/drm_bridge.h around line 640 >>> >>> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, >>> so it >>> is 0 or false anyway, i.e. no change. >> >> Just me being confused with display_timings. Patch looks good. >> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >> >> Ping me in a few days to apply it if there is no more feedback. > > Ping I guess ... Laurent ? Ping one more time ? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select @ 2021-11-24 3:02 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-11-24 3:02 UTC (permalink / raw) To: Sam Ravnborg; +Cc: devicetree, Rob Herring, Laurent Pinchart, dri-devel On 10/24/21 1:04 AM, Marek Vasut wrote: > On 10/17/21 7:40 PM, Sam Ravnborg wrote: >> Hi Marek, > > Hi, > >> On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >>> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >>> >>> [...] >>> >>>>> + /* >>>>> + * Encoder might sample data on different clock edge than the >>>>> display, >>>>> + * for example OnSemi FIN3385 has a dedicated strapping pin to >>>>> select >>>>> + * the sampling edge. >>>>> + */ >>>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>>> + lvds_codec->timings.input_bus_flags = val ? >>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>>> + } >>>>> + >>>>> /* >>>>> * The panel_bridge bridge is attached to the panel's of_node, >>>>> * but we need a bridge attached to our of_node for our user >>>>> * to look up. >>>>> */ >>>>> lvds_codec->bridge.of_node = dev->of_node; >>>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>>> I do not understand how this will work. The only field that is set >>>> is timings.input_bus_flags >>>> but any user will see bridge.timings is set and will think this is all >>>> timing info. >>>> >>>> Maybe I just misses something obvious? >>> >>> Is there anything else in those timings that should be set ? See >>> include/drm/drm_bridge.h around line 640 >>> >>> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, >>> so it >>> is 0 or false anyway, i.e. no change. >> >> Just me being confused with display_timings. Patch looks good. >> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >> >> Ping me in a few days to apply it if there is no more feedback. > > Ping I guess ... Laurent ? Ping one more time ? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select 2021-11-24 3:02 ` Marek Vasut @ 2021-12-07 17:30 ` Marek Vasut -1 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-12-07 17:30 UTC (permalink / raw) To: Sam Ravnborg; +Cc: dri-devel, Laurent Pinchart, Rob Herring, devicetree On 11/24/21 04:02, Marek Vasut wrote: > On 10/24/21 1:04 AM, Marek Vasut wrote: >> On 10/17/21 7:40 PM, Sam Ravnborg wrote: >>> Hi Marek, >> >> Hi, >> >>> On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >>>> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >>>> >>>> [...] >>>> >>>>>> + /* >>>>>> + * Encoder might sample data on different clock edge than the >>>>>> display, >>>>>> + * for example OnSemi FIN3385 has a dedicated strapping pin >>>>>> to select >>>>>> + * the sampling edge. >>>>>> + */ >>>>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>>>> + lvds_codec->timings.input_bus_flags = val ? >>>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>>>> + } >>>>>> + >>>>>> /* >>>>>> * The panel_bridge bridge is attached to the panel's of_node, >>>>>> * but we need a bridge attached to our of_node for our user >>>>>> * to look up. >>>>>> */ >>>>>> lvds_codec->bridge.of_node = dev->of_node; >>>>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>>>> I do not understand how this will work. The only field that is set >>>>> is timings.input_bus_flags >>>>> but any user will see bridge.timings is set and will think this is all >>>>> timing info. >>>>> >>>>> Maybe I just misses something obvious? >>>> >>>> Is there anything else in those timings that should be set ? See >>>> include/drm/drm_bridge.h around line 640 >>>> >>>> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, >>>> so it >>>> is 0 or false anyway, i.e. no change. >>> >>> Just me being confused with display_timings. Patch looks good. >>> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >>> >>> Ping me in a few days to apply it if there is no more feedback. >> >> Ping I guess ... Laurent ? > > Ping one more time ? Ping yet again ? ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for pixel data sampling edge select @ 2021-12-07 17:30 ` Marek Vasut 0 siblings, 0 replies; 18+ messages in thread From: Marek Vasut @ 2021-12-07 17:30 UTC (permalink / raw) To: Sam Ravnborg; +Cc: devicetree, Rob Herring, Laurent Pinchart, dri-devel On 11/24/21 04:02, Marek Vasut wrote: > On 10/24/21 1:04 AM, Marek Vasut wrote: >> On 10/17/21 7:40 PM, Sam Ravnborg wrote: >>> Hi Marek, >> >> Hi, >> >>> On Sun, Oct 17, 2021 at 07:29:51PM +0200, Marek Vasut wrote: >>>> On 10/17/21 6:49 PM, Sam Ravnborg wrote: >>>> >>>> [...] >>>> >>>>>> + /* >>>>>> + * Encoder might sample data on different clock edge than the >>>>>> display, >>>>>> + * for example OnSemi FIN3385 has a dedicated strapping pin >>>>>> to select >>>>>> + * the sampling edge. >>>>>> + */ >>>>>> + if (lvds_codec->connector_type == DRM_MODE_CONNECTOR_LVDS && >>>>>> + !of_property_read_u32(dev->of_node, "pclk-sample", &val)) { >>>>>> + lvds_codec->timings.input_bus_flags = val ? >>>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_POSEDGE : >>>>>> + DRM_BUS_FLAG_PIXDATA_SAMPLE_NEGEDGE; >>>>>> + } >>>>>> + >>>>>> /* >>>>>> * The panel_bridge bridge is attached to the panel's of_node, >>>>>> * but we need a bridge attached to our of_node for our user >>>>>> * to look up. >>>>>> */ >>>>>> lvds_codec->bridge.of_node = dev->of_node; >>>>>> + lvds_codec->bridge.timings = &lvds_codec->timings; >>>>> I do not understand how this will work. The only field that is set >>>>> is timings.input_bus_flags >>>>> but any user will see bridge.timings is set and will think this is all >>>>> timing info. >>>>> >>>>> Maybe I just misses something obvious? >>>> >>>> Is there anything else in those timings that should be set ? See >>>> include/drm/drm_bridge.h around line 640 >>>> >>>> setup_time_ps/hold_time_ps/dual_link isn't supported by this driver, >>>> so it >>>> is 0 or false anyway, i.e. no change. >>> >>> Just me being confused with display_timings. Patch looks good. >>> Reviewed-by: Sam Ravnborg <sam@ravnborg.org> >>> >>> Ping me in a few days to apply it if there is no more feedback. >> >> Ping I guess ... Laurent ? > > Ping one more time ? Ping yet again ? ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2021-12-07 17:30 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-06-02 20:36 [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document pixel data sampling edge select Marek Vasut 2021-06-02 20:36 ` Marek Vasut 2021-06-02 20:36 ` Marek Vasut 2021-06-02 20:36 ` [PATCH V5 2/2] drm/bridge: lvds-codec: Add support for " Marek Vasut 2021-06-02 20:36 ` Marek Vasut 2021-06-10 16:09 ` [PATCH V5 1/2] dt-bindings: display: bridge: lvds-codec: Document " Rob Herring 2021-06-10 16:09 ` Rob Herring 2021-06-10 16:09 ` Rob Herring 2021-10-17 0:12 [PATCH v5 " Marek Vasut 2021-10-17 0:12 ` [PATCH v5 2/2] drm/bridge: lvds-codec: Add support for " Marek Vasut 2021-10-17 16:49 ` Sam Ravnborg 2021-10-17 17:29 ` Marek Vasut 2021-10-17 17:40 ` Sam Ravnborg 2021-10-17 20:05 ` Marek Vasut 2021-10-23 23:04 ` Marek Vasut 2021-11-24 3:02 ` Marek Vasut 2021-11-24 3:02 ` Marek Vasut 2021-12-07 17:30 ` Marek Vasut 2021-12-07 17:30 ` Marek Vasut
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.