disp: msm: sde: add dnsc_blur HW block support
Downscale blur HW block support is added from MDSS 9.x. The block can be used to downscale the layer mixer output before feeding it to the writeback block. It can be used for both writeback & concurrent writeback usecases. Add hw files and the respective blocks in sw to program the downscale blur block. Change-Id: Ic5787e1655eff5ef0960b7569e48d2f35d23bfc9 Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
#include "sde_crtc.h"
|
||||
#include "sde_hw_qdss.h"
|
||||
#include "sde_vbif.h"
|
||||
#include "sde_hw_dnsc_blur.h"
|
||||
|
||||
#define RESERVED_BY_OTHER(h, r) \
|
||||
(((h)->rsvp && ((h)->rsvp->enc_id != (r)->enc_id)) ||\
|
||||
@@ -120,6 +121,7 @@ char sde_hw_blk_str[SDE_HW_BLK_MAX][SDE_HW_BLK_NAME_LEN] = {
|
||||
"vdc",
|
||||
"merge_3d",
|
||||
"qdss",
|
||||
"dnsc_blur"
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -544,6 +546,9 @@ static void _sde_rm_hw_destroy(enum sde_hw_blk_type type, struct sde_hw_blk_reg_
|
||||
case SDE_HW_BLK_QDSS:
|
||||
sde_hw_qdss_destroy(hw);
|
||||
break;
|
||||
case SDE_HW_BLK_DNSC_BLUR:
|
||||
sde_hw_dnsc_blur_destroy(hw);
|
||||
break;
|
||||
case SDE_HW_BLK_SSPP:
|
||||
/* SSPPs are not managed by the resource manager */
|
||||
case SDE_HW_BLK_TOP:
|
||||
@@ -641,6 +646,9 @@ static int _sde_rm_hw_blk_create(
|
||||
case SDE_HW_BLK_QDSS:
|
||||
hw = sde_hw_qdss_init(id, mmio, cat);
|
||||
break;
|
||||
case SDE_HW_BLK_DNSC_BLUR:
|
||||
hw = sde_hw_dnsc_blur_init(id, mmio, cat);
|
||||
break;
|
||||
case SDE_HW_BLK_SSPP:
|
||||
/* SSPPs are not managed by the resource manager */
|
||||
case SDE_HW_BLK_TOP:
|
||||
@@ -776,6 +784,15 @@ static int _sde_rm_hw_blk_create_new(struct sde_rm *rm,
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < cat->dnsc_blur_count; i++) {
|
||||
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_DNSC_BLUR,
|
||||
cat->dnsc_blur[i].id, &cat->dnsc_blur[i]);
|
||||
if (rc) {
|
||||
SDE_ERROR("failed: dnsc_blur hw not available\n");
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = 0; i < cat->qdss_count; i++) {
|
||||
rc = _sde_rm_hw_blk_create(rm, cat, mmio, SDE_HW_BLK_QDSS,
|
||||
cat->qdss[i].id, &cat->qdss[i]);
|
||||
|
Reference in New Issue
Block a user