Lines Matching refs:rirb
67 bus->rirb.addr = bus->rb.addr + 2048; in snd_hdac_bus_init_cmd_io()
68 bus->rirb.buf = (__le32 *)(bus->rb.area + 2048); in snd_hdac_bus_init_cmd_io()
69 bus->rirb.wp = bus->rirb.rp = 0; in snd_hdac_bus_init_cmd_io()
70 memset(bus->rirb.cmds, 0, sizeof(bus->rirb.cmds)); in snd_hdac_bus_init_cmd_io()
71 snd_hdac_chip_writel(bus, RIRBLBASE, (u32)bus->rirb.addr); in snd_hdac_bus_init_cmd_io()
72 snd_hdac_chip_writel(bus, RIRBUBASE, upper_32_bits(bus->rirb.addr)); in snd_hdac_bus_init_cmd_io()
167 bus->rirb.cmds[addr]++; in snd_hdac_bus_send_cmd()
197 if (wp == bus->rirb.wp) in snd_hdac_bus_update_rirb()
199 bus->rirb.wp = wp; in snd_hdac_bus_update_rirb()
201 while (bus->rirb.rp != wp) { in snd_hdac_bus_update_rirb()
202 bus->rirb.rp++; in snd_hdac_bus_update_rirb()
203 bus->rirb.rp %= AZX_MAX_RIRB_ENTRIES; in snd_hdac_bus_update_rirb()
205 rp = bus->rirb.rp << 1; /* an RIRB entry is 8-bytes */ in snd_hdac_bus_update_rirb()
206 res_ex = le32_to_cpu(bus->rirb.buf[rp + 1]); in snd_hdac_bus_update_rirb()
207 res = le32_to_cpu(bus->rirb.buf[rp]); in snd_hdac_bus_update_rirb()
212 res, res_ex, bus->rirb.rp, wp); in snd_hdac_bus_update_rirb()
216 else if (bus->rirb.cmds[addr]) { in snd_hdac_bus_update_rirb()
217 bus->rirb.res[addr] = res; in snd_hdac_bus_update_rirb()
218 bus->rirb.cmds[addr]--; in snd_hdac_bus_update_rirb()
248 if (!bus->rirb.cmds[addr]) { in snd_hdac_bus_get_response()
250 *res = bus->rirb.res[addr]; /* the last value */ in snd_hdac_bus_get_response()