Lines Matching refs:rirb
68 bus->rirb.addr = bus->rb.addr + 2048; in snd_hdac_bus_init_cmd_io()
69 bus->rirb.buf = (__le32 *)(bus->rb.area + 2048); in snd_hdac_bus_init_cmd_io()
70 bus->rirb.wp = bus->rirb.rp = 0; in snd_hdac_bus_init_cmd_io()
71 memset(bus->rirb.cmds, 0, sizeof(bus->rirb.cmds)); in snd_hdac_bus_init_cmd_io()
72 snd_hdac_chip_writel(bus, RIRBLBASE, (u32)bus->rirb.addr); in snd_hdac_bus_init_cmd_io()
73 snd_hdac_chip_writel(bus, RIRBUBASE, upper_32_bits(bus->rirb.addr)); in snd_hdac_bus_init_cmd_io()
171 bus->rirb.cmds[addr]++; in snd_hdac_bus_send_cmd()
202 if (wp == bus->rirb.wp) in snd_hdac_bus_update_rirb()
204 bus->rirb.wp = wp; in snd_hdac_bus_update_rirb()
206 while (bus->rirb.rp != wp) { in snd_hdac_bus_update_rirb()
207 bus->rirb.rp++; in snd_hdac_bus_update_rirb()
208 bus->rirb.rp %= AZX_MAX_RIRB_ENTRIES; in snd_hdac_bus_update_rirb()
210 rp = bus->rirb.rp << 1; /* an RIRB entry is 8-bytes */ in snd_hdac_bus_update_rirb()
211 res_ex = le32_to_cpu(bus->rirb.buf[rp + 1]); in snd_hdac_bus_update_rirb()
212 res = le32_to_cpu(bus->rirb.buf[rp]); in snd_hdac_bus_update_rirb()
217 res, res_ex, bus->rirb.rp, wp); in snd_hdac_bus_update_rirb()
221 else if (bus->rirb.cmds[addr]) { in snd_hdac_bus_update_rirb()
222 bus->rirb.res[addr] = res; in snd_hdac_bus_update_rirb()
223 bus->rirb.cmds[addr]--; in snd_hdac_bus_update_rirb()
224 if (!bus->rirb.cmds[addr] && in snd_hdac_bus_update_rirb()
262 if (!bus->rirb.cmds[addr]) { in snd_hdac_bus_get_response()
264 *res = bus->rirb.res[addr]; /* the last value */ in snd_hdac_bus_get_response()