From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Gustavo Sousa <gustavo.sousa@intel.com>
Cc: Jani Nikula <jani.nikula@intel.com>,
intel-gfx@lists.freedesktop.org,
Lucas De Marchi <lucas.demarchi@intel.com>
Subject: Re: [Intel-gfx] [PATCH v3 1/2] drm/i915/dmc: Do not require specific versions
Date: Fri, 30 Dec 2022 03:32:41 -0500 [thread overview]
Message-ID: <Y66iKQ5aGdMzyVh2@intel.com> (raw)
In-Reply-To: <20221229190740.45471-2-gustavo.sousa@intel.com>
On Thu, Dec 29, 2022 at 04:07:39PM -0300, Gustavo Sousa wrote:
> Currently there is no DMC version requirement with respect to how i915
> interacts with it and new versions of the firmware serve as drop-in
> replacements of older ones. As such, do not require specific versions.
>
> References: https://lore.kernel.org/r/Y3081s7c5ksutpMW@intel.com
I don't believe this link is a good reference as justification
of this patch.
Probably https://docs.kernel.org/next/driver-api/firmware/firmware-usage-guidelines.html
is a better link?
Also, in the commit message we should be more clear that i915
interacts with the Hardware and not with any FW ABI/API, so the API
is fixed within the platform, hence no need to get this so-tied
version requirement.
with the commit msg changed you can count on my reviewed-by,
the patch looks good to me.
> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_dmc.c | 35 ------------------------
> drivers/gpu/drm/i915/display/intel_dmc.h | 1 -
> 2 files changed, 36 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c
> index 905b5dcdca14..4124b3d37110 100644
> --- a/drivers/gpu/drm/i915/display/intel_dmc.c
> +++ b/drivers/gpu/drm/i915/display/intel_dmc.c
> @@ -53,51 +53,40 @@
> #define DISPLAY_VER12_DMC_MAX_FW_SIZE ICL_DMC_MAX_FW_SIZE
>
> #define DG2_DMC_PATH DMC_PATH(dg2, 2, 08)
> -#define DG2_DMC_VERSION_REQUIRED DMC_VERSION(2, 8)
> MODULE_FIRMWARE(DG2_DMC_PATH);
>
> #define ADLP_DMC_PATH DMC_PATH(adlp, 2, 16)
> -#define ADLP_DMC_VERSION_REQUIRED DMC_VERSION(2, 16)
> MODULE_FIRMWARE(ADLP_DMC_PATH);
>
> #define ADLS_DMC_PATH DMC_PATH(adls, 2, 01)
> -#define ADLS_DMC_VERSION_REQUIRED DMC_VERSION(2, 1)
> MODULE_FIRMWARE(ADLS_DMC_PATH);
>
> #define DG1_DMC_PATH DMC_PATH(dg1, 2, 02)
> -#define DG1_DMC_VERSION_REQUIRED DMC_VERSION(2, 2)
> MODULE_FIRMWARE(DG1_DMC_PATH);
>
> #define RKL_DMC_PATH DMC_PATH(rkl, 2, 03)
> -#define RKL_DMC_VERSION_REQUIRED DMC_VERSION(2, 3)
> MODULE_FIRMWARE(RKL_DMC_PATH);
>
> #define TGL_DMC_PATH DMC_PATH(tgl, 2, 12)
> -#define TGL_DMC_VERSION_REQUIRED DMC_VERSION(2, 12)
> MODULE_FIRMWARE(TGL_DMC_PATH);
>
> #define ICL_DMC_PATH DMC_PATH(icl, 1, 09)
> -#define ICL_DMC_VERSION_REQUIRED DMC_VERSION(1, 9)
> #define ICL_DMC_MAX_FW_SIZE 0x6000
> MODULE_FIRMWARE(ICL_DMC_PATH);
>
> #define GLK_DMC_PATH DMC_PATH(glk, 1, 04)
> -#define GLK_DMC_VERSION_REQUIRED DMC_VERSION(1, 4)
> #define GLK_DMC_MAX_FW_SIZE 0x4000
> MODULE_FIRMWARE(GLK_DMC_PATH);
>
> #define KBL_DMC_PATH DMC_PATH(kbl, 1, 04)
> -#define KBL_DMC_VERSION_REQUIRED DMC_VERSION(1, 4)
> #define KBL_DMC_MAX_FW_SIZE BXT_DMC_MAX_FW_SIZE
> MODULE_FIRMWARE(KBL_DMC_PATH);
>
> #define SKL_DMC_PATH DMC_PATH(skl, 1, 27)
> -#define SKL_DMC_VERSION_REQUIRED DMC_VERSION(1, 27)
> #define SKL_DMC_MAX_FW_SIZE BXT_DMC_MAX_FW_SIZE
> MODULE_FIRMWARE(SKL_DMC_PATH);
>
> #define BXT_DMC_PATH DMC_PATH(bxt, 1, 07)
> -#define BXT_DMC_VERSION_REQUIRED DMC_VERSION(1, 7)
> #define BXT_DMC_MAX_FW_SIZE 0x3000
> MODULE_FIRMWARE(BXT_DMC_PATH);
>
> @@ -765,17 +754,6 @@ static u32 parse_dmc_fw_css(struct intel_dmc *dmc,
> return 0;
> }
>
> - if (dmc->required_version &&
> - css_header->version != dmc->required_version) {
> - drm_info(&i915->drm, "Refusing to load DMC firmware v%u.%u,"
> - " please use v%u.%u\n",
> - DMC_VERSION_MAJOR(css_header->version),
> - DMC_VERSION_MINOR(css_header->version),
> - DMC_VERSION_MAJOR(dmc->required_version),
> - DMC_VERSION_MINOR(dmc->required_version));
> - return 0;
> - }
> -
> dmc->version = css_header->version;
>
> return sizeof(struct intel_css_header);
> @@ -903,49 +881,38 @@ void intel_dmc_ucode_init(struct drm_i915_private *dev_priv)
>
> if (IS_DG2(dev_priv)) {
> dmc->fw_path = DG2_DMC_PATH;
> - dmc->required_version = DG2_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER13_DMC_MAX_FW_SIZE;
> } else if (IS_ALDERLAKE_P(dev_priv)) {
> dmc->fw_path = ADLP_DMC_PATH;
> - dmc->required_version = ADLP_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER13_DMC_MAX_FW_SIZE;
> } else if (IS_ALDERLAKE_S(dev_priv)) {
> dmc->fw_path = ADLS_DMC_PATH;
> - dmc->required_version = ADLS_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER12_DMC_MAX_FW_SIZE;
> } else if (IS_DG1(dev_priv)) {
> dmc->fw_path = DG1_DMC_PATH;
> - dmc->required_version = DG1_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER12_DMC_MAX_FW_SIZE;
> } else if (IS_ROCKETLAKE(dev_priv)) {
> dmc->fw_path = RKL_DMC_PATH;
> - dmc->required_version = RKL_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER12_DMC_MAX_FW_SIZE;
> } else if (IS_TIGERLAKE(dev_priv)) {
> dmc->fw_path = TGL_DMC_PATH;
> - dmc->required_version = TGL_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = DISPLAY_VER12_DMC_MAX_FW_SIZE;
> } else if (DISPLAY_VER(dev_priv) == 11) {
> dmc->fw_path = ICL_DMC_PATH;
> - dmc->required_version = ICL_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = ICL_DMC_MAX_FW_SIZE;
> } else if (IS_GEMINILAKE(dev_priv)) {
> dmc->fw_path = GLK_DMC_PATH;
> - dmc->required_version = GLK_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = GLK_DMC_MAX_FW_SIZE;
> } else if (IS_KABYLAKE(dev_priv) ||
> IS_COFFEELAKE(dev_priv) ||
> IS_COMETLAKE(dev_priv)) {
> dmc->fw_path = KBL_DMC_PATH;
> - dmc->required_version = KBL_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = KBL_DMC_MAX_FW_SIZE;
> } else if (IS_SKYLAKE(dev_priv)) {
> dmc->fw_path = SKL_DMC_PATH;
> - dmc->required_version = SKL_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = SKL_DMC_MAX_FW_SIZE;
> } else if (IS_BROXTON(dev_priv)) {
> dmc->fw_path = BXT_DMC_PATH;
> - dmc->required_version = BXT_DMC_VERSION_REQUIRED;
> dmc->max_fw_size = BXT_DMC_MAX_FW_SIZE;
> }
>
> @@ -958,8 +925,6 @@ void intel_dmc_ucode_init(struct drm_i915_private *dev_priv)
> }
>
> dmc->fw_path = dev_priv->params.dmc_firmware_path;
> - /* Bypass version check for firmware override. */
> - dmc->required_version = 0;
> }
>
> if (!dmc->fw_path) {
> diff --git a/drivers/gpu/drm/i915/display/intel_dmc.h b/drivers/gpu/drm/i915/display/intel_dmc.h
> index 67e03315ef99..435eab9b016b 100644
> --- a/drivers/gpu/drm/i915/display/intel_dmc.h
> +++ b/drivers/gpu/drm/i915/display/intel_dmc.h
> @@ -25,7 +25,6 @@ enum {
> struct intel_dmc {
> struct work_struct work;
> const char *fw_path;
> - u32 required_version;
> u32 max_fw_size; /* bytes */
> u32 version;
> struct dmc_fw_info {
> --
> 2.39.0
>
next prev parent reply other threads:[~2022-12-30 8:32 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-29 19:07 [Intel-gfx] [PATCH v3 0/2] drm/i915/dmc: Make firmware loading backwards-compatible Gustavo Sousa
2022-12-29 19:07 ` [Intel-gfx] [PATCH v3 1/2] drm/i915/dmc: Do not require specific versions Gustavo Sousa
2022-12-30 8:32 ` Rodrigo Vivi [this message]
2022-12-30 12:42 ` Gustavo Sousa
2022-12-30 16:52 ` Rodrigo Vivi
2022-12-30 18:27 ` Gustavo Sousa
2022-12-29 19:07 ` [Intel-gfx] [PATCH v3 2/2] drm/i915/dmc: Prepare to use unversioned paths Gustavo Sousa
2022-12-30 8:47 ` Rodrigo Vivi
2022-12-30 13:36 ` Gustavo Sousa
2022-12-30 16:56 ` Rodrigo Vivi
2022-12-29 19:24 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/dmc: Make firmware loading backwards-compatible (rev3) Patchwork
2022-12-29 19:51 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " 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=Y66iKQ5aGdMzyVh2@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=gustavo.sousa@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@intel.com \
--cc=lucas.demarchi@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.