* [PATCH 0/2] drm/panthor: add custom ASN hash support @ 2025-08-28 20:18 Chia-I Wu 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu ` (2 more replies) 0 siblings, 3 replies; 8+ messages in thread From: Chia-I Wu @ 2025-08-28 20:18 UTC (permalink / raw) To: Boris Brezillon, Steven Price, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel Some socs such as mt8196 require custom ASN hash. Chia-I Wu (2): dt-bindings: gpu: mali-valhall-csf: add asn-hash drm/panthor: add asn-hash support .../bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++ drivers/gpu/drm/panthor/panthor_device.c | 28 +++++++++++++++++++ drivers/gpu/drm/panthor/panthor_device.h | 6 ++++ drivers/gpu/drm/panthor/panthor_gpu.c | 17 +++++++++++ drivers/gpu/drm/panthor/panthor_regs.h | 4 +++ 5 files changed, 63 insertions(+) -- 2.51.0.318.gd7df087d1a-goog ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash 2025-08-28 20:18 [PATCH 0/2] drm/panthor: add custom ASN hash support Chia-I Wu @ 2025-08-28 20:18 ` Chia-I Wu 2025-08-29 8:32 ` Boris Brezillon 2025-08-29 13:42 ` Krzysztof Kozlowski 2025-08-28 20:18 ` [PATCH 2/2] drm/panthor: add asn-hash support Chia-I Wu 2025-08-29 13:40 ` [PATCH 0/2] drm/panthor: add custom ASN hash support Steven Price 2 siblings, 2 replies; 8+ messages in thread From: Chia-I Wu @ 2025-08-28 20:18 UTC (permalink / raw) To: Boris Brezillon, Steven Price, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel The values are written to ASN_HASH[0..2] registers. The property is called "l2-hash-values" in the downstream driver. Signed-off-by: Chia-I Wu <olvaffe@gmail.com> --- .../devicetree/bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml index a5b4e00217587..258bcba66d1d1 100644 --- a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml +++ b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml @@ -85,6 +85,14 @@ properties: dma-coherent: true + asn-hash: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + The values are written to ASN_HASH[0..2] registers. They affect how + physical addresses are mapped to L2 cache slices. + minItems: 3 + maxItems: 3 + required: - compatible - reg -- 2.51.0.318.gd7df087d1a-goog ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu @ 2025-08-29 8:32 ` Boris Brezillon 2025-08-29 13:42 ` Krzysztof Kozlowski 1 sibling, 0 replies; 8+ messages in thread From: Boris Brezillon @ 2025-08-29 8:32 UTC (permalink / raw) To: Chia-I Wu Cc: Steven Price, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On Thu, 28 Aug 2025 13:18:05 -0700 Chia-I Wu <olvaffe@gmail.com> wrote: > The values are written to ASN_HASH[0..2] registers. The property is > called "l2-hash-values" in the downstream driver. > > Signed-off-by: Chia-I Wu <olvaffe@gmail.com> > --- > .../devicetree/bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > index a5b4e00217587..258bcba66d1d1 100644 > --- a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > +++ b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > @@ -85,6 +85,14 @@ properties: > > dma-coherent: true > > + asn-hash: > + $ref: /schemas/types.yaml#/definitions/uint32-array > + description: > + The values are written to ASN_HASH[0..2] registers. They affect how > + physical addresses are mapped to L2 cache slices. If this is per-SoC integration details, I would hide that behind the compatible string and have some panthor_soc_data attached to the of_device_id entries. > + minItems: 3 > + maxItems: 3 > + > required: > - compatible > - reg ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu 2025-08-29 8:32 ` Boris Brezillon @ 2025-08-29 13:42 ` Krzysztof Kozlowski 1 sibling, 0 replies; 8+ messages in thread From: Krzysztof Kozlowski @ 2025-08-29 13:42 UTC (permalink / raw) To: Chia-I Wu, Boris Brezillon, Steven Price, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On 28/08/2025 22:18, Chia-I Wu wrote: > The values are written to ASN_HASH[0..2] registers. The property is > called "l2-hash-values" in the downstream driver. We don't add properties based on downstream drivers. Please provide some sort of rationale, including explanation why this is not SoC/compatible specific. > > Signed-off-by: Chia-I Wu <olvaffe@gmail.com> > --- > .../devicetree/bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > index a5b4e00217587..258bcba66d1d1 100644 > --- a/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > +++ b/Documentation/devicetree/bindings/gpu/arm,mali-valhall-csf.yaml > @@ -85,6 +85,14 @@ properties: > > dma-coherent: true > > + asn-hash: Missing vendor prefix or please explain which common schema has it already defined. Best regards, Krzysztof ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/2] drm/panthor: add asn-hash support 2025-08-28 20:18 [PATCH 0/2] drm/panthor: add custom ASN hash support Chia-I Wu 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu @ 2025-08-28 20:18 ` Chia-I Wu 2025-08-29 13:41 ` Steven Price 2025-08-29 13:40 ` [PATCH 0/2] drm/panthor: add custom ASN hash support Steven Price 2 siblings, 1 reply; 8+ messages in thread From: Chia-I Wu @ 2025-08-28 20:18 UTC (permalink / raw) To: Boris Brezillon, Steven Price, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel Parse asn-hash and enable custom ASN hash when the property exists. This is required on some socs such as mt8196. Signed-off-by: Chia-I Wu <olvaffe@gmail.com> --- drivers/gpu/drm/panthor/panthor_device.c | 28 ++++++++++++++++++++++++ drivers/gpu/drm/panthor/panthor_device.h | 6 +++++ drivers/gpu/drm/panthor/panthor_gpu.c | 17 ++++++++++++++ drivers/gpu/drm/panthor/panthor_regs.h | 4 ++++ 4 files changed, 55 insertions(+) diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c index 81df49880bd87..19423c495d8d7 100644 --- a/drivers/gpu/drm/panthor/panthor_device.c +++ b/drivers/gpu/drm/panthor/panthor_device.c @@ -41,6 +41,30 @@ static int panthor_gpu_coherency_init(struct panthor_device *ptdev) return -ENOTSUPP; } +static int panthor_gpu_asn_hash_init(struct panthor_device *ptdev) +{ + int ret; + + ret = of_property_read_u32_array(ptdev->base.dev->of_node, "asn-hash", + ptdev->asn_hash, + ARRAY_SIZE(ptdev->asn_hash)); + if (ret) { + if (ret == -EINVAL) + ret = 0; + return ret; + } + + if (GPU_ARCH_MAJOR(ptdev->gpu_info.gpu_id) < 11) { + drm_err(&ptdev->base, + "Custom ASN hash not supported by the device"); + return -EOPNOTSUPP; + } + + ptdev->has_asn_hash = true; + + return 0; +} + static int panthor_clk_init(struct panthor_device *ptdev) { ptdev->clks.core = devm_clk_get(ptdev->base.dev, NULL); @@ -257,6 +281,10 @@ int panthor_device_init(struct panthor_device *ptdev) if (ret) goto err_unplug_gpu; + ret = panthor_gpu_asn_hash_init(ptdev); + if (ret) + goto err_unplug_gpu; + ret = panthor_mmu_init(ptdev); if (ret) goto err_unplug_gpu; diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/panthor/panthor_device.h index 4fc7cf2aeed57..6f8e2b3b037e5 100644 --- a/drivers/gpu/drm/panthor/panthor_device.h +++ b/drivers/gpu/drm/panthor/panthor_device.h @@ -114,6 +114,12 @@ struct panthor_device { /** @coherent: True if the CPU/GPU are memory coherent. */ bool coherent; + /** @has_asn_hash: True if custom ASN hash is enabled. */ + bool has_asn_hash; + + /** @asn_hash: ASN_HASH values for custom ASN hash */ + u32 asn_hash[3]; + /** @gpu_info: GPU information. */ struct drm_panthor_gpu_info gpu_info; diff --git a/drivers/gpu/drm/panthor/panthor_gpu.c b/drivers/gpu/drm/panthor/panthor_gpu.c index db69449a5be09..f9222b67f314d 100644 --- a/drivers/gpu/drm/panthor/panthor_gpu.c +++ b/drivers/gpu/drm/panthor/panthor_gpu.c @@ -52,6 +52,22 @@ static void panthor_gpu_coherency_set(struct panthor_device *ptdev) ptdev->coherent ? GPU_COHERENCY_PROT_BIT(ACE_LITE) : GPU_COHERENCY_NONE); } +static void panthor_gpu_asn_hash_set(struct panthor_device *ptdev) +{ + u32 l2_config; + u32 i; + + if (!ptdev->has_asn_hash) + return; + + for (i = 0; i < ARRAY_SIZE(ptdev->asn_hash); i++) + gpu_write(ptdev, ASN_HASH(i), ptdev->asn_hash[i]); + + l2_config = gpu_read(ptdev, L2_CONFIG); + l2_config |= L2_CONFIG_ASN_HASH_ENABLE; + gpu_write(ptdev, L2_CONFIG, l2_config); +} + static void panthor_gpu_irq_handler(struct panthor_device *ptdev, u32 status) { gpu_write(ptdev, GPU_INT_CLEAR, status); @@ -243,6 +259,7 @@ int panthor_gpu_l2_power_on(struct panthor_device *ptdev) /* Set the desired coherency mode before the power up of L2 */ panthor_gpu_coherency_set(ptdev); + panthor_gpu_asn_hash_set(ptdev); return panthor_gpu_power_on(ptdev, L2, 1, 20000); } diff --git a/drivers/gpu/drm/panthor/panthor_regs.h b/drivers/gpu/drm/panthor/panthor_regs.h index 8bee76d01bf83..c9f795624e79b 100644 --- a/drivers/gpu/drm/panthor/panthor_regs.h +++ b/drivers/gpu/drm/panthor/panthor_regs.h @@ -64,6 +64,8 @@ #define GPU_FAULT_STATUS 0x3C #define GPU_FAULT_ADDR 0x40 +#define L2_CONFIG 0x48 +#define L2_CONFIG_ASN_HASH_ENABLE BIT(24) #define GPU_PWR_KEY 0x50 #define GPU_PWR_KEY_UNLOCK 0x2968A819 @@ -110,6 +112,8 @@ #define GPU_REVID 0x280 +#define ASN_HASH(n) (0x2C0 + ((n) * 4)) + #define GPU_COHERENCY_FEATURES 0x300 #define GPU_COHERENCY_PROT_BIT(name) BIT(GPU_COHERENCY_ ## name) -- 2.51.0.318.gd7df087d1a-goog ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] drm/panthor: add asn-hash support 2025-08-28 20:18 ` [PATCH 2/2] drm/panthor: add asn-hash support Chia-I Wu @ 2025-08-29 13:41 ` Steven Price 0 siblings, 0 replies; 8+ messages in thread From: Steven Price @ 2025-08-29 13:41 UTC (permalink / raw) To: Chia-I Wu, Boris Brezillon, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On 28/08/2025 21:18, Chia-I Wu wrote: > Parse asn-hash and enable custom ASN hash when the property exists. > This is required on some socs such as mt8196. > > Signed-off-by: Chia-I Wu <olvaffe@gmail.com> This mostly looks fine, although there is a question of naming. This was renamed in a later version of the architecture to be L2C_SLICE_HASH (rather than ASN_HASH). I'm honestly not sure whether to stick with asn-hash (as it's out in the wild already) or try to align with the newer spec and whether that will create or avoid confusion! > --- > drivers/gpu/drm/panthor/panthor_device.c | 28 ++++++++++++++++++++++++ > drivers/gpu/drm/panthor/panthor_device.h | 6 +++++ > drivers/gpu/drm/panthor/panthor_gpu.c | 17 ++++++++++++++ > drivers/gpu/drm/panthor/panthor_regs.h | 4 ++++ > 4 files changed, 55 insertions(+) > > diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c > index 81df49880bd87..19423c495d8d7 100644 > --- a/drivers/gpu/drm/panthor/panthor_device.c > +++ b/drivers/gpu/drm/panthor/panthor_device.c > @@ -41,6 +41,30 @@ static int panthor_gpu_coherency_init(struct panthor_device *ptdev) > return -ENOTSUPP; > } > > +static int panthor_gpu_asn_hash_init(struct panthor_device *ptdev) > +{ > + int ret; > + > + ret = of_property_read_u32_array(ptdev->base.dev->of_node, "asn-hash", > + ptdev->asn_hash, > + ARRAY_SIZE(ptdev->asn_hash)); > + if (ret) { > + if (ret == -EINVAL) > + ret = 0; > + return ret; > + } NIT: I think this would be neater written as: if (ret == -EINVAL) return 0; else if (ret) return ret Thanks, Steve > + > + if (GPU_ARCH_MAJOR(ptdev->gpu_info.gpu_id) < 11) { > + drm_err(&ptdev->base, > + "Custom ASN hash not supported by the device"); > + return -EOPNOTSUPP; > + } > + > + ptdev->has_asn_hash = true; > + > + return 0; > +} > + > static int panthor_clk_init(struct panthor_device *ptdev) > { > ptdev->clks.core = devm_clk_get(ptdev->base.dev, NULL); > @@ -257,6 +281,10 @@ int panthor_device_init(struct panthor_device *ptdev) > if (ret) > goto err_unplug_gpu; > > + ret = panthor_gpu_asn_hash_init(ptdev); > + if (ret) > + goto err_unplug_gpu; > + > ret = panthor_mmu_init(ptdev); > if (ret) > goto err_unplug_gpu; > diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/panthor/panthor_device.h > index 4fc7cf2aeed57..6f8e2b3b037e5 100644 > --- a/drivers/gpu/drm/panthor/panthor_device.h > +++ b/drivers/gpu/drm/panthor/panthor_device.h > @@ -114,6 +114,12 @@ struct panthor_device { > /** @coherent: True if the CPU/GPU are memory coherent. */ > bool coherent; > > + /** @has_asn_hash: True if custom ASN hash is enabled. */ > + bool has_asn_hash; > + > + /** @asn_hash: ASN_HASH values for custom ASN hash */ > + u32 asn_hash[3]; > + > /** @gpu_info: GPU information. */ > struct drm_panthor_gpu_info gpu_info; > > diff --git a/drivers/gpu/drm/panthor/panthor_gpu.c b/drivers/gpu/drm/panthor/panthor_gpu.c > index db69449a5be09..f9222b67f314d 100644 > --- a/drivers/gpu/drm/panthor/panthor_gpu.c > +++ b/drivers/gpu/drm/panthor/panthor_gpu.c > @@ -52,6 +52,22 @@ static void panthor_gpu_coherency_set(struct panthor_device *ptdev) > ptdev->coherent ? GPU_COHERENCY_PROT_BIT(ACE_LITE) : GPU_COHERENCY_NONE); > } > > +static void panthor_gpu_asn_hash_set(struct panthor_device *ptdev) > +{ > + u32 l2_config; > + u32 i; > + > + if (!ptdev->has_asn_hash) > + return; > + > + for (i = 0; i < ARRAY_SIZE(ptdev->asn_hash); i++) > + gpu_write(ptdev, ASN_HASH(i), ptdev->asn_hash[i]); > + > + l2_config = gpu_read(ptdev, L2_CONFIG); > + l2_config |= L2_CONFIG_ASN_HASH_ENABLE; > + gpu_write(ptdev, L2_CONFIG, l2_config); > +} > + > static void panthor_gpu_irq_handler(struct panthor_device *ptdev, u32 status) > { > gpu_write(ptdev, GPU_INT_CLEAR, status); > @@ -243,6 +259,7 @@ int panthor_gpu_l2_power_on(struct panthor_device *ptdev) > > /* Set the desired coherency mode before the power up of L2 */ > panthor_gpu_coherency_set(ptdev); > + panthor_gpu_asn_hash_set(ptdev); > > return panthor_gpu_power_on(ptdev, L2, 1, 20000); > } > diff --git a/drivers/gpu/drm/panthor/panthor_regs.h b/drivers/gpu/drm/panthor/panthor_regs.h > index 8bee76d01bf83..c9f795624e79b 100644 > --- a/drivers/gpu/drm/panthor/panthor_regs.h > +++ b/drivers/gpu/drm/panthor/panthor_regs.h > @@ -64,6 +64,8 @@ > > #define GPU_FAULT_STATUS 0x3C > #define GPU_FAULT_ADDR 0x40 > +#define L2_CONFIG 0x48 > +#define L2_CONFIG_ASN_HASH_ENABLE BIT(24) > > #define GPU_PWR_KEY 0x50 > #define GPU_PWR_KEY_UNLOCK 0x2968A819 > @@ -110,6 +112,8 @@ > > #define GPU_REVID 0x280 > > +#define ASN_HASH(n) (0x2C0 + ((n) * 4)) > + > #define GPU_COHERENCY_FEATURES 0x300 > #define GPU_COHERENCY_PROT_BIT(name) BIT(GPU_COHERENCY_ ## name) > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] drm/panthor: add custom ASN hash support 2025-08-28 20:18 [PATCH 0/2] drm/panthor: add custom ASN hash support Chia-I Wu 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu 2025-08-28 20:18 ` [PATCH 2/2] drm/panthor: add asn-hash support Chia-I Wu @ 2025-08-29 13:40 ` Steven Price 2025-08-29 21:50 ` Chia-I Wu 2 siblings, 1 reply; 8+ messages in thread From: Steven Price @ 2025-08-29 13:40 UTC (permalink / raw) To: Chia-I Wu, Boris Brezillon, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On 28/08/2025 21:18, Chia-I Wu wrote: > Some socs such as mt8196 require custom ASN hash. I don't know the full details of this, but I'm puzzled by the "require" here. AIUI the "custom ASN hash support" (or L2C_SLICE_HASH as it was renamed) affects the efficiency of the L2 caches in the GPU. It basically determines how addresses are striped over the individual caches. So (unless there is a specific errata) not setting a custom hash will work just fine, but the performance might be slightly reduced. kbase provides both a DT option and a module parameter which can be used to override the defaults (although the parameter descriptions say "for testing" which I think is somewhat telling). How we should describe this somewhat depends on whether this is a specific workaround for a SoC - in which case Boris's suggestion of using a different compatible string and panthor_soc_data seems like a good choice. Or if this is exposed as a general "tuning" parameter, in which case this might be appropriate. I believe the tuning is related to more than just a SoC (the external memory system has an impact). So I guess a DT level knob makes most sense here. Steve > Chia-I Wu (2): > dt-bindings: gpu: mali-valhall-csf: add asn-hash > drm/panthor: add asn-hash support > > .../bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++ > drivers/gpu/drm/panthor/panthor_device.c | 28 +++++++++++++++++++ > drivers/gpu/drm/panthor/panthor_device.h | 6 ++++ > drivers/gpu/drm/panthor/panthor_gpu.c | 17 +++++++++++ > drivers/gpu/drm/panthor/panthor_regs.h | 4 +++ > 5 files changed, 63 insertions(+) > ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/2] drm/panthor: add custom ASN hash support 2025-08-29 13:40 ` [PATCH 0/2] drm/panthor: add custom ASN hash support Steven Price @ 2025-08-29 21:50 ` Chia-I Wu 0 siblings, 0 replies; 8+ messages in thread From: Chia-I Wu @ 2025-08-29 21:50 UTC (permalink / raw) To: Steven Price Cc: Boris Brezillon, Liviu Dudau, Maarten Lankhorst, Maxime Ripard, Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring, Krzysztof Kozlowski, Conor Dooley, dri-devel, devicetree, linux-kernel On Fri, Aug 29, 2025 at 6:41 AM Steven Price <steven.price@arm.com> wrote: > > On 28/08/2025 21:18, Chia-I Wu wrote: > > Some socs such as mt8196 require custom ASN hash. > > I don't know the full details of this, but I'm puzzled by the "require" > here. > > AIUI the "custom ASN hash support" (or L2C_SLICE_HASH as it was renamed) > affects the efficiency of the L2 caches in the GPU. It basically > determines how addresses are striped over the individual caches. > > So (unless there is a specific errata) not setting a custom hash will > work just fine, but the performance might be slightly reduced. All memory access results in faults unless custom ASN hash is enabled on mt8196. It sounds like this is a soc-specific quirk. I will check with the vendor, and likely turn this into a quirk. > > kbase provides both a DT option and a module parameter which can be used > to override the defaults (although the parameter descriptions say "for > testing" which I think is somewhat telling). > > How we should describe this somewhat depends on whether this is a > specific workaround for a SoC - in which case Boris's suggestion of > using a different compatible string and panthor_soc_data seems like a > good choice. Or if this is exposed as a general "tuning" parameter, in > which case this might be appropriate. > > I believe the tuning is related to more than just a SoC (the external > memory system has an impact). So I guess a DT level knob makes most > sense here. > > Steve > > > Chia-I Wu (2): > > dt-bindings: gpu: mali-valhall-csf: add asn-hash > > drm/panthor: add asn-hash support > > > > .../bindings/gpu/arm,mali-valhall-csf.yaml | 8 ++++++ > > drivers/gpu/drm/panthor/panthor_device.c | 28 +++++++++++++++++++ > > drivers/gpu/drm/panthor/panthor_device.h | 6 ++++ > > drivers/gpu/drm/panthor/panthor_gpu.c | 17 +++++++++++ > > drivers/gpu/drm/panthor/panthor_regs.h | 4 +++ > > 5 files changed, 63 insertions(+) > > > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-08-29 21:50 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-28 20:18 [PATCH 0/2] drm/panthor: add custom ASN hash support Chia-I Wu 2025-08-28 20:18 ` [PATCH 1/2] dt-bindings: gpu: mali-valhall-csf: add asn-hash Chia-I Wu 2025-08-29 8:32 ` Boris Brezillon 2025-08-29 13:42 ` Krzysztof Kozlowski 2025-08-28 20:18 ` [PATCH 2/2] drm/panthor: add asn-hash support Chia-I Wu 2025-08-29 13:41 ` Steven Price 2025-08-29 13:40 ` [PATCH 0/2] drm/panthor: add custom ASN hash support Steven Price 2025-08-29 21:50 ` Chia-I Wu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).