Symbol: jpu
drivers/media/platform/renesas/rcar_jpu.c
1032
dev_err(ctx->jpu->dev, "%s field isn't supported\n",
drivers/media/platform/renesas/rcar_jpu.c
1042
dev_err(ctx->jpu->dev,
drivers/media/platform/renesas/rcar_jpu.c
1101
dev_err(ctx->jpu->dev, "incompatible or corrupted JPEG data\n");
drivers/media/platform/renesas/rcar_jpu.c
1153
spin_lock_irqsave(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1155
spin_unlock_irqrestore(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1182
src_vq->lock = &ctx->jpu->mutex;
drivers/media/platform/renesas/rcar_jpu.c
1183
src_vq->dev = ctx->jpu->v4l2_dev.dev;
drivers/media/platform/renesas/rcar_jpu.c
1197
dst_vq->lock = &ctx->jpu->mutex;
drivers/media/platform/renesas/rcar_jpu.c
1198
dst_vq->dev = ctx->jpu->v4l2_dev.dev;
drivers/media/platform/renesas/rcar_jpu.c
1210
struct jpu *jpu = video_drvdata(file);
drivers/media/platform/renesas/rcar_jpu.c
1223
ctx->jpu = jpu;
drivers/media/platform/renesas/rcar_jpu.c
1224
ctx->encoder = vfd == &jpu->vfd_encoder;
drivers/media/platform/renesas/rcar_jpu.c
1231
ctx->fh.m2m_ctx = v4l2_m2m_ctx_init(jpu->m2m_dev, ctx, jpu_queue_init);
drivers/media/platform/renesas/rcar_jpu.c
1241
if (mutex_lock_interruptible(&jpu->mutex)) {
drivers/media/platform/renesas/rcar_jpu.c
1246
if (jpu->ref_count == 0) {
drivers/media/platform/renesas/rcar_jpu.c
1247
ret = clk_prepare_enable(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
1251
ret = jpu_reset(jpu);
drivers/media/platform/renesas/rcar_jpu.c
1256
jpu->ref_count++;
drivers/media/platform/renesas/rcar_jpu.c
1258
mutex_unlock(&jpu->mutex);
drivers/media/platform/renesas/rcar_jpu.c
1262
clk_disable_unprepare(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
1264
mutex_unlock(&jpu->mutex);
drivers/media/platform/renesas/rcar_jpu.c
1275
struct jpu *jpu = video_drvdata(file);
drivers/media/platform/renesas/rcar_jpu.c
1283
mutex_lock(&jpu->mutex);
drivers/media/platform/renesas/rcar_jpu.c
1284
if (--jpu->ref_count == 0)
drivers/media/platform/renesas/rcar_jpu.c
1285
clk_disable_unprepare(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
1286
mutex_unlock(&jpu->mutex);
drivers/media/platform/renesas/rcar_jpu.c
1311
spin_lock_irqsave(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1321
jpu_write(ctx->jpu, JCCMD_SRST, JCCMD);
drivers/media/platform/renesas/rcar_jpu.c
1323
spin_unlock_irqrestore(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1325
v4l2_m2m_job_finish(ctx->jpu->m2m_dev, ctx->fh.m2m_ctx);
drivers/media/platform/renesas/rcar_jpu.c
1331
struct jpu *jpu = ctx->jpu;
drivers/media/platform/renesas/rcar_jpu.c
1340
if (jpu_wait_reset(jpu)) {
drivers/media/platform/renesas/rcar_jpu.c
1345
spin_lock_irqsave(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1347
jpu->curr = ctx;
drivers/media/platform/renesas/rcar_jpu.c
1390
jpu_write(jpu, JCMOD_DSP_ENC | JCMOD_PCTR | redu |
drivers/media/platform/renesas/rcar_jpu.c
1393
jpu_write(jpu, JIFECNT_SWAP_WB | inft, JIFECNT);
drivers/media/platform/renesas/rcar_jpu.c
1394
jpu_write(jpu, JIFDCNT_SWAP_WB, JIFDCNT);
drivers/media/platform/renesas/rcar_jpu.c
1395
jpu_write(jpu, JINTE_TRANSF_COMPL, JINTE);
drivers/media/platform/renesas/rcar_jpu.c
1398
jpu_write(jpu, src_1_addr, JIFESYA1);
drivers/media/platform/renesas/rcar_jpu.c
1399
jpu_write(jpu, src_2_addr, JIFESCA1);
drivers/media/platform/renesas/rcar_jpu.c
1402
jpu_write(jpu, bpl, JIFESMW);
drivers/media/platform/renesas/rcar_jpu.c
1404
jpu_write(jpu, (w >> 8) & JCSZ_MASK, JCHSZU);
drivers/media/platform/renesas/rcar_jpu.c
1405
jpu_write(jpu, w & JCSZ_MASK, JCHSZD);
drivers/media/platform/renesas/rcar_jpu.c
1407
jpu_write(jpu, (h >> 8) & JCSZ_MASK, JCVSZU);
drivers/media/platform/renesas/rcar_jpu.c
1408
jpu_write(jpu, h & JCSZ_MASK, JCVSZD);
drivers/media/platform/renesas/rcar_jpu.c
1410
jpu_write(jpu, w, JIFESHSZ);
drivers/media/platform/renesas/rcar_jpu.c
1411
jpu_write(jpu, h, JIFESVSZ);
drivers/media/platform/renesas/rcar_jpu.c
1413
jpu_write(jpu, dst_addr + JPU_JPEG_HDR_SIZE, JIFEDA1);
drivers/media/platform/renesas/rcar_jpu.c
1415
jpu_write(jpu, 0 << JCQTN_SHIFT(1) | 1 << JCQTN_SHIFT(2) |
drivers/media/platform/renesas/rcar_jpu.c
1418
jpu_write(jpu, 0 << JCHTN_AC_SHIFT(1) | 0 << JCHTN_DC_SHIFT(1) |
drivers/media/platform/renesas/rcar_jpu.c
1423
jpu_set_qtbl(jpu, ctx->compr_quality);
drivers/media/platform/renesas/rcar_jpu.c
1424
jpu_set_htbl(jpu);
drivers/media/platform/renesas/rcar_jpu.c
1429
dev_err(ctx->jpu->dev,
drivers/media/platform/renesas/rcar_jpu.c
1431
spin_unlock_irqrestore(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1446
jpu_write(jpu, JCMOD_DSP_DEC | JCMOD_PCTR, JCMOD);
drivers/media/platform/renesas/rcar_jpu.c
1447
jpu_write(jpu, JIFECNT_SWAP_WB, JIFECNT);
drivers/media/platform/renesas/rcar_jpu.c
1448
jpu_write(jpu, JIFDCNT_SWAP_WB, JIFDCNT);
drivers/media/platform/renesas/rcar_jpu.c
1451
jpu_write(jpu, JINTE_TRANSF_COMPL | JINTE_ERR, JINTE);
drivers/media/platform/renesas/rcar_jpu.c
1454
jpu_write(jpu, src_addr, JIFDSA1);
drivers/media/platform/renesas/rcar_jpu.c
1455
jpu_write(jpu, dst_1_addr, JIFDDYA1);
drivers/media/platform/renesas/rcar_jpu.c
1456
jpu_write(jpu, dst_2_addr, JIFDDCA1);
drivers/media/platform/renesas/rcar_jpu.c
1458
jpu_write(jpu, bpl, JIFDDMW);
drivers/media/platform/renesas/rcar_jpu.c
1462
jpu_write(jpu, JCCMD_JSRT, JCCMD);
drivers/media/platform/renesas/rcar_jpu.c
1464
spin_unlock_irqrestore(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
1478
struct jpu *jpu = dev_id;
drivers/media/platform/renesas/rcar_jpu.c
1483
int_status = jpu_read(jpu, JINTS);
drivers/media/platform/renesas/rcar_jpu.c
1491
jpu_write(jpu, ~(int_status & JINTS_MASK), JINTS);
drivers/media/platform/renesas/rcar_jpu.c
1493
jpu_write(jpu, JCCMD_JEND, JCCMD);
drivers/media/platform/renesas/rcar_jpu.c
1495
spin_lock(&jpu->lock);
drivers/media/platform/renesas/rcar_jpu.c
1501
curr_ctx = v4l2_m2m_get_curr_priv(jpu->m2m_dev);
drivers/media/platform/renesas/rcar_jpu.c
1504
dev_err(jpu->dev, "no active context for m2m\n");
drivers/media/platform/renesas/rcar_jpu.c
1513
unsigned long payload_size = jpu_read(jpu, JCDTCU) << 16
drivers/media/platform/renesas/rcar_jpu.c
1514
| jpu_read(jpu, JCDTCM) << 8
drivers/media/platform/renesas/rcar_jpu.c
1515
| jpu_read(jpu, JCDTCD);
drivers/media/platform/renesas/rcar_jpu.c
1532
unsigned char error = jpu_read(jpu, JCDERR) & JCDERR_MASK;
drivers/media/platform/renesas/rcar_jpu.c
1534
dev_dbg(jpu->dev, "processing error: %#X: %s\n", error,
drivers/media/platform/renesas/rcar_jpu.c
1541
jpu->curr = NULL;
drivers/media/platform/renesas/rcar_jpu.c
1544
jpu_write(jpu, JCCMD_SRST, JCCMD);
drivers/media/platform/renesas/rcar_jpu.c
1545
spin_unlock(&jpu->lock);
drivers/media/platform/renesas/rcar_jpu.c
1547
v4l2_m2m_job_finish(jpu->m2m_dev, curr_ctx->fh.m2m_ctx);
drivers/media/platform/renesas/rcar_jpu.c
1552
spin_unlock(&jpu->lock);
drivers/media/platform/renesas/rcar_jpu.c
1573
struct jpu *jpu;
drivers/media/platform/renesas/rcar_jpu.c
1577
jpu = devm_kzalloc(&pdev->dev, sizeof(*jpu), GFP_KERNEL);
drivers/media/platform/renesas/rcar_jpu.c
1578
if (!jpu)
drivers/media/platform/renesas/rcar_jpu.c
1581
mutex_init(&jpu->mutex);
drivers/media/platform/renesas/rcar_jpu.c
1582
spin_lock_init(&jpu->lock);
drivers/media/platform/renesas/rcar_jpu.c
1583
jpu->dev = &pdev->dev;
drivers/media/platform/renesas/rcar_jpu.c
1586
jpu->regs = devm_platform_ioremap_resource(pdev, 0);
drivers/media/platform/renesas/rcar_jpu.c
1587
if (IS_ERR(jpu->regs))
drivers/media/platform/renesas/rcar_jpu.c
1588
return PTR_ERR(jpu->regs);
drivers/media/platform/renesas/rcar_jpu.c
1591
jpu->irq = ret = platform_get_irq(pdev, 0);
drivers/media/platform/renesas/rcar_jpu.c
1595
ret = devm_request_irq(&pdev->dev, jpu->irq, jpu_irq_handler, 0,
drivers/media/platform/renesas/rcar_jpu.c
1596
dev_name(&pdev->dev), jpu);
drivers/media/platform/renesas/rcar_jpu.c
1598
dev_err(&pdev->dev, "cannot claim IRQ %d\n", jpu->irq);
drivers/media/platform/renesas/rcar_jpu.c
1603
jpu->clk = devm_clk_get(&pdev->dev, NULL);
drivers/media/platform/renesas/rcar_jpu.c
1604
if (IS_ERR(jpu->clk)) {
drivers/media/platform/renesas/rcar_jpu.c
1606
return PTR_ERR(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
1610
ret = v4l2_device_register(&pdev->dev, &jpu->v4l2_dev);
drivers/media/platform/renesas/rcar_jpu.c
1617
jpu->m2m_dev = v4l2_m2m_init(&jpu_m2m_ops);
drivers/media/platform/renesas/rcar_jpu.c
1618
if (IS_ERR(jpu->m2m_dev)) {
drivers/media/platform/renesas/rcar_jpu.c
1619
v4l2_err(&jpu->v4l2_dev, "Failed to init mem2mem device\n");
drivers/media/platform/renesas/rcar_jpu.c
1620
ret = PTR_ERR(jpu->m2m_dev);
drivers/media/platform/renesas/rcar_jpu.c
1628
strscpy(jpu->vfd_encoder.name, DRV_NAME, sizeof(jpu->vfd_encoder.name));
drivers/media/platform/renesas/rcar_jpu.c
1629
jpu->vfd_encoder.fops = &jpu_fops;
drivers/media/platform/renesas/rcar_jpu.c
1630
jpu->vfd_encoder.ioctl_ops = &jpu_ioctl_ops;
drivers/media/platform/renesas/rcar_jpu.c
1631
jpu->vfd_encoder.minor = -1;
drivers/media/platform/renesas/rcar_jpu.c
1632
jpu->vfd_encoder.release = video_device_release_empty;
drivers/media/platform/renesas/rcar_jpu.c
1633
jpu->vfd_encoder.lock = &jpu->mutex;
drivers/media/platform/renesas/rcar_jpu.c
1634
jpu->vfd_encoder.v4l2_dev = &jpu->v4l2_dev;
drivers/media/platform/renesas/rcar_jpu.c
1635
jpu->vfd_encoder.vfl_dir = VFL_DIR_M2M;
drivers/media/platform/renesas/rcar_jpu.c
1636
jpu->vfd_encoder.device_caps = V4L2_CAP_STREAMING |
drivers/media/platform/renesas/rcar_jpu.c
1639
ret = video_register_device(&jpu->vfd_encoder, VFL_TYPE_VIDEO, -1);
drivers/media/platform/renesas/rcar_jpu.c
1641
v4l2_err(&jpu->v4l2_dev, "Failed to register video device\n");
drivers/media/platform/renesas/rcar_jpu.c
1645
video_set_drvdata(&jpu->vfd_encoder, jpu);
drivers/media/platform/renesas/rcar_jpu.c
1647
strscpy(jpu->vfd_decoder.name, DRV_NAME, sizeof(jpu->vfd_decoder.name));
drivers/media/platform/renesas/rcar_jpu.c
1648
jpu->vfd_decoder.fops = &jpu_fops;
drivers/media/platform/renesas/rcar_jpu.c
1649
jpu->vfd_decoder.ioctl_ops = &jpu_ioctl_ops;
drivers/media/platform/renesas/rcar_jpu.c
1650
jpu->vfd_decoder.minor = -1;
drivers/media/platform/renesas/rcar_jpu.c
1651
jpu->vfd_decoder.release = video_device_release_empty;
drivers/media/platform/renesas/rcar_jpu.c
1652
jpu->vfd_decoder.lock = &jpu->mutex;
drivers/media/platform/renesas/rcar_jpu.c
1653
jpu->vfd_decoder.v4l2_dev = &jpu->v4l2_dev;
drivers/media/platform/renesas/rcar_jpu.c
1654
jpu->vfd_decoder.vfl_dir = VFL_DIR_M2M;
drivers/media/platform/renesas/rcar_jpu.c
1655
jpu->vfd_decoder.device_caps = V4L2_CAP_STREAMING |
drivers/media/platform/renesas/rcar_jpu.c
1658
ret = video_register_device(&jpu->vfd_decoder, VFL_TYPE_VIDEO, -1);
drivers/media/platform/renesas/rcar_jpu.c
1660
v4l2_err(&jpu->v4l2_dev, "Failed to register video device\n");
drivers/media/platform/renesas/rcar_jpu.c
1664
video_set_drvdata(&jpu->vfd_decoder, jpu);
drivers/media/platform/renesas/rcar_jpu.c
1665
platform_set_drvdata(pdev, jpu);
drivers/media/platform/renesas/rcar_jpu.c
1667
v4l2_info(&jpu->v4l2_dev, "encoder device registered as /dev/video%d\n",
drivers/media/platform/renesas/rcar_jpu.c
1668
jpu->vfd_encoder.num);
drivers/media/platform/renesas/rcar_jpu.c
1669
v4l2_info(&jpu->v4l2_dev, "decoder device registered as /dev/video%d\n",
drivers/media/platform/renesas/rcar_jpu.c
1670
jpu->vfd_decoder.num);
drivers/media/platform/renesas/rcar_jpu.c
1675
video_unregister_device(&jpu->vfd_encoder);
drivers/media/platform/renesas/rcar_jpu.c
1678
v4l2_m2m_release(jpu->m2m_dev);
drivers/media/platform/renesas/rcar_jpu.c
1681
v4l2_device_unregister(&jpu->v4l2_dev);
drivers/media/platform/renesas/rcar_jpu.c
1688
struct jpu *jpu = platform_get_drvdata(pdev);
drivers/media/platform/renesas/rcar_jpu.c
1690
video_unregister_device(&jpu->vfd_decoder);
drivers/media/platform/renesas/rcar_jpu.c
1691
video_unregister_device(&jpu->vfd_encoder);
drivers/media/platform/renesas/rcar_jpu.c
1692
v4l2_m2m_release(jpu->m2m_dev);
drivers/media/platform/renesas/rcar_jpu.c
1693
v4l2_device_unregister(&jpu->v4l2_dev);
drivers/media/platform/renesas/rcar_jpu.c
1698
struct jpu *jpu = dev_get_drvdata(dev);
drivers/media/platform/renesas/rcar_jpu.c
1700
if (jpu->ref_count == 0)
drivers/media/platform/renesas/rcar_jpu.c
1703
clk_disable_unprepare(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
1710
struct jpu *jpu = dev_get_drvdata(dev);
drivers/media/platform/renesas/rcar_jpu.c
1712
if (jpu->ref_count == 0)
drivers/media/platform/renesas/rcar_jpu.c
1715
clk_prepare_enable(jpu->clk);
drivers/media/platform/renesas/rcar_jpu.c
264
struct jpu *jpu;
drivers/media/platform/renesas/rcar_jpu.c
468
static u32 jpu_read(struct jpu *jpu, unsigned int reg)
drivers/media/platform/renesas/rcar_jpu.c
470
return ioread32(jpu->regs + reg);
drivers/media/platform/renesas/rcar_jpu.c
473
static void jpu_write(struct jpu *jpu, u32 val, unsigned int reg)
drivers/media/platform/renesas/rcar_jpu.c
475
iowrite32(val, jpu->regs + reg);
drivers/media/platform/renesas/rcar_jpu.c
488
static void jpu_set_tbl(struct jpu *jpu, u32 reg, const unsigned int *tbl,
drivers/media/platform/renesas/rcar_jpu.c
493
jpu_write(jpu, tbl[i], reg + (i << 2));
drivers/media/platform/renesas/rcar_jpu.c
496
static void jpu_set_qtbl(struct jpu *jpu, unsigned short quality)
drivers/media/platform/renesas/rcar_jpu.c
498
jpu_set_tbl(jpu, JCQTBL(0), qtbl_lum[quality], QTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
499
jpu_set_tbl(jpu, JCQTBL(1), qtbl_chr[quality], QTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
502
static void jpu_set_htbl(struct jpu *jpu)
drivers/media/platform/renesas/rcar_jpu.c
504
jpu_set_tbl(jpu, JCHTBD(0), hdctbl_lum, HDCTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
505
jpu_set_tbl(jpu, JCHTBA(0), hactbl_lum, HACTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
506
jpu_set_tbl(jpu, JCHTBD(1), hdctbl_chr, HDCTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
507
jpu_set_tbl(jpu, JCHTBA(1), hactbl_chr, HACTBL_SIZE);
drivers/media/platform/renesas/rcar_jpu.c
510
static int jpu_wait_reset(struct jpu *jpu)
drivers/media/platform/renesas/rcar_jpu.c
516
while (jpu_read(jpu, JCCMD) & JCCMD_SRST) {
drivers/media/platform/renesas/rcar_jpu.c
518
dev_err(jpu->dev, "timed out in reset\n");
drivers/media/platform/renesas/rcar_jpu.c
527
static int jpu_reset(struct jpu *jpu)
drivers/media/platform/renesas/rcar_jpu.c
529
jpu_write(jpu, JCCMD_SRST, JCCMD);
drivers/media/platform/renesas/rcar_jpu.c
530
return jpu_wait_reset(jpu);
drivers/media/platform/renesas/rcar_jpu.c
775
dev_dbg(ctx->jpu->dev, "unknown format; set default format\n");
drivers/media/platform/renesas/rcar_jpu.c
843
v4l2_err(&ctx->jpu->v4l2_dev, "%s queue busy\n", __func__);
drivers/media/platform/renesas/rcar_jpu.c
878
spin_lock_irqsave(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
881
spin_unlock_irqrestore(&ctx->jpu->lock, flags);
drivers/media/platform/renesas/rcar_jpu.c
918
dev_err(ctx->jpu->dev, "src and dst formats do not match.\n");