|
@@ -127,20 +127,24 @@ struct csis_state {
|
|
|
* multiple of 2^pix_width_alignment
|
|
|
* @code: corresponding media bus code
|
|
|
* @fmt_reg: S5PCSIS_CONFIG register value
|
|
|
+ * @data_alignment: MIPI-CSI data alignment in bits
|
|
|
*/
|
|
|
struct csis_pix_format {
|
|
|
unsigned int pix_width_alignment;
|
|
|
enum v4l2_mbus_pixelcode code;
|
|
|
u32 fmt_reg;
|
|
|
+ u8 data_alignment;
|
|
|
};
|
|
|
|
|
|
static const struct csis_pix_format s5pcsis_formats[] = {
|
|
|
{
|
|
|
.code = V4L2_MBUS_FMT_VYUY8_2X8,
|
|
|
.fmt_reg = S5PCSIS_CFG_FMT_YCBCR422_8BIT,
|
|
|
+ .data_alignment = 32,
|
|
|
}, {
|
|
|
.code = V4L2_MBUS_FMT_JPEG_1X8,
|
|
|
.fmt_reg = S5PCSIS_CFG_FMT_USER(1),
|
|
|
+ .data_alignment = 32,
|
|
|
},
|
|
|
};
|
|
|
|
|
@@ -239,7 +243,7 @@ static void s5pcsis_set_params(struct csis_state *state)
|
|
|
s5pcsis_set_hsync_settle(state, pdata->hs_settle);
|
|
|
|
|
|
val = s5pcsis_read(state, S5PCSIS_CTRL);
|
|
|
- if (pdata->alignment == 32)
|
|
|
+ if (state->csis_fmt->data_alignment == 32)
|
|
|
val |= S5PCSIS_CTRL_ALIGN_32BIT;
|
|
|
else /* 24-bits */
|
|
|
val &= ~S5PCSIS_CTRL_ALIGN_32BIT;
|