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

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

drm/radeon/kms: hpd cleanup



- Use radeon hpd enum consistently (in both hotplug and dp)
- Legacy r100 with DVI should be HPD_1 not NONE

Signed-off-by: default avatarAlex Deucher <alexdeucher@gmail.com>
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
parent 2bfcc0fc
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -351,7 +351,7 @@ bool radeon_process_aux_ch(struct radeon_i2c_chan *chan, u8 *req_bytes,
	args.v1.ucChannelID = chan->rec.i2c_id;
	args.v1.ucChannelID = chan->rec.i2c_id;
	args.v1.ucDelay = delay / 10;
	args.v1.ucDelay = delay / 10;
	if (ASIC_IS_DCE4(rdev))
	if (ASIC_IS_DCE4(rdev))
		args.v2.ucHPD_ID = chan->rec.hpd_id;
		args.v2.ucHPD_ID = chan->rec.hpd;


	atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);
	atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args);


+1 −2
Original line number Original line Diff line number Diff line
@@ -549,7 +549,6 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
						ATOM_I2C_RECORD *i2c_record;
						ATOM_I2C_RECORD *i2c_record;
						ATOM_HPD_INT_RECORD *hpd_record;
						ATOM_HPD_INT_RECORD *hpd_record;
						ATOM_I2C_ID_CONFIG_ACCESS *i2c_config;
						ATOM_I2C_ID_CONFIG_ACCESS *i2c_config;
						hpd.hpd = RADEON_HPD_NONE;


						while (record->ucRecordType > 0
						while (record->ucRecordType > 0
						       && record->
						       && record->
@@ -590,7 +589,7 @@ bool radeon_get_atom_connector_info_from_object_table(struct drm_device *dev)
			}
			}


			/* needed for aux chan transactions */
			/* needed for aux chan transactions */
			ddc_bus.hpd_id = hpd.hpd ? (hpd.hpd - 1) : 0;
			ddc_bus.hpd = hpd.hpd;


			conn_id = le16_to_cpu(path->usConnObjectId);
			conn_id = le16_to_cpu(path->usConnObjectId);


+2 −2
Original line number Original line Diff line number Diff line
@@ -600,7 +600,7 @@ static struct radeon_i2c_bus_rec combios_setup_i2c_bus(struct radeon_device *rde
	}
	}
	i2c.mm_i2c = false;
	i2c.mm_i2c = false;
	i2c.i2c_id = 0;
	i2c.i2c_id = 0;
	i2c.hpd_id = 0;
	i2c.hpd = RADEON_HPD_NONE;


	if (ddc_line)
	if (ddc_line)
		i2c.valid = true;
		i2c.valid = true;
@@ -2198,7 +2198,7 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev)
						  ATOM_DEVICE_DFP1_SUPPORT);
						  ATOM_DEVICE_DFP1_SUPPORT);


			ddc_i2c = combios_setup_i2c_bus(rdev, RADEON_GPIO_DVI_DDC);
			ddc_i2c = combios_setup_i2c_bus(rdev, RADEON_GPIO_DVI_DDC);
			hpd.hpd = RADEON_HPD_NONE;
			hpd.hpd = RADEON_HPD_1;
			radeon_add_legacy_connector(dev,
			radeon_add_legacy_connector(dev,
						    0,
						    0,
						    ATOM_DEVICE_CRT1_SUPPORT |
						    ATOM_DEVICE_CRT1_SUPPORT |
+11 −11
Original line number Original line Diff line number Diff line
@@ -66,6 +66,16 @@ enum radeon_tv_std {
	TV_STD_PAL_N,
	TV_STD_PAL_N,
};
};


enum radeon_hpd_id {
	RADEON_HPD_1 = 0,
	RADEON_HPD_2,
	RADEON_HPD_3,
	RADEON_HPD_4,
	RADEON_HPD_5,
	RADEON_HPD_6,
	RADEON_HPD_NONE = 0xff,
};

/* radeon gpio-based i2c
/* radeon gpio-based i2c
 * 1. "mask" reg and bits
 * 1. "mask" reg and bits
 *    grabs the gpio pins for software use
 *    grabs the gpio pins for software use
@@ -85,7 +95,7 @@ struct radeon_i2c_bus_rec {
	/* id used by atom */
	/* id used by atom */
	uint8_t i2c_id;
	uint8_t i2c_id;
	/* id used by atom */
	/* id used by atom */
	uint8_t hpd_id;
	enum radeon_hpd_id hpd;
	/* can be used with hw i2c engine */
	/* can be used with hw i2c engine */
	bool hw_capable;
	bool hw_capable;
	/* uses multi-media i2c engine */
	/* uses multi-media i2c engine */
@@ -370,16 +380,6 @@ struct radeon_gpio_rec {
	u32 mask;
	u32 mask;
};
};


enum radeon_hpd_id {
	RADEON_HPD_NONE = 0,
	RADEON_HPD_1,
	RADEON_HPD_2,
	RADEON_HPD_3,
	RADEON_HPD_4,
	RADEON_HPD_5,
	RADEON_HPD_6,
};

struct radeon_hpd {
struct radeon_hpd {
	enum radeon_hpd_id hpd;
	enum radeon_hpd_id hpd;
	u8 plugged_state;
	u8 plugged_state;