mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-18 06:34:27 -04:00
drm/panthor: Explicitly set the coherency mode
This commit fixes the potential misalignment between the value of device tree property "dma-coherent" and default value of COHERENCY_ENABLE register. Panthor driver didn't explicitly program the COHERENCY_ENABLE register with the desired coherency mode. The default value of COHERENCY_ENABLE register is implementation defined, so it may not be always aligned with the "dma-coherent" property value. The commit also checks the COHERENCY_FEATURES register to confirm that the coherency protocol is actually supported or not. v2: - Added R-b tags Signed-off-by: Akash Goel <akash.goel@arm.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Steven Price <steven.price@arm.com> Link: https://lore.kernel.org/r/20241030225407.4077513-3-akash.goel@arm.com Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
This commit is contained in:
@@ -77,6 +77,12 @@ static const struct panthor_model gpu_models[] = {
|
||||
GPU_IRQ_RESET_COMPLETED | \
|
||||
GPU_IRQ_CLEAN_CACHES_COMPLETED)
|
||||
|
||||
static void panthor_gpu_coherency_set(struct panthor_device *ptdev)
|
||||
{
|
||||
gpu_write(ptdev, GPU_COHERENCY_PROTOCOL,
|
||||
ptdev->coherent ? GPU_COHERENCY_PROT_BIT(ACE_LITE) : GPU_COHERENCY_NONE);
|
||||
}
|
||||
|
||||
static void panthor_gpu_init_info(struct panthor_device *ptdev)
|
||||
{
|
||||
const struct panthor_model *model;
|
||||
@@ -365,6 +371,9 @@ int panthor_gpu_l2_power_on(struct panthor_device *ptdev)
|
||||
hweight64(ptdev->gpu_info.shader_present));
|
||||
}
|
||||
|
||||
/* Set the desired coherency mode before the power up of L2 */
|
||||
panthor_gpu_coherency_set(ptdev);
|
||||
|
||||
return panthor_gpu_power_on(ptdev, L2, 1, 20000);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user