summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/mt9m001.c6
-rw-r--r--drivers/media/video/mt9v022.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/media/video/mt9m001.c b/drivers/media/video/mt9m001.c
index 7618b3c2fce0..750ce60abac8 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 2fc6ca22f31c..ddc11d0a6254 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;