All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] drm/panfrost: Clean up our feature lists
@ 2022-01-09 17:09 ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Rob Herring, Tomeu Vizoso, Steven Price, Alyssa Rosenzweig,
	David Airlie, Daniel Vetter, linux-kernel

We've cargo culted a large number of useless feature bits from kbase.
We're about to add support for a number of new Mali GPUs into mainline.
Let's cut down on the copy-paste required and clean up the feature lists
first.

Alyssa Rosenzweig (2):
  drm/panfrost: Remove features meant for userspace
  drm/panfrost: Merge some feature lists

 drivers/gpu/drm/panfrost/panfrost_features.h | 212 +------------------
 1 file changed, 7 insertions(+), 205 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 0/2] drm/panfrost: Clean up our feature lists
@ 2022-01-09 17:09 ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, Steven Price,
	Alyssa Rosenzweig

We've cargo culted a large number of useless feature bits from kbase.
We're about to add support for a number of new Mali GPUs into mainline.
Let's cut down on the copy-paste required and clean up the feature lists
first.

Alyssa Rosenzweig (2):
  drm/panfrost: Remove features meant for userspace
  drm/panfrost: Merge some feature lists

 drivers/gpu/drm/panfrost/panfrost_features.h | 212 +------------------
 1 file changed, 7 insertions(+), 205 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 1/2] drm/panfrost: Remove features meant for userspace
  2022-01-09 17:09 ` Alyssa Rosenzweig
@ 2022-01-09 17:09   ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Rob Herring, Tomeu Vizoso, Steven Price, Alyssa Rosenzweig,
	David Airlie, Daniel Vetter, linux-kernel

Early versions of the legacy kernel driver included comprehensive
feature lists for every GPU, even though most of the enumerated features
only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING
was a feature bit indicating that a GPU had "interpipe register
aliasing": arithmetic, load/store, and texture instruction all use
common general-purpose registers. GPUs without this feature bit have
dedicated load/store and texture "registers". Whether a GPU has this
feature or not is irrelevant to the kernel; it only matters in the
userspace compiler's register allocator. It's silly to enumerate it in
kernel space, and the information is understandably unused. To
underscore the point, this feature only makes sense in the context of
the Midgard instruction set. Bifrost never had dedicated load/store or
texture registers, so the feature bit was vacuously set for all Bifrost
hardware, even though this conveys no useful information.

To clean up the feature list, delete feature bits which could not
possibly matter to the kernel, leaving only those which do affect the
register-level operation of the chip.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_features.h | 172 -------------------
 1 file changed, 172 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
index 5056777c7744..f557fad5d5ff 100644
--- a/drivers/gpu/drm/panfrost/panfrost_features.h
+++ b/drivers/gpu/drm/panfrost/panfrost_features.h
@@ -12,24 +12,6 @@ enum panfrost_hw_feature {
 	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
 	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
 	HW_FEATURE_XAFFINITY,
-	HW_FEATURE_OUT_OF_ORDER_EXEC,
-	HW_FEATURE_MRT,
-	HW_FEATURE_BRNDOUT_CC,
-	HW_FEATURE_INTERPIPE_REG_ALIASING,
-	HW_FEATURE_LD_ST_TILEBUFFER,
-	HW_FEATURE_MSAA_16X,
-	HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
-	HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
-	HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
-	HW_FEATURE_T7XX_PAIRING_RULES,
-	HW_FEATURE_LD_ST_LEA_TEX,
-	HW_FEATURE_LINEAR_FILTER_FLOAT,
-	HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
-	HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
-	HW_FEATURE_TEST4_DATUM_MODE,
-	HW_FEATURE_NEXT_INSTRUCTION_TYPE,
-	HW_FEATURE_BRNDOUT_KILL,
-	HW_FEATURE_WARPING,
 	HW_FEATURE_V4,
 	HW_FEATURE_FLUSH_REDUCTION,
 	HW_FEATURE_PROTECTED_MODE,
@@ -42,27 +24,15 @@ enum panfrost_hw_feature {
 };
 
 #define hw_features_t600 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t620 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t720 (\
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 
@@ -70,17 +40,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 // T860
@@ -88,19 +47,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t880 hw_features_t860
@@ -109,61 +55,18 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t820 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_g71 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -173,21 +76,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -198,21 +86,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -223,21 +96,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -248,21 +106,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -276,21 +119,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 1/2] drm/panfrost: Remove features meant for userspace
@ 2022-01-09 17:09   ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, Steven Price,
	Alyssa Rosenzweig

Early versions of the legacy kernel driver included comprehensive
feature lists for every GPU, even though most of the enumerated features
only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING
was a feature bit indicating that a GPU had "interpipe register
aliasing": arithmetic, load/store, and texture instruction all use
common general-purpose registers. GPUs without this feature bit have
dedicated load/store and texture "registers". Whether a GPU has this
feature or not is irrelevant to the kernel; it only matters in the
userspace compiler's register allocator. It's silly to enumerate it in
kernel space, and the information is understandably unused. To
underscore the point, this feature only makes sense in the context of
the Midgard instruction set. Bifrost never had dedicated load/store or
texture registers, so the feature bit was vacuously set for all Bifrost
hardware, even though this conveys no useful information.

To clean up the feature list, delete feature bits which could not
possibly matter to the kernel, leaving only those which do affect the
register-level operation of the chip.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_features.h | 172 -------------------
 1 file changed, 172 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
index 5056777c7744..f557fad5d5ff 100644
--- a/drivers/gpu/drm/panfrost/panfrost_features.h
+++ b/drivers/gpu/drm/panfrost/panfrost_features.h
@@ -12,24 +12,6 @@ enum panfrost_hw_feature {
 	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
 	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
 	HW_FEATURE_XAFFINITY,
-	HW_FEATURE_OUT_OF_ORDER_EXEC,
-	HW_FEATURE_MRT,
-	HW_FEATURE_BRNDOUT_CC,
-	HW_FEATURE_INTERPIPE_REG_ALIASING,
-	HW_FEATURE_LD_ST_TILEBUFFER,
-	HW_FEATURE_MSAA_16X,
-	HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
-	HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
-	HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
-	HW_FEATURE_T7XX_PAIRING_RULES,
-	HW_FEATURE_LD_ST_LEA_TEX,
-	HW_FEATURE_LINEAR_FILTER_FLOAT,
-	HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
-	HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
-	HW_FEATURE_TEST4_DATUM_MODE,
-	HW_FEATURE_NEXT_INSTRUCTION_TYPE,
-	HW_FEATURE_BRNDOUT_KILL,
-	HW_FEATURE_WARPING,
 	HW_FEATURE_V4,
 	HW_FEATURE_FLUSH_REDUCTION,
 	HW_FEATURE_PROTECTED_MODE,
@@ -42,27 +24,15 @@ enum panfrost_hw_feature {
 };
 
 #define hw_features_t600 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t620 (\
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 #define hw_features_t720 (\
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
 	BIT_ULL(HW_FEATURE_V4))
 
 
@@ -70,17 +40,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 // T860
@@ -88,19 +47,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t880 hw_features_t860
@@ -109,61 +55,18 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_t820 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
 #define hw_features_g71 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -173,21 +76,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -198,21 +86,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -223,21 +96,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -248,21 +106,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
@@ -276,21 +119,6 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
 	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_WARPING) | \
-	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
-	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
-	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
-	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
-	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
-	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
-	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
-	BIT_ULL(HW_FEATURE_MRT) | \
-	BIT_ULL(HW_FEATURE_MSAA_16X) | \
-	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
-	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
-	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
-	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
 	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/2] drm/panfrost: Merge some feature lists
  2022-01-09 17:09 ` Alyssa Rosenzweig
