提交 fb7c2a71 编写于 作者: B Ben Skeggs

drm/nouveau/disp/dp: support aux read interval during link training

Signed-off-by: NBen Skeggs <bskeggs@redhat.com>
上级 7dc351b3
...@@ -48,7 +48,7 @@ struct dp_state { ...@@ -48,7 +48,7 @@ struct dp_state {
u8 version; u8 version;
struct nouveau_i2c_port *aux; struct nouveau_i2c_port *aux;
int head; int head;
u8 dpcd[4]; u8 dpcd[16];
int link_nr; int link_nr;
u32 link_bw; u32 link_bw;
u8 stat[6]; u8 stat[6];
...@@ -149,7 +149,10 @@ dp_link_train_update(struct dp_state *dp, u32 delay) ...@@ -149,7 +149,10 @@ dp_link_train_update(struct dp_state *dp, u32 delay)
{ {
int ret; int ret;
udelay(delay); if (dp->dpcd[DPCD_RC0E_AUX_RD_INTERVAL])
mdelay(dp->dpcd[DPCD_RC0E_AUX_RD_INTERVAL] * 4);
else
udelay(delay);
ret = nv_rdaux(dp->aux, DPCD_LS02, dp->stat, 6); ret = nv_rdaux(dp->aux, DPCD_LS02, dp->stat, 6);
if (ret) if (ret)
......
...@@ -2,15 +2,14 @@ ...@@ -2,15 +2,14 @@
#define __NVKM_DISP_DPORT_H__ #define __NVKM_DISP_DPORT_H__
/* DPCD Receiver Capabilities */ /* DPCD Receiver Capabilities */
#define DPCD_RC00 0x00000 #define DPCD_RC00_DPCD_REV 0x00000
#define DPCD_RC00_DPCD_REV 0xff #define DPCD_RC01_MAX_LINK_RATE 0x00001
#define DPCD_RC01 0x00001
#define DPCD_RC01_MAX_LINK_RATE 0xff
#define DPCD_RC02 0x00002 #define DPCD_RC02 0x00002
#define DPCD_RC02_ENHANCED_FRAME_CAP 0x80 #define DPCD_RC02_ENHANCED_FRAME_CAP 0x80
#define DPCD_RC02_MAX_LANE_COUNT 0x1f #define DPCD_RC02_MAX_LANE_COUNT 0x1f
#define DPCD_RC03 0x00003 #define DPCD_RC03 0x00003
#define DPCD_RC03_MAX_DOWNSPREAD 0x01 #define DPCD_RC03_MAX_DOWNSPREAD 0x01
#define DPCD_RC0E_AUX_RD_INTERVAL 0x0000e
/* DPCD Link Configuration */ /* DPCD Link Configuration */
#define DPCD_LC00 0x00100 #define DPCD_LC00 0x00100
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册