summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_output.c58
2 files changed, 60 insertions, 1 deletions
diff --git a/src/radeon.h b/src/radeon.h
index ce9508c3..cb228753 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -404,7 +404,8 @@ typedef enum {
RADEON_MAC_MINI_EXTERNAL,
RADEON_MAC_MINI_INTERNAL,
RADEON_MAC_IMAC_G5_ISIGHT,
- RADEON_MAC_EMAC
+ RADEON_MAC_EMAC,
+ RADEON_MAC_SAM440EP
} RADEONMacModel;
#endif
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 5abd60e2..aec7e653 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2460,6 +2460,62 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn)
ATOM_DEVICE_TV1_SUPPORT))
return FALSE;
return TRUE;
+ case RADEON_MAC_SAM440EP:
+ /* LVDS header */
+ info->BiosConnector[0].ddc_i2c = legacy_setup_i2c_bus(0);
+ info->BiosConnector[0].ConnectorType = CONNECTOR_LVDS;
+ info->BiosConnector[0].valid = TRUE;
+ info->BiosConnector[0].devices = ATOM_DEVICE_LCD1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_LCD1_SUPPORT,
+ 0),
+ ATOM_DEVICE_LCD1_SUPPORT))
+ return FALSE;
+
+ /* DVI-I port */
+ info->BiosConnector[1].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_DVI_DDC);
+ info->BiosConnector[1].ConnectorType = CONNECTOR_DVI_I;
+ info->BiosConnector[1].valid = TRUE;
+ info->BiosConnector[1].devices = ATOM_DEVICE_CRT2_SUPPORT | ATOM_DEVICE_DFP1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_CRT2_SUPPORT,
+ 2),
+ ATOM_DEVICE_CRT2_SUPPORT))
+ return FALSE;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_DFP1_SUPPORT,
+ 0),
+ ATOM_DEVICE_DFP1_SUPPORT))
+ return FALSE;
+
+ /* VGA header */
+ info->BiosConnector[2].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC);
+ info->BiosConnector[2].ConnectorType = CONNECTOR_VGA;
+ info->BiosConnector[2].valid = TRUE;
+ info->BiosConnector[2].devices = ATOM_DEVICE_CRT1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_CRT1_SUPPORT,
+ 1),
+ ATOM_DEVICE_CRT1_SUPPORT))
+ return FALSE;
+
+ /* s-video */
+ info->BiosConnector[3].ConnectorType = CONNECTOR_STV;
+ info->BiosConnector[3].load_detection = FALSE;
+ info->BiosConnector[3].ddc_i2c.valid = FALSE;
+ info->BiosConnector[3].valid = TRUE;
+ info->BiosConnector[3].devices = ATOM_DEVICE_TV1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_TV1_SUPPORT,
+ 2),
+ ATOM_DEVICE_TV1_SUPPORT))
+ return FALSE;
+ return TRUE;
default:
return FALSE;
}
@@ -2939,6 +2995,8 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
info->MacModel = RADEON_MAC_IMAC_G5_ISIGHT;
else if (!strncmp("emac", optstr, strlen("emac")))
info->MacModel = RADEON_MAC_EMAC;
+ else if (!strncmp("sam440ep", optstr, strlen("sam440ep")))
+ info->MacModel = RADEON_MAC_SAM440EP;
else {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid Mac Model: %s\n", optstr);
}