Commit b57de80a authored by Andrey Grodzovsky's avatar Andrey Grodzovsky Committed by Alex Deucher

drm/amd/display: Register on VLBLANK ISR.

Switch from VUPDATE to VBLANK.
Signed-off-by: default avatarAndrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Acked-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b10d51f8
...@@ -201,7 +201,7 @@ static void dm_crtc_high_irq(void *interrupt_params) ...@@ -201,7 +201,7 @@ static void dm_crtc_high_irq(void *interrupt_params)
uint8_t crtc_index = 0; uint8_t crtc_index = 0;
struct amdgpu_crtc *acrtc; struct amdgpu_crtc *acrtc;
acrtc = get_crtc_by_otg_inst(adev, irq_params->irq_src - IRQ_TYPE_VUPDATE); acrtc = get_crtc_by_otg_inst(adev, irq_params->irq_src - IRQ_TYPE_VBLANK);
if (acrtc) if (acrtc)
crtc_index = acrtc->crtc_id; crtc_index = acrtc->crtc_id;
...@@ -1026,9 +1026,10 @@ static int dce110_register_irq_handlers(struct amdgpu_device *adev) ...@@ -1026,9 +1026,10 @@ static int dce110_register_irq_handlers(struct amdgpu_device *adev)
* amdgpu_dm_irq_handler() will re-direct the interrupt to DC * amdgpu_dm_irq_handler() will re-direct the interrupt to DC
* for acknowledging and handling. */ * for acknowledging and handling. */
for (i = VISLANDS30_IV_SRCID_D1_V_UPDATE_INT; /* Use VBLANK interrupt */
i <= VISLANDS30_IV_SRCID_D6_V_UPDATE_INT; i += 2) { for (i = 0; i < adev->mode_info.num_crtc; i++) {
r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, i, &adev->crtc_irq); r = amdgpu_irq_add_id(adev, AMDGPU_IH_CLIENTID_LEGACY, i+1, &adev->crtc_irq);
if (r) { if (r) {
DRM_ERROR("Failed to add crtc irq id!\n"); DRM_ERROR("Failed to add crtc irq id!\n");
return r; return r;
...@@ -1036,9 +1037,9 @@ static int dce110_register_irq_handlers(struct amdgpu_device *adev) ...@@ -1036,9 +1037,9 @@ static int dce110_register_irq_handlers(struct amdgpu_device *adev)
int_params.int_context = INTERRUPT_HIGH_IRQ_CONTEXT; int_params.int_context = INTERRUPT_HIGH_IRQ_CONTEXT;
int_params.irq_source = int_params.irq_source =
dc_interrupt_to_irq_source(dc, i, 0); dc_interrupt_to_irq_source(dc, i+1, 0);
c_irq_params = &adev->dm.vupdate_params[int_params.irq_source - DC_IRQ_SOURCE_VUPDATE1]; c_irq_params = &adev->dm.vblank_params[int_params.irq_source - DC_IRQ_SOURCE_VBLANK1];
c_irq_params->adev = adev; c_irq_params->adev = adev;
c_irq_params->irq_src = int_params.irq_source; c_irq_params->irq_src = int_params.irq_source;
......
...@@ -105,7 +105,7 @@ struct amdgpu_display_manager { ...@@ -105,7 +105,7 @@ struct amdgpu_display_manager {
pflip_params[DC_IRQ_SOURCE_PFLIP_LAST - DC_IRQ_SOURCE_PFLIP_FIRST + 1]; pflip_params[DC_IRQ_SOURCE_PFLIP_LAST - DC_IRQ_SOURCE_PFLIP_FIRST + 1];
struct common_irq_params struct common_irq_params
vupdate_params[DC_IRQ_SOURCE_VUPDATE6 - DC_IRQ_SOURCE_VUPDATE1 + 1]; vblank_params[DC_IRQ_SOURCE_VBLANK6 - DC_IRQ_SOURCE_VBLANK1 + 1];
/* this spin lock synchronizes access to 'irq_handler_list_table' */ /* this spin lock synchronizes access to 'irq_handler_list_table' */
spinlock_t irq_handler_list_table_lock; spinlock_t irq_handler_list_table_lock;
......
...@@ -736,7 +736,7 @@ static int amdgpu_dm_set_crtc_irq_state(struct amdgpu_device *adev, ...@@ -736,7 +736,7 @@ static int amdgpu_dm_set_crtc_irq_state(struct amdgpu_device *adev,
source, source,
crtc_id, crtc_id,
state, state,
IRQ_TYPE_VUPDATE, IRQ_TYPE_VBLANK,
__func__); __func__);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment