Lines Matching refs:cmd
189 static void write_mailbox(volatile struct ivtv_mailbox __iomem *mbox, int cmd, int args, u32 data[]) in write_mailbox() argument
193 write_sync(cmd, &mbox->cmd); in write_mailbox()
208 i, readl(&mbdata->mbox[i].cmd), readl(&mbdata->mbox[i].flags)); in clear_all_mailboxes()
214 static int ivtv_api_call(struct ivtv *itv, int cmd, int args, u32 data[]) in ivtv_api_call() argument
216 struct ivtv_mailbox_data *mbdata = (cmd >= 128) ? &itv->enc_mbox : &itv->dec_mbox; in ivtv_api_call()
228 cmd < 0 || cmd > 255 || api_info[cmd].name == NULL) { in ivtv_api_call()
229 IVTV_ERR("Invalid MB call: cmd = 0x%02x, args = %d\n", cmd, args); in ivtv_api_call()
233 if (api_info[cmd].flags & API_HIGH_VOL) { in ivtv_api_call()
234 IVTV_DEBUG_HI_MB("MB Call: %s\n", api_info[cmd].name); in ivtv_api_call()
237 IVTV_DEBUG_MB("MB Call: %s\n", api_info[cmd].name); in ivtv_api_call()
247 if (itv->api_cache[cmd].last_jiffies && in ivtv_api_call()
249 itv->api_cache[cmd].last_jiffies + in ivtv_api_call()
251 !memcmp(data, itv->api_cache[cmd].data, sizeof(itv->api_cache[cmd].data))) { in ivtv_api_call()
252 itv->api_cache[cmd].last_jiffies = jiffies; in ivtv_api_call()
256 flags = api_info[cmd].flags; in ivtv_api_call()
262 write_mailbox(&mbdata->mbox[mb], cmd, args, data); in ivtv_api_call()
267 api_info[cmd].name, mb, readl(&mbdata->mbox[mb].flags)); in ivtv_api_call()
269 IVTV_WARN("Could not find free DMA mailbox for %s\n", api_info[cmd].name); in ivtv_api_call()
279 IVTV_DEBUG_WARN("No free mailbox found (%s)\n", api_info[cmd].name); in ivtv_api_call()
284 write_mailbox(mbox, cmd, args, data); in ivtv_api_call()
286 memcpy(itv->api_cache[cmd].data, data, sizeof(itv->api_cache[cmd].data)); in ivtv_api_call()
287 itv->api_cache[cmd].last_jiffies = jiffies; in ivtv_api_call()
306 IVTV_DEBUG_WARN("Could not get result (%s)\n", api_info[cmd].name); in ivtv_api_call()
319 api_info[cmd].name, in ivtv_api_call()
329 int ivtv_api(struct ivtv *itv, int cmd, int args, u32 data[]) in ivtv_api() argument
331 int res = ivtv_api_call(itv, cmd, args, data); in ivtv_api()
336 return (res == -EBUSY) ? ivtv_api_call(itv, cmd, args, data) : res; in ivtv_api()
339 int ivtv_api_func(void *priv, u32 cmd, int in, int out, u32 data[CX2341X_MBOX_MAX_DATA]) in ivtv_api_func() argument
341 return ivtv_api(priv, cmd, in, data); in ivtv_api_func()
344 int ivtv_vapi_result(struct ivtv *itv, u32 data[CX2341X_MBOX_MAX_DATA], int cmd, int args, ...) in ivtv_vapi_result() argument
354 return ivtv_api(itv, cmd, args, data); in ivtv_vapi_result()
357 int ivtv_vapi(struct ivtv *itv, int cmd, int args, ...) in ivtv_vapi() argument
368 return ivtv_api(itv, cmd, args, data); in ivtv_vapi()