drm/radeon: add connector table for Mac G4 Silver
Apple cards do not provide data tables in the vbios so we have to hard code the connector parameters in the driver. Reported-by: Albrecht Dreß <albrecht.dress@arcor.de> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Cc: stable@vger.kernel.org
This commit is contained in:
parent
d5757dbe79
commit
cafa59b901
|
@ -1548,6 +1548,9 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
|
|||
of_machine_is_compatible("PowerBook6,7")) {
|
||||
/* ibook */
|
||||
rdev->mode_info.connector_table = CT_IBOOK;
|
||||
} else if (of_machine_is_compatible("PowerMac3,5")) {
|
||||
/* PowerMac G4 Silver radeon 7500 */
|
||||
rdev->mode_info.connector_table = CT_MAC_G4_SILVER;
|
||||
} else if (of_machine_is_compatible("PowerMac4,4")) {
|
||||
/* emac */
|
||||
rdev->mode_info.connector_table = CT_EMAC;
|
||||
|
@ -2212,6 +2215,54 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
|
|||
CONNECTOR_OBJECT_ID_SVIDEO,
|
||||
&hpd);
|
||||
break;
|
||||
case CT_MAC_G4_SILVER:
|
||||
DRM_INFO("Connector Table: %d (mac g4 silver)\n",
|
||||
rdev->mode_info.connector_table);
|
||||
/* DVI-I - tv dac, int tmds */
|
||||
ddc_i2c = combios_setup_i2c_bus(rdev, DDC_DVI, 0, 0);
|
||||
hpd.hpd = RADEON_HPD_1; /* ??? */
|
||||
radeon_add_legacy_encoder(dev,
|
||||
radeon_get_encoder_enum(dev,
|
||||
ATOM_DEVICE_DFP1_SUPPORT,
|
||||
0),
|
||||
ATOM_DEVICE_DFP1_SUPPORT);
|
||||
radeon_add_legacy_encoder(dev,
|
||||
radeon_get_encoder_enum(dev,
|
||||
ATOM_DEVICE_CRT2_SUPPORT,
|
||||
2),
|
||||
ATOM_DEVICE_CRT2_SUPPORT);
|
||||
radeon_add_legacy_connector(dev, 0,
|
||||
ATOM_DEVICE_DFP1_SUPPORT |
|
||||
ATOM_DEVICE_CRT2_SUPPORT,
|
||||
DRM_MODE_CONNECTOR_DVII, &ddc_i2c,
|
||||
CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I,
|
||||
&hpd);
|
||||
/* VGA - primary dac */
|
||||
ddc_i2c = combios_setup_i2c_bus(rdev, DDC_VGA, 0, 0);
|
||||
hpd.hpd = RADEON_HPD_NONE;
|
||||
radeon_add_legacy_encoder(dev,
|
||||
radeon_get_encoder_enum(dev,
|
||||
ATOM_DEVICE_CRT1_SUPPORT,
|
||||
1),
|
||||
ATOM_DEVICE_CRT1_SUPPORT);
|
||||
radeon_add_legacy_connector(dev, 1, ATOM_DEVICE_CRT1_SUPPORT,
|
||||
DRM_MODE_CONNECTOR_VGA, &ddc_i2c,
|
||||
CONNECTOR_OBJECT_ID_VGA,
|
||||
&hpd);
|
||||
/* TV - TV DAC */
|
||||
ddc_i2c.valid = false;
|
||||
hpd.hpd = RADEON_HPD_NONE;
|
||||
radeon_add_legacy_encoder(dev,
|
||||
radeon_get_encoder_enum(dev,
|
||||
ATOM_DEVICE_TV1_SUPPORT,
|
||||
2),
|
||||
ATOM_DEVICE_TV1_SUPPORT);
|
||||
radeon_add_legacy_connector(dev, 2, ATOM_DEVICE_TV1_SUPPORT,
|
||||
DRM_MODE_CONNECTOR_SVIDEO,
|
||||
&ddc_i2c,
|
||||
CONNECTOR_OBJECT_ID_SVIDEO,
|
||||
&hpd);
|
||||
break;
|
||||
default:
|
||||
DRM_INFO("Connector table: %d (invalid)\n",
|
||||
rdev->mode_info.connector_table);
|
||||
|
|
|
@ -209,7 +209,8 @@ enum radeon_connector_table {
|
|||
CT_RN50_POWER,
|
||||
CT_MAC_X800,
|
||||
CT_MAC_G5_9600,
|
||||
CT_SAM440EP
|
||||
CT_SAM440EP,
|
||||
CT_MAC_G4_SILVER
|
||||
};
|
||||
|
||||
enum radeon_dvo_chip {
|
||||
|
|
Loading…
Reference in New Issue