Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aa74fbb4 authored by Alex Deucher's avatar Alex Deucher Committed by Dave Airlie
Browse files

drm/radeon/kms: add connector table for Mac x800

parent ff32a59d
Loading
Loading
Loading
Loading
+47 −0
Original line number Original line Diff line number Diff line
@@ -1485,6 +1485,11 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
			/* PowerMac8,1 ? */
			/* PowerMac8,1 ? */
			/* imac g5 isight */
			/* imac g5 isight */
			rdev->mode_info.connector_table = CT_IMAC_G5_ISIGHT;
			rdev->mode_info.connector_table = CT_IMAC_G5_ISIGHT;
		} else if ((rdev->pdev->device == 0x4a48) &&
			   (rdev->pdev->subsystem_vendor == 0x1002) &&
			   (rdev->pdev->subsystem_device == 0x4a48)) {
			/* Mac X800 */
			rdev->mode_info.connector_table = CT_MAC_X800;
		} else
		} else
#endif /* CONFIG_PPC_PMAC */
#endif /* CONFIG_PPC_PMAC */
#ifdef CONFIG_PPC64
#ifdef CONFIG_PPC64
@@ -1961,6 +1966,48 @@ bool radeon_get_legacy_connector_info_from_table(struct drm_device *dev)
					    CONNECTOR_OBJECT_ID_VGA,
					    CONNECTOR_OBJECT_ID_VGA,
					    &hpd);
					    &hpd);
		break;
		break;
	case CT_MAC_X800:
		DRM_INFO("Connector Table: %d (mac x800)\n",
			 rdev->mode_info.connector_table);
		/* DVI - primary dac, internal 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_CRT1_SUPPORT,
								  1),
					  ATOM_DEVICE_CRT1_SUPPORT);
		radeon_add_legacy_connector(dev, 0,
					    ATOM_DEVICE_DFP1_SUPPORT |
					    ATOM_DEVICE_CRT1_SUPPORT,
					    DRM_MODE_CONNECTOR_DVII, &ddc_i2c,
					    CONNECTOR_OBJECT_ID_SINGLE_LINK_DVI_I,
					    &hpd);
		/* DVI - tv dac, dvo */
		ddc_i2c = combios_setup_i2c_bus(rdev, DDC_MONID, 0, 0);
		hpd.hpd = RADEON_HPD_2; /* ??? */
		radeon_add_legacy_encoder(dev,
					  radeon_get_encoder_enum(dev,
								  ATOM_DEVICE_DFP2_SUPPORT,
								  0),
					  ATOM_DEVICE_DFP2_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, 1,
					    ATOM_DEVICE_DFP2_SUPPORT |
					    ATOM_DEVICE_CRT2_SUPPORT,
					    DRM_MODE_CONNECTOR_DVII, &ddc_i2c,
					    CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I,
					    &hpd);
		break;
	default:
	default:
		DRM_INFO("Connector table: %d (invalid)\n",
		DRM_INFO("Connector table: %d (invalid)\n",
			 rdev->mode_info.connector_table);
			 rdev->mode_info.connector_table);
+2 −1
Original line number Original line Diff line number Diff line
@@ -204,7 +204,7 @@ struct radeon_i2c_chan {


/* mostly for macs, but really any system without connector tables */
/* mostly for macs, but really any system without connector tables */
enum radeon_connector_table {
enum radeon_connector_table {
	CT_NONE,
	CT_NONE = 0,
	CT_GENERIC,
	CT_GENERIC,
	CT_IBOOK,
	CT_IBOOK,
	CT_POWERBOOK_EXTERNAL,
	CT_POWERBOOK_EXTERNAL,
@@ -215,6 +215,7 @@ enum radeon_connector_table {
	CT_IMAC_G5_ISIGHT,
	CT_IMAC_G5_ISIGHT,
	CT_EMAC,
	CT_EMAC,
	CT_RN50_POWER,
	CT_RN50_POWER,
	CT_MAC_X800,
};
};


enum radeon_dvo_chip {
enum radeon_dvo_chip {