diff options
Diffstat (limited to 'drivers/media/video/s5p-fimc/mipi-csis.c')
-rw-r--r-- | drivers/media/video/s5p-fimc/mipi-csis.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/drivers/media/video/s5p-fimc/mipi-csis.c b/drivers/media/video/s5p-fimc/mipi-csis.c index f44f690397f7..2f73d9e3d0b7 100644 --- a/drivers/media/video/s5p-fimc/mipi-csis.c +++ b/drivers/media/video/s5p-fimc/mipi-csis.c | |||
@@ -127,20 +127,24 @@ struct csis_state { | |||
127 | * multiple of 2^pix_width_alignment | 127 | * multiple of 2^pix_width_alignment |
128 | * @code: corresponding media bus code | 128 | * @code: corresponding media bus code |
129 | * @fmt_reg: S5PCSIS_CONFIG register value | 129 | * @fmt_reg: S5PCSIS_CONFIG register value |
130 | * @data_alignment: MIPI-CSI data alignment in bits | ||
130 | */ | 131 | */ |
131 | struct csis_pix_format { | 132 | struct csis_pix_format { |
132 | unsigned int pix_width_alignment; | 133 | unsigned int pix_width_alignment; |
133 | enum v4l2_mbus_pixelcode code; | 134 | enum v4l2_mbus_pixelcode code; |
134 | u32 fmt_reg; | 135 | u32 fmt_reg; |
136 | u8 data_alignment; | ||
135 | }; | 137 | }; |
136 | 138 | ||
137 | static const struct csis_pix_format s5pcsis_formats[] = { | 139 | static const struct csis_pix_format s5pcsis_formats[] = { |
138 | { | 140 | { |
139 | .code = V4L2_MBUS_FMT_VYUY8_2X8, | 141 | .code = V4L2_MBUS_FMT_VYUY8_2X8, |
140 | .fmt_reg = S5PCSIS_CFG_FMT_YCBCR422_8BIT, | 142 | .fmt_reg = S5PCSIS_CFG_FMT_YCBCR422_8BIT, |
143 | .data_alignment = 32, | ||
141 | }, { | 144 | }, { |
142 | .code = V4L2_MBUS_FMT_JPEG_1X8, | 145 | .code = V4L2_MBUS_FMT_JPEG_1X8, |
143 | .fmt_reg = S5PCSIS_CFG_FMT_USER(1), | 146 | .fmt_reg = S5PCSIS_CFG_FMT_USER(1), |
147 | .data_alignment = 32, | ||
144 | }, | 148 | }, |
145 | }; | 149 | }; |
146 | 150 | ||
@@ -239,7 +243,7 @@ static void s5pcsis_set_params(struct csis_state *state) | |||
239 | s5pcsis_set_hsync_settle(state, pdata->hs_settle); | 243 | s5pcsis_set_hsync_settle(state, pdata->hs_settle); |
240 | 244 | ||
241 | val = s5pcsis_read(state, S5PCSIS_CTRL); | 245 | val = s5pcsis_read(state, S5PCSIS_CTRL); |
242 | if (pdata->alignment == 32) | 246 | if (state->csis_fmt->data_alignment == 32) |
243 | val |= S5PCSIS_CTRL_ALIGN_32BIT; | 247 | val |= S5PCSIS_CTRL_ALIGN_32BIT; |
244 | else /* 24-bits */ | 248 | else /* 24-bits */ |
245 | val &= ~S5PCSIS_CTRL_ALIGN_32BIT; | 249 | val &= ~S5PCSIS_CTRL_ALIGN_32BIT; |
@@ -711,19 +715,8 @@ static struct platform_driver s5pcsis_driver = { | |||
711 | }, | 715 | }, |
712 | }; | 716 | }; |
713 | 717 | ||
714 | static int __init s5pcsis_init(void) | 718 | module_platform_driver(s5pcsis_driver); |
715 | { | ||
716 | return platform_driver_probe(&s5pcsis_driver, s5pcsis_probe); | ||
717 | } | ||
718 | |||
719 | static void __exit s5pcsis_exit(void) | ||
720 | { | ||
721 | platform_driver_unregister(&s5pcsis_driver); | ||
722 | } | ||
723 | |||
724 | module_init(s5pcsis_init); | ||
725 | module_exit(s5pcsis_exit); | ||
726 | 719 | ||
727 | MODULE_AUTHOR("Sylwester Nawrocki <s.nawrocki@samsung.com>"); | 720 | MODULE_AUTHOR("Sylwester Nawrocki <s.nawrocki@samsung.com>"); |
728 | MODULE_DESCRIPTION("S5P/EXYNOS4 MIPI CSI receiver driver"); | 721 | MODULE_DESCRIPTION("Samsung S5P/EXYNOS SoC MIPI-CSI2 receiver driver"); |
729 | MODULE_LICENSE("GPL"); | 722 | MODULE_LICENSE("GPL"); |