diff options
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-capture.c | 11 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-core.c | 13 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-core.h | 4 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-m2m.c | 12 |
4 files changed, 24 insertions, 16 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-capture.c b/drivers/media/platform/exynos4-is/fimc-capture.c index 558c528d9ce1..528f41369364 100644 --- a/drivers/media/platform/exynos4-is/fimc-capture.c +++ b/drivers/media/platform/exynos4-is/fimc-capture.c | |||
@@ -742,16 +742,13 @@ static void fimc_capture_try_selection(struct fimc_ctx *ctx, | |||
742 | /* | 742 | /* |
743 | * The video node ioctl operations | 743 | * The video node ioctl operations |
744 | */ | 744 | */ |
745 | static int fimc_vidioc_querycap_capture(struct file *file, void *priv, | 745 | static int fimc_cap_querycap(struct file *file, void *priv, |
746 | struct v4l2_capability *cap) | 746 | struct v4l2_capability *cap) |
747 | { | 747 | { |
748 | struct fimc_dev *fimc = video_drvdata(file); | 748 | struct fimc_dev *fimc = video_drvdata(file); |
749 | 749 | ||
750 | strncpy(cap->driver, fimc->pdev->name, sizeof(cap->driver) - 1); | 750 | __fimc_vidioc_querycap(&fimc->pdev->dev, cap, V4L2_CAP_STREAMING | |
751 | strncpy(cap->card, fimc->pdev->name, sizeof(cap->card) - 1); | 751 | V4L2_CAP_VIDEO_CAPTURE_MPLANE); |
752 | cap->bus_info[0] = 0; | ||
753 | cap->capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_CAPTURE_MPLANE; | ||
754 | |||
755 | return 0; | 752 | return 0; |
756 | } | 753 | } |
757 | 754 | ||
@@ -1375,7 +1372,7 @@ static int fimc_cap_s_selection(struct file *file, void *fh, | |||
1375 | } | 1372 | } |
1376 | 1373 | ||
1377 | static const struct v4l2_ioctl_ops fimc_capture_ioctl_ops = { | 1374 | static const struct v4l2_ioctl_ops fimc_capture_ioctl_ops = { |
1378 | .vidioc_querycap = fimc_vidioc_querycap_capture, | 1375 | .vidioc_querycap = fimc_cap_querycap, |
1379 | 1376 | ||
1380 | .vidioc_enum_fmt_vid_cap_mplane = fimc_cap_enum_fmt_mplane, | 1377 | .vidioc_enum_fmt_vid_cap_mplane = fimc_cap_enum_fmt_mplane, |
1381 | .vidioc_try_fmt_vid_cap_mplane = fimc_cap_try_fmt_mplane, | 1378 | .vidioc_try_fmt_vid_cap_mplane = fimc_cap_try_fmt_mplane, |
diff --git a/drivers/media/platform/exynos4-is/fimc-core.c b/drivers/media/platform/exynos4-is/fimc-core.c index a8eaad0fc612..379a5e9d52a7 100644 --- a/drivers/media/platform/exynos4-is/fimc-core.c +++ b/drivers/media/platform/exynos4-is/fimc-core.c | |||
@@ -213,6 +213,17 @@ struct fimc_fmt *fimc_get_format(unsigned int index) | |||
213 | return &fimc_formats[index]; | 213 | return &fimc_formats[index]; |
214 | } | 214 | } |
215 | 215 | ||
216 | void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap, | ||
217 | unsigned int caps) | ||
218 | { | ||
219 | strlcpy(cap->driver, dev->driver->name, sizeof(cap->driver)); | ||
220 | strlcpy(cap->card, dev->driver->name, sizeof(cap->card)); | ||
221 | snprintf(cap->bus_info, sizeof(cap->bus_info), | ||
222 | "platform:%s", dev_name(dev)); | ||
223 | cap->device_caps = caps; | ||
224 | cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; | ||
225 | } | ||
226 | |||
216 | int fimc_check_scaler_ratio(struct fimc_ctx *ctx, int sw, int sh, | 227 | int fimc_check_scaler_ratio(struct fimc_ctx *ctx, int sw, int sh, |
217 | int dw, int dh, int rotation) | 228 | int dw, int dh, int rotation) |
218 | { | 229 | { |
@@ -1283,7 +1294,7 @@ static struct platform_driver fimc_driver = { | |||
1283 | .id_table = fimc_driver_ids, | 1294 | .id_table = fimc_driver_ids, |
1284 | .driver = { | 1295 | .driver = { |
1285 | .of_match_table = fimc_of_match, | 1296 | .of_match_table = fimc_of_match, |
1286 | .name = FIMC_MODULE_NAME, | 1297 | .name = FIMC_DRIVER_NAME, |
1287 | .owner = THIS_MODULE, | 1298 | .owner = THIS_MODULE, |
1288 | .pm = &fimc_pm_ops, | 1299 | .pm = &fimc_pm_ops, |
1289 | } | 1300 | } |
diff --git a/drivers/media/platform/exynos4-is/fimc-core.h b/drivers/media/platform/exynos4-is/fimc-core.h index 953b074d542f..539a3f71c16a 100644 --- a/drivers/media/platform/exynos4-is/fimc-core.h +++ b/drivers/media/platform/exynos4-is/fimc-core.h | |||
@@ -35,7 +35,7 @@ | |||
35 | /* Time to wait for next frame VSYNC interrupt while stopping operation. */ | 35 | /* Time to wait for next frame VSYNC interrupt while stopping operation. */ |
36 | #define FIMC_SHUTDOWN_TIMEOUT ((100*HZ)/1000) | 36 | #define FIMC_SHUTDOWN_TIMEOUT ((100*HZ)/1000) |
37 | #define MAX_FIMC_CLOCKS 2 | 37 | #define MAX_FIMC_CLOCKS 2 |
38 | #define FIMC_MODULE_NAME "s5p-fimc" | 38 | #define FIMC_DRIVER_NAME "exynos4-fimc" |
39 | #define FIMC_MAX_DEVS 4 | 39 | #define FIMC_MAX_DEVS 4 |
40 | #define FIMC_MAX_OUT_BUFS 4 | 40 | #define FIMC_MAX_OUT_BUFS 4 |
41 | #define SCALER_MAX_HRATIO 64 | 41 | #define SCALER_MAX_HRATIO 64 |
@@ -620,6 +620,8 @@ static inline struct fimc_frame *ctx_get_frame(struct fimc_ctx *ctx, | |||
620 | /* fimc-core.c */ | 620 | /* fimc-core.c */ |
621 | int fimc_vidioc_enum_fmt_mplane(struct file *file, void *priv, | 621 | int fimc_vidioc_enum_fmt_mplane(struct file *file, void *priv, |
622 | struct v4l2_fmtdesc *f); | 622 | struct v4l2_fmtdesc *f); |
623 | void __fimc_vidioc_querycap(struct device *dev, struct v4l2_capability *cap, | ||
624 | unsigned int caps); | ||
623 | int fimc_ctrls_create(struct fimc_ctx *ctx); | 625 | int fimc_ctrls_create(struct fimc_ctx *ctx); |
624 | void fimc_ctrls_delete(struct fimc_ctx *ctx); | 626 | void fimc_ctrls_delete(struct fimc_ctx *ctx); |
625 | void fimc_ctrls_activate(struct fimc_ctx *ctx, bool active); | 627 | void fimc_ctrls_activate(struct fimc_ctx *ctx, bool active); |
diff --git a/drivers/media/platform/exynos4-is/fimc-m2m.c b/drivers/media/platform/exynos4-is/fimc-m2m.c index 8449c0705e60..275a9f8d9fdb 100644 --- a/drivers/media/platform/exynos4-is/fimc-m2m.c +++ b/drivers/media/platform/exynos4-is/fimc-m2m.c | |||
@@ -249,22 +249,20 @@ static struct vb2_ops fimc_qops = { | |||
249 | * V4L2 ioctl handlers | 249 | * V4L2 ioctl handlers |
250 | */ | 250 | */ |
251 | static int fimc_m2m_querycap(struct file *file, void *fh, | 251 | static int fimc_m2m_querycap(struct file *file, void *fh, |
252 | struct v4l2_capability *cap) | 252 | struct v4l2_capability *cap) |
253 | { | 253 | { |
254 | struct fimc_ctx *ctx = fh_to_ctx(fh); | 254 | struct fimc_dev *fimc = video_drvdata(file); |
255 | struct fimc_dev *fimc = ctx->fimc_dev; | 255 | unsigned int caps; |
256 | 256 | ||
257 | strncpy(cap->driver, fimc->pdev->name, sizeof(cap->driver) - 1); | ||
258 | strncpy(cap->card, fimc->pdev->name, sizeof(cap->card) - 1); | ||
259 | cap->bus_info[0] = 0; | ||
260 | /* | 257 | /* |
261 | * This is only a mem-to-mem video device. The capture and output | 258 | * This is only a mem-to-mem video device. The capture and output |
262 | * device capability flags are left only for backward compatibility | 259 | * device capability flags are left only for backward compatibility |
263 | * and are scheduled for removal. | 260 | * and are scheduled for removal. |
264 | */ | 261 | */ |
265 | cap->capabilities = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE | | 262 | caps = V4L2_CAP_STREAMING | V4L2_CAP_VIDEO_M2M_MPLANE | |
266 | V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_OUTPUT_MPLANE; | 263 | V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_OUTPUT_MPLANE; |
267 | 264 | ||
265 | __fimc_vidioc_querycap(&fimc->pdev->dev, cap, caps); | ||
268 | return 0; | 266 | return 0; |
269 | } | 267 | } |
270 | 268 | ||