drm/malidp: Enable MMU prefetch on Mali-DP650
Mali-DP650 supports warming up the SMMU translations, by sending requsts to the SMMU before a buffer is read. There are two modes supported: - PARTIAL: could be enabled when the buffer is composed of 4K or 64K pages, the display hardware will send a configurable number of requests before the actual reading. - FULL: could be enabled when the buffer is composed of 1M or 2M pages, the display hardware will send requests before reading for all pages composing the buffer. This patch adds a mechanism for detecting the page size and set the MMU prefetch mode if possible. Changes since v1: - For imported buffers use the already populated drm_gem_cma_object.sgt instead of calling driver.gem_prime_get_sg_table, which works just for buffers allocated through the gem_cma API. Signed-off-by: Jamie Fox <jamie.fox@arm.com> Signed-off-by: Alexandru Gheorghe <alexandru-cosmin.gheorghe@arm.com> Acked-by: Liviu Dudau <liviu.dudau@arm.com> [rebased and re-ordered functions] Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
This commit is contained in:
@@ -62,6 +62,7 @@ struct malidp_layer {
|
||||
u16 ptr; /* address offset for the pointer register */
|
||||
u16 stride_offset; /* offset to the first stride register. */
|
||||
s16 yuv2rgb_offset; /* offset to the YUV->RGB matrix entries */
|
||||
u16 mmu_ctrl_offset; /* offset to the MMU control register */
|
||||
};
|
||||
|
||||
enum malidp_scaling_coeff_set {
|
||||
|
Reference in New Issue
Block a user