* [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support @ 2023-01-25 21:09 Jonathan Cormier 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier ` (3 more replies) 0 siblings, 4 replies; 14+ messages in thread From: Jonathan Cormier @ 2023-01-25 21:09 UTC (permalink / raw) To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier The TFP410 driver does not support I2C. As such, the device remains in Power Down if the I2C is enabled by the bootstrap pins. Add basic support for the I2C interface, and provide support to take the device out of power down when enabled. Also read the bootstrap mode pins via the CTL_1_MODE register when using the I2C bus. Also allow polling device to support hdmi/dvi hotplug detection. To: Andrzej Hajda <andrzej.hajda@intel.com> To: Neil Armstrong <neil.armstrong@linaro.org> To: Robert Foss <robert.foss@linaro.org> To: Laurent Pinchart <Laurent.pinchart@ideasonboard.com> To: Jonas Karlman <jonas@kwiboo.se> To: Jernej Skrabec <jernej.skrabec@gmail.com> To: David Airlie <airlied@gmail.com> To: Daniel Vetter <daniel@ffwll.ch> To: Rob Herring <robh+dt@kernel.org> To: Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org> To: Tomi Valkeinen <tomi.valkeinen@ti.com> To: Jyri Sarha <jsarha@ti.com> Cc: dri-devel@lists.freedesktop.org Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: Michael Williamson <michael.williamson@criticallink.com> Cc: Bob Duke <bduke@criticallink.com> Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> --- Jonathan Cormier (1): dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Michael Williamson (3): DRM: BRIDGE: TFP410: Support basic I2C interface DRM: BRIDGE: TFP410: Fix logic to configured polled HPD DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++ drivers/gpu/drm/bridge/ti-tfp410.c | 110 +++++++++++++++------ 2 files changed, 124 insertions(+), 28 deletions(-) --- base-commit: 93f875a8526a291005e7f38478079526c843cbec change-id: 20230125-tfp410_i2c-3b270b0bf3e0 Best regards, -- Jonathan Cormier <jcormier@criticallink.com> ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example 2023-01-25 21:09 [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support Jonathan Cormier @ 2023-01-25 21:09 ` Jonathan Cormier 2023-01-25 21:24 ` Laurent Pinchart ` (2 more replies) 2023-01-25 21:09 ` [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface Jonathan Cormier ` (2 subsequent siblings) 3 siblings, 3 replies; 14+ messages in thread From: Jonathan Cormier @ 2023-01-25 21:09 UTC (permalink / raw) To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier Add a i2c example with HDMI connector Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> --- .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml index 4c5dd8ec2951..456214f14b47 100644 --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml @@ -116,4 +116,46 @@ examples: }; }; + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + hdmi_encoder: tfp410@38 { + compatible = "ti,tfp410"; + reg = <0x38>; + + ports { + address-cells = <1>; + size-cells = <0>; + + port@0 { + reg = <0>; + tfp410_in: endpoint { + remote-endpoint = <&dpi1_out>; + }; + }; + + port@1 { + reg = <1>; + tfp410_out: endpoint { + remote-endpoint = <&hdmi_connector_in>; + }; + }; + }; + }; + }; + + hdmi: hdmi_connector { + compatible = "hdmi-connector"; + label = "hdmi"; + type = "a"; + ddc-i2c-bus = <&i2c1>; + port { + hdmi_connector_in: endpoint { + remote-endpoint = <&tfp410_out>; + }; + }; + }; + ... -- 2.25.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier @ 2023-01-25 21:24 ` Laurent Pinchart 2023-01-25 21:59 ` Jon Cormier 2023-01-26 2:54 ` Rob Herring 2023-01-26 15:39 ` Krzysztof Kozlowski 2 siblings, 1 reply; 14+ messages in thread From: Laurent Pinchart @ 2023-01-25 21:24 UTC (permalink / raw) To: Jonathan Cormier Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke Hi Jonathan, Thank you for the patch. On Wed, Jan 25, 2023 at 04:09:09PM -0500, Jonathan Cormier wrote: > Add a i2c example with HDMI connector > > Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> > --- > .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > index 4c5dd8ec2951..456214f14b47 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > @@ -116,4 +116,46 @@ examples: > }; > }; > > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; Please use 4 spaces for indentation, as in the other example. > + > + hdmi_encoder: tfp410@38 { > + compatible = "ti,tfp410"; > + reg = <0x38>; > + > + ports { > + address-cells = <1>; > + size-cells = <0>; > + > + port@0 { > + reg = <0>; > + tfp410_in: endpoint { > + remote-endpoint = <&dpi1_out>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + tfp410_out: endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; > + }; > + }; > + }; > + }; > + > + hdmi: hdmi_connector { > + compatible = "hdmi-connector"; > + label = "hdmi"; > + type = "a"; > + ddc-i2c-bus = <&i2c1>; > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&tfp410_out>; > + }; > + }; > + }; > + You can drop the hdmi connector, the example will still validate. > ... -- Regards, Laurent Pinchart ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example 2023-01-25 21:24 ` Laurent Pinchart @ 2023-01-25 21:59 ` Jon Cormier 0 siblings, 0 replies; 14+ messages in thread From: Jon Cormier @ 2023-01-25 21:59 UTC (permalink / raw) To: Laurent Pinchart Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke On Wed, Jan 25, 2023 at 4:24 PM Laurent Pinchart <laurent.pinchart@ideasonboard.com> wrote: > > Hi Jonathan, > > Thank you for the patch. > > On Wed, Jan 25, 2023 at 04:09:09PM -0500, Jonathan Cormier wrote: > > Add a i2c example with HDMI connector > > > > Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> > > --- > > .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++++++++++++++++ > > 1 file changed, 42 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > > index 4c5dd8ec2951..456214f14b47 100644 > > --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > > +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > > @@ -116,4 +116,46 @@ examples: > > }; > > }; > > > > + - | > > + i2c { > > + #address-cells = <1>; > > + #size-cells = <0>; > > Please use 4 spaces for indentation, as in the other example. Will do, the whole file is 2 space indents. I didn't notice the examples switch to 4 spaces. > > > + > > + hdmi_encoder: tfp410@38 { > > + compatible = "ti,tfp410"; > > + reg = <0x38>; > > + > > + ports { > > + address-cells = <1>; > > + size-cells = <0>; > > + > > + port@0 { > > + reg = <0>; > > + tfp410_in: endpoint { > > + remote-endpoint = <&dpi1_out>; > > + }; > > + }; > > + > > + port@1 { > > + reg = <1>; > > + tfp410_out: endpoint { > > + remote-endpoint = <&hdmi_connector_in>; > > + }; > > + }; > > + }; > > + }; > > + }; > > + > > + hdmi: hdmi_connector { > > + compatible = "hdmi-connector"; > > + label = "hdmi"; > > + type = "a"; > > + ddc-i2c-bus = <&i2c1>; > > + port { > > + hdmi_connector_in: endpoint { > > + remote-endpoint = <&tfp410_out>; > > + }; > > + }; > > + }; > > + > > You can drop the hdmi connector, the example will still validate. Okay > > > ... > > -- > Regards, > > Laurent Pinchart -- Jonathan Cormier Software Engineer Voice: 315.425.4045 x222 http://www.CriticalLink.com 6712 Brooklawn Parkway, Syracuse, NY 13211 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier 2023-01-25 21:24 ` Laurent Pinchart @ 2023-01-26 2:54 ` Rob Herring 2023-01-26 15:39 ` Krzysztof Kozlowski 2 siblings, 0 replies; 14+ messages in thread From: Rob Herring @ 2023-01-26 2:54 UTC (permalink / raw) To: Jonathan Cormier Cc: Krzysztof Kozlowski, Jernej Skrabec, Neil Armstrong, Tomi Valkeinen, Robert Foss, Laurent Pinchart, Rob Herring, Jyri Sarha, dri-devel, David Airlie, Jonas Karlman, Andrzej Hajda, linux-kernel, Michael Williamson, Bob Duke, Daniel Vetter, devicetree On Wed, 25 Jan 2023 16:09:09 -0500, Jonathan Cormier wrote: > Add a i2c example with HDMI connector > > Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> > --- > .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/display/bridge/ti,tfp410.example.dts:77.37-79.19: ERROR (duplicate_label): /example-1/i2c/tfp410@38/ports/port@0/endpoint: Duplicate label 'tfp410_in' on /example-1/i2c/tfp410@38/ports/port@0/endpoint and /example-0/encoder/ports/port@0/endpoint Documentation/devicetree/bindings/display/bridge/ti,tfp410.example.dts:84.38-86.19: ERROR (duplicate_label): /example-1/i2c/tfp410@38/ports/port@1/endpoint: Duplicate label 'tfp410_out' on /example-1/i2c/tfp410@38/ports/port@1/endpoint and /example-0/encoder/ports/port@1/endpoint ERROR: Input tree has errors, aborting (use -f to force output) make[1]: *** [scripts/Makefile.lib:434: Documentation/devicetree/bindings/display/bridge/ti,tfp410.example.dtb] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:1508: dt_binding_check] Error 2 doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230125-tfp410_i2c-v1-1-66a4d4e390b7@criticallink.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier 2023-01-25 21:24 ` Laurent Pinchart 2023-01-26 2:54 ` Rob Herring @ 2023-01-26 15:39 ` Krzysztof Kozlowski [not found] ` <CADL8D3YUNnsZt8tc8x9CxH5Ug6kWJHb=a3N5VJFPSePWH3yWxg@mail.gmail.com> 2 siblings, 1 reply; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-01-26 15:39 UTC (permalink / raw) To: Jonathan Cormier, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke On 25/01/2023 22:09, Jonathan Cormier wrote: > Add a i2c example with HDMI connector Why? It's the same - but more on this below. > > Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> You need to test the bindings before sending and fix the errors. > --- > .../bindings/display/bridge/ti,tfp410.yaml | 42 ++++++++++++++++++++++ > 1 file changed, 42 insertions(+) > > diff --git a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > index 4c5dd8ec2951..456214f14b47 100644 > --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml > @@ -116,4 +116,46 @@ examples: > }; > }; > > + - | > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + hdmi_encoder: tfp410@38 { Node names should be generic. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > + compatible = "ti,tfp410"; > + reg = <0x38>; > + > + ports { > + address-cells = <1>; > + size-cells = <0>; > + > + port@0 { > + reg = <0>; > + tfp410_in: endpoint { > + remote-endpoint = <&dpi1_out>; > + }; > + }; > + > + port@1 { > + reg = <1>; > + tfp410_out: endpoint { > + remote-endpoint = <&hdmi_connector_in>; > + }; That's the same example as existing one, so it looks useless. I don't see benefits of this example. > + }; > + }; > + }; > + }; > + > + hdmi: hdmi_connector { Drop. Incorrect name and not really related. > + compatible = "hdmi-connector"; > + label = "hdmi"; > + type = "a"; > + ddc-i2c-bus = <&i2c1>; > + port { > + hdmi_connector_in: endpoint { > + remote-endpoint = <&tfp410_out>; > + }; > + }; > + }; > + > ... > Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
[parent not found: <CADL8D3YUNnsZt8tc8x9CxH5Ug6kWJHb=a3N5VJFPSePWH3yWxg@mail.gmail.com>]
* Re: [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example [not found] ` <CADL8D3YUNnsZt8tc8x9CxH5Ug6kWJHb=a3N5VJFPSePWH3yWxg@mail.gmail.com> @ 2023-01-27 8:30 ` Krzysztof Kozlowski 0 siblings, 0 replies; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-01-27 8:30 UTC (permalink / raw) To: Jon Cormier Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke On 26/01/2023 19:36, Jon Cormier wrote: > On Thu, Jan 26, 2023 at 10:40 AM Krzysztof Kozlowski < > krzysztof.kozlowski@linaro.org> wrote: > >> On 25/01/2023 22:09, Jonathan Cormier wrote: >>> Add a i2c example with HDMI connector >> >> Why? It's the same - but more on this below. >> > The existing example is for the previous setup where it was configured as > its own device. It seemed necessary now that the driver is going to > support being connected to an i2c bus to show it being used as such. > >> >>> >>> Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> >> >> You need to test the bindings before sending and fix the errors. >> > Will do > >> >>> --- >>> .../bindings/display/bridge/ti,tfp410.yaml | 42 >> ++++++++++++++++++++++ >>> 1 file changed, 42 insertions(+) >>> >>> diff --git >> a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml >> b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml >>> index 4c5dd8ec2951..456214f14b47 100644 >>> --- a/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml >>> +++ b/Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml >>> @@ -116,4 +116,46 @@ examples: >>> }; >>> }; >>> >>> + - | >>> + i2c { >>> + #address-cells = <1>; >>> + #size-cells = <0>; >>> + >>> + hdmi_encoder: tfp410@38 { >> >> Node names should be generic. >> >> https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation >> >> Can do > >>> + compatible = "ti,tfp410"; >>> + reg = <0x38>; >>> + >>> + ports { >>> + address-cells = <1>; >>> + size-cells = <0>; >>> + >>> + port@0 { >>> + reg = <0>; >>> + tfp410_in: endpoint { >>> + remote-endpoint = <&dpi1_out>; >>> + }; >>> + }; >>> + >>> + port@1 { >>> + reg = <1>; >>> + tfp410_out: endpoint { >>> + remote-endpoint = <&hdmi_connector_in>; >>> + }; >> >> That's the same example as existing one, so it looks useless. I don't >> see benefits of this example. >> > It's mostly the same, except defined inside an i2c bus, with the reg value > set. Without the powerdown-gpios or ti,deskew. > And without the pclk-sample and bus-width (these are now read from i2c) > And I included the hdmi_connector so it would be a more complete and useful > example of how it could be used. hdmi_connector is being dropped because it is not related. > The TFP410 doesn't handle the ddc i2c bus > on its own so a separate connector node is needed. I'll drop it if that's > preferred. > If you had here different ports, it would be different case. But as of now the only important part is having reg and not having gpios, so basically almost the same example. No need for it. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface 2023-01-25 21:09 [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support Jonathan Cormier 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier @ 2023-01-25 21:09 ` Jonathan Cormier 2023-01-26 15:41 ` Krzysztof Kozlowski 2023-01-25 21:09 ` [PATCH 3/4] DRM: BRIDGE: TFP410: Fix logic to configured polled HPD Jonathan Cormier 2023-01-25 21:09 ` [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status Jonathan Cormier 3 siblings, 1 reply; 14+ messages in thread From: Jonathan Cormier @ 2023-01-25 21:09 UTC (permalink / raw) To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier From: Michael Williamson <michael.williamson@criticallink.com> The TFP410 driver does not support I2C. As such, the device remains in Power Down if the I2C is enabled by the bootstrap pins. Add basic support for the I2C interface, and provide support to take the device out of power down when enabled. Also read the bootstrap mode pins via the CTL_1_MODE register when using the I2C bus. Signed-off-by: Michael Williamson <michael.williamson@criticallink.com> Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> --- drivers/gpu/drm/bridge/ti-tfp410.c | 95 +++++++++++++++++++++++++++----------- 1 file changed, 68 insertions(+), 27 deletions(-) diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c index b9635abbad16..323a6d9ed188 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -6,6 +6,7 @@ #include <linux/gpio/consumer.h> #include <linux/i2c.h> +#include <linux/regmap.h> #include <linux/media-bus-format.h> #include <linux/module.h> #include <linux/of_graph.h> @@ -21,6 +22,20 @@ #define HOTPLUG_DEBOUNCE_MS 1100 +#define TFP410_REG_CTL_1_MODE 0x08 +#define TFP410_BIT_PD BIT(0) +#define TFP410_BIT_EDGE BIT(1) +#define TFP410_BIT_BSEL BIT(2) +#define TFP410_BIT_DSEL BIT(3) + +static const struct regmap_config tfp410_regmap_config = { + .reg_bits = 8, + .val_bits = 8, + + .max_register = 0xff, + .cache_type = REGCACHE_NONE, +}; + struct tfp410 { struct drm_bridge bridge; struct drm_connector connector; @@ -33,6 +48,8 @@ struct tfp410 { struct drm_bridge *next_bridge; struct device *dev; + struct i2c_client *i2c; + struct regmap *regmap; }; static inline struct tfp410 * @@ -183,6 +200,9 @@ static void tfp410_enable(struct drm_bridge *bridge) { struct tfp410 *dvi = drm_bridge_to_tfp410(bridge); + if (dvi->i2c) + regmap_set_bits(dvi->regmap, TFP410_REG_CTL_1_MODE, TFP410_BIT_PD); + gpiod_set_value_cansleep(dvi->powerdown, 0); } @@ -190,6 +210,9 @@ static void tfp410_disable(struct drm_bridge *bridge) { struct tfp410 *dvi = drm_bridge_to_tfp410(bridge); + if (dvi->i2c) + regmap_clear_bits(dvi->regmap, TFP410_REG_CTL_1_MODE, TFP410_BIT_PD); + gpiod_set_value_cansleep(dvi->powerdown, 1); } @@ -221,38 +244,48 @@ static const struct drm_bridge_timings tfp410_default_timings = { .hold_time_ps = 1300, }; -static int tfp410_parse_timings(struct tfp410 *dvi, bool i2c) +static int tfp410_parse_timings(struct tfp410 *dvi) { struct drm_bridge_timings *timings = &dvi->timings; struct device_node *ep; u32 pclk_sample = 0; u32 bus_width = 24; u32 deskew = 0; + unsigned int val = 0; + int ret = 0; /* Start with defaults. */ *timings = tfp410_default_timings; - if (i2c) + if (dvi->i2c) { /* - * In I2C mode timings are configured through the I2C interface. - * As the driver doesn't support I2C configuration yet, we just - * go with the defaults (BSEL=1, DSEL=1, DKEN=0, EDGE=1). + * For now, assume settings are latched from pins on reset / power up. + * Should add options to optionally set them out of DT properties. */ - return 0; - - /* - * In non-I2C mode, timings are configured through the BSEL, DSEL, DKEN - * and EDGE pins. They are specified in DT through endpoint properties - * and vendor-specific properties. - */ - ep = of_graph_get_endpoint_by_regs(dvi->dev->of_node, 0, 0); - if (!ep) - return -EINVAL; - - /* Get the sampling edge from the endpoint. */ - of_property_read_u32(ep, "pclk-sample", &pclk_sample); - of_property_read_u32(ep, "bus-width", &bus_width); - of_node_put(ep); + ret = regmap_read(dvi->regmap, TFP410_REG_CTL_1_MODE, &val); + if (ret) { + dev_err(dvi->dev, "Read failed on CTL_1_MODE\n"); + return ret; + } + pclk_sample = (val & TFP410_BIT_EDGE) ? 1 : 0; + bus_width = (val & TFP410_BIT_BSEL) ? 24 : 12; + dev_dbg(dvi->dev, "(0x%02X) : detected %d bus width, %s edge sampling\n", + val, bus_width, pclk_sample ? "positive" : "negative"); + } else { + /* + * In non-I2C mode, timings are configured through the BSEL, DSEL, DKEN + * and EDGE pins. They are specified in DT through endpoint properties + * and vendor-specific properties. + */ + ep = of_graph_get_endpoint_by_regs(dvi->dev->of_node, 0, 0); + if (!ep) + return -EINVAL; + + /* Get the sampling edge from the endpoint. */ + of_property_read_u32(ep, "pclk-sample", &pclk_sample); + of_property_read_u32(ep, "bus-width", &bus_width); + of_node_put(ep); + } timings->input_bus_flags = DRM_BUS_FLAG_DE_HIGH; @@ -291,7 +324,7 @@ static int tfp410_parse_timings(struct tfp410 *dvi, bool i2c) return 0; } -static int tfp410_init(struct device *dev, bool i2c) +static int tfp410_init(struct device *dev, struct i2c_client *i2c) { struct device_node *node; struct tfp410 *dvi; @@ -313,15 +346,24 @@ static int tfp410_init(struct device *dev, bool i2c) dvi->bridge.of_node = dev->of_node; dvi->bridge.timings = &dvi->timings; dvi->bridge.type = DRM_MODE_CONNECTOR_DVID; + dvi->i2c = i2c; + + if (i2c) { + dvi->regmap = devm_regmap_init_i2c(i2c, &tfp410_regmap_config); + if (IS_ERR(dvi->regmap)) + return PTR_ERR(dvi->regmap); + } - ret = tfp410_parse_timings(dvi, i2c); + ret = tfp410_parse_timings(dvi); if (ret) return ret; /* Get the next bridge, connected to port@1. */ node = of_graph_get_remote_node(dev->of_node, 1, -1); - if (!node) + if (!node) { + dev_err(dev, "Could not find remote node\n"); return -ENODEV; + } dvi->next_bridge = of_drm_find_bridge(node); of_node_put(node); @@ -352,7 +394,7 @@ static void tfp410_fini(struct device *dev) static int tfp410_probe(struct platform_device *pdev) { - return tfp410_init(&pdev->dev, false); + return tfp410_init(&pdev->dev, NULL); } static int tfp410_remove(struct platform_device *pdev) @@ -378,7 +420,6 @@ static struct platform_driver tfp410_platform_driver = { }; #if IS_ENABLED(CONFIG_I2C) -/* There is currently no i2c functionality. */ static int tfp410_i2c_probe(struct i2c_client *client, const struct i2c_device_id *id) { @@ -391,7 +432,7 @@ static int tfp410_i2c_probe(struct i2c_client *client, return -ENXIO; } - return tfp410_init(&client->dev, true); + return tfp410_init(&client->dev, client); } static void tfp410_i2c_remove(struct i2c_client *client) @@ -408,7 +449,7 @@ MODULE_DEVICE_TABLE(i2c, tfp410_i2c_ids); static struct i2c_driver tfp410_i2c_driver = { .driver = { .name = "tfp410", - .of_match_table = of_match_ptr(tfp410_match), + .of_match_table = tfp410_match, }, .id_table = tfp410_i2c_ids, .probe = tfp410_i2c_probe, -- 2.25.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface 2023-01-25 21:09 ` [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface Jonathan Cormier @ 2023-01-26 15:41 ` Krzysztof Kozlowski 0 siblings, 0 replies; 14+ messages in thread From: Krzysztof Kozlowski @ 2023-01-26 15:41 UTC (permalink / raw) To: Jonathan Cormier, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke On 25/01/2023 22:09, Jonathan Cormier wrote: > From: Michael Williamson <michael.williamson@criticallink.com> > > The TFP410 driver does not support I2C. As such, the device remains in > Power Down if the I2C is enabled by the bootstrap pins. > > Add basic support for the I2C interface, and provide support to take > the device out of power down when enabled. Also read the bootstrap mode > pins via the CTL_1_MODE register when using the I2C bus. > > Signed-off-by: Michael Williamson <michael.williamson@criticallink.com> > Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> > --- > drivers/gpu/drm/bridge/ti-tfp410.c | 95 +++++++++++++++++++++++++++----------- > 1 file changed, 68 insertions(+), 27 deletions(-) Use subject prefixes matching the subsystem (which you can get for example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching). hint: it is entirely different. > > diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c > index b9635abbad16..323a6d9ed188 100644 > --- a/drivers/gpu/drm/bridge/ti-tfp410.c > +++ b/drivers/gpu/drm/bridge/ti-tfp410.c > @@ -6,6 +6,7 @@ > > #include <linux/gpio/consumer.h> > #include <linux/i2c.h> > +#include <linux/regmap.h> > #include <linux/media-bus-format.h> > #include <linux/module.h> > #include <linux/of_graph.h> > @@ -21,6 +22,20 @@ (...) > > static void tfp410_i2c_remove(struct i2c_client *client) > @@ -408,7 +449,7 @@ MODULE_DEVICE_TABLE(i2c, tfp410_i2c_ids); > static struct i2c_driver tfp410_i2c_driver = { > .driver = { > .name = "tfp410", > - .of_match_table = of_match_ptr(tfp410_match), > + .of_match_table = tfp410_match, This does not look related to the patch. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/4] DRM: BRIDGE: TFP410: Fix logic to configured polled HPD 2023-01-25 21:09 [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support Jonathan Cormier 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier 2023-01-25 21:09 ` [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface Jonathan Cormier @ 2023-01-25 21:09 ` Jonathan Cormier 2023-01-25 21:09 ` [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status Jonathan Cormier 3 siblings, 0 replies; 14+ messages in thread From: Jonathan Cormier @ 2023-01-25 21:09 UTC (permalink / raw) To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier From: Michael Williamson <michael.williamson@criticallink.com> The logic to configure polling (vs async/irq notification) of hot-plug events was not correct. If the connected bridge requires polling, then inform the upstream bridge we also require polling. Signed-off-by: Michael Williamson <michael.williamson@criticallink.com> Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> --- drivers/gpu/drm/bridge/ti-tfp410.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c index 323a6d9ed188..837e1f81a0ff 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -155,7 +155,7 @@ static int tfp410_attach(struct drm_bridge *bridge, return -ENODEV; } - if (dvi->next_bridge->ops & DRM_BRIDGE_OP_DETECT) + if (dvi->next_bridge->ops & DRM_BRIDGE_OP_HPD) dvi->connector.polled = DRM_CONNECTOR_POLL_HPD; else dvi->connector.polled = DRM_CONNECTOR_POLL_CONNECT | DRM_CONNECTOR_POLL_DISCONNECT; -- 2.25.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. 2023-01-25 21:09 [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support Jonathan Cormier ` (2 preceding siblings ...) 2023-01-25 21:09 ` [PATCH 3/4] DRM: BRIDGE: TFP410: Fix logic to configured polled HPD Jonathan Cormier @ 2023-01-25 21:09 ` Jonathan Cormier 2023-01-28 18:57 ` kernel test robot 2023-01-29 0:46 ` kernel test robot 3 siblings, 2 replies; 14+ messages in thread From: Jonathan Cormier @ 2023-01-25 21:09 UTC (permalink / raw) To: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier From: Michael Williamson <michael.williamson@criticallink.com> If the I2C bus is connected on the TFP410, then use the register status bit to determine connection state. This is needed, in particular, for polling the state when the Hot Plug detect is not connected to a controlling CPU via GPIO/IRQ lane. Signed-off-by: Michael Williamson <michael.williamson@criticallink.com> Signed-off-by: Jonathan Cormier <jcormier@criticallink.com> --- drivers/gpu/drm/bridge/ti-tfp410.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/drivers/gpu/drm/bridge/ti-tfp410.c b/drivers/gpu/drm/bridge/ti-tfp410.c index 837e1f81a0ff..ac216eaec3c8 100644 --- a/drivers/gpu/drm/bridge/ti-tfp410.c +++ b/drivers/gpu/drm/bridge/ti-tfp410.c @@ -28,6 +28,9 @@ #define TFP410_BIT_BSEL BIT(2) #define TFP410_BIT_DSEL BIT(3) +#define TFP410_REG_CTL_2_MODE 0x09 +#define TFP410_BIT_HTPLG BIT(1) + static const struct regmap_config tfp410_regmap_config = { .reg_bits = 8, .val_bits = 8, @@ -105,6 +108,16 @@ static enum drm_connector_status tfp410_connector_detect(struct drm_connector *connector, bool force) { struct tfp410 *dvi = drm_connector_to_tfp410(connector); + u32 val; + unsigned int ret; + + if (dvi->i2c) { + ret = regmap_test_bits(dvi->regmap, TFP410_REG_CTL_2_MODE, TFP410_BIT_HTPLG); + if (ret < 0) + dev_err(dvi->dev, "%s failed to read HTPLG bit : %d\n", __func__, ret); + else + return ret ? connector_status_connected : connector_status_disconnected; + } return drm_bridge_detect(dvi->next_bridge); } -- 2.25.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. 2023-01-25 21:09 ` [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status Jonathan Cormier @ 2023-01-28 18:57 ` kernel test robot 2023-01-29 0:46 ` kernel test robot 1 sibling, 0 replies; 14+ messages in thread From: kernel test robot @ 2023-01-28 18:57 UTC (permalink / raw) To: Jonathan Cormier, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: oe-kbuild-all, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier Hi Jonathan, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on 93f875a8526a291005e7f38478079526c843cbec] url: https://github.com/intel-lab-lkp/linux/commits/Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 base: 93f875a8526a291005e7f38478079526c843cbec patch link: https://lore.kernel.org/r/20230125-tfp410_i2c-v1-4-66a4d4e390b7%40criticallink.com patch subject: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20230129/202301290252.zgcWeegX-lkp@intel.com/config) compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 reproduce (this is a W=1 build): # https://github.com/intel-lab-lkp/linux/commit/c4659fa4c02b62087c095ca99978e5eac8b490de git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 git checkout c4659fa4c02b62087c095ca99978e5eac8b490de # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=x86_64 olddefconfig make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/gpu/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): drivers/gpu/drm/bridge/ti-tfp410.c: In function 'tfp410_connector_detect': >> drivers/gpu/drm/bridge/ti-tfp410.c:111:13: warning: unused variable 'val' [-Wunused-variable] 111 | u32 val; | ^~~ vim +/val +111 drivers/gpu/drm/bridge/ti-tfp410.c 106 107 static enum drm_connector_status 108 tfp410_connector_detect(struct drm_connector *connector, bool force) 109 { 110 struct tfp410 *dvi = drm_connector_to_tfp410(connector); > 111 u32 val; 112 unsigned int ret; 113 114 if (dvi->i2c) { 115 ret = regmap_test_bits(dvi->regmap, TFP410_REG_CTL_2_MODE, TFP410_BIT_HTPLG); 116 if (ret < 0) 117 dev_err(dvi->dev, "%s failed to read HTPLG bit : %d\n", __func__, ret); 118 else 119 return ret ? connector_status_connected : connector_status_disconnected; 120 } 121 122 return drm_bridge_detect(dvi->next_bridge); 123 } 124 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. 2023-01-25 21:09 ` [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status Jonathan Cormier 2023-01-28 18:57 ` kernel test robot @ 2023-01-29 0:46 ` kernel test robot 2023-01-30 16:24 ` Jon Cormier 1 sibling, 1 reply; 14+ messages in thread From: kernel test robot @ 2023-01-29 0:46 UTC (permalink / raw) To: Jonathan Cormier, Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha Cc: llvm, oe-kbuild-all, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke, Jonathan Cormier Hi Jonathan, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on 93f875a8526a291005e7f38478079526c843cbec] url: https://github.com/intel-lab-lkp/linux/commits/Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 base: 93f875a8526a291005e7f38478079526c843cbec patch link: https://lore.kernel.org/r/20230125-tfp410_i2c-v1-4-66a4d4e390b7%40criticallink.com patch subject: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. config: i386-randconfig-a006 (https://download.01.org/0day-ci/archive/20230129/202301290803.ouS19eab-lkp@intel.com/config) compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/c4659fa4c02b62087c095ca99978e5eac8b490de git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 git checkout c4659fa4c02b62087c095ca99978e5eac8b490de # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/bridge/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> All warnings (new ones prefixed by >>): >> drivers/gpu/drm/bridge/ti-tfp410.c:111:6: warning: unused variable 'val' [-Wunused-variable] u32 val; ^ 1 warning generated. vim +/val +111 drivers/gpu/drm/bridge/ti-tfp410.c 106 107 static enum drm_connector_status 108 tfp410_connector_detect(struct drm_connector *connector, bool force) 109 { 110 struct tfp410 *dvi = drm_connector_to_tfp410(connector); > 111 u32 val; 112 unsigned int ret; 113 114 if (dvi->i2c) { 115 ret = regmap_test_bits(dvi->regmap, TFP410_REG_CTL_2_MODE, TFP410_BIT_HTPLG); 116 if (ret < 0) 117 dev_err(dvi->dev, "%s failed to read HTPLG bit : %d\n", __func__, ret); 118 else 119 return ret ? connector_status_connected : connector_status_disconnected; 120 } 121 122 return drm_bridge_detect(dvi->next_bridge); 123 } 124 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. 2023-01-29 0:46 ` kernel test robot @ 2023-01-30 16:24 ` Jon Cormier 0 siblings, 0 replies; 14+ messages in thread From: Jon Cormier @ 2023-01-30 16:24 UTC (permalink / raw) To: kernel test robot Cc: Andrzej Hajda, Neil Armstrong, Robert Foss, Laurent Pinchart, Jonas Karlman, Jernej Skrabec, David Airlie, Daniel Vetter, Rob Herring, Krzysztof Kozlowski, Tomi Valkeinen, Jyri Sarha, llvm, oe-kbuild-all, dri-devel, devicetree, linux-kernel, Michael Williamson, Bob Duke On Sat, Jan 28, 2023 at 7:47 PM kernel test robot <lkp@intel.com> wrote: > > Hi Jonathan, > > Thank you for the patch! Perhaps something to improve: Good bot. > > [auto build test WARNING on 93f875a8526a291005e7f38478079526c843cbec] > > url: https://github.com/intel-lab-lkp/linux/commits/Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 > base: 93f875a8526a291005e7f38478079526c843cbec > patch link: https://lore.kernel.org/r/20230125-tfp410_i2c-v1-4-66a4d4e390b7%40criticallink.com > patch subject: [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status. > config: i386-randconfig-a006 (https://download.01.org/0day-ci/archive/20230129/202301290803.ouS19eab-lkp@intel.com/config) > compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1) > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # https://github.com/intel-lab-lkp/linux/commit/c4659fa4c02b62087c095ca99978e5eac8b490de > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Jonathan-Cormier/dt-bindings-display-bridge-tfp410-Add-tfp410-i2c-example/20230128-183627 > git checkout c4659fa4c02b62087c095ca99978e5eac8b490de > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/bridge/ > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > > All warnings (new ones prefixed by >>): > > >> drivers/gpu/drm/bridge/ti-tfp410.c:111:6: warning: unused variable 'val' [-Wunused-variable] > u32 val; > ^ > 1 warning generated. This has already been fixed in V2 of the patch series. > > > vim +/val +111 drivers/gpu/drm/bridge/ti-tfp410.c > > 106 > 107 static enum drm_connector_status > 108 tfp410_connector_detect(struct drm_connector *connector, bool force) > 109 { > 110 struct tfp410 *dvi = drm_connector_to_tfp410(connector); > > 111 u32 val; > 112 unsigned int ret; > 113 > 114 if (dvi->i2c) { > 115 ret = regmap_test_bits(dvi->regmap, TFP410_REG_CTL_2_MODE, TFP410_BIT_HTPLG); > 116 if (ret < 0) > 117 dev_err(dvi->dev, "%s failed to read HTPLG bit : %d\n", __func__, ret); > 118 else > 119 return ret ? connector_status_connected : connector_status_disconnected; > 120 } > 121 > 122 return drm_bridge_detect(dvi->next_bridge); > 123 } > 124 > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2023-01-30 16:24 UTC | newest] Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-01-25 21:09 [PATCH 0/4] DRM: BRIDGE: TFP410: Add i2c support Jonathan Cormier 2023-01-25 21:09 ` [PATCH 1/4] dt-bindings: display: bridge: tfp410: Add tfp410 i2c example Jonathan Cormier 2023-01-25 21:24 ` Laurent Pinchart 2023-01-25 21:59 ` Jon Cormier 2023-01-26 2:54 ` Rob Herring 2023-01-26 15:39 ` Krzysztof Kozlowski [not found] ` <CADL8D3YUNnsZt8tc8x9CxH5Ug6kWJHb=a3N5VJFPSePWH3yWxg@mail.gmail.com> 2023-01-27 8:30 ` Krzysztof Kozlowski 2023-01-25 21:09 ` [PATCH 2/4] DRM: BRIDGE: TFP410: Support basic I2C interface Jonathan Cormier 2023-01-26 15:41 ` Krzysztof Kozlowski 2023-01-25 21:09 ` [PATCH 3/4] DRM: BRIDGE: TFP410: Fix logic to configured polled HPD Jonathan Cormier 2023-01-25 21:09 ` [PATCH 4/4] DRM: BRIDGE: TFP410: If connected, use I2C for polled HPD status Jonathan Cormier 2023-01-28 18:57 ` kernel test robot 2023-01-29 0:46 ` kernel test robot 2023-01-30 16:24 ` Jon Cormier
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).