arm: mach-k3: am62a7: Enable QoS for DSS
authorAradhya Bhatia <a-bhatia1@ti.com>
Fri, 14 Apr 2023 07:27:25 +0000 (12:57 +0530)
committerTom Rini <trini@konsulko.com>
Wed, 3 May 2023 13:05:24 +0000 (09:05 -0400)
commit28e5e95bf8e75efc8ed49e2dc3c260ab998d59fb
treece6f123555cfc50ef6acbb544e3eda03ba715b59
parent4b6e3d39cf6a902778692b33a7324f5b5458f690
arm: mach-k3: am62a7: Enable QoS for DSS

Enable Quality of Service (QoS) blocks for Display SubSystem (DSS), by
servicing the DSS - DDR traffic from the Real-Time (RT) queue. This is
done by setting the DSS DMA orderID to 8.

The C7x and VPAC have been overwhelming the DSS's access to the DDR
(when it was accessing via the Non Real-Time (NRT) Queue), primarily
because their functional frequencies, and hence DDR accesses, were
significantly higher than that of DSS. This led the display to flicker
when certain edgeAI models were being run.

With the DSS traffic serviced from the RT queue, the flickering issue
has been found to be mitigated.

The am62a qos files are auto generated from the k3 resource partitioning
tool.

Section-3.1.12, "QoS Programming Guide", in the AM62A TRM[1], provides
more information about the QoS, and section-14.1, "System Interconnect
Registers", provides the register descriptions.

[1] AM62A Tech Ref Manual: https://www.ti.com/lit/pdf/spruj16

Signed-off-by: Aradhya Bhatia <a-bhatia1@ti.com>
arch/arm/mach-k3/am62a7_init.c
arch/arm/mach-k3/am62ax/Makefile
arch/arm/mach-k3/am62ax/am62a_qos_data.c [new file with mode: 0644]
arch/arm/mach-k3/include/mach/am62a_qos.h [new file with mode: 0644]
arch/arm/mach-k3/include/mach/hardware.h