drm/nv50/disp: force dac power state during load detect
fdo#64904 Reported-by: Gerhard Bräunlich <wippbox@gmx.net> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
89e033a4bc
commit
ea9197cc32
|
@ -50,11 +50,15 @@ nv50_dac_sense(struct nv50_disp_priv *priv, int or, u32 loadval)
|
|||
{
|
||||
const u32 doff = (or * 0x800);
|
||||
int load = -EINVAL;
|
||||
nv_mask(priv, 0x61a004 + doff, 0x807f0000, 0x80150000);
|
||||
nv_wait(priv, 0x61a004 + doff, 0x80000000, 0x00000000);
|
||||
nv_wr32(priv, 0x61a00c + doff, 0x00100000 | loadval);
|
||||
udelay(9500);
|
||||
nv_wr32(priv, 0x61a00c + doff, 0x80000000);
|
||||
load = (nv_rd32(priv, 0x61a00c + doff) & 0x38000000) >> 27;
|
||||
nv_wr32(priv, 0x61a00c + doff, 0x00000000);
|
||||
nv_mask(priv, 0x61a004 + doff, 0x807f0000, 0x80550000);
|
||||
nv_wait(priv, 0x61a004 + doff, 0x80000000, 0x00000000);
|
||||
return load;
|
||||
}
|
||||
|
||||
|
|
|
@ -218,7 +218,7 @@ struct nv04_display_class {
|
|||
#define NV50_DISP_DAC_PWR_STATE 0x00000040
|
||||
#define NV50_DISP_DAC_PWR_STATE_ON 0x00000000
|
||||
#define NV50_DISP_DAC_PWR_STATE_OFF 0x00000040
|
||||
#define NV50_DISP_DAC_LOAD 0x0002000c
|
||||
#define NV50_DISP_DAC_LOAD 0x00020100
|
||||
#define NV50_DISP_DAC_LOAD_VALUE 0x00000007
|
||||
|
||||
#define NV50_DISP_PIOR_MTHD 0x00030000
|
||||
|
|
Loading…
Reference in New Issue