Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: Implement HDMI Read Request

[Why]
Read Request provides alterative method to polling to
the HDMI sinks that support it.

[How]
Implement Read Request where interrupt can be generated
by the sink.

Reviewed-by: Joshua Aberback <joshua.aberback@amd.com>
Signed-off-by: Chris Park <chris.park@amd.com>
Signed-off-by: Zaeem Mohamed <zaeem.mohamed@amd.com>
Tested-by: Mark Broadworth <mark.broadworth@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Chris Park and committed by
Alex Deucher
724a4b40 f53d0f48

+30
+1
drivers/gpu/drm/amd/display/dc/dc.h
··· 1436 1436 enum signal_type connector_signal; 1437 1437 enum dc_irq_source irq_source_hpd; 1438 1438 enum dc_irq_source irq_source_hpd_rx;/* aka DP Short Pulse */ 1439 + enum dc_irq_source irq_source_read_request;/* Read Request */ 1439 1440 1440 1441 bool is_hpd_filter_disabled; 1441 1442 bool dp_ss_off;
+1
drivers/gpu/drm/amd/display/dc/dc_types.h
··· 210 210 211 211 bool edid_hdmi; 212 212 bool hdr_supported; 213 + bool rr_capable; 213 214 214 215 struct dc_panel_patch panel_patch; 215 216 };
+14
drivers/gpu/drm/amd/display/dc/gpio/gpio_service.c
··· 411 411 } 412 412 } 413 413 414 + enum dc_irq_source dal_irq_get_read_request( 415 + const struct gpio *irq) 416 + { 417 + enum gpio_id id = dal_gpio_get_id(irq); 418 + 419 + switch (id) { 420 + case GPIO_ID_HPD: 421 + return (enum dc_irq_source)(DC_IRQ_SOURCE_DCI2C_RR_DDC1 + 422 + dal_gpio_get_enum(irq)); 423 + default: 424 + return DC_IRQ_SOURCE_INVALID; 425 + } 426 + } 427 + 414 428 enum gpio_result dal_irq_setup_hpd_filter( 415 429 struct gpio *irq, 416 430 struct gpio_hpd_config *config)
+7
drivers/gpu/drm/amd/display/dc/irq_types.h
··· 168 168 DC_IRQ_SOURCE_DC5_VLINE2, 169 169 DC_IRQ_SOURCE_DC6_VLINE2, 170 170 171 + DC_IRQ_SOURCE_DCI2C_RR_DDC1, 172 + DC_IRQ_SOURCE_DCI2C_RR_DDC2, 173 + DC_IRQ_SOURCE_DCI2C_RR_DDC3, 174 + DC_IRQ_SOURCE_DCI2C_RR_DDC4, 175 + DC_IRQ_SOURCE_DCI2C_RR_DDC5, 176 + DC_IRQ_SOURCE_DCI2C_RR_DDC6, 177 + 171 178 DAL_IRQ_SOURCES_NUMBER 172 179 }; 173 180
+3
drivers/gpu/drm/amd/display/include/gpio_service_interface.h
··· 86 86 enum dc_irq_source dal_irq_get_rx_source( 87 87 const struct gpio *irq); 88 88 89 + enum dc_irq_source dal_irq_get_read_request( 90 + const struct gpio *irq); 91 + 89 92 enum gpio_result dal_irq_setup_hpd_filter( 90 93 struct gpio *irq, 91 94 struct gpio_hpd_config *config);