diff options
Diffstat (limited to 'drivers/media')
-rw-r--r-- | drivers/media/video/mt9m001.c | 6 | ||||
-rw-r--r-- | drivers/media/video/mt9v022.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/media/video/mt9m001.c b/drivers/media/video/mt9m001.c index 7618b3c2fce..750ce60abac 100644 --- a/drivers/media/video/mt9m001.c +++ b/drivers/media/video/mt9m001.c @@ -734,6 +734,12 @@ static int mt9m001_s_mbus_config(struct v4l2_subdev *sd, struct i2c_client *client = v4l2_get_subdevdata(sd); struct soc_camera_device *icd = client->dev.platform_data; struct soc_camera_link *icl = to_soc_camera_link(icd); + /* + * Cannot use icd->current_fmt->host_fmt->bits_per_sample, because that + * is the number of bits, that the host has to sample, not the number of + * bits, that we have to send. See mx3_camera.c for an example of 10-bit + * formats being truncated to 8 bits by the host. + */ unsigned int bps = soc_mbus_get_fmtdesc(icd->current_fmt->code)->bits_per_sample; if (icl->set_bus_param) diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c index 2fc6ca22f31..ddc11d0a625 100644 --- a/drivers/media/video/mt9v022.c +++ b/drivers/media/video/mt9v022.c @@ -875,6 +875,12 @@ static int mt9v022_s_mbus_config(struct v4l2_subdev *sd, struct soc_camera_link *icl = to_soc_camera_link(icd); struct mt9v022 *mt9v022 = to_mt9v022(client); unsigned long flags = soc_camera_apply_board_flags(icl, cfg); + /* + * Cannot use icd->current_fmt->host_fmt->bits_per_sample, because that + * is the number of bits, that the host has to sample, not the number of + * bits, that we have to send. See mx3_camera.c for an example of 10-bit + * formats being truncated to 8 bits by the host. + */ unsigned int bps = soc_mbus_get_fmtdesc(icd->current_fmt->code)->bits_per_sample; int ret; u16 pixclk = 0; |