diff options
author | Alex Deucher <alexdeucher@gmail.com> | 2010-08-05 21:21:18 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-08-09 20:46:50 -0400 |
commit | 26b5bc986423cf3887e09188cb662ed651c5374d (patch) | |
tree | 568934e975f31029460b8e90f22580bdb84b19ec /drivers/gpu/drm/radeon/radeon_mode.h | |
parent | 179e8078a768be8c18539bebe44dd94447142ccf (diff) |
drm/radeon/kms: add support for router objects
router objects are found on systems that use a mux to control
ddc line to connector routing or to control the actual clock and data
routing from the chip to the connectors. This patch implements ddc line
routing.
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 02d4e2af6180..5bbc086b9267 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -400,6 +400,16 @@ struct radeon_hpd { | |||
400 | struct radeon_gpio_rec gpio; | 400 | struct radeon_gpio_rec gpio; |
401 | }; | 401 | }; |
402 | 402 | ||
403 | struct radeon_router { | ||
404 | bool valid; | ||
405 | u32 router_id; | ||
406 | struct radeon_i2c_bus_rec i2c_info; | ||
407 | u8 i2c_addr; | ||
408 | u8 mux_type; | ||
409 | u8 mux_control_pin; | ||
410 | u8 mux_state; | ||
411 | }; | ||
412 | |||
403 | struct radeon_connector { | 413 | struct radeon_connector { |
404 | struct drm_connector base; | 414 | struct drm_connector base; |
405 | uint32_t connector_id; | 415 | uint32_t connector_id; |
@@ -415,6 +425,8 @@ struct radeon_connector { | |||
415 | bool dac_load_detect; | 425 | bool dac_load_detect; |
416 | uint16_t connector_object_id; | 426 | uint16_t connector_object_id; |
417 | struct radeon_hpd hpd; | 427 | struct radeon_hpd hpd; |
428 | struct radeon_router router; | ||
429 | struct radeon_i2c_chan *router_bus; | ||
418 | }; | 430 | }; |
419 | 431 | ||
420 | struct radeon_framebuffer { | 432 | struct radeon_framebuffer { |
@@ -471,6 +483,7 @@ extern void radeon_i2c_put_byte(struct radeon_i2c_chan *i2c, | |||
471 | u8 slave_addr, | 483 | u8 slave_addr, |
472 | u8 addr, | 484 | u8 addr, |
473 | u8 val); | 485 | u8 val); |
486 | extern void radeon_router_select_port(struct radeon_connector *radeon_connector); | ||
474 | extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector); | 487 | extern bool radeon_ddc_probe(struct radeon_connector *radeon_connector); |
475 | extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector); | 488 | extern int radeon_ddc_get_modes(struct radeon_connector *radeon_connector); |
476 | 489 | ||