jpu 277 drivers/media/platform/rcar_jpu.c struct jpu *jpu; jpu 475 drivers/media/platform/rcar_jpu.c static u32 jpu_read(struct jpu *jpu, unsigned int reg) jpu 477 drivers/media/platform/rcar_jpu.c return ioread32(jpu->regs + reg); jpu 480 drivers/media/platform/rcar_jpu.c static void jpu_write(struct jpu *jpu, u32 val, unsigned int reg) jpu 482 drivers/media/platform/rcar_jpu.c iowrite32(val, jpu->regs + reg); jpu 495 drivers/media/platform/rcar_jpu.c static void jpu_set_tbl(struct jpu *jpu, u32 reg, const unsigned int *tbl, jpu 500 drivers/media/platform/rcar_jpu.c jpu_write(jpu, tbl[i], reg + (i << 2)); jpu 503 drivers/media/platform/rcar_jpu.c static void jpu_set_qtbl(struct jpu *jpu, unsigned short quality) jpu 505 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCQTBL(0), qtbl_lum[quality], QTBL_SIZE); jpu 506 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCQTBL(1), qtbl_chr[quality], QTBL_SIZE); jpu 509 drivers/media/platform/rcar_jpu.c static void jpu_set_htbl(struct jpu *jpu) jpu 511 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCHTBD(0), hdctbl_lum, HDCTBL_SIZE); jpu 512 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCHTBA(0), hactbl_lum, HACTBL_SIZE); jpu 513 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCHTBD(1), hdctbl_chr, HDCTBL_SIZE); jpu 514 drivers/media/platform/rcar_jpu.c jpu_set_tbl(jpu, JCHTBA(1), hactbl_chr, HACTBL_SIZE); jpu 517 drivers/media/platform/rcar_jpu.c static int jpu_wait_reset(struct jpu *jpu) jpu 523 drivers/media/platform/rcar_jpu.c while (jpu_read(jpu, JCCMD) & JCCMD_SRST) { jpu 525 drivers/media/platform/rcar_jpu.c dev_err(jpu->dev, "timed out in reset\n"); jpu 534 drivers/media/platform/rcar_jpu.c static int jpu_reset(struct jpu *jpu) jpu 536 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCCMD_SRST, JCCMD); jpu 537 drivers/media/platform/rcar_jpu.c return jpu_wait_reset(jpu); jpu 673 drivers/media/platform/rcar_jpu.c dev_name(ctx->jpu->dev)); jpu 782 drivers/media/platform/rcar_jpu.c dev_dbg(ctx->jpu->dev, "unknown format; set default format\n"); jpu 860 drivers/media/platform/rcar_jpu.c v4l2_err(&ctx->jpu->v4l2_dev, "%s queue busy\n", __func__); jpu 898 drivers/media/platform/rcar_jpu.c spin_lock_irqsave(&ctx->jpu->lock, flags); jpu 901 drivers/media/platform/rcar_jpu.c spin_unlock_irqrestore(&ctx->jpu->lock, flags); jpu 938 drivers/media/platform/rcar_jpu.c dev_err(ctx->jpu->dev, "src and dst formats do not match.\n"); jpu 1052 drivers/media/platform/rcar_jpu.c dev_err(ctx->jpu->dev, "%s field isn't supported\n", jpu 1062 drivers/media/platform/rcar_jpu.c dev_err(ctx->jpu->dev, jpu 1121 drivers/media/platform/rcar_jpu.c dev_err(ctx->jpu->dev, "incompatible or corrupted JPEG data\n"); jpu 1173 drivers/media/platform/rcar_jpu.c spin_lock_irqsave(&ctx->jpu->lock, flags); jpu 1175 drivers/media/platform/rcar_jpu.c spin_unlock_irqrestore(&ctx->jpu->lock, flags); jpu 1204 drivers/media/platform/rcar_jpu.c src_vq->lock = &ctx->jpu->mutex; jpu 1205 drivers/media/platform/rcar_jpu.c src_vq->dev = ctx->jpu->v4l2_dev.dev; jpu 1219 drivers/media/platform/rcar_jpu.c dst_vq->lock = &ctx->jpu->mutex; jpu 1220 drivers/media/platform/rcar_jpu.c dst_vq->dev = ctx->jpu->v4l2_dev.dev; jpu 1232 drivers/media/platform/rcar_jpu.c struct jpu *jpu = video_drvdata(file); jpu 1246 drivers/media/platform/rcar_jpu.c ctx->jpu = jpu; jpu 1247 drivers/media/platform/rcar_jpu.c ctx->encoder = vfd == &jpu->vfd_encoder; jpu 1254 drivers/media/platform/rcar_jpu.c ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(jpu->m2m_dev, ctx, jpu_queue_init); jpu 1264 drivers/media/platform/rcar_jpu.c if (mutex_lock_interruptible(&jpu->mutex)) { jpu 1269 drivers/media/platform/rcar_jpu.c if (jpu->ref_count == 0) { jpu 1270 drivers/media/platform/rcar_jpu.c ret = clk_prepare_enable(jpu->clk); jpu 1274 drivers/media/platform/rcar_jpu.c ret = jpu_reset(jpu); jpu 1279 drivers/media/platform/rcar_jpu.c jpu->ref_count++; jpu 1281 drivers/media/platform/rcar_jpu.c mutex_unlock(&jpu->mutex); jpu 1285 drivers/media/platform/rcar_jpu.c clk_disable_unprepare(jpu->clk); jpu 1287 drivers/media/platform/rcar_jpu.c mutex_unlock(&jpu->mutex); jpu 1297 drivers/media/platform/rcar_jpu.c struct jpu *jpu = video_drvdata(file); jpu 1306 drivers/media/platform/rcar_jpu.c mutex_lock(&jpu->mutex); jpu 1307 drivers/media/platform/rcar_jpu.c if (--jpu->ref_count == 0) jpu 1308 drivers/media/platform/rcar_jpu.c clk_disable_unprepare(jpu->clk); jpu 1309 drivers/media/platform/rcar_jpu.c mutex_unlock(&jpu->mutex); jpu 1334 drivers/media/platform/rcar_jpu.c spin_lock_irqsave(&ctx->jpu->lock, flags); jpu 1344 drivers/media/platform/rcar_jpu.c jpu_write(ctx->jpu, JCCMD_SRST, JCCMD); jpu 1346 drivers/media/platform/rcar_jpu.c spin_unlock_irqrestore(&ctx->jpu->lock, flags); jpu 1348 drivers/media/platform/rcar_jpu.c v4l2_m2m_job_finish(ctx->jpu->m2m_dev, ctx->fh.m2m_ctx); jpu 1354 drivers/media/platform/rcar_jpu.c struct jpu *jpu = ctx->jpu; jpu 1363 drivers/media/platform/rcar_jpu.c if (jpu_wait_reset(jpu)) { jpu 1368 drivers/media/platform/rcar_jpu.c spin_lock_irqsave(&ctx->jpu->lock, flags); jpu 1370 drivers/media/platform/rcar_jpu.c jpu->curr = ctx; jpu 1413 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCMOD_DSP_ENC | JCMOD_PCTR | redu | jpu 1416 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JIFECNT_SWAP_WB | inft, JIFECNT); jpu 1417 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JIFDCNT_SWAP_WB, JIFDCNT); jpu 1418 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JINTE_TRANSF_COMPL, JINTE); jpu 1421 drivers/media/platform/rcar_jpu.c jpu_write(jpu, src_1_addr, JIFESYA1); jpu 1422 drivers/media/platform/rcar_jpu.c jpu_write(jpu, src_2_addr, JIFESCA1); jpu 1425 drivers/media/platform/rcar_jpu.c jpu_write(jpu, bpl, JIFESMW); jpu 1427 drivers/media/platform/rcar_jpu.c jpu_write(jpu, (w >> 8) & JCSZ_MASK, JCHSZU); jpu 1428 drivers/media/platform/rcar_jpu.c jpu_write(jpu, w & JCSZ_MASK, JCHSZD); jpu 1430 drivers/media/platform/rcar_jpu.c jpu_write(jpu, (h >> 8) & JCSZ_MASK, JCVSZU); jpu 1431 drivers/media/platform/rcar_jpu.c jpu_write(jpu, h & JCSZ_MASK, JCVSZD); jpu 1433 drivers/media/platform/rcar_jpu.c jpu_write(jpu, w, JIFESHSZ); jpu 1434 drivers/media/platform/rcar_jpu.c jpu_write(jpu, h, JIFESVSZ); jpu 1436 drivers/media/platform/rcar_jpu.c jpu_write(jpu, dst_addr + JPU_JPEG_HDR_SIZE, JIFEDA1); jpu 1438 drivers/media/platform/rcar_jpu.c jpu_write(jpu, 0 << JCQTN_SHIFT(1) | 1 << JCQTN_SHIFT(2) | jpu 1441 drivers/media/platform/rcar_jpu.c jpu_write(jpu, 0 << JCHTN_AC_SHIFT(1) | 0 << JCHTN_DC_SHIFT(1) | jpu 1446 drivers/media/platform/rcar_jpu.c jpu_set_qtbl(jpu, ctx->compr_quality); jpu 1447 drivers/media/platform/rcar_jpu.c jpu_set_htbl(jpu); jpu 1452 drivers/media/platform/rcar_jpu.c dev_err(ctx->jpu->dev, jpu 1454 drivers/media/platform/rcar_jpu.c spin_unlock_irqrestore(&ctx->jpu->lock, flags); jpu 1469 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCMOD_DSP_DEC | JCMOD_PCTR, JCMOD); jpu 1470 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JIFECNT_SWAP_WB, JIFECNT); jpu 1471 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JIFDCNT_SWAP_WB, JIFDCNT); jpu 1474 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JINTE_TRANSF_COMPL | JINTE_ERR, JINTE); jpu 1477 drivers/media/platform/rcar_jpu.c jpu_write(jpu, src_addr, JIFDSA1); jpu 1478 drivers/media/platform/rcar_jpu.c jpu_write(jpu, dst_1_addr, JIFDDYA1); jpu 1479 drivers/media/platform/rcar_jpu.c jpu_write(jpu, dst_2_addr, JIFDDCA1); jpu 1481 drivers/media/platform/rcar_jpu.c jpu_write(jpu, bpl, JIFDDMW); jpu 1485 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCCMD_JSRT, JCCMD); jpu 1487 drivers/media/platform/rcar_jpu.c spin_unlock_irqrestore(&ctx->jpu->lock, flags); jpu 1501 drivers/media/platform/rcar_jpu.c struct jpu *jpu = dev_id; jpu 1506 drivers/media/platform/rcar_jpu.c int_status = jpu_read(jpu, JINTS); jpu 1514 drivers/media/platform/rcar_jpu.c jpu_write(jpu, ~(int_status & JINTS_MASK), JINTS); jpu 1516 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCCMD_JEND, JCCMD); jpu 1518 drivers/media/platform/rcar_jpu.c spin_lock(&jpu->lock); jpu 1524 drivers/media/platform/rcar_jpu.c curr_ctx = v4l2_m2m_get_curr_priv(jpu->m2m_dev); jpu 1527 drivers/media/platform/rcar_jpu.c dev_err(jpu->dev, "no active context for m2m\n"); jpu 1536 drivers/media/platform/rcar_jpu.c unsigned long payload_size = jpu_read(jpu, JCDTCU) << 16 jpu 1537 drivers/media/platform/rcar_jpu.c | jpu_read(jpu, JCDTCM) << 8 jpu 1538 drivers/media/platform/rcar_jpu.c | jpu_read(jpu, JCDTCD); jpu 1555 drivers/media/platform/rcar_jpu.c unsigned char error = jpu_read(jpu, JCDERR) & JCDERR_MASK; jpu 1557 drivers/media/platform/rcar_jpu.c dev_dbg(jpu->dev, "processing error: %#X: %s\n", error, jpu 1564 drivers/media/platform/rcar_jpu.c jpu->curr = NULL; jpu 1567 drivers/media/platform/rcar_jpu.c jpu_write(jpu, JCCMD_SRST, JCCMD); jpu 1568 drivers/media/platform/rcar_jpu.c spin_unlock(&jpu->lock); jpu 1570 drivers/media/platform/rcar_jpu.c v4l2_m2m_job_finish(jpu->m2m_dev, curr_ctx->fh.m2m_ctx); jpu 1575 drivers/media/platform/rcar_jpu.c spin_unlock(&jpu->lock); jpu 1596 drivers/media/platform/rcar_jpu.c struct jpu *jpu; jpu 1601 drivers/media/platform/rcar_jpu.c jpu = devm_kzalloc(&pdev->dev, sizeof(*jpu), GFP_KERNEL); jpu 1602 drivers/media/platform/rcar_jpu.c if (!jpu) jpu 1605 drivers/media/platform/rcar_jpu.c mutex_init(&jpu->mutex); jpu 1606 drivers/media/platform/rcar_jpu.c spin_lock_init(&jpu->lock); jpu 1607 drivers/media/platform/rcar_jpu.c jpu->dev = &pdev->dev; jpu 1611 drivers/media/platform/rcar_jpu.c jpu->regs = devm_ioremap_resource(&pdev->dev, res); jpu 1612 drivers/media/platform/rcar_jpu.c if (IS_ERR(jpu->regs)) jpu 1613 drivers/media/platform/rcar_jpu.c return PTR_ERR(jpu->regs); jpu 1616 drivers/media/platform/rcar_jpu.c jpu->irq = ret = platform_get_irq(pdev, 0); jpu 1622 drivers/media/platform/rcar_jpu.c ret = devm_request_irq(&pdev->dev, jpu->irq, jpu_irq_handler, 0, jpu 1623 drivers/media/platform/rcar_jpu.c dev_name(&pdev->dev), jpu); jpu 1625 drivers/media/platform/rcar_jpu.c dev_err(&pdev->dev, "cannot claim IRQ %d\n", jpu->irq); jpu 1630 drivers/media/platform/rcar_jpu.c jpu->clk = devm_clk_get(&pdev->dev, NULL); jpu 1631 drivers/media/platform/rcar_jpu.c if (IS_ERR(jpu->clk)) { jpu 1633 drivers/media/platform/rcar_jpu.c return PTR_ERR(jpu->clk); jpu 1637 drivers/media/platform/rcar_jpu.c ret = v4l2_device_register(&pdev->dev, &jpu->v4l2_dev); jpu 1644 drivers/media/platform/rcar_jpu.c jpu->m2m_dev = v4l2_m2m_init(&jpu_m2m_ops); jpu 1645 drivers/media/platform/rcar_jpu.c if (IS_ERR(jpu->m2m_dev)) { jpu 1646 drivers/media/platform/rcar_jpu.c v4l2_err(&jpu->v4l2_dev, "Failed to init mem2mem device\n"); jpu 1647 drivers/media/platform/rcar_jpu.c ret = PTR_ERR(jpu->m2m_dev); jpu 1655 drivers/media/platform/rcar_jpu.c strscpy(jpu->vfd_encoder.name, DRV_NAME, sizeof(jpu->vfd_encoder.name)); jpu 1656 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.fops = &jpu_fops; jpu 1657 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.ioctl_ops = &jpu_ioctl_ops; jpu 1658 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.minor = -1; jpu 1659 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.release = video_device_release_empty; jpu 1660 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.lock = &jpu->mutex; jpu 1661 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.v4l2_dev = &jpu->v4l2_dev; jpu 1662 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.vfl_dir = VFL_DIR_M2M; jpu 1663 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.device_caps = V4L2_CAP_STREAMING | jpu 1666 drivers/media/platform/rcar_jpu.c ret = video_register_device(&jpu->vfd_encoder, VFL_TYPE_GRABBER, -1); jpu 1668 drivers/media/platform/rcar_jpu.c v4l2_err(&jpu->v4l2_dev, "Failed to register video device\n"); jpu 1672 drivers/media/platform/rcar_jpu.c video_set_drvdata(&jpu->vfd_encoder, jpu); jpu 1674 drivers/media/platform/rcar_jpu.c strscpy(jpu->vfd_decoder.name, DRV_NAME, sizeof(jpu->vfd_decoder.name)); jpu 1675 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.fops = &jpu_fops; jpu 1676 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.ioctl_ops = &jpu_ioctl_ops; jpu 1677 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.minor = -1; jpu 1678 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.release = video_device_release_empty; jpu 1679 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.lock = &jpu->mutex; jpu 1680 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.v4l2_dev = &jpu->v4l2_dev; jpu 1681 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.vfl_dir = VFL_DIR_M2M; jpu 1682 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.device_caps = V4L2_CAP_STREAMING | jpu 1685 drivers/media/platform/rcar_jpu.c ret = video_register_device(&jpu->vfd_decoder, VFL_TYPE_GRABBER, -1); jpu 1687 drivers/media/platform/rcar_jpu.c v4l2_err(&jpu->v4l2_dev, "Failed to register video device\n"); jpu 1691 drivers/media/platform/rcar_jpu.c video_set_drvdata(&jpu->vfd_decoder, jpu); jpu 1692 drivers/media/platform/rcar_jpu.c platform_set_drvdata(pdev, jpu); jpu 1694 drivers/media/platform/rcar_jpu.c v4l2_info(&jpu->v4l2_dev, "encoder device registered as /dev/video%d\n", jpu 1695 drivers/media/platform/rcar_jpu.c jpu->vfd_encoder.num); jpu 1696 drivers/media/platform/rcar_jpu.c v4l2_info(&jpu->v4l2_dev, "decoder device registered as /dev/video%d\n", jpu 1697 drivers/media/platform/rcar_jpu.c jpu->vfd_decoder.num); jpu 1702 drivers/media/platform/rcar_jpu.c video_unregister_device(&jpu->vfd_encoder); jpu 1705 drivers/media/platform/rcar_jpu.c v4l2_m2m_release(jpu->m2m_dev); jpu 1708 drivers/media/platform/rcar_jpu.c v4l2_device_unregister(&jpu->v4l2_dev); jpu 1715 drivers/media/platform/rcar_jpu.c struct jpu *jpu = platform_get_drvdata(pdev); jpu 1717 drivers/media/platform/rcar_jpu.c video_unregister_device(&jpu->vfd_decoder); jpu 1718 drivers/media/platform/rcar_jpu.c video_unregister_device(&jpu->vfd_encoder); jpu 1719 drivers/media/platform/rcar_jpu.c v4l2_m2m_release(jpu->m2m_dev); jpu 1720 drivers/media/platform/rcar_jpu.c v4l2_device_unregister(&jpu->v4l2_dev); jpu 1728 drivers/media/platform/rcar_jpu.c struct jpu *jpu = dev_get_drvdata(dev); jpu 1730 drivers/media/platform/rcar_jpu.c if (jpu->ref_count == 0) jpu 1733 drivers/media/platform/rcar_jpu.c clk_disable_unprepare(jpu->clk); jpu 1740 drivers/media/platform/rcar_jpu.c struct jpu *jpu = dev_get_drvdata(dev); jpu 1742 drivers/media/platform/rcar_jpu.c if (jpu->ref_count == 0) jpu 1745 drivers/media/platform/rcar_jpu.c clk_prepare_enable(jpu->clk);