drm/amd/display: hpd rx irq not working with eDP interface
commit eeefe7c4820b6baa0462a8b723ea0a3b5846ccae upstream. [Why] This is the fix for the defect of commitab144f0b4a
("drm/amd/display: Allow individual control of eDP hotplug support"). [How] To revise the default eDP hotplug setting and use the enum to git rid of the magic number for different options. Fixes:ab144f0b4a
("drm/amd/display: Allow individual control of eDP hotplug support") Cc: stable@vger.kernel.org Cc: Mario Limonciello <mario.limonciello@amd.com> Reviewed-by: Wenjing Liu <Wenjing.Liu@amd.com> Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com> Signed-off-by: Robin Chen <robin.chen@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> (cherry picked from commit eeefe7c4820b6baa0462a8b723ea0a3b5846ccae) Hand modified for missing file rename changes and symbol moves in 6.1.y. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
7bfd4c0ebc
commit
28ee628fff
@ -1634,14 +1634,18 @@ static bool dc_link_construct_legacy(struct dc_link *link,
|
|||||||
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
||||||
|
|
||||||
switch (link->dc->config.allow_edp_hotplug_detection) {
|
switch (link->dc->config.allow_edp_hotplug_detection) {
|
||||||
case 1: // only the 1st eDP handles hotplug
|
case HPD_EN_FOR_ALL_EDP:
|
||||||
|
link->irq_source_hpd_rx =
|
||||||
|
dal_irq_get_rx_source(link->hpd_gpio);
|
||||||
|
break;
|
||||||
|
case HPD_EN_FOR_PRIMARY_EDP_ONLY:
|
||||||
if (link->link_index == 0)
|
if (link->link_index == 0)
|
||||||
link->irq_source_hpd_rx =
|
link->irq_source_hpd_rx =
|
||||||
dal_irq_get_rx_source(link->hpd_gpio);
|
dal_irq_get_rx_source(link->hpd_gpio);
|
||||||
else
|
else
|
||||||
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
||||||
break;
|
break;
|
||||||
case 2: // only the 2nd eDP handles hotplug
|
case HPD_EN_FOR_SECONDARY_EDP_ONLY:
|
||||||
if (link->link_index == 1)
|
if (link->link_index == 1)
|
||||||
link->irq_source_hpd_rx =
|
link->irq_source_hpd_rx =
|
||||||
dal_irq_get_rx_source(link->hpd_gpio);
|
dal_irq_get_rx_source(link->hpd_gpio);
|
||||||
@ -1649,6 +1653,7 @@ static bool dc_link_construct_legacy(struct dc_link *link,
|
|||||||
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
link->irq_source_hpd = DC_IRQ_SOURCE_INVALID;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -993,4 +993,10 @@ struct display_endpoint_id {
|
|||||||
enum display_endpoint_type ep_type;
|
enum display_endpoint_type ep_type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum dc_hpd_enable_select {
|
||||||
|
HPD_EN_FOR_ALL_EDP = 0,
|
||||||
|
HPD_EN_FOR_PRIMARY_EDP_ONLY,
|
||||||
|
HPD_EN_FOR_SECONDARY_EDP_ONLY,
|
||||||
|
};
|
||||||
|
|
||||||
#endif /* DC_TYPES_H_ */
|
#endif /* DC_TYPES_H_ */
|
||||||
|
Loading…
Reference in New Issue
Block a user