@ 2022-01-09 17:09   ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Rob Herring, Tomeu Vizoso, Steven Price, Alyssa Rosenzweig,
	David Airlie, Daniel Vetter, linux-kernel

Now that we only list features of interest to kernel space, lots of GPUs
have the same feature bits. To cut down on the repetition in the file,
merge feature lists that are identical between similar GPUs.

Note that this leaves some unmerged identical Bifrost feature lists, as
there are more features affecting Bifrost kernel space that we do not
yet hanlde.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_features.h | 40 ++++----------------
 1 file changed, 7 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
index f557fad5d5ff..34f2bae1ec8c 100644
--- a/drivers/gpu/drm/panfrost/panfrost_features.h
+++ b/drivers/gpu/drm/panfrost/panfrost_features.h
@@ -27,14 +27,9 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
-#define hw_features_t620 (\
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_V4))
-
-#define hw_features_t720 (\
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_V4))
+#define hw_features_t620 hw_features_t600
 
+#define hw_features_t720 hw_features_t600
 
 #define hw_features_t760 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
@@ -42,26 +37,13 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
-// T860
-#define hw_features_t860 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t860 hw_features_t760
 
-#define hw_features_t880 hw_features_t860
+#define hw_features_t880 hw_features_t760
 
-#define hw_features_t830 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t830 hw_features_t760
 
-#define hw_features_t820 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t820 hw_features_t760
 
 #define hw_features_g71 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
@@ -82,15 +64,7 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
 	BIT_ULL(HW_FEATURE_COHERENCY_REG))
 
-#define hw_features_g51 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
-	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
-	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
-	BIT_ULL(HW_FEATURE_COHERENCY_REG))
+#define hw_features_g51 hw_features_g72
 
 #define hw_features_g52 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 2/2] drm/panfrost: Merge some feature lists
@ 2022-01-09 17:09   ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-09 17:09 UTC (permalink / raw)
  To: dri-devel
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, Steven Price,
	Alyssa Rosenzweig

Now that we only list features of interest to kernel space, lots of GPUs
have the same feature bits. To cut down on the repetition in the file,
merge feature lists that are identical between similar GPUs.

Note that this leaves some unmerged identical Bifrost feature lists, as
there are more features affecting Bifrost kernel space that we do not
yet hanlde.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
---
 drivers/gpu/drm/panfrost/panfrost_features.h | 40 ++++----------------
 1 file changed, 7 insertions(+), 33 deletions(-)

diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
index f557fad5d5ff..34f2bae1ec8c 100644
--- a/drivers/gpu/drm/panfrost/panfrost_features.h
+++ b/drivers/gpu/drm/panfrost/panfrost_features.h
@@ -27,14 +27,9 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
 	BIT_ULL(HW_FEATURE_V4))
 
-#define hw_features_t620 (\
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_V4))
-
-#define hw_features_t720 (\
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_V4))
+#define hw_features_t620 hw_features_t600
 
+#define hw_features_t720 hw_features_t600
 
 #define hw_features_t760 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
@@ -42,26 +37,13 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_XAFFINITY) | \
 	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
 
-// T860
-#define hw_features_t860 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t860 hw_features_t760
 
-#define hw_features_t880 hw_features_t860
+#define hw_features_t880 hw_features_t760
 
-#define hw_features_t830 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t830 hw_features_t760
 
-#define hw_features_t820 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
+#define hw_features_t820 hw_features_t760
 
 #define hw_features_g71 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
@@ -82,15 +64,7 @@ enum panfrost_hw_feature {
 	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
 	BIT_ULL(HW_FEATURE_COHERENCY_REG))
 
-#define hw_features_g51 (\
-	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
-	BIT_ULL(HW_FEATURE_XAFFINITY) | \
-	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
-	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
-	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
-	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
-	BIT_ULL(HW_FEATURE_COHERENCY_REG))
+#define hw_features_g51 hw_features_g72
 
 #define hw_features_g52 (\
 	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] drm/panfrost: Remove features meant for userspace
  2022-01-09 17:09   ` Alyssa Rosenzweig
@ 2022-01-12 16:28     ` Steven Price
  -1 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-12 16:28 UTC (permalink / raw)
  To: Alyssa Rosenzweig, dri-devel
  Cc: Rob Herring, Tomeu Vizoso, David Airlie, Daniel Vetter, linux-kernel

On 09/01/2022 17:09, Alyssa Rosenzweig wrote:
> Early versions of the legacy kernel driver included comprehensive
> feature lists for every GPU, even though most of the enumerated features
> only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING
> was a feature bit indicating that a GPU had "interpipe register
> aliasing": arithmetic, load/store, and texture instruction all use
> common general-purpose registers. GPUs without this feature bit have
> dedicated load/store and texture "registers". Whether a GPU has this
> feature or not is irrelevant to the kernel; it only matters in the
> userspace compiler's register allocator. It's silly to enumerate it in
> kernel space, and the information is understandably unused. To
> underscore the point, this feature only makes sense in the context of
> the Midgard instruction set. Bifrost never had dedicated load/store or
> texture registers, so the feature bit was vacuously set for all Bifrost
> hardware, even though this conveys no useful information.
> 
> To clean up the feature list, delete feature bits which could not
> possibly matter to the kernel, leaving only those which do affect the
> register-level operation of the chip.
> 
> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

Reviewed-by: Steven Price <steven.price@arm.com>

(although it's a good thing kbase never did this cleanup - it's a useful
source of public information ;) )

Steve

