Lines Matching defs:mbdata
131 static int try_mailbox(struct ivtv *itv, struct ivtv_mailbox_data *mbdata, int mb)
133 u32 flags = readl(&mbdata->mbox[mb].flags);
137 if (is_free && !test_and_set_bit(mb, &mbdata->busy)) {
138 write_sync(IVTV_MBOX_DRIVER_BUSY, &mbdata->mbox[mb].flags);
146 static int get_mailbox(struct ivtv *itv, struct ivtv_mailbox_data *mbdata, int flags)
150 int max_mbox = mbdata->max_mbox;
161 if (try_mailbox(itv, mbdata, mb))
188 static void clear_all_mailboxes(struct ivtv *itv, struct ivtv_mailbox_data *mbdata)
192 for (i = 0; i <= mbdata->max_mbox; i++) {
194 i, readl(&mbdata->mbox[i].cmd), readl(&mbdata->mbox[i].flags));
195 write_sync(0, &mbdata->mbox[i].flags);
196 clear_bit(i, &mbdata->busy);
202 struct ivtv_mailbox_data *mbdata = (cmd >= 128) ? &itv->enc_mbox : &itv->dec_mbox;
209 if (NULL == mbdata) {
246 mb = i % (mbdata->max_mbox + 1);
247 if (try_mailbox(itv, mbdata, mb)) {
248 write_mailbox(&mbdata->mbox[mb], cmd, args, data);
249 clear_bit(mb, &mbdata->busy);
253 api_info[cmd].name, mb, readl(&mbdata->mbox[mb].flags));
256 clear_all_mailboxes(itv, mbdata);
263 mb = get_mailbox(itv, mbdata, flags);
266 clear_all_mailboxes(itv, mbdata);
269 mbox = &mbdata->mbox[mb];
276 clear_bit(mb, &mbdata->busy);
295 clear_bit(mb, &mbdata->busy);
311 clear_bit(mb, &mbdata->busy);
358 void ivtv_api_get_data(struct ivtv_mailbox_data *mbdata, int mb,
361 volatile u32 __iomem *p = mbdata->mbox[mb].data;