Lines Matching refs:cmd

175 static void write_mailbox(volatile struct ivtv_mailbox __iomem *mbox, int cmd, int args, u32 data[])  in write_mailbox()  argument
179 write_sync(cmd, &mbox->cmd); in write_mailbox()
194 i, readl(&mbdata->mbox[i].cmd), readl(&mbdata->mbox[i].flags)); in clear_all_mailboxes()
200 static int ivtv_api_call(struct ivtv *itv, int cmd, int args, u32 data[]) in ivtv_api_call() argument
202 struct ivtv_mailbox_data *mbdata = (cmd >= 128) ? &itv->enc_mbox : &itv->dec_mbox; in ivtv_api_call()
214 cmd < 0 || cmd > 255 || api_info[cmd].name == NULL) { in ivtv_api_call()
215 IVTV_ERR("Invalid MB call: cmd = 0x%02x, args = %d\n", cmd, args); in ivtv_api_call()
219 if (api_info[cmd].flags & API_HIGH_VOL) { in ivtv_api_call()
220 IVTV_DEBUG_HI_MB("MB Call: %s\n", api_info[cmd].name); in ivtv_api_call()
223 IVTV_DEBUG_MB("MB Call: %s\n", api_info[cmd].name); in ivtv_api_call()
233 if (itv->api_cache[cmd].last_jiffies && in ivtv_api_call()
235 itv->api_cache[cmd].last_jiffies + in ivtv_api_call()
237 !memcmp(data, itv->api_cache[cmd].data, sizeof(itv->api_cache[cmd].data))) { in ivtv_api_call()
238 itv->api_cache[cmd].last_jiffies = jiffies; in ivtv_api_call()
242 flags = api_info[cmd].flags; in ivtv_api_call()
248 write_mailbox(&mbdata->mbox[mb], cmd, args, data); in ivtv_api_call()
253 api_info[cmd].name, mb, readl(&mbdata->mbox[mb].flags)); in ivtv_api_call()
255 IVTV_WARN("Could not find free DMA mailbox for %s\n", api_info[cmd].name); in ivtv_api_call()
265 IVTV_DEBUG_WARN("No free mailbox found (%s)\n", api_info[cmd].name); in ivtv_api_call()
270 write_mailbox(mbox, cmd, args, data); in ivtv_api_call()
272 memcpy(itv->api_cache[cmd].data, data, sizeof(itv->api_cache[cmd].data)); in ivtv_api_call()
273 itv->api_cache[cmd].last_jiffies = jiffies; in ivtv_api_call()
292 IVTV_DEBUG_WARN("Could not get result (%s)\n", api_info[cmd].name); in ivtv_api_call()
305 api_info[cmd].name, in ivtv_api_call()
315 int ivtv_api(struct ivtv *itv, int cmd, int args, u32 data[]) in ivtv_api() argument
317 int res = ivtv_api_call(itv, cmd, args, data); in ivtv_api()
322 return (res == -EBUSY) ? ivtv_api_call(itv, cmd, args, data) : res; in ivtv_api()
325 int ivtv_api_func(void *priv, u32 cmd, int in, int out, u32 data[CX2341X_MBOX_MAX_DATA]) in ivtv_api_func() argument
327 return ivtv_api(priv, cmd, in, data); in ivtv_api_func()
330 int ivtv_vapi_result(struct ivtv *itv, u32 data[CX2341X_MBOX_MAX_DATA], int cmd, int args, ...) in ivtv_vapi_result() argument
340 return ivtv_api(itv, cmd, args, data); in ivtv_vapi_result()
343 int ivtv_vapi(struct ivtv *itv, int cmd, int args, ...) in ivtv_vapi() argument
354 return ivtv_api(itv, cmd, args, data); in ivtv_vapi()