summaryrefslogtreecommitdiff
path: root/src/radeon_output.c
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2008-12-10 17:16:56 -0500
committerAlex Deucher <alexdeucher@gmail.com>2008-12-10 17:16:56 -0500
commitfb46c30d316ab3ec54c54f3aec91d5164070a423 (patch)
tree157b36c66215a99c706d452df74d2d1e56222f8b /src/radeon_output.c
parentc0bcea9150ef215fa614733cef9a5b71a55a33bd (diff)
Add support for Apple eMacs
Thanks to Joseph Adams for helping me sort this out. Verified on eMac G4/1.0 with radeon 7500 Later eMacs with radeon 9200 or 9600 chips may have different ddc setups. Need to verify.
Diffstat (limited to 'src/radeon_output.c')
-rw-r--r--src/radeon_output.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/src/radeon_output.c b/src/radeon_output.c
index e77abaf2..5924c814 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2363,6 +2363,31 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn)
info->BiosConnector[2].ddc_i2c.valid = FALSE;
info->BiosConnector[2].valid = TRUE;
return TRUE;
+ case RADEON_MAC_EMAC:
+ /* eMac G4 800/1.0 with radeon 7500, no EDID on internal monitor
+ * later eMac's (G4 1.25/1.42) with radeon 9200 and 9600 may have
+ * different ddc setups. need to verify
+ */
+ info->BiosConnector[0].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC);
+ info->BiosConnector[0].DACType = DAC_PRIMARY;
+ info->BiosConnector[0].TMDSType = TMDS_NONE;
+ info->BiosConnector[0].ConnectorType = CONNECTOR_VGA;
+ info->BiosConnector[0].valid = TRUE;
+
+ info->BiosConnector[1].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_CRT2_DDC);
+ info->BiosConnector[1].DACType = DAC_TVDAC;
+ info->BiosConnector[1].load_detection = FALSE;
+ info->BiosConnector[1].TMDSType = TMDS_NONE;
+ info->BiosConnector[1].ConnectorType = CONNECTOR_VGA;
+ info->BiosConnector[1].valid = TRUE;
+
+ info->BiosConnector[2].ConnectorType = CONNECTOR_STV;
+ info->BiosConnector[2].DACType = DAC_TVDAC;
+ info->BiosConnector[2].load_detection = FALSE;
+ info->BiosConnector[2].TMDSType = TMDS_NONE;
+ info->BiosConnector[2].ddc_i2c.valid = FALSE;
+ info->BiosConnector[2].valid = TRUE;
+ return TRUE;
default:
return FALSE;
}
@@ -2543,7 +2568,7 @@ static RADEONMacModel RADEONDetectMacModel(ScrnInfoPtr pScrn)
* Unforunately, there doesn't seem to be any good way to figure it out.
*/
- /*
+ /*
* PowerBook5,[1-5]: external tmds, single-link
* PowerBook5,[789]: external tmds, dual-link
* PowerBook5,6: external tmds, single-link or dual-link
@@ -2601,6 +2626,9 @@ static RADEONMacModel RADEONDetectMacModel(ScrnInfoPtr pScrn)
} else if (strstr(cpuline, "iMac G5 (iSight)")) {
ret = RADEON_MAC_IMAC_G5_ISIGHT;
break;
+ } else if (strstr(cpuline, "eMac")) {
+ ret = RADEON_MAC_EMAC;
+ break;
}
/* No known PowerMac model detected */
@@ -2728,6 +2756,8 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
info->MacModel = RADEON_MAC_MINI_EXTERNAL;
else if (!strncmp("imac-g5-isight", optstr, strlen("imac-g5-isight")))
info->MacModel = RADEON_MAC_IMAC_G5_ISIGHT;
+ else if (!strncmp("emac", optstr, strlen("emac")))
+ info->MacModel = RADEON_MAC_EMAC;
else {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid Mac Model: %s\n", optstr);
}