summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2024-10-28 21:48:43 +0200
committerJani Nikula <jani.nikula@intel.com>2024-10-30 11:15:51 +0200
commit96670b2b0fcd8cc568d148f3312993cab7246741 (patch)
tree16face378b242773eb1a2e111132274317867582 /drivers/gpu/drm/i915
parent97b4a61ca3dfe98c9e92f5a461275229584aed5f (diff)
drm/i915/display: add subplatform group for HSW/BDW ULT
Add support for defining aliases for subplatform groups, such as HSW/BDW ULT that covers both ULT and ULX. ULT is a special case, because we slightly abuse the ULT subplatform both as a subplatform and group, but with the way this is defined, it should be fairly clear. This follows i915 core and IS_HASWELL_ULT()/IS_BROADWELL_ULT() conventions, i.e. "is ULT" also matches ULX platforms. Note: Pedantically, this should have been done earlier, but it's only feasible now that we no longer have a subplatform enum and can actually initialize multiple subplatforms. v2: Use the subplatform group idea Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/d148b6210a561b874642ae3e0ad10073d0615de7.1730144869.git.jani.nikula@intel.com Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r--drivers/gpu/drm/i915/display/intel_display_device.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/display/intel_display_device.c b/drivers/gpu/drm/i915/display/intel_display_device.c
index cf9eb6add6bf..a2ae07f6d1b7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_device.c
+++ b/drivers/gpu/drm/i915/display/intel_display_device.c
@@ -42,6 +42,13 @@ struct subplatform_desc {
.platforms._platform##_##_subplatform = 1, \
.name = #_subplatform
+/*
+ * Group subplatform alias that matches multiple subplatforms. For making ult
+ * cover both ult and ulx on HSW/BDW.
+ */
+#define SUBPLATFORM_GROUP(_platform, _subplatform) \
+ .platforms._platform##_##_subplatform = 1
+
struct platform_desc {
struct intel_display_platforms platforms;
const char *name;
@@ -511,12 +518,15 @@ static const u16 hsw_ulx_ids[] = {
static const struct platform_desc hsw_desc = {
PLATFORM(haswell),
.subplatforms = (const struct subplatform_desc[]) {
+ /* Special case: Use ult both as group and subplatform. */
{
SUBPLATFORM(haswell, ult),
+ SUBPLATFORM_GROUP(haswell, ult),
.pciidlist = hsw_ult_ids,
},
{
SUBPLATFORM(haswell, ulx),
+ SUBPLATFORM_GROUP(haswell, ult),
.pciidlist = hsw_ulx_ids,
},
{},
@@ -561,12 +571,15 @@ static const u16 bdw_ulx_ids[] = {
static const struct platform_desc bdw_desc = {
PLATFORM(broadwell),
.subplatforms = (const struct subplatform_desc[]) {
+ /* Special case: Use ult both as group and subplatform. */
{
SUBPLATFORM(broadwell, ult),
+ SUBPLATFORM_GROUP(broadwell, ult),
.pciidlist = bdw_ult_ids,
},
{
SUBPLATFORM(broadwell, ulx),
+ SUBPLATFORM_GROUP(broadwell, ult),
.pciidlist = bdw_ulx_ids,
},
{},