All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Airlie <airlied@gmail.com>
To: dri-devel@lists.freedesktop.org
Subject: [PATCH 4/7] drm/amdgpu: use graphics objects for connectors.
Date: Thu, 14 Apr 2016 12:56:07 +1000	[thread overview]
Message-ID: <1460602570-20641-5-git-send-email-airlied@gmail.com> (raw)
In-Reply-To: <1460602570-20641-1-git-send-email-airlied@gmail.com>

From: Dave Airlie <airlied@redhat.com>

This introduces graphics objects for the connectors code,
and replaces the atombios enums with the graphics object ones.

These correspond currently so we don't really need a back
translation pass for them.

Signed-off-by: Dave Airlie <airlied@redhat.com>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h            |  2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c   | 22 +++------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c | 37 +++++++++++++-------------
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h |  3 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c   |  4 +--
 drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h       |  8 +++---
 drivers/gpu/drm/amd/amdgpu/atombios_dp.c       |  8 +++---
 drivers/gpu/drm/amd/amdgpu/atombios_encoders.c | 10 +++----
 8 files changed, 37 insertions(+), 57 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index a7a53ac..0e54f4a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -2204,7 +2204,7 @@ amdgpu_get_sdma_instance(struct amdgpu_ring *ring)
 #define amdgpu_display_page_flip(adev, crtc, base) (adev)->mode_info.funcs->page_flip((adev), (crtc), (base))
 #define amdgpu_display_page_flip_get_scanoutpos(adev, crtc, vbl, pos) (adev)->mode_info.funcs->page_flip_get_scanoutpos((adev), (crtc), (vbl), (pos))
 #define amdgpu_display_add_encoder(adev, e, s, c) (adev)->mode_info.funcs->add_encoder((adev), (e), (s), (c))
-#define amdgpu_display_add_connector(adev, ci, sd, ct, ib, coi, h, r) (adev)->mode_info.funcs->add_connector((adev), (ci), (sd), (ct), (ib), (coi), (h), (r))
+#define amdgpu_display_add_connector(adev, coi, sd, ct, ib, h, r) (adev)->mode_info.funcs->add_connector((adev), (coi), (sd), (ct), (ib), (h), (r))
 #define amdgpu_display_stop_mc_access(adev, s) (adev)->mode_info.funcs->stop_mc_access((adev), (s))
 #define amdgpu_display_resume_mc_access(adev, s) (adev)->mode_info.funcs->resume_mc_access((adev), (s))
 #define amdgpu_emit_copy_buffer(adev, ib, s, d, b) (adev)->mman.buffer_funcs->emit_copy_buffer((ib),  (s), (d), (b))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
index 3b469ea..5f236d9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c
@@ -273,7 +273,7 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
 	ATOM_OBJECT_HEADER *obj_header;
 	int i, j, k, path_size, device_support;
 	int connector_type;
-	u16 conn_id, connector_object_id;
+	struct graphics_object_id connector_object_id;
 	struct amdgpu_i2c_bus_rec ddc_bus;
 	struct amdgpu_router router;
 	struct amdgpu_gpio_rec gpio;
