Lines Matching refs:chan
60 #define MBOX_MSG(chan, data) (((data) & ~0xf) | ((chan) & 0xf))
106 int chan;
110 chan = MBOX_CHAN(msg);
112 if (sc->msg[chan]) {
113 printf("bcm_mbox_intr: channel %d oveflow\n", chan);
116 dprintf("bcm_mbox_intr: chan %d, data %08x\n", chan, data);
117 sc->msg[chan] = msg;
120 *ochan = chan;
129 int chan;
133 if (bcm_mbox_read_msg(sc, &chan) == 0) {
134 sc->have_message[chan] = 1;
135 wakeup(&sc->have_message[chan]);
207 bcm_mbox_write(device_t dev, int chan, uint32_t data)
212 dprintf("bcm_mbox_write: chan %d, data %08x\n", chan, data);
214 sc->have_message[chan] = 0;
222 mbox_write_4(sc, REG_WRITE, MBOX_MSG(chan, data));
229 bcm_mbox_read(device_t dev, int chan, uint32_t *data)
234 dprintf("bcm_mbox_read: chan %d\n", chan);
239 if (sc->have_message[chan] == 0) {
240 if (mtx_sleep(&sc->have_message[chan], &sc->lock, 0,
242 device_printf(dev, "timeout waiting for message on chan %d\n", chan);
256 } while (read_chan != chan);
262 *data = MBOX_DATA(sc->msg[chan]);
263 sc->msg[chan] = 0;
264 sc->have_message[chan] = 0;
267 dprintf("bcm_mbox_read: chan %d, data %08x\n", chan, *data);