> ---
>  drivers/gpu/drm/panfrost/panfrost_features.h | 172 -------------------
>  1 file changed, 172 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
> index 5056777c7744..f557fad5d5ff 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_features.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_features.h
> @@ -12,24 +12,6 @@ enum panfrost_hw_feature {
>  	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
>  	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
>  	HW_FEATURE_XAFFINITY,
> -	HW_FEATURE_OUT_OF_ORDER_EXEC,
> -	HW_FEATURE_MRT,
> -	HW_FEATURE_BRNDOUT_CC,
> -	HW_FEATURE_INTERPIPE_REG_ALIASING,
> -	HW_FEATURE_LD_ST_TILEBUFFER,
> -	HW_FEATURE_MSAA_16X,
> -	HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
> -	HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
> -	HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
> -	HW_FEATURE_T7XX_PAIRING_RULES,
> -	HW_FEATURE_LD_ST_LEA_TEX,
> -	HW_FEATURE_LINEAR_FILTER_FLOAT,
> -	HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
> -	HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
> -	HW_FEATURE_TEST4_DATUM_MODE,
> -	HW_FEATURE_NEXT_INSTRUCTION_TYPE,
> -	HW_FEATURE_BRNDOUT_KILL,
> -	HW_FEATURE_WARPING,
>  	HW_FEATURE_V4,
>  	HW_FEATURE_FLUSH_REDUCTION,
>  	HW_FEATURE_PROTECTED_MODE,
> @@ -42,27 +24,15 @@ enum panfrost_hw_feature {
>  };
>  
>  #define hw_features_t600 (\
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  #define hw_features_t620 (\
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  #define hw_features_t720 (\
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  
> @@ -70,17 +40,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  // T860
> @@ -88,19 +47,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_t880 hw_features_t860
> @@ -109,61 +55,18 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_t820 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_g71 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -173,21 +76,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -198,21 +86,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -223,21 +96,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -248,21 +106,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -276,21 +119,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] drm/panfrost: Remove features meant for userspace
@ 2022-01-12 16:28     ` Steven Price
  0 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-12 16:28 UTC (permalink / raw)
  To: Alyssa Rosenzweig, dri-devel; +Cc: David Airlie, Tomeu Vizoso, linux-kernel

On 09/01/2022 17:09, Alyssa Rosenzweig wrote:
> Early versions of the legacy kernel driver included comprehensive
> feature lists for every GPU, even though most of the enumerated features
> only matter to userspace. For example, HW_FEATURE_INTERPIPE_REG_ALIASING
> was a feature bit indicating that a GPU had "interpipe register
> aliasing": arithmetic, load/store, and texture instruction all use
> common general-purpose registers. GPUs without this feature bit have
> dedicated load/store and texture "registers". Whether a GPU has this
> feature or not is irrelevant to the kernel; it only matters in the
> userspace compiler's register allocator. It's silly to enumerate it in
> kernel space, and the information is understandably unused. To
> underscore the point, this feature only makes sense in the context of
> the Midgard instruction set. Bifrost never had dedicated load/store or
> texture registers, so the feature bit was vacuously set for all Bifrost
> hardware, even though this conveys no useful information.
> 
> To clean up the feature list, delete feature bits which could not
> possibly matter to the kernel, leaving only those which do affect the
> register-level operation of the chip.
> 
> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>

Reviewed-by: Steven Price <steven.price@arm.com>

(although it's a good thing kbase never did this cleanup - it's a useful
source of public information ;) )

Steve

> ---
>  drivers/gpu/drm/panfrost/panfrost_features.h | 172 -------------------
>  1 file changed, 172 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
> index 5056777c7744..f557fad5d5ff 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_features.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_features.h
> @@ -12,24 +12,6 @@ enum panfrost_hw_feature {
>  	HW_FEATURE_JOBCHAIN_DISAMBIGUATION,
>  	HW_FEATURE_PWRON_DURING_PWROFF_TRANS,
>  	HW_FEATURE_XAFFINITY,
> -	HW_FEATURE_OUT_OF_ORDER_EXEC,
> -	HW_FEATURE_MRT,
> -	HW_FEATURE_BRNDOUT_CC,
> -	HW_FEATURE_INTERPIPE_REG_ALIASING,
> -	HW_FEATURE_LD_ST_TILEBUFFER,
> -	HW_FEATURE_MSAA_16X,
> -	HW_FEATURE_32_BIT_UNIFORM_ADDRESS,
> -	HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL,
> -	HW_FEATURE_OPTIMIZED_COVERAGE_MASK,
> -	HW_FEATURE_T7XX_PAIRING_RULES,
> -	HW_FEATURE_LD_ST_LEA_TEX,
> -	HW_FEATURE_LINEAR_FILTER_FLOAT,
> -	HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4,
> -	HW_FEATURE_IMAGES_IN_FRAGMENT_SHADERS,
> -	HW_FEATURE_TEST4_DATUM_MODE,
> -	HW_FEATURE_NEXT_INSTRUCTION_TYPE,
> -	HW_FEATURE_BRNDOUT_KILL,
> -	HW_FEATURE_WARPING,
>  	HW_FEATURE_V4,
>  	HW_FEATURE_FLUSH_REDUCTION,
>  	HW_FEATURE_PROTECTED_MODE,
> @@ -42,27 +24,15 @@ enum panfrost_hw_feature {
>  };
>  
>  #define hw_features_t600 (\
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  #define hw_features_t620 (\
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  #define hw_features_t720 (\
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_OPTIMIZED_COVERAGE_MASK) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_WORKGROUP_ROUND_MULTIPLE_OF_4) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
>  
> @@ -70,17 +40,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  // T860
> @@ -88,19 +47,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_t880 hw_features_t860
> @@ -109,61 +55,18 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_t820 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
>  #define hw_features_g71 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -173,21 +76,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -198,21 +86,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -223,21 +96,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -248,21 +106,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> @@ -276,21 +119,6 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
>  	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_WARPING) | \
> -	BIT_ULL(HW_FEATURE_INTERPIPE_REG_ALIASING) | \
> -	BIT_ULL(HW_FEATURE_32_BIT_UNIFORM_ADDRESS) | \
> -	BIT_ULL(HW_FEATURE_ATTR_AUTO_TYPE_INFERRAL) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_CC) | \
> -	BIT_ULL(HW_FEATURE_BRNDOUT_KILL) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_LEA_TEX) | \
> -	BIT_ULL(HW_FEATURE_LD_ST_TILEBUFFER) | \
> -	BIT_ULL(HW_FEATURE_LINEAR_FILTER_FLOAT) | \
> -	BIT_ULL(HW_FEATURE_MRT) | \
> -	BIT_ULL(HW_FEATURE_MSAA_16X) | \
> -	BIT_ULL(HW_FEATURE_NEXT_INSTRUCTION_TYPE) | \
> -	BIT_ULL(HW_FEATURE_OUT_OF_ORDER_EXEC) | \
> -	BIT_ULL(HW_FEATURE_T7XX_PAIRING_RULES) | \
> -	BIT_ULL(HW_FEATURE_TEST4_DATUM_MODE) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
>  	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
  2022-01-09 17:09   ` Alyssa Rosenzweig
