Lines Matching refs:rirb
69 bus->rirb.addr = bus->rb.addr + 2048; in snd_hdac_bus_init_cmd_io()
70 bus->rirb.buf = (__le32 *)(bus->rb.area + 2048); in snd_hdac_bus_init_cmd_io()
71 bus->rirb.wp = bus->rirb.rp = 0; in snd_hdac_bus_init_cmd_io()
72 memset(bus->rirb.cmds, 0, sizeof(bus->rirb.cmds)); in snd_hdac_bus_init_cmd_io()
73 snd_hdac_chip_writel(bus, RIRBLBASE, (u32)(bus->rirb.addr + bus->addr_offset)); in snd_hdac_bus_init_cmd_io()
74 snd_hdac_chip_writel(bus, RIRBUBASE, upper_32_bits(bus->rirb.addr + bus->addr_offset)); in snd_hdac_bus_init_cmd_io()
147 bus->rirb.res[addr] = snd_hdac_chip_readl(bus, IR); in snd_hdac_bus_wait_for_pio_response()
156 bus->rirb.res[addr] = -1; in snd_hdac_bus_wait_for_pio_response()
207 *res = bus->rirb.res[addr]; in snd_hdac_bus_get_response_pio()
243 bus->rirb.cmds[addr]++; in snd_hdac_bus_send_cmd_corb()
271 if (wp == bus->rirb.wp) in snd_hdac_bus_update_rirb()
273 bus->rirb.wp = wp; in snd_hdac_bus_update_rirb()
275 while (bus->rirb.rp != wp) { in snd_hdac_bus_update_rirb()
276 bus->rirb.rp++; in snd_hdac_bus_update_rirb()
277 bus->rirb.rp %= AZX_MAX_RIRB_ENTRIES; in snd_hdac_bus_update_rirb()
279 rp = bus->rirb.rp << 1; /* an RIRB entry is 8-bytes */ in snd_hdac_bus_update_rirb()
280 res_ex = le32_to_cpu(bus->rirb.buf[rp + 1]); in snd_hdac_bus_update_rirb()
281 res = le32_to_cpu(bus->rirb.buf[rp]); in snd_hdac_bus_update_rirb()
286 res, res_ex, bus->rirb.rp, wp); in snd_hdac_bus_update_rirb()
290 else if (bus->rirb.cmds[addr]) { in snd_hdac_bus_update_rirb()
291 bus->rirb.res[addr] = res; in snd_hdac_bus_update_rirb()
292 bus->rirb.cmds[addr]--; in snd_hdac_bus_update_rirb()
293 if (!bus->rirb.cmds[addr] && in snd_hdac_bus_update_rirb()
331 if (!bus->rirb.cmds[addr]) { in snd_hdac_bus_get_response_rirb()
333 *res = bus->rirb.res[addr]; /* the last value */ in snd_hdac_bus_get_response_rirb()