mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
media: rockchip: cif fix errors in rgb24 data format
Signed-off-by: Zefa Chen <zefa.chen@rock-chips.com> Change-Id: I0766997860f06dc25e604c2ea8425049a987fdc5
This commit is contained in:
@@ -2028,13 +2028,11 @@ static int rkcif_csi_channel_init(struct rkcif_stream *stream,
|
||||
* needs aligned with :ALIGN(bits_per_pixel * width * 2, 8), to optimize reading and
|
||||
* writing of ddr, aliged with 256
|
||||
*/
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact) {
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact &&
|
||||
fmt->csi_fmt_val != CSI_WRDDR_TYPE_RGB888) {
|
||||
channel->virtual_width = ALIGN(channel->width * fmt->raw_bpp / 8, 256);
|
||||
} else {
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && fmt->csi_fmt_val != CSI_WRDDR_TYPE_RAW8)
|
||||
channel->virtual_width = ALIGN(channel->width * 2, 8);
|
||||
else
|
||||
channel->virtual_width = ALIGN(channel->width * fmt->bpp[0] / 8, 8);
|
||||
channel->virtual_width = ALIGN(channel->width * fmt->bpp[0] / 8, 8);
|
||||
}
|
||||
|
||||
if (channel->fmt_val == CSI_WRDDR_TYPE_RGB888)
|
||||
@@ -4320,10 +4318,12 @@ int rkcif_set_fmt(struct rkcif_stream *stream,
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact &&
|
||||
(dev->active_sensor->mbus.type == V4L2_MBUS_CSI2_DPHY ||
|
||||
dev->active_sensor->mbus.type == V4L2_MBUS_CSI2_CPHY ||
|
||||
dev->active_sensor->mbus.type == V4L2_MBUS_CCP2)) {
|
||||
dev->active_sensor->mbus.type == V4L2_MBUS_CCP2) &&
|
||||
fmt->csi_fmt_val != CSI_WRDDR_TYPE_RGB888) {
|
||||
bpl = ALIGN(width * fmt->raw_bpp / 8, 256);
|
||||
} else {
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact &&
|
||||
fmt->csi_fmt_val != CSI_WRDDR_TYPE_RGB888 &&
|
||||
dev->chip_id >= CHIP_RK3588_CIF) {
|
||||
bpl = ALIGN(width * fmt->raw_bpp / 8, 256);
|
||||
} else {
|
||||
@@ -5842,13 +5842,11 @@ static void rkcif_cal_csi_crop_width_vwidth(struct rkcif_stream *stream,
|
||||
* needs aligned with :ALIGN(bits_per_pixel * width * 2, 8), to optimize reading and
|
||||
* writing of ddr, aliged with 256
|
||||
*/
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact) {
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW && stream->is_compact &&
|
||||
fmt->csi_fmt_val != CSI_WRDDR_TYPE_RGB888) {
|
||||
*crop_vwidth = ALIGN(raw_width * fmt->raw_bpp / 8, 256);
|
||||
} else {
|
||||
if (fmt->fmt_type == CIF_FMT_TYPE_RAW)
|
||||
*crop_vwidth = ALIGN(raw_width * 2, 8);
|
||||
else
|
||||
*crop_vwidth = ALIGN(raw_width * fmt->bpp[0] / 8, 8);
|
||||
*crop_vwidth = ALIGN(raw_width * fmt->bpp[0] / 8, 8);
|
||||
}
|
||||
|
||||
if (channel->fmt_val == CSI_WRDDR_TYPE_RGB888)
|
||||
|
||||
Reference in New Issue
Block a user