OSDN Git Service

[media] coda: remove CAPTURE and OUTPUT caps
[sagit-ice-cold/kernel_xiaomi_msm8998.git] / drivers / media / platform / coda.c
index 3a6d1d2..6befcfd 100644 (file)
@@ -350,19 +350,22 @@ static int coda_hw_reset(struct coda_ctx *ctx)
 
        idx = coda_read(dev, CODA_REG_BIT_RUN_INDEX);
 
-       timeout = jiffies + msecs_to_jiffies(100);
-       coda_write(dev, 0x11, CODA9_GDI_BUS_CTRL);
-       while (coda_read(dev, CODA9_GDI_BUS_STATUS) != 0x77) {
-               if (time_after(jiffies, timeout))
-                       return -ETIME;
-               cpu_relax();
+       if (dev->devtype->product == CODA_960) {
+               timeout = jiffies + msecs_to_jiffies(100);
+               coda_write(dev, 0x11, CODA9_GDI_BUS_CTRL);
+               while (coda_read(dev, CODA9_GDI_BUS_STATUS) != 0x77) {
+                       if (time_after(jiffies, timeout))
+                               return -ETIME;
+                       cpu_relax();
+               }
        }
 
        ret = reset_control_reset(dev->rstc);
        if (ret < 0)
                return ret;
 
-       coda_write(dev, 0x00, CODA9_GDI_BUS_CTRL);
+       if (dev->devtype->product == CODA_960)
+               coda_write(dev, 0x00, CODA9_GDI_BUS_CTRL);
        coda_write(dev, CODA_REG_BIT_BUSY_FLAG, CODA_REG_BIT_BUSY);
        coda_write(dev, CODA_REG_RUN_ENABLE, CODA_REG_BIT_CODE_RUN);
        ret = coda_wait_timeout(dev);
@@ -533,13 +536,7 @@ static int coda_querycap(struct file *file, void *priv,
        strlcpy(cap->card, coda_product_name(ctx->dev->devtype->product),
                sizeof(cap->card));
        strlcpy(cap->bus_info, "platform:" CODA_NAME, sizeof(cap->bus_info));
-       /*
-        * This is only a mem-to-mem video device. The capture and output
-        * device capability flags are left only for backward compatibility
-        * and are scheduled for removal.
-        */
-       cap->device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_OUTPUT |
-                          V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
+       cap->device_caps = V4L2_CAP_VIDEO_M2M | V4L2_CAP_STREAMING;
        cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS;
 
        return 0;
@@ -3900,7 +3897,7 @@ static int coda_runtime_resume(struct device *dev)
        struct coda_dev *cdev = dev_get_drvdata(dev);
        int ret = 0;
 
-       if (dev->pm_domain) {
+       if (dev->pm_domain && cdev->codebuf.vaddr) {
                ret = coda_hw_init(cdev);
                if (ret)
                        v4l2_err(&cdev->v4l2_dev, "HW initialization failed\n");