|
@@ -27,6 +27,10 @@
|
|
|
|
|
|
#include "hw_sequencer.h"
|
|
|
|
|
|
+#define BL_REG_LIST()\
|
|
|
+ SR(LVTMA_PWRSEQ_CNTL), \
|
|
|
+ SR(LVTMA_PWRSEQ_STATE)
|
|
|
+
|
|
|
#define HWSEQ_DCEF_REG_LIST_DCE8() \
|
|
|
.DCFE_CLOCK_CONTROL[0] = mmCRTC0_CRTC_DCFE_CLOCK_CONTROL, \
|
|
|
.DCFE_CLOCK_CONTROL[1] = mmCRTC1_CRTC_DCFE_CLOCK_CONTROL, \
|
|
@@ -86,24 +90,27 @@
|
|
|
SRII(BLND_CONTROL, BLND, 0),\
|
|
|
SRII(BLND_CONTROL, BLND, 1),\
|
|
|
SR(BLNDV_CONTROL),\
|
|
|
- HWSEQ_PIXEL_RATE_REG_LIST(CRTC)
|
|
|
+ HWSEQ_PIXEL_RATE_REG_LIST(CRTC),\
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
#define HWSEQ_DCE8_REG_LIST() \
|
|
|
HWSEQ_DCEF_REG_LIST_DCE8(), \
|
|
|
HWSEQ_BLND_REG_LIST(), \
|
|
|
- HWSEQ_PIXEL_RATE_REG_LIST(CRTC)
|
|
|
+ HWSEQ_PIXEL_RATE_REG_LIST(CRTC),\
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
#define HWSEQ_DCE10_REG_LIST() \
|
|
|
HWSEQ_DCEF_REG_LIST(), \
|
|
|
HWSEQ_BLND_REG_LIST(), \
|
|
|
- HWSEQ_PIXEL_RATE_REG_LIST(CRTC)
|
|
|
+ HWSEQ_PIXEL_RATE_REG_LIST(CRTC), \
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
#define HWSEQ_ST_REG_LIST() \
|
|
|
HWSEQ_DCE11_REG_LIST_BASE(), \
|
|
|
.DCFE_CLOCK_CONTROL[2] = mmDCFEV_CLOCK_CONTROL, \
|
|
|
.CRTC_H_BLANK_START_END[2] = mmCRTCV_H_BLANK_START_END, \
|
|
|
.BLND_V_UPDATE_LOCK[2] = mmBLNDV_V_UPDATE_LOCK, \
|
|
|
- .BLND_CONTROL[2] = mmBLNDV_CONTROL,
|
|
|
+ .BLND_CONTROL[2] = mmBLNDV_CONTROL
|
|
|
|
|
|
#define HWSEQ_CZ_REG_LIST() \
|
|
|
HWSEQ_DCE11_REG_LIST_BASE(), \
|
|
@@ -123,12 +130,14 @@
|
|
|
SR(DCHUB_FB_LOCATION),\
|
|
|
SR(DCHUB_AGP_BASE),\
|
|
|
SR(DCHUB_AGP_BOT),\
|
|
|
- SR(DCHUB_AGP_TOP)
|
|
|
+ SR(DCHUB_AGP_TOP), \
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
#define HWSEQ_DCE112_REG_LIST() \
|
|
|
HWSEQ_DCE10_REG_LIST(), \
|
|
|
HWSEQ_PIXEL_RATE_REG_LIST(CRTC), \
|
|
|
- HWSEQ_PHYPLL_REG_LIST(CRTC)
|
|
|
+ HWSEQ_PHYPLL_REG_LIST(CRTC), \
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
#define HWSEQ_DCN_REG_LIST()\
|
|
|
SRII(OTG_GLOBAL_SYNC_STATUS, OTG, 0), \
|
|
@@ -228,9 +237,15 @@
|
|
|
SR(D2VGA_CONTROL), \
|
|
|
SR(D3VGA_CONTROL), \
|
|
|
SR(D4VGA_CONTROL), \
|
|
|
- SR(DC_IP_REQUEST_CNTL)
|
|
|
+ SR(DC_IP_REQUEST_CNTL), \
|
|
|
+ BL_REG_LIST()
|
|
|
|
|
|
struct dce_hwseq_registers {
|
|
|
+
|
|
|
+ /* Backlight registers */
|
|
|
+ uint32_t LVTMA_PWRSEQ_CNTL;
|
|
|
+ uint32_t LVTMA_PWRSEQ_STATE;
|
|
|
+
|
|
|
uint32_t DCFE_CLOCK_CONTROL[6];
|
|
|
uint32_t DCFEV_CLOCK_CONTROL;
|
|
|
uint32_t DC_MEM_GLOBAL_PWR_REQ_CNTL;
|
|
@@ -375,20 +390,24 @@ struct dce_hwseq_registers {
|
|
|
HWS_SF(BLND_, V_UPDATE_LOCK, BLND_SCL_V_UPDATE_LOCK, mask_sh),\
|
|
|
HWS_SF(BLND_, V_UPDATE_LOCK, BLND_DCP_GRPH_SURF_V_UPDATE_LOCK, mask_sh),\
|
|
|
HWS_SF(BLND_, CONTROL, BLND_MODE, mask_sh),\
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh),\
|
|
|
HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, CRTC0_)
|
|
|
|
|
|
#define HWSEQ_DCE10_MASK_SH_LIST(mask_sh)\
|
|
|
HWSEQ_DCEF_MASK_SH_LIST(mask_sh, DCFE_),\
|
|
|
HWSEQ_BLND_MASK_SH_LIST(mask_sh, BLND_),\
|
|
|
- HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, CRTC0_)
|
|
|
+ HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, CRTC0_), \
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh)
|
|
|
|
|
|
#define HWSEQ_DCE11_MASK_SH_LIST(mask_sh)\
|
|
|
HWSEQ_DCE10_MASK_SH_LIST(mask_sh),\
|
|
|
SF(DCFEV_CLOCK_CONTROL, DCFEV_CLOCK_ENABLE, mask_sh),\
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh),\
|
|
|
HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, CRTC0_)
|
|
|
|
|
|
#define HWSEQ_DCE112_MASK_SH_LIST(mask_sh)\
|
|
|
HWSEQ_DCE10_MASK_SH_LIST(mask_sh),\
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh),\
|
|
|
HWSEQ_PHYPLL_MASK_SH_LIST(mask_sh, CRTC0_)
|
|
|
|
|
|
#define HWSEQ_GFX9_DCHUB_MASK_SH_LIST(mask_sh)\
|
|
@@ -396,14 +415,16 @@ struct dce_hwseq_registers {
|
|
|
SF(DCHUB_FB_LOCATION, FB_BASE, mask_sh),\
|
|
|
SF(DCHUB_AGP_BASE, AGP_BASE, mask_sh),\
|
|
|
SF(DCHUB_AGP_BOT, AGP_BOT, mask_sh),\
|
|
|
- SF(DCHUB_AGP_TOP, AGP_TOP, mask_sh)
|
|
|
+ SF(DCHUB_AGP_TOP, AGP_TOP, mask_sh), \
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh)
|
|
|
|
|
|
#define HWSEQ_DCE12_MASK_SH_LIST(mask_sh)\
|
|
|
HWSEQ_DCEF_MASK_SH_LIST(mask_sh, DCFE0_DCFE_),\
|
|
|
HWSEQ_BLND_MASK_SH_LIST(mask_sh, BLND0_BLND_),\
|
|
|
HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, CRTC0_),\
|
|
|
HWSEQ_PHYPLL_MASK_SH_LIST(mask_sh, CRTC0_),\
|
|
|
- HWSEQ_GFX9_DCHUB_MASK_SH_LIST(mask_sh)
|
|
|
+ HWSEQ_GFX9_DCHUB_MASK_SH_LIST(mask_sh), \
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh)
|
|
|
|
|
|
#define HWSEQ_DCN_MASK_SH_LIST(mask_sh)\
|
|
|
HWSEQ_PIXEL_RATE_MASK_SH_LIST(mask_sh, OTG0_),\
|
|
@@ -467,7 +488,8 @@ struct dce_hwseq_registers {
|
|
|
HWS_SF(, DOMAIN5_PG_STATUS, DOMAIN5_PGFSM_PWR_STATUS, mask_sh), \
|
|
|
HWS_SF(, DOMAIN6_PG_STATUS, DOMAIN6_PGFSM_PWR_STATUS, mask_sh), \
|
|
|
HWS_SF(, DOMAIN7_PG_STATUS, DOMAIN7_PGFSM_PWR_STATUS, mask_sh), \
|
|
|
- HWS_SF(, DC_IP_REQUEST_CNTL, IP_REQUEST_EN, mask_sh)
|
|
|
+ HWS_SF(, DC_IP_REQUEST_CNTL, IP_REQUEST_EN, mask_sh), \
|
|
|
+ HWS_SF(, LVTMA_PWRSEQ_CNTL, LVTMA_BLON, mask_sh)
|
|
|
|
|
|
#define HWSEQ_REG_FIELD_LIST(type) \
|
|
|
type DCFE_CLOCK_ENABLE; \
|
|
@@ -497,7 +519,8 @@ struct dce_hwseq_registers {
|
|
|
type PHYSICAL_PAGE_NUMBER_LSB;\
|
|
|
type LOGICAL_ADDR; \
|
|
|
type ENABLE_L1_TLB;\
|
|
|
- type SYSTEM_ACCESS_MODE;
|
|
|
+ type SYSTEM_ACCESS_MODE;\
|
|
|
+ type LVTMA_BLON;
|
|
|
|
|
|
#define HWSEQ_DCN_REG_FIELD_LIST(type) \
|
|
|
type VUPDATE_NO_LOCK_EVENT_CLEAR; \
|