aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_mode.h
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-12-07 16:07:28 -0500
committerDave Airlie <airlied@redhat.com>2009-12-07 19:22:31 -0500
commit746c1aa4d100f7441423050f34be79f401fbf7d4 (patch)
tree23e021bb2e9250fd03e88875b1715039f1d3da8a /drivers/gpu/drm/radeon/radeon_mode.h
parentd904ef9b00a4473af16766e99f17bdbb5f0fde65 (diff)
drm/radeon/kms: initial radeon displayport porting
This is enough to retrieve EDID and DPCP. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
-rw-r--r--drivers/gpu/drm/radeon/radeon_mode.h21
1 files changed, 19 insertions, 2 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
index 135693d5437e..ce1cdc748f1f 100644
--- a/drivers/gpu/drm/radeon/radeon_mode.h
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
@@ -33,6 +33,7 @@
33#include <drm_crtc.h> 33#include <drm_crtc.h>
34#include <drm_mode.h> 34#include <drm_mode.h>
35#include <drm_edid.h> 35#include <drm_edid.h>
36#include <drm_dp_helper.h>
36#include <linux/i2c.h> 37#include <linux/i2c.h>
37#include <linux/i2c-id.h> 38#include <linux/i2c-id.h>
38#include <linux/i2c-algo-bit.h> 39#include <linux/i2c-algo-bit.h>
@@ -164,10 +165,14 @@ struct radeon_pll {
164}; 165};
165 166
166struct radeon_i2c_chan { 167struct radeon_i2c_chan {
167 struct drm_device *dev;
168 struct i2c_adapter adapter; 168 struct i2c_adapter adapter;
169 struct i2c_algo_bit_data algo; 169 struct drm_device *dev;
170 union {
171 struct i2c_algo_dp_aux_data dp;
172 struct i2c_algo_bit_data bit;
173 } algo;
170 struct radeon_i2c_bus_rec rec; 174 struct radeon_i2c_bus_rec rec;
175 uint8_t i2c_id;
171}; 176};
172 177
173/* mostly for macs, but really any system without connector tables */ 178/* mostly for macs, but really any system without connector tables */
@@ -328,6 +333,9 @@ struct radeon_encoder {
328struct radeon_connector_atom_dig { 333struct radeon_connector_atom_dig {
329 uint32_t igp_lane_info; 334 uint32_t igp_lane_info;
330 bool linkb; 335 bool linkb;
336 uint16_t uc_i2c_id;
337 struct radeon_i2c_chan *dp_i2c_bus;
338 u8 dpcp[8];
331}; 339};
332 340
333struct radeon_connector { 341struct radeon_connector {
@@ -344,6 +352,8 @@ struct radeon_connector {
344 void *con_priv; 352 void *con_priv;
345 bool dac_load_detect; 353 bool dac_load_detect;
346 uint16_t connector_object_id; 354 uint16_t connector_object_id;
355 /* need to keep this for display port */
356//
347}; 357};
348 358
349struct radeon_framebuffer { 359struct radeon_framebuffer {
@@ -351,6 +361,13 @@ struct radeon_framebuffer {
351 struct drm_gem_object *obj; 361 struct drm_gem_object *obj;
352}; 362};
353 363
364extern int radeon_dp_getsinktype(struct radeon_connector *radeon_connector);
365extern void radeon_dp_getdpcp(struct radeon_connector *connector);
366extern int radeon_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
367 uint8_t write_byte, uint8_t *read_byte);
368
369extern struct radeon_i2c_chan *radeon_i2c_create_dp(struct drm_device *dev,
370 const char *name, bool dp, u8 i2c_id);
354extern struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev, 371extern struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
355 struct radeon_i2c_bus_rec *rec, 372 struct radeon_i2c_bus_rec *rec,
356 const char *name); 373 const char *name);