2019-03-29 14:12:17 +08:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
2018-12-29 08:07:57 +08:00
|
|
|
From: Ong Hock Yu <ong.hock.yu@intel.com>
|
|
|
|
Date: Sun, 25 Nov 2018 18:44:06 +0000
|
2019-03-29 14:12:17 +08:00
|
|
|
Subject: [PATCH] media: intel-ipu4: [VIRT] Fixed function exit to return error
|
|
|
|
when failed.
|
2018-12-29 08:07:57 +08:00
|
|
|
|
|
|
|
Change-Id: I59c7c9cf5a045a70e3a483c9d86dd3448c343f03
|
|
|
|
Tracked-On: OAM-64123
|
|
|
|
Tracked-On: OAM-64294
|
|
|
|
Tracked-On: OAM-64937
|
|
|
|
Tracked-On: OLINUX-2973
|
|
|
|
Tracked-On: OLINUX-3042
|
|
|
|
Signed-off-by: Ong Hock Yu <ong.hock.yu@intel.com>
|
|
|
|
---
|
2019-03-29 14:12:17 +08:00
|
|
|
.../virtio/intel-ipu4-virtio-be-stream.c | 41 +++++++++++--------
|
2018-12-29 08:07:57 +08:00
|
|
|
1 file changed, 25 insertions(+), 16 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
|
2020-10-27 02:14:06 +08:00
|
|
|
index 841abc9d6252..b47deacb9a00 100644
|
2018-12-29 08:07:57 +08:00
|
|
|
--- a/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
|
|
|
|
+++ b/drivers/media/pci/intel/virtio/intel-ipu4-virtio-be-stream.c
|
|
|
|
@@ -139,11 +139,14 @@ int process_set_format(struct ipu4_virtio_req_info *req_info)
|
|
|
|
|
|
|
|
err = strm_dev->ipu_ioctl_ops->ici_set_format(sn->f, strm_dev, host_virt);
|
|
|
|
|
|
|
|
- if (err)
|
|
|
|
- pr_err("intel_ipu4_pvirt: internal set fmt failed\n");
|
|
|
|
-
|
|
|
|
unmap_guest_phys(domid, req->payload);
|
|
|
|
- return IPU4_REQ_PROCESSED;
|
|
|
|
+
|
|
|
|
+ if (err) {
|
|
|
|
+ pr_err("intel_ipu4_pvirt: internal set fmt failed\n");
|
|
|
|
+ return IPU4_REQ_ERROR;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ return IPU4_REQ_PROCESSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
int process_poll(struct ipu4_virtio_req_info *req_info)
|
|
|
|
@@ -238,11 +241,14 @@ int process_put_buf(struct ipu4_virtio_req_info *req_info)
|
|
|
|
}
|
|
|
|
err = strm_dev->ipu_ioctl_ops->ici_put_buf(sn->f, strm_dev, host_virt);
|
|
|
|
|
|
|
|
- if (err)
|
|
|
|
- pr_err("process_put_buf: ici_put_buf failed\n");
|
|
|
|
-
|
|
|
|
unmap_guest_phys(domid, req->payload);
|
|
|
|
- return IPU4_REQ_PROCESSED;
|
|
|
|
+
|
|
|
|
+ if (err) {
|
|
|
|
+ pr_err("process_put_buf: ici_put_buf failed\n");
|
|
|
|
+ return IPU4_REQ_ERROR;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ return IPU4_REQ_PROCESSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
int process_get_buf(struct ipu4_virtio_req_info *req_info)
|
|
|
|
@@ -379,10 +385,12 @@ int process_stream_on(struct ipu4_virtio_req_info *req_info)
|
|
|
|
|
|
|
|
err = strm_dev->ipu_ioctl_ops->ici_stream_on(sn->f, strm_dev);
|
|
|
|
|
|
|
|
- if (err)
|
|
|
|
+ if (err) {
|
|
|
|
pr_err("process_stream_on: stream on failed\n");
|
|
|
|
-
|
|
|
|
- return IPU4_REQ_PROCESSED;
|
|
|
|
+ return IPU4_REQ_ERROR;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ return IPU4_REQ_PROCESSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
int process_stream_off(struct ipu4_virtio_req_info *req_info)
|
|
|
|
@@ -419,11 +427,12 @@ int process_stream_off(struct ipu4_virtio_req_info *req_info)
|
|
|
|
|
|
|
|
err = strm_dev->ipu_ioctl_ops->ici_stream_off(sn->f, strm_dev);
|
|
|
|
|
|
|
|
- if (err)
|
|
|
|
- pr_err("%s: stream off failed\n",
|
|
|
|
- __func__);
|
|
|
|
-
|
|
|
|
- return IPU4_REQ_PROCESSED;
|
|
|
|
+ if (err) {
|
|
|
|
+ pr_err("%s: stream off failed\n", __func__);
|
|
|
|
+ return IPU4_REQ_ERROR;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ return IPU4_REQ_PROCESSED;
|
|
|
|
}
|
|
|
|
|
|
|
|
int process_set_format_thread(void *data)
|
|
|
|
--
|
2019-04-08 18:08:36 +08:00
|
|
|
https://clearlinux.org
|
2018-12-29 08:07:57 +08:00
|
|
|
|