@@ -309,21 +309,10 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
 		path_size += le16_to_cpu(path->usSize);
 
 		if (device_support & le16_to_cpu(path->usDeviceTag)) {
-			uint8_t con_obj_id, con_obj_num, con_obj_type;
-
-			con_obj_id =
-			    (le16_to_cpu(path->usConnObjectId) & OBJECT_ID_MASK)
-			    >> OBJECT_ID_SHIFT;
-			con_obj_num =
-			    (le16_to_cpu(path->usConnObjectId) & ENUM_ID_MASK)
-			    >> ENUM_ID_SHIFT;
-			con_obj_type =
-			    (le16_to_cpu(path->usConnObjectId) &
-			     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
+			connector_object_id = amdgpu_object_id_from_bios_object_id(path->usConnObjectId);
 
 			connector_type =
-				object_connector_convert[con_obj_id];
-			connector_object_id = con_obj_id;
+				object_connector_convert[connector_object_id.id];
 
 			if (connector_type == DRM_MODE_CONNECTOR_Unknown)
 				continue;
@@ -502,13 +491,10 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
 			/* needed for aux chan transactions */
 			ddc_bus.hpd = hpd.hpd;
 
-			conn_id = le16_to_cpu(path->usConnObjectId);
-
 			amdgpu_display_add_connector(adev,
-						      conn_id,
+						      connector_object_id,
 						      le16_to_cpu(path->usDeviceTag),
 						      connector_type, &ddc_bus,
-						      connector_object_id,
 						      &hpd,
 						      &router);
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
index 60a0c9a..765309e 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c
@@ -61,7 +61,7 @@ void amdgpu_connector_hotplug(struct drm_connector *connector)
 			amdgpu_connector->con_priv;
 
 		/* if existing sink type was not DP no need to retrain */
-		if (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_DISPLAYPORT)
+		if (dig_connector->dp_sink_type != CONNECTOR_ID_DISPLAY_PORT)
 			return;
 
 		/* first get sink type as it may be reset after (un)plug */
@@ -69,7 +69,7 @@ void amdgpu_connector_hotplug(struct drm_connector *connector)
 		/* don't do anything if sink is not display port, i.e.,
 		 * passive dp->(dvi|hdmi) adaptor
 		 */
-		if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
+		if (dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) {
 			int saved_dpms = connector->dpms;
 			/* Only turn off the display if it's physically disconnected */
 			if (!amdgpu_display_hpd_sense(adev, amdgpu_connector->hpd.hpd)) {
@@ -128,8 +128,8 @@ int amdgpu_connector_get_monitor_bpc(struct drm_connector *connector)
 		break;
 	case DRM_MODE_CONNECTOR_DisplayPort:
 		dig_connector = amdgpu_connector->con_priv;
-		if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
-		    (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) ||
+		if ((dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) ||
+		    (dig_connector->dp_sink_type == CONNECTOR_ID_EDP) ||
 		    drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) {
 			if (connector->display_info.bpc)
 				bpc = connector->display_info.bpc;
@@ -321,8 +321,8 @@ static void amdgpu_connector_get_edid(struct drm_connector *connector)
 		   (connector->connector_type == DRM_MODE_CONNECTOR_eDP)) {
 		struct amdgpu_connector_atom_dig *dig = amdgpu_connector->con_priv;
 
-		if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT ||
-		     dig->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) &&
+		if ((dig->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT ||
+		     dig->dp_sink_type == CONNECTOR_ID_EDP) &&
 		    amdgpu_connector->ddc_bus->has_aux)
 			amdgpu_connector->edid = drm_get_edid(connector,
 							      &amdgpu_connector->ddc_bus->aux.ddc);
@@ -1168,9 +1168,9 @@ static int amdgpu_connector_dvi_mode_valid(struct drm_connector *connector,
 	/* XXX check mode bandwidth */
 
 	if (amdgpu_connector->use_digital && (mode->clock > 165000)) {
-		if ((amdgpu_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_I) ||
-		    (amdgpu_connector->connector_object_id == CONNECTOR_OBJECT_ID_DUAL_LINK_DVI_D) ||
-		    (amdgpu_connector->connector_object_id == CONNECTOR_OBJECT_ID_HDMI_TYPE_B)) {
+		enum connector_id conn_obj_id = display_graphics_object_id_get_connector_id(amdgpu_connector->connector_object_id);
+		if ((conn_obj_id == CONNECTOR_ID_DUAL_LINK_DVII) ||
+		    (conn_obj_id == CONNECTOR_ID_DUAL_LINK_DVID)) {
 			return MODE_OK;
 		} else if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) {
 			/* HDMI 1.3+ supports max clock of 340 Mhz */
@@ -1373,7 +1373,7 @@ amdgpu_connector_dp_detect(struct drm_connector *connector, bool force)
 				ret = connector_status_connected;
 		}
 		/* eDP is always DP */
-		amdgpu_dig_connector->dp_sink_type = CONNECTOR_OBJECT_ID_DISPLAYPORT;
+		amdgpu_dig_connector->dp_sink_type = CONNECTOR_ID_DISPLAY_PORT;
 		if (!amdgpu_dig_connector->edp_on)
 			amdgpu_atombios_encoder_set_edp_panel_power(connector,
 							     ATOM_TRANSMITTER_ACTION_POWER_ON);
@@ -1385,7 +1385,7 @@ amdgpu_connector_dp_detect(struct drm_connector *connector, bool force)
 	} else if (amdgpu_connector_encoder_get_dp_bridge_encoder_id(connector) !=
 		   ENCODER_OBJECT_ID_NONE) {
 		/* DP bridges are always DP */
-		amdgpu_dig_connector->dp_sink_type = CONNECTOR_OBJECT_ID_DISPLAYPORT;
+		amdgpu_dig_connector->dp_sink_type = CONNECTOR_ID_DISPLAY_PORT;
 		/* get the DPCD from the bridge */
 		amdgpu_atombios_dp_get_dpcd(amdgpu_connector);
 
@@ -1405,10 +1405,10 @@ amdgpu_connector_dp_detect(struct drm_connector *connector, bool force)
 			amdgpu_atombios_dp_get_sinktype(amdgpu_connector);
 		if (amdgpu_display_hpd_sense(adev, amdgpu_connector->hpd.hpd)) {
 			ret = connector_status_connected;
-			if (amdgpu_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT)
+			if (amdgpu_dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT)
 				amdgpu_atombios_dp_get_dpcd(amdgpu_connector);
 		} else {
-			if (amdgpu_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
+			if (amdgpu_dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) {
 				if (!amdgpu_atombios_dp_get_dpcd(amdgpu_connector))
 					ret = connector_status_connected;
 			} else {
@@ -1462,8 +1462,8 @@ static int amdgpu_connector_dp_mode_valid(struct drm_connector *connector,
 		}
 		return MODE_OK;
 	} else {
-		if ((amdgpu_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
-		    (amdgpu_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) {
+		if ((amdgpu_dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) ||
+		    (amdgpu_dig_connector->dp_sink_type == CONNECTOR_ID_EDP)) {
 			return amdgpu_atombios_dp_mode_valid_helper(connector, mode);
 		} else {
 			if (drm_detect_hdmi_monitor(amdgpu_connector_edid(connector))) {
@@ -1506,11 +1506,11 @@ static const struct drm_connector_funcs amdgpu_connector_edp_funcs = {
 
 void
 amdgpu_connector_add(struct amdgpu_device *adev,
-		      uint32_t connector_id,
+		      struct graphics_object_id connector_object_id,
 		      uint32_t supported_device,
 		      int connector_type,
 		      struct amdgpu_i2c_bus_rec *i2c_bus,
-		      uint16_t connector_object_id,
+
 		      struct amdgpu_hpd *hpd,
 		      struct amdgpu_router *router)
 {
@@ -1531,7 +1531,7 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 	/* see if we already added it */
 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
 		amdgpu_connector = to_amdgpu_connector(connector);
-		if (amdgpu_connector->connector_id == connector_id) {
+		if (display_graphics_object_id_is_equal_unchecked(amdgpu_connector->connector_object_id, connector_object_id)) {
 			amdgpu_connector->devices |= supported_device;
 			return;
 		}
@@ -1569,7 +1569,6 @@ amdgpu_connector_add(struct amdgpu_device *adev,
 
 	connector = &amdgpu_connector->base;
 
-	amdgpu_connector->connector_id = connector_id;
 	amdgpu_connector->devices = supported_device;
 	amdgpu_connector->shared_ddc = shared_ddc;
 	amdgpu_connector->connector_object_id = connector_object_id;
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h
index 61fcef1..70b2663 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.h
@@ -31,11 +31,10 @@ u16 amdgpu_connector_encoder_get_dp_bridge_encoder_id(struct drm_connector *conn
 bool amdgpu_connector_is_dp12_capable(struct drm_connector *connector);
 void
 amdgpu_connector_add(struct amdgpu_device *adev,
-		      uint32_t connector_id,
+		      struct graphics_object_id connector_object_id,
 		      uint32_t supported_device,
 		      int connector_type,
 		      struct amdgpu_i2c_bus_rec *i2c_bus,
-		      uint16_t connector_object_id,
 		      struct amdgpu_hpd *hpd,
 		      struct amdgpu_router *router);
 
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
index 94138ab..574e9cb 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c
@@ -222,8 +222,8 @@ bool amdgpu_dig_monitor_is_duallink(struct drm_encoder *encoder,
 	case DRM_MODE_CONNECTOR_HDMIA:
 	case DRM_MODE_CONNECTOR_DisplayPort:
 		dig_connector = amdgpu_connector->con_priv;
-		if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
-		    (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP))
+		if ((dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) ||
+		    (dig_connector->dp_sink_type == CONNECTOR_ID_EDP))
 			return false;
 		else {
 			/* HDMI 1.3 supports up to 340 Mhz over single link */
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
index adf10c9..33284c8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h
@@ -294,11 +294,10 @@ struct amdgpu_display_funcs {
 			    uint32_t supported_device,
 			    u16 caps);
 	void (*add_connector)(struct amdgpu_device *adev,
-			      uint32_t connector_id,
+			      struct graphics_object_id connector_object_id,
 			      uint32_t supported_device,
 			      int connector_type,
 			      struct amdgpu_i2c_bus_rec *i2c_bus,
-			      uint16_t connector_object_id,
 			      struct amdgpu_hpd *hpd,
 			      struct amdgpu_router *router);
 	void (*stop_mc_access)(struct amdgpu_device *adev,
@@ -453,10 +452,10 @@ struct amdgpu_encoder {
 struct amdgpu_connector_atom_dig {
 	/* displayport */
 	u8 dpcd[DP_RECEIVER_CAP_SIZE];
-	u8 dp_sink_type;
 	int dp_clock;
 	int dp_lane_count;
 	bool edp_on;
+	enum connector_id dp_sink_type;
 };
 
 struct amdgpu_gpio_rec {
@@ -502,7 +501,7 @@ enum amdgpu_connector_dither {
 
 struct amdgpu_connector {
 	struct drm_connector base;
-	uint32_t connector_id;
+	struct graphics_object_id connector_object_id;
 	uint32_t devices;
 	struct amdgpu_i2c_chan *ddc_bus;
 	/* some systems have an hdmi and vga port with a shared ddc line */
@@ -514,7 +513,6 @@ struct amdgpu_connector {
 	void *con_priv;
 	bool dac_load_detect;
 	bool detected_by_load; /* if the connection status was determined by load */
-	uint16_t connector_object_id;
 	struct amdgpu_hpd hpd;
 	struct amdgpu_router router;
 	struct amdgpu_i2c_chan *router_bus;
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
index bf731e9..29d698b 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_dp.c
@@ -408,8 +408,8 @@ void amdgpu_atombios_dp_set_link_config(struct drm_connector *connector,
 		return;
 	dig_connector = amdgpu_connector->con_priv;
 
-	if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
-	    (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) {
+	if ((dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) ||
+	    (dig_connector->dp_sink_type == CONNECTOR_ID_EDP)) {
 		ret = amdgpu_atombios_dp_get_dp_link_config(connector, dig_connector->dpcd,
 							    mode->clock,
 							    &dig_connector->dp_lane_count,
@@ -730,8 +730,8 @@ void amdgpu_atombios_dp_link_train(struct drm_encoder *encoder,
 		return;
 	dig_connector = amdgpu_connector->con_priv;
 
-	if ((dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_DISPLAYPORT) &&
-	    (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_eDP))
+	if ((dig_connector->dp_sink_type != CONNECTOR_ID_DISPLAY_PORT) &&
+	    (dig_connector->dp_sink_type != CONNECTOR_ID_EDP))
 		return;
 
 	if (drm_dp_dpcd_readb(&amdgpu_connector->ddc_bus->aux, DP_MAX_LANE_COUNT, &tmp)
diff --git a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
index 1e0bba2..4367941 100644
--- a/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
+++ b/drivers/gpu/drm/amd/amdgpu/atombios_encoders.c
@@ -503,8 +503,8 @@ int amdgpu_atombios_encoder_get_encoder_mode(struct drm_encoder *encoder)
 		break;
 	case DRM_MODE_CONNECTOR_DisplayPort:
 		dig_connector = amdgpu_connector->con_priv;
-		if ((dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) ||
-		    (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_eDP)) {
+		if ((dig_connector->dp_sink_type == CONNECTOR_ID_DISPLAY_PORT) ||
+		    (dig_connector->dp_sink_type == CONNECTOR_ID_EDP)) {
 			return ATOM_ENCODER_MODE_DP;
 		} else if (amdgpu_audio != 0) {
 			if (amdgpu_connector->audio == AMDGPU_AUDIO_ENABLE)
@@ -750,8 +750,7 @@ amdgpu_atombios_encoder_setup_dig_transmitter(struct drm_encoder *encoder, int a
 		hpd_id = amdgpu_connector->hpd.hpd;
 		dp_clock = dig_connector->dp_clock;
 		dp_lane_count = dig_connector->dp_lane_count;
-		connector_object_id =
-			(amdgpu_connector->connector_object_id & OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
+		connector_object_id = display_graphics_object_id_get_connector_id(amdgpu_connector->connector_object_id);
 	}
 
 	if (encoder->crtc) {
@@ -1156,8 +1155,7 @@ amdgpu_atombios_encoder_setup_external_encoder(struct drm_encoder *encoder,
 
 		dp_clock = dig_connector->dp_clock;
 		dp_lane_count = dig_connector->dp_lane_count;
-		connector_object_id =
-			(amdgpu_connector->connector_object_id & OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
+		connector_object_id = display_graphics_object_id_get_connector_id(amdgpu_connector->connector_object_id);
 	}
 
 	memset(&args, 0, sizeof(args));
-- 
2.5.5

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  parent reply	other threads:[~2016-04-14  2:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-14  2:56 drm/amdgpu: start using graphics object ids from DAL Dave Airlie
2016-04-14  2:56 ` [PATCH 1/7] drm/amdgpu: drop apply quirks for now Dave Airlie
2016-04-14  2:56 ` [PATCH 2/7] drm/amdgpu: introduce grph object id from DAL Dave Airlie
2016-04-14  2:56 ` [PATCH 3/7] drm/amdgpu: introduce graphics object id helpers Dave Airlie
2016-04-15 18:54   ` Emil Velikov
2016-04-14  2:56 ` Dave Airlie [this message]
2016-04-14  2:56 ` [PATCH 5/7] [RFC] drm/amdgpu: drop DVO encoders support Dave Airlie
2016-04-14 14:08   ` Harry Wentland
2016-04-14  2:56 ` [PATCH 6/7] drm/amdgpu: convert encoders to using the graphics object ids Dave Airlie
2016-04-14  2:56 ` [PATCH 7/7] drm/amdgpu: convert crtc to using " Dave Airlie
2016-04-14  8:25 ` drm/amdgpu: start using graphics object ids from DAL Christian König
2016-04-15 12:46   ` Harry Wentland

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1460602570-20641-5-git-send-email-airlied@gmail.com \
    --to=airlied@gmail.com \
    --cc=dri-devel@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.