|
|
@@ -73,73 +73,43 @@ static struct vpfe_fmt formats[] = {
|
|
|
{
|
|
|
.fourcc = V4L2_PIX_FMT_YUYV,
|
|
|
.code = MEDIA_BUS_FMT_YUYV8_2X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_UYVY,
|
|
|
.code = MEDIA_BUS_FMT_UYVY8_2X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_YVYU,
|
|
|
.code = MEDIA_BUS_FMT_YVYU8_2X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_VYUY,
|
|
|
.code = MEDIA_BUS_FMT_VYUY8_2X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_SBGGR8,
|
|
|
.code = MEDIA_BUS_FMT_SBGGR8_1X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 2,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 1,
|
|
|
+ .bitsperpixel = 8,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_SGBRG8,
|
|
|
.code = MEDIA_BUS_FMT_SGBRG8_1X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 2,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 1,
|
|
|
+ .bitsperpixel = 8,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_SGRBG8,
|
|
|
.code = MEDIA_BUS_FMT_SGRBG8_1X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 2,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 1,
|
|
|
+ .bitsperpixel = 8,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_SRGGB8,
|
|
|
.code = MEDIA_BUS_FMT_SRGGB8_1X8,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 2,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 1,
|
|
|
+ .bitsperpixel = 8,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_RGB565,
|
|
|
.code = MEDIA_BUS_FMT_RGB565_2X8_LE,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
}, {
|
|
|
.fourcc = V4L2_PIX_FMT_RGB565X,
|
|
|
.code = MEDIA_BUS_FMT_RGB565_2X8_BE,
|
|
|
- .l.width = 10,
|
|
|
- .l.bpp = 4,
|
|
|
- .s.width = 8,
|
|
|
- .s.bpp = 2,
|
|
|
+ .bitsperpixel = 16,
|
|
|
},
|
|
|
};
|
|
|
|
|
|
@@ -184,9 +154,11 @@ static unsigned int __get_bytesperpixel(struct vpfe_device *vpfe,
|
|
|
{
|
|
|
struct vpfe_subdev_info *sdinfo = vpfe->current_subdev;
|
|
|
unsigned int bus_width = sdinfo->vpfe_param.bus_width;
|
|
|
- u32 bpp;
|
|
|
+ u32 bpp, bus_width_bytes, clocksperpixel;
|
|
|
|
|
|
- bpp = (bus_width == 10) ? fmt->l.bpp : fmt->s.bpp;
|
|
|
+ bus_width_bytes = ALIGN(bus_width, 8) >> 3;
|
|
|
+ clocksperpixel = DIV_ROUND_UP(fmt->bitsperpixel, bus_width);
|
|
|
+ bpp = clocksperpixel * bus_width_bytes;
|
|
|
|
|
|
return bpp;
|
|
|
}
|