diff options
author | Gajanan Bhat <gbhat@nvidia.com> | 2011-08-29 14:25:10 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:48:47 -0800 |
commit | e06d79129a87936fc074afc1f3da3c9e5c4cf194 (patch) | |
tree | 3f0a445a3f0804f6d5f621de5a3046ff9e3cca1e /drivers/media/video/tegra/nvavp/nvavp_dev.c | |
parent | 0ea0418cc2a093bd87a681ccf44b7b7ceccbc53e (diff) |
media: video: nvavp: Add AVP syncpoint ID query
Add support to query syncpoint ID assigned
to the AVP by nvhost driver.
Original-Change-Id: Id963e6c32f97e095da253de4b7d83ee8fa8d62a8
Reviewed-on: http://git-master/r/49702
Tested-by: Gajanan Bhat <gbhat@nvidia.com>
Reviewed-by: Scott Williams <scwilliams@nvidia.com>
Reviewed-by: Kaz Fukuoka <kfukuoka@nvidia.com>
Reviewed-by: Isaac Richards <irichards@nvidia.com>
Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Rebase-Id: R2735f76ea5d9f9ec186df3c17cef96b3584f3dfe
Diffstat (limited to 'drivers/media/video/tegra/nvavp/nvavp_dev.c')
-rw-r--r-- | drivers/media/video/tegra/nvavp/nvavp_dev.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/media/video/tegra/nvavp/nvavp_dev.c b/drivers/media/video/tegra/nvavp/nvavp_dev.c index 8205b78b9c24..a49509df459d 100644 --- a/drivers/media/video/tegra/nvavp/nvavp_dev.c +++ b/drivers/media/video/tegra/nvavp/nvavp_dev.c @@ -148,6 +148,8 @@ static int nvavp_service(struct nvavp_info *nvavp) } if (inbox & NVE276_OS_INTERRUPT_AVP_BREAKPOINT) dev_err(&nvavp->nvhost_dev->dev, "AVP breakpoint hit\n"); + if (inbox & NVE276_OS_INTERRUPT_TIMEOUT) + dev_err(&nvavp->nvhost_dev->dev, "AVP timeout\n"); return 0; } @@ -668,6 +670,22 @@ static void nvavp_uninit(struct nvavp_info *nvavp) nvavp_halt_avp(nvavp); } +static int nvavp_get_syncpointid_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) +{ + struct nvavp_clientctx *clientctx = filp->private_data; + struct nvavp_info *nvavp = clientctx->nvavp; + u32 id = nvavp->syncpt_id; + + if (_IOC_DIR(cmd) & _IOC_READ) { + if (copy_to_user((void __user *)arg, &id, sizeof(u32))) + return -EFAULT; + else + return 0; + } + return -EFAULT; +} + static int nvavp_set_nvmapfd_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) { @@ -877,6 +895,9 @@ static long tegra_nvavp_ioctl(struct file *filp, unsigned int cmd, case NVAVP_IOCTL_SET_NVMAP_FD: ret = nvavp_set_nvmapfd_ioctl(filp, cmd, arg); break; + case NVAVP_IOCTL_GET_SYNCPOINT_ID: + ret = nvavp_get_syncpointid_ioctl(filp, cmd, arg); + break; case NVAVP_IOCTL_PUSH_BUFFER_SUBMIT: ret = nvavp_pushbuffer_submit_ioctl(filp, cmd, arg); break; |