Lines Matching refs:risc

38  * encountered is "mpeg risc op code error". Only Ryzen platforms employ
384 static int cx23885_risc_decode(u32 risc)
415 printk(KERN_DEBUG "0x%08x [ %s", risc,
416 instr[risc >> 28] ? instr[risc >> 28] : "INVALID");
418 if (risc & (1 << (i + 12)))
420 pr_cont(" count=%d ]\n", risc & 0xfff);
421 return incr[risc >> 28] ? incr[risc >> 28] : 1;
456 unsigned int bpl, u32 risc)
499 cx_write(ch->cmds_start + 0, risc);
530 "init risc lo",
531 "init risc hi",
536 "risc pc lo",
537 "risc pc hi",
545 u32 risc;
556 risc = cx_read(ch->cmds_start + 4 * (i + 14));
557 pr_warn("%s: risc%d:", dev->name, i);
558 cx23885_risc_decode(risc);
561 risc = cx_read(ch->ctrl_start + 4 * i);
566 n = cx23885_risc_decode(risc);
568 risc = cx_read(ch->ctrl_start + 4 * (i + j));
570 dev->name, i+j, risc, j);
589 struct cx23885_riscmem *risc)
594 pr_info("%s: risc disasm: %p [dma=0x%08lx]\n",
595 dev->name, risc->cpu, (unsigned long)risc->dma);
596 for (i = 0; i < (risc->size >> 2); i += n) {
598 n = cx23885_risc_decode(le32_to_cpu(risc->cpu[i]));
601 dev->name, i + j, risc->cpu[i + j], j);
602 if (risc->cpu[i] == cpu_to_le32(RISC_JUMP))
1198 int cx23885_risc_buffer(struct pci_dev *pci, struct cx23885_riscmem *risc,
1212 /* estimate risc mem: worst case is one write per page border +
1220 risc->size = instructions * 12;
1221 risc->cpu = dma_alloc_coherent(&pci->dev, risc->size, &risc->dma,
1223 if (risc->cpu == NULL)
1226 /* write risc instructions */
1227 rp = risc->cpu;
1236 risc->jmp = rp;
1237 BUG_ON((risc->jmp - risc->cpu + 2) * sizeof(*risc->cpu) > risc->size);
1242 struct cx23885_riscmem *risc,
1250 /* estimate risc mem: worst case is one write per page border +
1258 risc->size = instructions * 12;
1259 risc->cpu = dma_alloc_coherent(&pci->dev, risc->size, &risc->dma,
1261 if (risc->cpu == NULL)
1264 /* write risc instructions */
1265 rp = risc->cpu;
1270 risc->jmp = rp;
1271 BUG_ON((risc->jmp - risc->cpu + 2) * sizeof(*risc->cpu) > risc->size);
1275 int cx23885_risc_vbibuffer(struct pci_dev *pci, struct cx23885_riscmem *risc,
1289 /* estimate risc mem: worst case is one write per page border +
1297 risc->size = instructions * 12;
1298 risc->cpu = dma_alloc_coherent(&pci->dev, risc->size, &risc->dma,
1300 if (risc->cpu == NULL)
1302 /* write risc instructions */
1303 rp = risc->cpu;
1318 risc->jmp = rp;
1319 BUG_ON((risc->jmp - risc->cpu + 2) * sizeof(*risc->cpu) > risc->size);
1326 struct cx23885_riscmem *risc = &buf->risc;
1328 if (risc->cpu)
1329 dma_free_coherent(&dev->pci->dev, risc->size, risc->cpu, risc->dma);
1330 memset(risc, 0, sizeof(*risc));
1410 /* Stop the fifo and risc engine for this port */
1416 port->ts_packet_size, buf->risc.dma);
1420 cx23885_risc_disasm(port, &buf->risc);
1589 cx23885_risc_databuffer(dev->pci, &buf->risc,
1596 * The risc program for each buffer works as follows: it starts with a simple
1601 * This is the risc program of the first buffer to be queued if the active list
1623 buf->risc.cpu[1] = cpu_to_le32(buf->risc.dma + 12);
1624 buf->risc.jmp[0] = cpu_to_le32(RISC_JUMP | RISC_CNT_INC);
1625 buf->risc.jmp[1] = cpu_to_le32(buf->risc.dma + 12);
1626 buf->risc.jmp[2] = cpu_to_le32(0); /* bits 63-32 */
1634 buf->risc.cpu[0] |= cpu_to_le32(RISC_IRQ1);
1638 prev->risc.jmp[1] = cpu_to_le32(buf->risc.dma);
1661 (unsigned long)buf->risc.dma);
1694 pr_err("%s: V4L mpeg risc op code error, status = 0x%x\n",
1756 pr_err("%s: mpeg risc op code error\n", dev->name);