diff mbox

drm/i915/kbl: Fix DMC load on Kabylake.

Message ID 1449674279-17290-1-git-send-email-rodrigo.vivi@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Rodrigo Vivi Dec. 9, 2015, 3:17 p.m. UTC
Kabylake A0 is based on Skylake H0.

v2: Don't assume revid+7 and only load the one we are sure about.

v3: Rebase on top of latest changes.

v4: Accept cleaner solution from Jani with kbl_stepping_info
    starting on H0 instead of put a hack on revid.

Cc: Jani Nikula <jani.nikula@intel.com>
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
---
 drivers/gpu/drm/i915/intel_csr.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

Comments

Jani Nikula Dec. 9, 2015, 3:34 p.m. UTC | #1
On Wed, 09 Dec 2015, Rodrigo Vivi <rodrigo.vivi@intel.com> wrote:
> Kabylake A0 is based on Skylake H0.
>
> v2: Don't assume revid+7 and only load the one we are sure about.
>
> v3: Rebase on top of latest changes.
>
> v4: Accept cleaner solution from Jani with kbl_stepping_info
>     starting on H0 instead of put a hack on revid.
>
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>

Thanks.

Reviewed-by: Jani Nikula <jani.nikula@intel.com>

> ---
>  drivers/gpu/drm/i915/intel_csr.c | 13 ++++++++++++-
>  1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> index 6c6a669..9bb63a8 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -166,6 +166,14 @@ struct stepping_info {
>  	char substepping;
>  };
>  
> +/*
> + * Kabylake derivated from Skylake H0, so SKL H0
> + * is the right firmware for KBL A0 (revid 0).
> + */
> +static const struct stepping_info kbl_stepping_info[] = {
> +	{'H', '0'}, {'I', '0'}
> +};
> +
>  static const struct stepping_info skl_stepping_info[] = {
>  	{'A', '0'}, {'B', '0'}, {'C', '0'},
>  	{'D', '0'}, {'E', '0'}, {'F', '0'},
> @@ -182,7 +190,10 @@ static const struct stepping_info *intel_get_stepping_info(struct drm_device *de
>  	const struct stepping_info *si;
>  	unsigned int size;
>  
> -	if (IS_SKYLAKE(dev)) {
> +	if (IS_KABYLAKE(dev)) {
> +		size = ARRAY_SIZE(kbl_stepping_info);
> +		si = kbl_stepping_info;
> +	} else if (IS_SKYLAKE(dev)) {
>  		size = ARRAY_SIZE(skl_stepping_info);
>  		si = skl_stepping_info;
>  	} else if (IS_BROXTON(dev)) {
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 6c6a669..9bb63a8 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -166,6 +166,14 @@  struct stepping_info {
 	char substepping;
 };
 
+/*
+ * Kabylake derivated from Skylake H0, so SKL H0
+ * is the right firmware for KBL A0 (revid 0).
+ */
+static const struct stepping_info kbl_stepping_info[] = {
+	{'H', '0'}, {'I', '0'}
+};
+
 static const struct stepping_info skl_stepping_info[] = {
 	{'A', '0'}, {'B', '0'}, {'C', '0'},
 	{'D', '0'}, {'E', '0'}, {'F', '0'},
@@ -182,7 +190,10 @@  static const struct stepping_info *intel_get_stepping_info(struct drm_device *de
 	const struct stepping_info *si;
 	unsigned int size;
 
-	if (IS_SKYLAKE(dev)) {
+	if (IS_KABYLAKE(dev)) {
+		size = ARRAY_SIZE(kbl_stepping_info);
+		si = kbl_stepping_info;
+	} else if (IS_SKYLAKE(dev)) {
 		size = ARRAY_SIZE(skl_stepping_info);
 		si = skl_stepping_info;
 	} else if (IS_BROXTON(dev)) {