summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_mode.h
diff options
context:
space:
mode:
authorDave Airlie2009-12-07 22:07:28 +0100
committerDave Airlie2009-12-08 01:22:31 +0100
commit746c1aa4d100f7441423050f34be79f401fbf7d4 (patch)
tree23e021bb2e9250fd03e88875b1715039f1d3da8a /drivers/gpu/drm/radeon/radeon_mode.h
parentdrm/radeon/kms: add support to atom parser for FB read/write (diff)
downloadkernel-qcow2-linux-746c1aa4d100f7441423050f34be79f401fbf7d4.tar.gz
kernel-qcow2-linux-746c1aa4d100f7441423050f34be79f401fbf7d4.tar.xz
kernel-qcow2-linux-746c1aa4d100f7441423050f34be79f401fbf7d4.zip
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 @@
#include <drm_crtc.h>
#include <drm_mode.h>
#include <drm_edid.h>
+#include <drm_dp_helper.h>
#include <linux/i2c.h>
#include <linux/i2c-id.h>
#include <linux/i2c-algo-bit.h>
@@ -164,10 +165,14 @@ struct radeon_pll {
};
struct radeon_i2c_chan {
- struct drm_device *dev;
struct i2c_adapter adapter;
- struct i2c_algo_bit_data algo;
+ struct drm_device *dev;
+ union {
+ struct i2c_algo_dp_aux_data dp;
+ struct i2c_algo_bit_data bit;
+ } algo;
struct radeon_i2c_bus_rec rec;
+ uint8_t i2c_id;
};
/* mostly for macs, but really any system without connector tables */
@@ -328,6 +333,9 @@ struct radeon_encoder {
struct radeon_connector_atom_dig {
uint32_t igp_lane_info;
bool linkb;
+ uint16_t uc_i2c_id;
+ struct radeon_i2c_chan *dp_i2c_bus;
+ u8 dpcp[8];
};
struct radeon_connector {
@@ -344,6 +352,8 @@ struct radeon_connector {
void *con_priv;
bool dac_load_detect;
uint16_t connector_object_id;
+ /* need to keep this for display port */
+//
};
struct radeon_framebuffer {
@@ -351,6 +361,13 @@ struct radeon_framebuffer {
struct drm_gem_object *obj;
};
+extern int radeon_dp_getsinktype(struct radeon_connector *radeon_connector);
+extern void radeon_dp_getdpcp(struct radeon_connector *connector);
+extern int radeon_dp_i2c_aux_ch(struct i2c_adapter *adapter, int mode,
+ uint8_t write_byte, uint8_t *read_byte);
+
+extern struct radeon_i2c_chan *radeon_i2c_create_dp(struct drm_device *dev,
+ const char *name, bool dp, u8 i2c_id);
extern struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
struct radeon_i2c_bus_rec *rec,
const char *name);