From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH v8 6/8] drm/i915/bios: convert intel_bios_init_panel() to drm_edid
Date: Fri, 20 Jan 2023 20:48:52 +0200 [thread overview]
Message-ID: <Y8riFG2xEX5wzTRd@intel.com> (raw)
In-Reply-To: <dd0c819b12b8ec2a0ed8bb7ef4cb840bd4980bdf.1674144945.git.jani.nikula@intel.com>
On Thu, Jan 19, 2023 at 06:18:59PM +0200, Jani Nikula wrote:
> Try to use struct drm_edid where possible, even if having to fall back
> to looking into struct edid down low via drm_edid_raw().
>
> v2: Rebase
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_bios.c | 23 ++++++++++++-----------
> drivers/gpu/drm/i915/display/intel_bios.h | 4 ++--
> drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
> drivers/gpu/drm/i915/display/intel_lvds.c | 2 +-
> 4 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 78abe34c7a42..e6ca51232dcf 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -619,14 +619,14 @@ static void dump_pnp_id(struct drm_i915_private *i915,
>
> static int opregion_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> return intel_opregion_get_panel_type(i915);
> }
>
> static int vbt_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> const struct bdb_lvds_options *lvds_options;
>
> @@ -651,12 +651,13 @@ static int vbt_get_panel_type(struct drm_i915_private *i915,
>
> static int pnpid_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> const struct bdb_lvds_lfp_data *data;
> const struct bdb_lvds_lfp_data_ptrs *ptrs;
> const struct lvds_pnp_id *edid_id;
> struct lvds_pnp_id edid_id_nodate;
> + const struct edid *edid = drm_edid_raw(drm_edid); /* FIXME */
> int i, best = -1;
>
> if (!edid)
> @@ -700,7 +701,7 @@ static int pnpid_get_panel_type(struct drm_i915_private *i915,
>
> static int fallback_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> return use_fallback ? 0 : -1;
> }
> @@ -714,13 +715,13 @@ enum panel_type {
>
> static int get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> struct {
> const char *name;
> int (*get_panel_type)(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback);
> + const struct drm_edid *drm_edid, bool use_fallback);
> int panel_type;
> } panel_types[] = {
> [PANEL_TYPE_OPREGION] = {
> @@ -744,7 +745,7 @@ static int get_panel_type(struct drm_i915_private *i915,
>
> for (i = 0; i < ARRAY_SIZE(panel_types); i++) {
> panel_types[i].panel_type = panel_types[i].get_panel_type(i915, devdata,
> - edid, use_fallback);
> + drm_edid, use_fallback);
>
> drm_WARN_ON(&i915->drm, panel_types[i].panel_type > 0xf &&
> panel_types[i].panel_type != 0xff);
> @@ -3186,7 +3187,7 @@ void intel_bios_init(struct drm_i915_private *i915)
> static void intel_bios_init_panel(struct drm_i915_private *i915,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid,
> + const struct drm_edid *drm_edid,
> bool use_fallback)
> {
> /* already have it? */
> @@ -3196,7 +3197,7 @@ static void intel_bios_init_panel(struct drm_i915_private *i915,
> }
>
> panel->vbt.panel_type = get_panel_type(i915, devdata,
> - edid, use_fallback);
> + drm_edid, use_fallback);
> if (panel->vbt.panel_type < 0) {
> drm_WARN_ON(&i915->drm, use_fallback);
> return;
> @@ -3227,9 +3228,9 @@ void intel_bios_init_panel_early(struct drm_i915_private *i915,
> void intel_bios_init_panel_late(struct drm_i915_private *i915,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid)
> + const struct drm_edid *drm_edid)
> {
> - intel_bios_init_panel(i915, panel, devdata, edid, true);
> + intel_bios_init_panel(i915, panel, devdata, drm_edid, true);
> }
>
> /**
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
> index ff1fdd2e0c1c..d221f784aa88 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.h
> +++ b/drivers/gpu/drm/i915/display/intel_bios.h
> @@ -32,8 +32,8 @@
>
> #include <linux/types.h>
>
> +struct drm_edid;
> struct drm_i915_private;
> -struct edid;
> struct intel_bios_encoder_data;
> struct intel_crtc_state;
> struct intel_encoder;
> @@ -238,7 +238,7 @@ void intel_bios_init_panel_early(struct drm_i915_private *dev_priv,
> void intel_bios_init_panel_late(struct drm_i915_private *dev_priv,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid);
> + const struct drm_edid *drm_edid);
> void intel_bios_fini_panel(struct intel_panel *panel);
> void intel_bios_driver_remove(struct drm_i915_private *dev_priv);
> bool intel_bios_is_valid_vbt(const void *buf, size_t size);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index cd7fae1b7543..4cc7c04b9bda 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5322,7 +5322,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
> intel_connector->edid = drm_edid;
>
> intel_bios_init_panel_late(dev_priv, &intel_connector->panel, encoder->devdata,
> - IS_ERR_OR_NULL(drm_edid) ? NULL : drm_edid_raw(drm_edid));
> + IS_ERR(drm_edid) ? NULL : drm_edid);
>
> intel_panel_add_edid_fixed_modes(intel_connector, true);
>
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 6a98787edf48..9f6910bba2e9 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -977,7 +977,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> intel_connector->edid = drm_edid;
>
> intel_bios_init_panel_late(dev_priv, &intel_connector->panel, NULL,
> - IS_ERR_OR_NULL(drm_edid) ? NULL : drm_edid_raw(drm_edid));
> + IS_ERR(drm_edid) ? NULL : drm_edid);
>
> /* Try EDID first */
> intel_panel_add_edid_fixed_modes(intel_connector, true);
> --
> 2.34.1
--
Ville Syrjälä
Intel
WARNING: multiple messages have this Message-ID (diff)
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v8 6/8] drm/i915/bios: convert intel_bios_init_panel() to drm_edid
Date: Fri, 20 Jan 2023 20:48:52 +0200 [thread overview]
Message-ID: <Y8riFG2xEX5wzTRd@intel.com> (raw)
In-Reply-To: <dd0c819b12b8ec2a0ed8bb7ef4cb840bd4980bdf.1674144945.git.jani.nikula@intel.com>
On Thu, Jan 19, 2023 at 06:18:59PM +0200, Jani Nikula wrote:
> Try to use struct drm_edid where possible, even if having to fall back
> to looking into struct edid down low via drm_edid_raw().
>
> v2: Rebase
>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_bios.c | 23 ++++++++++++-----------
> drivers/gpu/drm/i915/display/intel_bios.h | 4 ++--
> drivers/gpu/drm/i915/display/intel_dp.c | 2 +-
> drivers/gpu/drm/i915/display/intel_lvds.c | 2 +-
> 4 files changed, 16 insertions(+), 15 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.c b/drivers/gpu/drm/i915/display/intel_bios.c
> index 78abe34c7a42..e6ca51232dcf 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.c
> +++ b/drivers/gpu/drm/i915/display/intel_bios.c
> @@ -619,14 +619,14 @@ static void dump_pnp_id(struct drm_i915_private *i915,
>
> static int opregion_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> return intel_opregion_get_panel_type(i915);
> }
>
> static int vbt_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> const struct bdb_lvds_options *lvds_options;
>
> @@ -651,12 +651,13 @@ static int vbt_get_panel_type(struct drm_i915_private *i915,
>
> static int pnpid_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> const struct bdb_lvds_lfp_data *data;
> const struct bdb_lvds_lfp_data_ptrs *ptrs;
> const struct lvds_pnp_id *edid_id;
> struct lvds_pnp_id edid_id_nodate;
> + const struct edid *edid = drm_edid_raw(drm_edid); /* FIXME */
> int i, best = -1;
>
> if (!edid)
> @@ -700,7 +701,7 @@ static int pnpid_get_panel_type(struct drm_i915_private *i915,
>
> static int fallback_get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> return use_fallback ? 0 : -1;
> }
> @@ -714,13 +715,13 @@ enum panel_type {
>
> static int get_panel_type(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback)
> + const struct drm_edid *drm_edid, bool use_fallback)
> {
> struct {
> const char *name;
> int (*get_panel_type)(struct drm_i915_private *i915,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid, bool use_fallback);
> + const struct drm_edid *drm_edid, bool use_fallback);
> int panel_type;
> } panel_types[] = {
> [PANEL_TYPE_OPREGION] = {
> @@ -744,7 +745,7 @@ static int get_panel_type(struct drm_i915_private *i915,
>
> for (i = 0; i < ARRAY_SIZE(panel_types); i++) {
> panel_types[i].panel_type = panel_types[i].get_panel_type(i915, devdata,
> - edid, use_fallback);
> + drm_edid, use_fallback);
>
> drm_WARN_ON(&i915->drm, panel_types[i].panel_type > 0xf &&
> panel_types[i].panel_type != 0xff);
> @@ -3186,7 +3187,7 @@ void intel_bios_init(struct drm_i915_private *i915)
> static void intel_bios_init_panel(struct drm_i915_private *i915,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid,
> + const struct drm_edid *drm_edid,
> bool use_fallback)
> {
> /* already have it? */
> @@ -3196,7 +3197,7 @@ static void intel_bios_init_panel(struct drm_i915_private *i915,
> }
>
> panel->vbt.panel_type = get_panel_type(i915, devdata,
> - edid, use_fallback);
> + drm_edid, use_fallback);
> if (panel->vbt.panel_type < 0) {
> drm_WARN_ON(&i915->drm, use_fallback);
> return;
> @@ -3227,9 +3228,9 @@ void intel_bios_init_panel_early(struct drm_i915_private *i915,
> void intel_bios_init_panel_late(struct drm_i915_private *i915,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid)
> + const struct drm_edid *drm_edid)
> {
> - intel_bios_init_panel(i915, panel, devdata, edid, true);
> + intel_bios_init_panel(i915, panel, devdata, drm_edid, true);
> }
>
> /**
> diff --git a/drivers/gpu/drm/i915/display/intel_bios.h b/drivers/gpu/drm/i915/display/intel_bios.h
> index ff1fdd2e0c1c..d221f784aa88 100644
> --- a/drivers/gpu/drm/i915/display/intel_bios.h
> +++ b/drivers/gpu/drm/i915/display/intel_bios.h
> @@ -32,8 +32,8 @@
>
> #include <linux/types.h>
>
> +struct drm_edid;
> struct drm_i915_private;
> -struct edid;
> struct intel_bios_encoder_data;
> struct intel_crtc_state;
> struct intel_encoder;
> @@ -238,7 +238,7 @@ void intel_bios_init_panel_early(struct drm_i915_private *dev_priv,
> void intel_bios_init_panel_late(struct drm_i915_private *dev_priv,
> struct intel_panel *panel,
> const struct intel_bios_encoder_data *devdata,
> - const struct edid *edid);
> + const struct drm_edid *drm_edid);
> void intel_bios_fini_panel(struct intel_panel *panel);
> void intel_bios_driver_remove(struct drm_i915_private *dev_priv);
> bool intel_bios_is_valid_vbt(const void *buf, size_t size);
> diff --git a/drivers/gpu/drm/i915/display/intel_dp.c b/drivers/gpu/drm/i915/display/intel_dp.c
> index cd7fae1b7543..4cc7c04b9bda 100644
> --- a/drivers/gpu/drm/i915/display/intel_dp.c
> +++ b/drivers/gpu/drm/i915/display/intel_dp.c
> @@ -5322,7 +5322,7 @@ static bool intel_edp_init_connector(struct intel_dp *intel_dp,
> intel_connector->edid = drm_edid;
>
> intel_bios_init_panel_late(dev_priv, &intel_connector->panel, encoder->devdata,
> - IS_ERR_OR_NULL(drm_edid) ? NULL : drm_edid_raw(drm_edid));
> + IS_ERR(drm_edid) ? NULL : drm_edid);
>
> intel_panel_add_edid_fixed_modes(intel_connector, true);
>
> diff --git a/drivers/gpu/drm/i915/display/intel_lvds.c b/drivers/gpu/drm/i915/display/intel_lvds.c
> index 6a98787edf48..9f6910bba2e9 100644
> --- a/drivers/gpu/drm/i915/display/intel_lvds.c
> +++ b/drivers/gpu/drm/i915/display/intel_lvds.c
> @@ -977,7 +977,7 @@ void intel_lvds_init(struct drm_i915_private *dev_priv)
> intel_connector->edid = drm_edid;
>
> intel_bios_init_panel_late(dev_priv, &intel_connector->panel, NULL,
> - IS_ERR_OR_NULL(drm_edid) ? NULL : drm_edid_raw(drm_edid));
> + IS_ERR(drm_edid) ? NULL : drm_edid);
>
> /* Try EDID first */
> intel_panel_add_edid_fixed_modes(intel_connector, true);
> --
> 2.34.1
--
Ville Syrjälä
Intel
next prev parent reply other threads:[~2023-01-20 18:49 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-19 16:18 [Intel-gfx] [PATCH v8 0/8] drm/edid: info & modes parsing and drm_edid refactors Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 1/8] drm/edid: split HDMI VSDB info and mode parsing Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 2/8] drm/edid: refactor _drm_edid_connector_update() and rename Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 3/8] drm/edid: add separate drm_edid_connector_add_modes() Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 4/8] drm/edid: remove redundant _drm_connector_update_edid_property() Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-23 9:59 ` [Intel-gfx] " Jani Nikula
2023-01-23 9:59 ` Jani Nikula
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 5/8] drm/i915/edid: convert DP, HDMI and LVDS to drm_edid Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-20 18:48 ` [Intel-gfx] " Ville Syrjälä
2023-01-20 18:48 ` Ville Syrjälä
2023-01-23 10:15 ` [Intel-gfx] " Jani Nikula
2023-01-23 10:15 ` Jani Nikula
2023-01-23 18:22 ` [Intel-gfx] " Ville Syrjälä
2023-01-23 18:22 ` Ville Syrjälä
2023-01-19 16:18 ` [Intel-gfx] [PATCH v8 6/8] drm/i915/bios: convert intel_bios_init_panel() " Jani Nikula
2023-01-19 16:18 ` Jani Nikula
2023-01-20 18:48 ` Ville Syrjälä [this message]
2023-01-20 18:48 ` Ville Syrjälä
2023-01-19 16:19 ` [Intel-gfx] [PATCH v8 7/8] drm/i915/opregion: convert intel_opregion_get_edid() to struct drm_edid Jani Nikula
2023-01-19 16:19 ` Jani Nikula
2023-01-20 18:49 ` [Intel-gfx] " Ville Syrjälä
2023-01-20 18:49 ` Ville Syrjälä
2023-01-19 16:19 ` [Intel-gfx] [PATCH v8 8/8] drm/i915/panel: move panel fixed EDID to struct intel_panel Jani Nikula
2023-01-19 16:19 ` Jani Nikula
2023-01-20 18:49 ` [Intel-gfx] " Ville Syrjälä
2023-01-20 18:49 ` Ville Syrjälä
2023-01-19 18:14 ` [Intel-gfx] ✓ Fi.CI.BAT: success for drm/edid: info & modes parsing and drm_edid refactors (rev3) Patchwork
2023-01-20 21:51 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
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=Y8riFG2xEX5wzTRd@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.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: link
Be 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.