diff options
-rw-r--r-- | drivers/media/platform/exynos4-is/fimc-lite.c | 17 | ||||
-rw-r--r-- | include/media/s5p_fimc.h | 2 |
2 files changed, 15 insertions, 4 deletions
diff --git a/drivers/media/platform/exynos4-is/fimc-lite.c b/drivers/media/platform/exynos4-is/fimc-lite.c index 4fa2e05186bd..08fbfedea90f 100644 --- a/drivers/media/platform/exynos4-is/fimc-lite.c +++ b/drivers/media/platform/exynos4-is/fimc-lite.c | |||
@@ -44,6 +44,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
44 | { | 44 | { |
45 | .name = "YUV 4:2:2 packed, YCbYCr", | 45 | .name = "YUV 4:2:2 packed, YCbYCr", |
46 | .fourcc = V4L2_PIX_FMT_YUYV, | 46 | .fourcc = V4L2_PIX_FMT_YUYV, |
47 | .colorspace = V4L2_COLORSPACE_JPEG, | ||
47 | .depth = { 16 }, | 48 | .depth = { 16 }, |
48 | .color = FIMC_FMT_YCBYCR422, | 49 | .color = FIMC_FMT_YCBYCR422, |
49 | .memplanes = 1, | 50 | .memplanes = 1, |
@@ -52,6 +53,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
52 | }, { | 53 | }, { |
53 | .name = "YUV 4:2:2 packed, CbYCrY", | 54 | .name = "YUV 4:2:2 packed, CbYCrY", |
54 | .fourcc = V4L2_PIX_FMT_UYVY, | 55 | .fourcc = V4L2_PIX_FMT_UYVY, |
56 | .colorspace = V4L2_COLORSPACE_JPEG, | ||
55 | .depth = { 16 }, | 57 | .depth = { 16 }, |
56 | .color = FIMC_FMT_CBYCRY422, | 58 | .color = FIMC_FMT_CBYCRY422, |
57 | .memplanes = 1, | 59 | .memplanes = 1, |
@@ -60,6 +62,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
60 | }, { | 62 | }, { |
61 | .name = "YUV 4:2:2 packed, CrYCbY", | 63 | .name = "YUV 4:2:2 packed, CrYCbY", |
62 | .fourcc = V4L2_PIX_FMT_VYUY, | 64 | .fourcc = V4L2_PIX_FMT_VYUY, |
65 | .colorspace = V4L2_COLORSPACE_JPEG, | ||
63 | .depth = { 16 }, | 66 | .depth = { 16 }, |
64 | .color = FIMC_FMT_CRYCBY422, | 67 | .color = FIMC_FMT_CRYCBY422, |
65 | .memplanes = 1, | 68 | .memplanes = 1, |
@@ -68,6 +71,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
68 | }, { | 71 | }, { |
69 | .name = "YUV 4:2:2 packed, YCrYCb", | 72 | .name = "YUV 4:2:2 packed, YCrYCb", |
70 | .fourcc = V4L2_PIX_FMT_YVYU, | 73 | .fourcc = V4L2_PIX_FMT_YVYU, |
74 | .colorspace = V4L2_COLORSPACE_JPEG, | ||
71 | .depth = { 16 }, | 75 | .depth = { 16 }, |
72 | .color = FIMC_FMT_YCRYCB422, | 76 | .color = FIMC_FMT_YCRYCB422, |
73 | .memplanes = 1, | 77 | .memplanes = 1, |
@@ -76,6 +80,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
76 | }, { | 80 | }, { |
77 | .name = "RAW8 (GRBG)", | 81 | .name = "RAW8 (GRBG)", |
78 | .fourcc = V4L2_PIX_FMT_SGRBG8, | 82 | .fourcc = V4L2_PIX_FMT_SGRBG8, |
83 | .colorspace = V4L2_COLORSPACE_SRGB, | ||
79 | .depth = { 8 }, | 84 | .depth = { 8 }, |
80 | .color = FIMC_FMT_RAW8, | 85 | .color = FIMC_FMT_RAW8, |
81 | .memplanes = 1, | 86 | .memplanes = 1, |
@@ -84,6 +89,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
84 | }, { | 89 | }, { |
85 | .name = "RAW10 (GRBG)", | 90 | .name = "RAW10 (GRBG)", |
86 | .fourcc = V4L2_PIX_FMT_SGRBG10, | 91 | .fourcc = V4L2_PIX_FMT_SGRBG10, |
92 | .colorspace = V4L2_COLORSPACE_SRGB, | ||
87 | .depth = { 10 }, | 93 | .depth = { 10 }, |
88 | .color = FIMC_FMT_RAW10, | 94 | .color = FIMC_FMT_RAW10, |
89 | .memplanes = 1, | 95 | .memplanes = 1, |
@@ -92,6 +98,7 @@ static const struct fimc_fmt fimc_lite_formats[] = { | |||
92 | }, { | 98 | }, { |
93 | .name = "RAW12 (GRBG)", | 99 | .name = "RAW12 (GRBG)", |
94 | .fourcc = V4L2_PIX_FMT_SGRBG12, | 100 | .fourcc = V4L2_PIX_FMT_SGRBG12, |
101 | .colorspace = V4L2_COLORSPACE_SRGB, | ||
95 | .depth = { 12 }, | 102 | .depth = { 12 }, |
96 | .color = FIMC_FMT_RAW12, | 103 | .color = FIMC_FMT_RAW12, |
97 | .memplanes = 1, | 104 | .memplanes = 1, |
@@ -577,6 +584,7 @@ static const struct fimc_fmt *fimc_lite_subdev_try_fmt(struct fimc_lite *fimc, | |||
577 | if (WARN_ON(!fmt)) | 584 | if (WARN_ON(!fmt)) |
578 | return NULL; | 585 | return NULL; |
579 | 586 | ||
587 | mf->colorspace = fmt->colorspace; | ||
580 | mf->code = fmt->mbus_code; | 588 | mf->code = fmt->mbus_code; |
581 | } else { | 589 | } else { |
582 | struct flite_frame *sink = &fimc->inp_frame; | 590 | struct flite_frame *sink = &fimc->inp_frame; |
@@ -588,11 +596,13 @@ static const struct fimc_fmt *fimc_lite_subdev_try_fmt(struct fimc_lite *fimc, | |||
588 | FLITE_SD_PAD_SINK); | 596 | FLITE_SD_PAD_SINK); |
589 | 597 | ||
590 | mf->code = sink_fmt->code; | 598 | mf->code = sink_fmt->code; |
599 | mf->colorspace = sink_fmt->colorspace; | ||
591 | 600 | ||
592 | rect = v4l2_subdev_get_try_crop(fh, | 601 | rect = v4l2_subdev_get_try_crop(fh, |
593 | FLITE_SD_PAD_SINK); | 602 | FLITE_SD_PAD_SINK); |
594 | } else { | 603 | } else { |
595 | mf->code = sink->fmt->mbus_code; | 604 | mf->code = sink->fmt->mbus_code; |
605 | mf->colorspace = sink->fmt->colorspace; | ||
596 | rect = &sink->rect; | 606 | rect = &sink->rect; |
597 | } | 607 | } |
598 | 608 | ||
@@ -696,7 +706,7 @@ static int fimc_lite_g_fmt_mplane(struct file *file, void *fh, | |||
696 | pixm->width = frame->f_width; | 706 | pixm->width = frame->f_width; |
697 | pixm->height = frame->f_height; | 707 | pixm->height = frame->f_height; |
698 | pixm->field = V4L2_FIELD_NONE; | 708 | pixm->field = V4L2_FIELD_NONE; |
699 | pixm->colorspace = V4L2_COLORSPACE_JPEG; | 709 | pixm->colorspace = fmt->colorspace; |
700 | return 0; | 710 | return 0; |
701 | } | 711 | } |
702 | 712 | ||
@@ -739,7 +749,7 @@ static int fimc_lite_try_fmt(struct fimc_lite *fimc, | |||
739 | fmt->depth[0]) / 8; | 749 | fmt->depth[0]) / 8; |
740 | pixm->num_planes = fmt->memplanes; | 750 | pixm->num_planes = fmt->memplanes; |
741 | pixm->pixelformat = fmt->fourcc; | 751 | pixm->pixelformat = fmt->fourcc; |
742 | pixm->colorspace = V4L2_COLORSPACE_JPEG; | 752 | pixm->colorspace = fmt->colorspace; |
743 | pixm->field = V4L2_FIELD_NONE; | 753 | pixm->field = V4L2_FIELD_NONE; |
744 | return 0; | 754 | return 0; |
745 | } | 755 | } |
@@ -1071,9 +1081,9 @@ static int fimc_lite_subdev_get_fmt(struct v4l2_subdev *sd, | |||
1071 | fmt->format = *mf; | 1081 | fmt->format = *mf; |
1072 | return 0; | 1082 | return 0; |
1073 | } | 1083 | } |
1074 | mf->colorspace = V4L2_COLORSPACE_JPEG; | ||
1075 | 1084 | ||
1076 | mutex_lock(&fimc->lock); | 1085 | mutex_lock(&fimc->lock); |
1086 | mf->colorspace = f->fmt->colorspace; | ||
1077 | mf->code = f->fmt->mbus_code; | 1087 | mf->code = f->fmt->mbus_code; |
1078 | 1088 | ||
1079 | if (fmt->pad == FLITE_SD_PAD_SINK) { | 1089 | if (fmt->pad == FLITE_SD_PAD_SINK) { |
@@ -1102,7 +1112,6 @@ static int fimc_lite_subdev_set_fmt(struct v4l2_subdev *sd, | |||
1102 | v4l2_dbg(1, debug, sd, "pad%d: code: 0x%x, %dx%d\n", | 1112 | v4l2_dbg(1, debug, sd, "pad%d: code: 0x%x, %dx%d\n", |
1103 | fmt->pad, mf->code, mf->width, mf->height); | 1113 | fmt->pad, mf->code, mf->width, mf->height); |
1104 | 1114 | ||
1105 | mf->colorspace = V4L2_COLORSPACE_JPEG; | ||
1106 | mutex_lock(&fimc->lock); | 1115 | mutex_lock(&fimc->lock); |
1107 | 1116 | ||
1108 | if ((atomic_read(&fimc->out_path) == FIMC_IO_ISP && | 1117 | if ((atomic_read(&fimc->out_path) == FIMC_IO_ISP && |
diff --git a/include/media/s5p_fimc.h b/include/media/s5p_fimc.h index 0afadb663bbd..b975c285c8a9 100644 --- a/include/media/s5p_fimc.h +++ b/include/media/s5p_fimc.h | |||
@@ -116,6 +116,7 @@ struct s5p_platform_fimc { | |||
116 | * @color: the driver's private color format id | 116 | * @color: the driver's private color format id |
117 | * @memplanes: number of physically non-contiguous data planes | 117 | * @memplanes: number of physically non-contiguous data planes |
118 | * @colplanes: number of physically contiguous data planes | 118 | * @colplanes: number of physically contiguous data planes |
119 | * @colorspace: v4l2 colorspace (V4L2_COLORSPACE_*) | ||
119 | * @depth: per plane driver's private 'number of bits per pixel' | 120 | * @depth: per plane driver's private 'number of bits per pixel' |
120 | * @mdataplanes: bitmask indicating meta data plane(s), (1 << plane_no) | 121 | * @mdataplanes: bitmask indicating meta data plane(s), (1 << plane_no) |
121 | * @flags: flags indicating which operation mode format applies to | 122 | * @flags: flags indicating which operation mode format applies to |
@@ -127,6 +128,7 @@ struct fimc_fmt { | |||
127 | u32 color; | 128 | u32 color; |
128 | u16 memplanes; | 129 | u16 memplanes; |
129 | u16 colplanes; | 130 | u16 colplanes; |
131 | u8 colorspace; | ||
130 | u8 depth[FIMC_MAX_PLANES]; | 132 | u8 depth[FIMC_MAX_PLANES]; |
131 | u16 mdataplanes; | 133 | u16 mdataplanes; |
132 | u16 flags; | 134 | u16 flags; |