Lines Matching refs:mb
145 static int try_mailbox(struct ivtv *itv, struct ivtv_mailbox_data *mbdata, int mb) in try_mailbox() argument
147 u32 flags = readl(&mbdata->mbox[mb].flags); in try_mailbox()
151 if (is_free && !test_and_set_bit(mb, &mbdata->busy)) { in try_mailbox()
152 write_sync(IVTV_MBOX_DRIVER_BUSY, &mbdata->mbox[mb].flags); in try_mailbox()
163 int i, mb; in get_mailbox() local
174 for (mb = 1; mb <= max_mbox; mb++) in get_mailbox()
175 if (try_mailbox(itv, mbdata, mb)) in get_mailbox()
176 return mb; in get_mailbox()
219 int flags, mb, i; in ivtv_api_call() local
260 mb = i % (mbdata->max_mbox + 1); in ivtv_api_call()
261 if (try_mailbox(itv, mbdata, mb)) { in ivtv_api_call()
262 write_mailbox(&mbdata->mbox[mb], cmd, args, data); in ivtv_api_call()
263 clear_bit(mb, &mbdata->busy); in ivtv_api_call()
267 api_info[cmd].name, mb, readl(&mbdata->mbox[mb].flags)); in ivtv_api_call()
277 mb = get_mailbox(itv, mbdata, flags); in ivtv_api_call()
278 if (mb < 0) { in ivtv_api_call()
283 mbox = &mbdata->mbox[mb]; in ivtv_api_call()
290 clear_bit(mb, &mbdata->busy); in ivtv_api_call()
309 clear_bit(mb, &mbdata->busy); in ivtv_api_call()
325 clear_bit(mb, &mbdata->busy); in ivtv_api_call()
372 void ivtv_api_get_data(struct ivtv_mailbox_data *mbdata, int mb, in ivtv_api_get_data() argument
375 volatile u32 __iomem *p = mbdata->mbox[mb].data; in ivtv_api_get_data()