diff options
author | Ben Skeggs <bskeggs@redhat.com> | 2014-05-15 07:50:07 -0400 |
---|---|---|
committer | Ben Skeggs <bskeggs@redhat.com> | 2014-06-10 02:05:52 -0400 |
commit | fb7c2a7186b093ed552c0a727cbfe7e156ff7664 (patch) | |
tree | 261b60295019a148b1b42a5349670deea28d388b /drivers | |
parent | 7dc351b3537b10db12b748defeecb135cee8f571 (diff) |
drm/nouveau/disp/dp: support aux read interval during link training
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/dport.c | 7 | ||||
-rw-r--r-- | drivers/gpu/drm/nouveau/core/engine/disp/dport.h | 7 |
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c index 3ca2d25b7f5e..46563da2854e 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.c +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.c | |||
@@ -48,7 +48,7 @@ struct dp_state { | |||
48 | u8 version; | 48 | u8 version; |
49 | struct nouveau_i2c_port *aux; | 49 | struct nouveau_i2c_port *aux; |
50 | int head; | 50 | int head; |
51 | u8 dpcd[4]; | 51 | u8 dpcd[16]; |
52 | int link_nr; | 52 | int link_nr; |
53 | u32 link_bw; | 53 | u32 link_bw; |
54 | u8 stat[6]; | 54 | u8 stat[6]; |
@@ -149,7 +149,10 @@ dp_link_train_update(struct dp_state *dp, u32 delay) | |||
149 | { | 149 | { |
150 | int ret; | 150 | int ret; |
151 | 151 | ||
152 | udelay(delay); | 152 | if (dp->dpcd[DPCD_RC0E_AUX_RD_INTERVAL]) |
153 | mdelay(dp->dpcd[DPCD_RC0E_AUX_RD_INTERVAL] * 4); | ||
154 | else | ||
155 | udelay(delay); | ||
153 | 156 | ||
154 | ret = nv_rdaux(dp->aux, DPCD_LS02, dp->stat, 6); | 157 | ret = nv_rdaux(dp->aux, DPCD_LS02, dp->stat, 6); |
155 | if (ret) | 158 | if (ret) |
diff --git a/drivers/gpu/drm/nouveau/core/engine/disp/dport.h b/drivers/gpu/drm/nouveau/core/engine/disp/dport.h index 0e1bbd18ff6c..4d375b759baf 100644 --- a/drivers/gpu/drm/nouveau/core/engine/disp/dport.h +++ b/drivers/gpu/drm/nouveau/core/engine/disp/dport.h | |||
@@ -2,15 +2,14 @@ | |||
2 | #define __NVKM_DISP_DPORT_H__ | 2 | #define __NVKM_DISP_DPORT_H__ |
3 | 3 | ||
4 | /* DPCD Receiver Capabilities */ | 4 | /* DPCD Receiver Capabilities */ |
5 | #define DPCD_RC00 0x00000 | 5 | #define DPCD_RC00_DPCD_REV 0x00000 |
6 | #define DPCD_RC00_DPCD_REV 0xff | 6 | #define DPCD_RC01_MAX_LINK_RATE 0x00001 |
7 | #define DPCD_RC01 0x00001 | ||
8 | #define DPCD_RC01_MAX_LINK_RATE 0xff | ||
9 | #define DPCD_RC02 0x00002 | 7 | #define DPCD_RC02 0x00002 |
10 | #define DPCD_RC02_ENHANCED_FRAME_CAP 0x80 | 8 | #define DPCD_RC02_ENHANCED_FRAME_CAP 0x80 |
11 | #define DPCD_RC02_MAX_LANE_COUNT 0x1f | 9 | #define DPCD_RC02_MAX_LANE_COUNT 0x1f |
12 | #define DPCD_RC03 0x00003 | 10 | #define DPCD_RC03 0x00003 |
13 | #define DPCD_RC03_MAX_DOWNSPREAD 0x01 | 11 | #define DPCD_RC03_MAX_DOWNSPREAD 0x01 |
12 | #define DPCD_RC0E_AUX_RD_INTERVAL 0x0000e | ||
14 | 13 | ||
15 | /* DPCD Link Configuration */ | 14 | /* DPCD Link Configuration */ |
16 | #define DPCD_LC00 0x00100 | 15 | #define DPCD_LC00 0x00100 |