Lines Matching +full:0 +full:x07000000
36 nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00710000, 0x00000000); in gm200_i2c_aux_fini()
44 const u32 ureq = unksel ? 0x00100000 : 0x00200000; in gm200_i2c_aux_init()
45 const u32 urep = unksel ? 0x01000000 : 0x02000000; in gm200_i2c_aux_init()
51 ctrl = nvkm_rd32(device, 0x00d954 + (aux->ch * 0x50)); in gm200_i2c_aux_init()
57 } while (ctrl & 0x07010000); in gm200_i2c_aux_init()
60 nvkm_mask(device, 0x00d954 + (aux->ch * 0x50), 0x00700000, ureq); in gm200_i2c_aux_init()
63 ctrl = nvkm_rd32(device, 0x00d954 + (aux->ch * 0x50)); in gm200_i2c_aux_init()
70 } while ((ctrl & 0x07000000) != urep); in gm200_i2c_aux_init()
72 return 0; in gm200_i2c_aux_init()
82 const u32 base = aux->ch * 0x50; in gm200_i2c_aux_xfer()
83 u32 ctrl, stat, timeout, retries = 0; in gm200_i2c_aux_xfer()
90 if (ret < 0) in gm200_i2c_aux_xfer()
93 stat = nvkm_rd32(device, 0x00d958 + base); in gm200_i2c_aux_xfer()
94 if (!(stat & 0x10000000)) { in gm200_i2c_aux_xfer()
104 for (i = 0; i < 16; i += 4) { in gm200_i2c_aux_xfer()
106 nvkm_wr32(device, 0x00d930 + base + i, xbuf[i / 4]); in gm200_i2c_aux_xfer()
110 ctrl = nvkm_rd32(device, 0x00d954 + base); in gm200_i2c_aux_xfer()
111 ctrl &= ~0x0001f1ff; in gm200_i2c_aux_xfer()
113 ctrl |= (*size ? (*size - 1) : 0x00000100); in gm200_i2c_aux_xfer()
114 nvkm_wr32(device, 0x00d950 + base, addr); in gm200_i2c_aux_xfer()
119 nvkm_wr32(device, 0x00d954 + base, 0x80000000 | ctrl); in gm200_i2c_aux_xfer()
120 nvkm_wr32(device, 0x00d954 + base, 0x00000000 | ctrl); in gm200_i2c_aux_xfer()
125 nvkm_wr32(device, 0x00d954 + base, 0x00010000 | ctrl); in gm200_i2c_aux_xfer()
129 ctrl = nvkm_rd32(device, 0x00d954 + base); in gm200_i2c_aux_xfer()
136 } while (ctrl & 0x00010000); in gm200_i2c_aux_xfer()
137 ret = 0; in gm200_i2c_aux_xfer()
140 stat = nvkm_mask(device, 0x00d958 + base, 0, 0); in gm200_i2c_aux_xfer()
141 if ((stat & 0x000f0000) == 0x00080000 || in gm200_i2c_aux_xfer()
142 (stat & 0x000f0000) == 0x00020000) in gm200_i2c_aux_xfer()
144 if ((stat & 0x00000100)) in gm200_i2c_aux_xfer()
146 if ((stat & 0x00000e00)) in gm200_i2c_aux_xfer()
153 for (i = 0; i < 16; i += 4) { in gm200_i2c_aux_xfer()
154 xbuf[i / 4] = nvkm_rd32(device, 0x00d940 + base + i); in gm200_i2c_aux_xfer()
158 *size = stat & 0x0000001f; in gm200_i2c_aux_xfer()
165 return ret < 0 ? ret : (stat & 0x000f0000) >> 16; in gm200_i2c_aux_xfer()
187 return 0; in gm200_i2c_aux_new()