diff options
author | Sylwester Nawrocki <s.nawrocki@samsung.com> | 2013-06-18 07:00:42 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-06-28 14:30:36 -0400 |
commit | a055d97037ad09ad9b87f6a6e74a65a44b942102 (patch) | |
tree | 99705caaaa6c89d1d2a1d50dab72ef7a8e272304 | |
parent | b1d2dc5c4d39d4e6c405419ad1f444bf59874111 (diff) |
[media] exynos4-is: Set valid initial format at FIMC-LITE
Ensure the image resolution and crop rectangle on the FIMC-LITE.n
subdevs and fimc-lite.n.capture video nodes is properly configured
upon the driver's initialization.
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-lite.c | 23 | ||||
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-lite.h | 2 |
2 files changed, 22 insertions, 3 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/platform/exynos4-is/fimc-lite.c index 993bd798f3d2..4fa2e05186bd 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.c +++ b/drivers/media/platform/exynos4-is/fimc-lite.c | |||
@@ -1281,9 +1281,6 @@ static int fimc_lite_subdev_registered(struct v4l2_subdev *sd) | |||
1281 | int ret; | 1281 | int ret; |
1282 | 1282 | ||
1283 | memset(vfd, 0, sizeof(*vfd)); | 1283 | memset(vfd, 0, sizeof(*vfd)); |
1284 | |||
1285 | fimc->inp_frame.fmt = &fimc_lite_formats[0]; | ||
1286 | fimc->out_frame.fmt = &fimc_lite_formats[0]; | ||
1287 | atomic_set(&fimc->out_path, FIMC_IO_DMA); | 1284 | atomic_set(&fimc->out_path, FIMC_IO_DMA); |
1288 | 1285 | ||
1289 | snprintf(vfd->name, sizeof(vfd->name), "fimc-lite.%d.capture", | 1286 | snprintf(vfd->name, sizeof(vfd->name), "fimc-lite.%d.capture", |
@@ -1399,6 +1396,23 @@ static const struct v4l2_ctrl_config fimc_lite_ctrl = { | |||
1399 | .step = 1, | 1396 | .step = 1, |
1400 | }; | 1397 | }; |
1401 | 1398 | ||
1399 | static void fimc_lite_set_default_config(struct fimc_lite *fimc) | ||
1400 | { | ||
1401 | struct flite_frame *sink = &fimc->inp_frame; | ||
1402 | struct flite_frame *source = &fimc->out_frame; | ||
1403 | |||
1404 | sink->fmt = &fimc_lite_formats[0]; | ||
1405 | sink->f_width = FLITE_DEFAULT_WIDTH; | ||
1406 | sink->f_height = FLITE_DEFAULT_HEIGHT; | ||
1407 | |||
1408 | sink->rect.width = FLITE_DEFAULT_WIDTH; | ||
1409 | sink->rect.height = FLITE_DEFAULT_HEIGHT; | ||
1410 | sink->rect.left = 0; | ||
1411 | sink->rect.top = 0; | ||
1412 | |||
1413 | *source = *sink; | ||
1414 | } | ||
1415 | |||
1402 | static int fimc_lite_create_capture_subdev(struct fimc_lite *fimc) | 1416 | static int fimc_lite_create_capture_subdev(struct fimc_lite *fimc) |
1403 | { | 1417 | { |
1404 | struct v4l2_ctrl_handler *handler = &fimc->ctrl_handler; | 1418 | struct v4l2_ctrl_handler *handler = &fimc->ctrl_handler; |
@@ -1544,8 +1558,11 @@ static int fimc_lite_probe(struct platform_device *pdev) | |||
1544 | ret = PTR_ERR(fimc->alloc_ctx); | 1558 | ret = PTR_ERR(fimc->alloc_ctx); |
1545 | goto err_pm; | 1559 | goto err_pm; |
1546 | } | 1560 | } |
1561 | |||
1547 | pm_runtime_put(dev); | 1562 | pm_runtime_put(dev); |
1548 | 1563 | ||
1564 | fimc_lite_set_default_config(fimc); | ||
1565 | |||
1549 | dev_dbg(dev, "FIMC-LITE.%d registered successfully\n", | 1566 | dev_dbg(dev, "FIMC-LITE.%d registered successfully\n", |
1550 | fimc->index); | 1567 | fimc->index); |
1551 | return 0; | 1568 | return 0; |
diff --git a/drivers/media/platform/exynos4-is/fimc-lite.h b/drivers/media/platform/exynos4-is/fimc-lite.h index c98f3da74870..7428b2d22b52 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.h +++ b/drivers/media/platform/exynos4-is/fimc-lite.h | |||
@@ -29,6 +29,8 @@ | |||
29 | #define FLITE_CLK_NAME "flite" | 29 | #define FLITE_CLK_NAME "flite" |
30 | #define FIMC_LITE_MAX_DEVS 3 | 30 | #define FIMC_LITE_MAX_DEVS 3 |
31 | #define FLITE_REQ_BUFS_MIN 2 | 31 | #define FLITE_REQ_BUFS_MIN 2 |
32 | #define FLITE_DEFAULT_WIDTH 640 | ||
33 | #define FLITE_DEFAULT_HEIGHT 480 | ||
32 | 34 | ||
33 | /* Bit index definitions for struct fimc_lite::state */ | 35 | /* Bit index definitions for struct fimc_lite::state */ |
34 | enum { | 36 | enum { |