From: Douglas Anderson <dianders@chromium.org> To: Andrzej Hajda <a.hajda@samsung.com>, Neil Armstrong <narmstrong@baylibre.com>, Laurent Pinchart <Laurent.pinchart@ideasonboard.com>, Jonas Karlman <jonas@kwiboo.se>, Jernej Skrabec <jernej.skrabec@siol.net>, Sam Ravnborg <sam@ravnborg.org> Cc: Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>, Lyude Paul <lyude@redhat.com>, Thierry Reding <treding@nvidia.com>, Stephen Boyd <swboyd@chromium.org>, Bjorn Andersson <bjorn.andersson@linaro.org>, linux-arm-msm@vger.kernel.org, Maarten Lankhorst <maarten.lankhorst@linux.intel.com>, Linus W <linus.walleij@linaro.org>, dri-devel@lists.freedesktop.org, robdclark@chromium.org, Steev Klimaszewski <steev@kali.org>, Douglas Anderson <dianders@chromium.org>, Daniel Vetter <daniel@ffwll.ch>, David Airlie <airlied@linux.ie>, Thierry Reding <thierry.reding@gmail.com>, linux-kernel@vger.kernel.org Subject: [PATCH v7 06/10] drm/panel: panel-simple: Stash DP AUX bus; allow using it for DDC Date: Mon, 17 May 2021 13:09:03 -0700 [thread overview] Message-ID: <20210517130450.v7.6.I18e60221f6d048d14d6c50a770b15f356fa75092@changeid> (raw) In-Reply-To: <20210517200907.1459182-1-dianders@chromium.org> If panel-simple is instantiated as a DP AUX bus endpoint then we have access to the DP AUX bus. Let's stash it in the panel-simple structure, leaving it NULL for the cases where the panel is instantiated in other ways. If we happen to have access to the DP AUX bus and we weren't provided the ddc-i2c-bus in some other manner, let's use the DP AUX bus for it. Signed-off-by: Douglas Anderson <dianders@chromium.org> --- Changes in v7: - Patch using the DP AUX for DDC new for v7. drivers/gpu/drm/panel/panel-simple.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index d3b5ae22d939..b09be6e5e147 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -37,6 +37,7 @@ #include <drm/drm_crtc.h> #include <drm/drm_device.h> #include <drm/drm_dp_aux_bus.h> +#include <drm/drm_dp_helper.h> #include <drm/drm_mipi_dsi.h> #include <drm/drm_panel.h> @@ -186,6 +187,7 @@ struct panel_simple { struct regulator *supply; struct i2c_adapter *ddc; + struct drm_dp_aux *aux; struct gpio_desc *enable_gpio; struct gpio_desc *hpd_gpio; @@ -658,7 +660,8 @@ static void panel_simple_parse_panel_timing_node(struct device *dev, dev_err(dev, "Reject override mode: No display_timing found\n"); } -static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) +static int panel_simple_probe(struct device *dev, const struct panel_desc *desc, + struct drm_dp_aux *aux) { struct panel_simple *panel; struct display_timing dt; @@ -674,6 +677,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) panel->enabled = false; panel->prepared_time = 0; panel->desc = desc; + panel->aux = aux; panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd"); if (!panel->no_hpd) { @@ -708,6 +712,8 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) if (!panel->ddc) return -EPROBE_DEFER; + } else if (aux) { + panel->ddc = &aux->ddc; } if (desc == &panel_dpi) { @@ -4633,7 +4639,7 @@ static int panel_simple_platform_probe(struct platform_device *pdev) if (!id) return -ENODEV; - return panel_simple_probe(&pdev->dev, id->data); + return panel_simple_probe(&pdev->dev, id->data, NULL); } static int panel_simple_platform_remove(struct platform_device *pdev) @@ -4913,7 +4919,7 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi) desc = id->data; - err = panel_simple_probe(&dsi->dev, &desc->desc); + err = panel_simple_probe(&dsi->dev, &desc->desc, NULL); if (err < 0) return err; @@ -4966,7 +4972,7 @@ static int panel_simple_dp_aux_ep_probe(struct dp_aux_ep_device *aux_ep) if (!id) return -ENODEV; - return panel_simple_probe(&aux_ep->dev, id->data); + return panel_simple_probe(&aux_ep->dev, id->data, aux_ep->aux); } static void panel_simple_dp_aux_ep_remove(struct dp_aux_ep_device *aux_ep) -- 2.31.1.751.gd2f1c929bd-goog
WARNING: multiple messages have this Message-ID (diff)
From: Douglas Anderson <dianders@chromium.org> To: Andrzej Hajda <a.hajda@samsung.com>, Neil Armstrong <narmstrong@baylibre.com>, Laurent Pinchart <Laurent.pinchart@ideasonboard.com>, Jonas Karlman <jonas@kwiboo.se>, Jernej Skrabec <jernej.skrabec@siol.net>, Sam Ravnborg <sam@ravnborg.org> Cc: robdclark@chromium.org, David Airlie <airlied@linux.ie>, linux-arm-msm@vger.kernel.org, Stephen Boyd <swboyd@chromium.org>, Douglas Anderson <dianders@chromium.org>, dri-devel@lists.freedesktop.org, Bjorn Andersson <bjorn.andersson@linaro.org>, Stanislav Lisovskiy <stanislav.lisovskiy@intel.com>, Thierry Reding <thierry.reding@gmail.com>, Steev Klimaszewski <steev@kali.org>, Thierry Reding <treding@nvidia.com>, linux-kernel@vger.kernel.org Subject: [PATCH v7 06/10] drm/panel: panel-simple: Stash DP AUX bus; allow using it for DDC Date: Mon, 17 May 2021 13:09:03 -0700 [thread overview] Message-ID: <20210517130450.v7.6.I18e60221f6d048d14d6c50a770b15f356fa75092@changeid> (raw) In-Reply-To: <20210517200907.1459182-1-dianders@chromium.org> If panel-simple is instantiated as a DP AUX bus endpoint then we have access to the DP AUX bus. Let's stash it in the panel-simple structure, leaving it NULL for the cases where the panel is instantiated in other ways. If we happen to have access to the DP AUX bus and we weren't provided the ddc-i2c-bus in some other manner, let's use the DP AUX bus for it. Signed-off-by: Douglas Anderson <dianders@chromium.org> --- Changes in v7: - Patch using the DP AUX for DDC new for v7. drivers/gpu/drm/panel/panel-simple.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index d3b5ae22d939..b09be6e5e147 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -37,6 +37,7 @@ #include <drm/drm_crtc.h> #include <drm/drm_device.h> #include <drm/drm_dp_aux_bus.h> +#include <drm/drm_dp_helper.h> #include <drm/drm_mipi_dsi.h> #include <drm/drm_panel.h> @@ -186,6 +187,7 @@ struct panel_simple { struct regulator *supply; struct i2c_adapter *ddc; + struct drm_dp_aux *aux; struct gpio_desc *enable_gpio; struct gpio_desc *hpd_gpio; @@ -658,7 +660,8 @@ static void panel_simple_parse_panel_timing_node(struct device *dev, dev_err(dev, "Reject override mode: No display_timing found\n"); } -static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) +static int panel_simple_probe(struct device *dev, const struct panel_desc *desc, + struct drm_dp_aux *aux) { struct panel_simple *panel; struct display_timing dt; @@ -674,6 +677,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) panel->enabled = false; panel->prepared_time = 0; panel->desc = desc; + panel->aux = aux; panel->no_hpd = of_property_read_bool(dev->of_node, "no-hpd"); if (!panel->no_hpd) { @@ -708,6 +712,8 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc) if (!panel->ddc) return -EPROBE_DEFER; + } else if (aux) { + panel->ddc = &aux->ddc; } if (desc == &panel_dpi) { @@ -4633,7 +4639,7 @@ static int panel_simple_platform_probe(struct platform_device *pdev) if (!id) return -ENODEV; - return panel_simple_probe(&pdev->dev, id->data); + return panel_simple_probe(&pdev->dev, id->data, NULL); } static int panel_simple_platform_remove(struct platform_device *pdev) @@ -4913,7 +4919,7 @@ static int panel_simple_dsi_probe(struct mipi_dsi_device *dsi) desc = id->data; - err = panel_simple_probe(&dsi->dev, &desc->desc); + err = panel_simple_probe(&dsi->dev, &desc->desc, NULL); if (err < 0) return err; @@ -4966,7 +4972,7 @@ static int panel_simple_dp_aux_ep_probe(struct dp_aux_ep_device *aux_ep) if (!id) return -ENODEV; - return panel_simple_probe(&aux_ep->dev, id->data); + return panel_simple_probe(&aux_ep->dev, id->data, aux_ep->aux); } static void panel_simple_dp_aux_ep_remove(struct dp_aux_ep_device *aux_ep) -- 2.31.1.751.gd2f1c929bd-goog
next prev parent reply other threads:[~2021-05-17 20:10 UTC|newest] Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-17 20:08 [PATCH v7 00/10] drm: Fix EDID reading on ti-sn65dsi86 by introducing the DP AUX bus Douglas Anderson 2021-05-17 20:08 ` Douglas Anderson 2021-05-17 20:08 ` [PATCH v7 01/10] drm/panel: panel-simple: Add missing pm_runtime_dont_use_autosuspend() calls Douglas Anderson 2021-05-17 20:08 ` Douglas Anderson 2021-05-24 20:22 ` Laurent Pinchart 2021-05-24 20:22 ` Laurent Pinchart 2021-05-24 21:08 ` Doug Anderson 2021-05-24 21:08 ` Doug Anderson 2021-05-17 20:08 ` [PATCH v7 02/10] dt-bindings: display: simple: List hpd properties in panel-simple Douglas Anderson 2021-05-17 20:08 ` Douglas Anderson 2021-05-18 12:41 ` Rob Herring 2021-05-18 12:41 ` Rob Herring 2021-05-18 13:58 ` Doug Anderson 2021-05-18 13:58 ` Doug Anderson 2021-05-22 10:38 ` Linus Walleij 2021-05-22 10:38 ` Linus Walleij 2021-05-17 20:09 ` [PATCH v7 03/10] dt-bindings: drm/bridge: ti-sn65dsi86: Add aux-bus child Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-19 20:01 ` Rob Herring 2021-05-19 20:01 ` Rob Herring 2021-05-19 21:06 ` Doug Anderson 2021-05-19 21:06 ` Doug Anderson 2021-05-20 13:25 ` Rob Herring 2021-05-20 13:25 ` Rob Herring 2021-05-17 20:09 ` [PATCH v7 04/10] drm: Introduce the DP AUX bus Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-22 10:34 ` Linus Walleij 2021-05-22 10:34 ` Linus Walleij 2021-05-17 20:09 ` [PATCH v7 05/10] drm/panel: panel-simple: Allow panel-simple be a DP AUX endpoint device Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson [this message] 2021-05-17 20:09 ` [PATCH v7 06/10] drm/panel: panel-simple: Stash DP AUX bus; allow using it for DDC Douglas Anderson 2021-05-17 20:09 ` [PATCH v7 07/10] drm/bridge: ti-sn65dsi86: Promote the AUX channel to its own sub-dev Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-17 20:09 ` [PATCH v7 08/10] drm/bridge: ti-sn65dsi86: Add support for the DP AUX bus Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-22 10:35 ` Linus Walleij 2021-05-22 10:35 ` Linus Walleij 2021-05-24 20:29 ` Lyude Paul 2021-05-24 20:29 ` Lyude Paul 2021-05-17 20:09 ` [PATCH v7 09/10] drm/bridge: ti-sn65dsi86: Don't read EDID blob over DDC Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-17 20:09 ` [PATCH v7 10/10] arm64: dts: qcom: sc7180-trogdor: Move panel under the bridge chip Douglas Anderson 2021-05-17 20:09 ` Douglas Anderson 2021-05-22 10:40 ` Linus Walleij 2021-05-22 10:40 ` Linus Walleij 2021-05-19 21:41 ` [PATCH v7 00/10] drm: Fix EDID reading on ti-sn65dsi86 by introducing the DP AUX bus Lyude Paul 2021-05-19 21:41 ` Lyude Paul 2021-05-21 23:07 ` Lyude Paul 2021-05-21 23:07 ` Lyude Paul 2021-05-24 15:14 ` Doug Anderson 2021-05-24 15:14 ` Doug Anderson
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210517130450.v7.6.I18e60221f6d048d14d6c50a770b15f356fa75092@changeid \ --to=dianders@chromium.org \ --cc=Laurent.pinchart@ideasonboard.com \ --cc=a.hajda@samsung.com \ --cc=airlied@linux.ie \ --cc=bjorn.andersson@linaro.org \ --cc=daniel@ffwll.ch \ --cc=dri-devel@lists.freedesktop.org \ --cc=jernej.skrabec@siol.net \ --cc=jonas@kwiboo.se \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=lyude@redhat.com \ --cc=maarten.lankhorst@linux.intel.com \ --cc=narmstrong@baylibre.com \ --cc=robdclark@chromium.org \ --cc=sam@ravnborg.org \ --cc=stanislav.lisovskiy@intel.com \ --cc=steev@kali.org \ --cc=swboyd@chromium.org \ --cc=thierry.reding@gmail.com \ --cc=treding@nvidia.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.