summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-06-11 15:22:35 +1000
committerDave Airlie <airlied@redhat.com>2014-09-05 11:42:14 +1000
commitac6bbb18b83be6c1f5c9333abd17b53dd8171473 (patch)
tree387ec71c7ef9f7dd3288ae7b444990c13ed369a9
parent3e0560f19ea0125e08148891c964f487408c1de2 (diff)
drm: add tiling info to connector
Conflicts: include/drm/drm_crtc.h
-rw-r--r--drivers/gpu/drm/drm_displayid.c6
-rw-r--r--drivers/gpu/drm/drm_edid.c2
-rw-r--r--include/drm/drm_crtc.h6
3 files changed, 14 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_displayid.c b/drivers/gpu/drm/drm_displayid.c
index 08e232683a99..cd9c637e2080 100644
--- a/drivers/gpu/drm/drm_displayid.c
+++ b/drivers/gpu/drm/drm_displayid.c
@@ -53,6 +53,12 @@ int drm_parse_display_id(struct drm_connector *connector,
tile_v_loc = (tile->topo[1] & 0xf) | ((tile->topo[2] & 0x3) << 4);
tile_h_loc = (tile->topo[1] >> 4) | (((tile->topo[2] >> 2) & 0x3) << 4);
+ connector->has_tile = true;
+ connector->num_h_tile = num_h_tile;
+ connector->num_v_tile = num_v_tile;
+ connector->tile_h_loc = tile_h_loc;
+ connector->tile_v_loc = tile_v_loc;
+
printk("tile cap %d\n", tile->tile_cap);
printk("tile_size %d x %d\n", w, h);
printk("topo num tiles %dx%d, location %dx%d\n",
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
index 3d805aa617c2..94e8a57b0ff9 100644
--- a/drivers/gpu/drm/drm_edid.c
+++ b/drivers/gpu/drm/drm_edid.c
@@ -3881,6 +3881,8 @@ void drm_get_displayid(struct drm_connector *connector,
bool secondary)
{
void *displayid = NULL;
+
+ connector->has_tile = false;
displayid = drm_find_displayid_extension(edid);
if (!displayid) {
return;
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
index 1efc0076e87f..71fdc71e9ffd 100644
--- a/include/drm/drm_crtc.h
+++ b/include/drm/drm_crtc.h
@@ -564,6 +564,12 @@ struct drm_connector {
unsigned bad_edid_counter;
struct dentry *debugfs_entry;
+
+ /* DisplayID bits */
+ bool has_tile;
+ uint32_t tile_group_id;
+ uint8_t num_h_tile, num_v_tile;
+ uint8_t tile_h_loc, tile_v_loc;
};
/**