@ 2022-01-12 16:28     ` Steven Price
  -1 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-12 16:28 UTC (permalink / raw)
  To: Alyssa Rosenzweig, dri-devel
  Cc: Rob Herring, Tomeu Vizoso, David Airlie, Daniel Vetter, linux-kernel

On 09/01/2022 17:09, Alyssa Rosenzweig wrote:
> Now that we only list features of interest to kernel space, lots of GPUs
> have the same feature bits. To cut down on the repetition in the file,
> merge feature lists that are identical between similar GPUs.
> 
> Note that this leaves some unmerged identical Bifrost feature lists, as
> there are more features affecting Bifrost kernel space that we do not
> yet hanlde.

NIT: s/hanlde/handle/ ;)

Do you have any features in mind that we're missing? The list looks very
similar to the kbase one. And anyway it is simple enough to split again
if we need to.

Thanks,

Steve

> 
> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_features.h | 40 ++++----------------
>  1 file changed, 7 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
> index f557fad5d5ff..34f2bae1ec8c 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_features.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_features.h
> @@ -27,14 +27,9 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
> -#define hw_features_t620 (\
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_V4))
> -
> -#define hw_features_t720 (\
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_V4))
> +#define hw_features_t620 hw_features_t600
>  
> +#define hw_features_t720 hw_features_t600
>  
>  #define hw_features_t760 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> @@ -42,26 +37,13 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
> -// T860
> -#define hw_features_t860 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t860 hw_features_t760
>  
> -#define hw_features_t880 hw_features_t860
> +#define hw_features_t880 hw_features_t760
>  
> -#define hw_features_t830 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t830 hw_features_t760
>  
> -#define hw_features_t820 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t820 hw_features_t760
>  
>  #define hw_features_g71 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> @@ -82,15 +64,7 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
>  	BIT_ULL(HW_FEATURE_COHERENCY_REG))
>  
> -#define hw_features_g51 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
> -	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> -	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
> -	BIT_ULL(HW_FEATURE_COHERENCY_REG))
> +#define hw_features_g51 hw_features_g72
>  
>  #define hw_features_g52 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
@ 2022-01-12 16:28     ` Steven Price
  0 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-12 16:28 UTC (permalink / raw)
  To: Alyssa Rosenzweig, dri-devel; +Cc: David Airlie, Tomeu Vizoso, linux-kernel

On 09/01/2022 17:09, Alyssa Rosenzweig wrote:
> Now that we only list features of interest to kernel space, lots of GPUs
> have the same feature bits. To cut down on the repetition in the file,
> merge feature lists that are identical between similar GPUs.
> 
> Note that this leaves some unmerged identical Bifrost feature lists, as
> there are more features affecting Bifrost kernel space that we do not
> yet hanlde.

NIT: s/hanlde/handle/ ;)

Do you have any features in mind that we're missing? The list looks very
similar to the kbase one. And anyway it is simple enough to split again
if we need to.

Thanks,

Steve

