summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamkumar Radhakrishnan <ramkumar@codeaurora.org>2017-12-11 13:32:47 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-08 02:32:41 -0800
commitb9f535546a0febdc14a444bf4c6bfc61ee4f332f (patch)
tree5c4be917b9f84ec02e34ef633e4b37fdc98a4b46
parent58d0e0f0838d36a22d5a01a1682f1cbc7e1fe2dc (diff)
downloaddisplay-b9f535546a0febdc14a444bf4c6bfc61ee4f332f.tar.gz
sdm: Set inline rotator prefill bw property to driver
Change-Id: Ie775db54ef2c254f670ad072c51b1daf18cd9786 CRs-Fixed: 2158709
-rw-r--r--libdrmutils/drm_interface.h6
-rw-r--r--sdm/include/private/hw_info_types.h1
-rw-r--r--sdm/libs/core/drm/hw_device_drm.cpp9
3 files changed, 13 insertions, 3 deletions
diff --git a/libdrmutils/drm_interface.h b/libdrmutils/drm_interface.h
index 97660ea9..8d9de75f 100644
--- a/libdrmutils/drm_interface.h
+++ b/libdrmutils/drm_interface.h
@@ -211,6 +211,12 @@ enum struct DRMOps {
*/
CRTC_SET_DRAM_IB,
/*
+ * Op: Sets Rotator BW for inline rotation
+ * Arg: uint32_t - CRTC ID
+ * uint32_t - rot_bw
+ */
+ CRTC_SET_ROT_PREFILL_BW,
+ /*
* Op: Sets rotator clock for inline rotation
* Arg: uint32_t - CRTC ID
* uint32_t - rot_clk
diff --git a/sdm/include/private/hw_info_types.h b/sdm/include/private/hw_info_types.h
index 52bc73e0..80e91caa 100644
--- a/sdm/include/private/hw_info_types.h
+++ b/sdm/include/private/hw_info_types.h
@@ -560,6 +560,7 @@ struct HWQosData {
uint64_t llcc_ib_bps = 0;
uint64_t dram_ab_bps = 0;
uint64_t dram_ib_bps = 0;
+ uint64_t rot_prefill_bw_bps = 0;
uint32_t clock_hz = 0;
uint32_t rot_clock_hz = 0;
};
diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp
index c734f4cd..6f4d29c5 100644
--- a/sdm/libs/core/drm/hw_device_drm.cpp
+++ b/sdm/libs/core/drm/hw_device_drm.cpp
@@ -918,14 +918,17 @@ void HWDeviceDRM::SetupAtomic(HWLayers *hw_layers, bool validate) {
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_LLCC_IB, token_.crtc_id, qos_data.llcc_ib_bps);
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_DRAM_AB, token_.crtc_id, qos_data.dram_ab_bps);
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_DRAM_IB, token_.crtc_id, qos_data.dram_ib_bps);
+ drm_atomic_intf_->Perform(DRMOps::CRTC_SET_ROT_PREFILL_BW, token_.crtc_id,
+ qos_data.rot_prefill_bw_bps);
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_ROT_CLK, token_.crtc_id, qos_data.rot_clock_hz);
drm_atomic_intf_->Perform(DRMOps::CRTC_SET_SECURITY_LEVEL, token_.crtc_id, crtc_security_level);
- DLOGI_IF(kTagDriverConfig, "System Clock=%d Hz, Core: AB=%llu Bps, IB=%llu Bps, " \
- "LLCC: AB=%llu Bps, IB=%llu Bps, DRAM AB=%llu Bps, IB=%llu Bps Rot Clock=%d",
+ DLOGI_IF(kTagDriverConfig, "%s::%s System Clock=%d Hz, Core: AB=%llu Bps, IB=%llu Bps, " \
+ "LLCC: AB=%llu Bps, IB=%llu Bps, DRAM AB=%llu Bps, IB=%llu Bps, "\
+ "Rot: Bw=%llu Bps, Clock=%d Hz", validate ? "Validate" : "Commit", device_name_,
qos_data.clock_hz, qos_data.core_ab_bps, qos_data.core_ib_bps, qos_data.llcc_ab_bps,
qos_data.llcc_ib_bps, qos_data.dram_ab_bps, qos_data.dram_ib_bps,
- qos_data.rot_clock_hz);
+ qos_data.rot_prefill_bw_bps, qos_data.rot_clock_hz);
// Set refresh rate
if (vrefresh_) {