> 
> Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
> ---
>  drivers/gpu/drm/panfrost/panfrost_features.h | 40 ++++----------------
>  1 file changed, 7 insertions(+), 33 deletions(-)
> 
> diff --git a/drivers/gpu/drm/panfrost/panfrost_features.h b/drivers/gpu/drm/panfrost/panfrost_features.h
> index f557fad5d5ff..34f2bae1ec8c 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_features.h
> +++ b/drivers/gpu/drm/panfrost/panfrost_features.h
> @@ -27,14 +27,9 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
>  	BIT_ULL(HW_FEATURE_V4))
>  
> -#define hw_features_t620 (\
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_V4))
> -
> -#define hw_features_t720 (\
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_V4))
> +#define hw_features_t620 hw_features_t600
>  
> +#define hw_features_t720 hw_features_t600
>  
>  #define hw_features_t760 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> @@ -42,26 +37,13 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_XAFFINITY) | \
>  	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
>  
> -// T860
> -#define hw_features_t860 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t860 hw_features_t760
>  
> -#define hw_features_t880 hw_features_t860
> +#define hw_features_t880 hw_features_t760
>  
> -#define hw_features_t830 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t830 hw_features_t760
>  
> -#define hw_features_t820 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT))
> +#define hw_features_t820 hw_features_t760
>  
>  #define hw_features_g71 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> @@ -82,15 +64,7 @@ enum panfrost_hw_feature {
>  	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
>  	BIT_ULL(HW_FEATURE_COHERENCY_REG))
>  
> -#define hw_features_g51 (\
> -	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> -	BIT_ULL(HW_FEATURE_PWRON_DURING_PWROFF_TRANS) | \
> -	BIT_ULL(HW_FEATURE_XAFFINITY) | \
> -	BIT_ULL(HW_FEATURE_THREAD_GROUP_SPLIT) | \
> -	BIT_ULL(HW_FEATURE_FLUSH_REDUCTION) | \
> -	BIT_ULL(HW_FEATURE_PROTECTED_MODE) | \
> -	BIT_ULL(HW_FEATURE_PROTECTED_DEBUG_MODE) | \
> -	BIT_ULL(HW_FEATURE_COHERENCY_REG))
> +#define hw_features_g51 hw_features_g72
>  
>  #define hw_features_g52 (\
>  	BIT_ULL(HW_FEATURE_JOBCHAIN_DISAMBIGUATION) | \
> 


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] drm/panfrost: Remove features meant for userspace
  2022-01-12 16:28     ` Steven Price
@ 2022-01-12 19:17       ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-12 19:17 UTC (permalink / raw)
  To: Steven Price
  Cc: Alyssa Rosenzweig, dri-devel, Rob Herring, Tomeu Vizoso,
	David Airlie, Daniel Vetter, linux-kernel

> (although it's a good thing kbase never did this cleanup - it's a useful
> source of public information ;) )

Haha, yes. Actually, kbase did do the clean up recently (Valhall era
kbase, I guess). To be fair, I still don't know what some of these were,
like "T7xx pairing rules"... Presumably something dreadfully
Midgard-compiler specific.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 1/2] drm/panfrost: Remove features meant for userspace
@ 2022-01-12 19:17       ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-12 19:17 UTC (permalink / raw)
  To: Steven Price
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, dri-devel, Alyssa Rosenzweig

> (although it's a good thing kbase never did this cleanup - it's a useful
> source of public information ;) )

Haha, yes. Actually, kbase did do the clean up recently (Valhall era
kbase, I guess). To be fair, I still don't know what some of these were,
like "T7xx pairing rules"... Presumably something dreadfully
Midgard-compiler specific.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
  2022-01-12 16:28     ` Steven Price
@ 2022-01-12 19:20       ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-12 19:20 UTC (permalink / raw)
  To: Steven Price
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, dri-devel, Alyssa Rosenzweig

> > Now that we only list features of interest to kernel space, lots of GPUs
> > have the same feature bits. To cut down on the repetition in the file,
> > merge feature lists that are identical between similar GPUs.
> > 
> > Note that this leaves some unmerged identical Bifrost feature lists, as
> > there are more features affecting Bifrost kernel space that we do not
> > yet hanlde.
> 
> NIT: s/hanlde/handle/ ;)
> 
> Do you have any features in mind that we're missing? The list looks very
> similar to the kbase one. And anyway it is simple enough to split again
> if we need to.

Just IDVS group size. For some reason I thought there were more when I
wrote that commit message. It's split to avoid churn in that patch.

Logically, this series should contain three patches, with the IDVS group
size enablement patch at the end. That was the series I wrote and
committed to disk. For review I split it out, since the feature clean-up
can land now, while the (RFC) IDVS group size patch needs
testing/benchmarking.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
@ 2022-01-12 19:20       ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-12 19:20 UTC (permalink / raw)
  To: Steven Price
  Cc: Alyssa Rosenzweig, dri-devel, Rob Herring, Tomeu Vizoso,
	David Airlie, Daniel Vetter, linux-kernel

> > Now that we only list features of interest to kernel space, lots of GPUs
> > have the same feature bits. To cut down on the repetition in the file,
> > merge feature lists that are identical between similar GPUs.
> > 
> > Note that this leaves some unmerged identical Bifrost feature lists, as
> > there are more features affecting Bifrost kernel space that we do not
> > yet hanlde.
> 
> NIT: s/hanlde/handle/ ;)
> 
> Do you have any features in mind that we're missing? The list looks very
> similar to the kbase one. And anyway it is simple enough to split again
> if we need to.

Just IDVS group size. For some reason I thought there were more when I
wrote that commit message. It's split to avoid churn in that patch.

Logically, this series should contain three patches, with the IDVS group
size enablement patch at the end. That was the series I wrote and
committed to disk. For review I split it out, since the feature clean-up
can land now, while the (RFC) IDVS group size patch needs
testing/benchmarking.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
  2022-01-12 19:20       ` Alyssa Rosenzweig
@ 2022-01-13  9:52         ` Steven Price
  -1 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-13  9:52 UTC (permalink / raw)
  To: Alyssa Rosenzweig
  Cc: Alyssa Rosenzweig, dri-devel, Rob Herring, Tomeu Vizoso,
	David Airlie, Daniel Vetter, linux-kernel

On 12/01/2022 19:20, Alyssa Rosenzweig wrote:
>>> Now that we only list features of interest to kernel space, lots of GPUs
>>> have the same feature bits. To cut down on the repetition in the file,
>>> merge feature lists that are identical between similar GPUs.
>>>
>>> Note that this leaves some unmerged identical Bifrost feature lists, as
>>> there are more features affecting Bifrost kernel space that we do not
>>> yet hanlde.
>>
>> NIT: s/hanlde/handle/ ;)
>>
>> Do you have any features in mind that we're missing? The list looks very
>> similar to the kbase one. And anyway it is simple enough to split again
>> if we need to.
> 
> Just IDVS group size. For some reason I thought there were more when I
> wrote that commit message. It's split to avoid churn in that patch.
> 
> Logically, this series should contain three patches, with the IDVS group
> size enablement patch at the end. That was the series I wrote and
> committed to disk. For review I split it out, since the feature clean-up
> can land now, while the (RFC) IDVS group size patch needs
> testing/benchmarking.
> 

Ah, of course! That makes perfect sense, but somehow I hadn't managed to
connect the two.

I've fixed the typo and pushed to drm-misc-next. And I'll wait for your
benchmarking on IDVS. Do I get a few minutes break before the Valhall
patches need reviewing? ;)

Thanks,

Steve

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
@ 2022-01-13  9:52         ` Steven Price
  0 siblings, 0 replies; 18+ messages in thread
From: Steven Price @ 2022-01-13  9:52 UTC (permalink / raw)
  To: Alyssa Rosenzweig
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, dri-devel, Alyssa Rosenzweig

On 12/01/2022 19:20, Alyssa Rosenzweig wrote:
>>> Now that we only list features of interest to kernel space, lots of GPUs
>>> have the same feature bits. To cut down on the repetition in the file,
>>> merge feature lists that are identical between similar GPUs.
>>>
>>> Note that this leaves some unmerged identical Bifrost feature lists, as
>>> there are more features affecting Bifrost kernel space that we do not
>>> yet hanlde.
>>
>> NIT: s/hanlde/handle/ ;)
>>
>> Do you have any features in mind that we're missing? The list looks very
>> similar to the kbase one. And anyway it is simple enough to split again
>> if we need to.
> 
> Just IDVS group size. For some reason I thought there were more when I
> wrote that commit message. It's split to avoid churn in that patch.
> 
> Logically, this series should contain three patches, with the IDVS group
> size enablement patch at the end. That was the series I wrote and
> committed to disk. For review I split it out, since the feature clean-up
> can land now, while the (RFC) IDVS group size patch needs
> testing/benchmarking.
> 

Ah, of course! That makes perfect sense, but somehow I hadn't managed to
connect the two.

I've fixed the typo and pushed to drm-misc-next. And I'll wait for your
benchmarking on IDVS. Do I get a few minutes break before the Valhall
patches need reviewing? ;)

Thanks,

Steve

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
  2022-01-13  9:52         ` Steven Price
@ 2022-01-13 14:36           ` Alyssa Rosenzweig
  -1 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-13 14:36 UTC (permalink / raw)
  To: Steven Price
  Cc: Alyssa Rosenzweig, dri-devel, Rob Herring, Tomeu Vizoso,
	David Airlie, Daniel Vetter, linux-kernel

> >>> Note that this leaves some unmerged identical Bifrost feature lists, as
> >>> there are more features affecting Bifrost kernel space that we do not
> >>> yet hanlde.
> >>
> >> NIT: s/hanlde/handle/ ;)
> >>
> >> Do you have any features in mind that we're missing? The list looks very
> >> similar to the kbase one. And anyway it is simple enough to split again
> >> if we need to.
> > 
> > Just IDVS group size. For some reason I thought there were more when I
> > wrote that commit message. It's split to avoid churn in that patch.
> > 
> > Logically, this series should contain three patches, with the IDVS group
> > size enablement patch at the end. That was the series I wrote and
> > committed to disk. For review I split it out, since the feature clean-up
> > can land now, while the (RFC) IDVS group size patch needs
> > testing/benchmarking.
> > 
> 
> Ah, of course! That makes perfect sense, but somehow I hadn't managed to
> connect the two.
> 
> I've fixed the typo and pushed to drm-misc-next. And I'll wait for your
> benchmarking on IDVS. Do I get a few minutes break before the Valhall
> patches need reviewing? ;)

Thanks for the push :-) And yes, I'd like to get Valhall userspace up to
shape before trying to shovel code into the kernel ^^ There are some
errata that kbase works around that I haven't implemented workarounds
for yet, and I'd like to figure out how to hit those so I can test that
the workarounds are correct. (Particularly thinking of the dummy job
workaround / GPU hang issue)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 2/2] drm/panfrost: Merge some feature lists
@ 2022-01-13 14:36           ` Alyssa Rosenzweig
  0 siblings, 0 replies; 18+ messages in thread
From: Alyssa Rosenzweig @ 2022-01-13 14:36 UTC (permalink / raw)
  To: Steven Price
  Cc: Tomeu Vizoso, David Airlie, linux-kernel, dri-devel, Alyssa Rosenzweig

> >>> Note that this leaves some unmerged identical Bifrost feature lists, as
> >>> there are more features affecting Bifrost kernel space that we do not
> >>> yet hanlde.
> >>
> >> NIT: s/hanlde/handle/ ;)
> >>
> >> Do you have any features in mind that we're missing? The list looks very
> >> similar to the kbase one. And anyway it is simple enough to split again
> >> if we need to.
> > 
> > Just IDVS group size. For some reason I thought there were more when I
> > wrote that commit message. It's split to avoid churn in that patch.
> > 
> > Logically, this series should contain three patches, with the IDVS group
> > size enablement patch at the end. That was the series I wrote and
> > committed to disk. For review I split it out, since the feature clean-up
> > can land now, while the (RFC) IDVS group size patch needs
> > testing/benchmarking.
> > 
> 
> Ah, of course! That makes perfect sense, but somehow I hadn't managed to
> connect the two.
> 
> I've fixed the typo and pushed to drm-misc-next. And I'll wait for your
> benchmarking on IDVS. Do I get a few minutes break before the Valhall
> patches need reviewing? ;)

Thanks for the push :-) And yes, I'd like to get Valhall userspace up to
shape before trying to shovel code into the kernel ^^ There are some
errata that kbase works around that I haven't implemented workarounds
for yet, and I'd like to figure out how to hit those so I can test that
the workarounds are correct. (Particularly thinking of the dummy job
workaround / GPU hang issue)

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-01-13 14:36 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-09 17:09 [PATCH 0/2] drm/panfrost: Clean up our feature lists Alyssa Rosenzweig
2022-01-09 17:09 ` Alyssa Rosenzweig
2022-01-09 17:09 ` [PATCH 1/2] drm/panfrost: Remove features meant for userspace Alyssa Rosenzweig
2022-01-09 17:09   ` Alyssa Rosenzweig
2022-01-12 16:28   ` Steven Price
2022-01-12 16:28     ` Steven Price
2022-01-12 19:17     ` Alyssa Rosenzweig
2022-01-12 19:17       ` Alyssa Rosenzweig
2022-01-09 17:09 ` [PATCH 2/2] drm/panfrost: Merge some feature lists Alyssa Rosenzweig
2022-01-09 17:09   ` Alyssa Rosenzweig
2022-01-12 16:28   ` Steven Price
2022-01-12 16:28     ` Steven Price
2022-01-12 19:20     ` Alyssa Rosenzweig
2022-01-12 19:20       ` Alyssa Rosenzweig
2022-01-13  9:52       ` Steven Price
2022-01-13  9:52         ` Steven Price
2022-01-13 14:36         ` Alyssa Rosenzweig
2022-01-13 14:36           ` Alyssa Rosenzweig

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.