Some media bus codes may be unavailable depending on the available media bus
codes.

Signed-off-by: Sakari Ailus <sakari.ai...@linux.intel.com>
---
 drivers/media/i2c/smiapp/smiapp-core.c |   24 ++++++++++++++++--------
 1 file changed, 16 insertions(+), 8 deletions(-)

diff --git a/drivers/media/i2c/smiapp/smiapp-core.c 
b/drivers/media/i2c/smiapp/smiapp-core.c
index d65521a..926f60c 100644
--- a/drivers/media/i2c/smiapp/smiapp-core.c
+++ b/drivers/media/i2c/smiapp/smiapp-core.c
@@ -806,14 +806,6 @@ static int smiapp_get_mbus_formats(struct smiapp_sensor 
*sensor)
                        dev_dbg(&client->dev, "jolly good! %d\n", j);
 
                        sensor->default_mbus_frame_fmts |= 1 << j;
-                       if (!sensor->csi_format
-                           || f->width > sensor->csi_format->width
-                           || (f->width == sensor->csi_format->width
-                               && f->compressed
-                               > sensor->csi_format->compressed)) {
-                               sensor->csi_format = f;
-                               sensor->internal_csi_format = f;
-                       }
                }
        }
 
@@ -850,6 +842,22 @@ static int smiapp_get_mbus_formats(struct smiapp_sensor 
*sensor)
 
                        set_bit(j, valid_link_freqs);
                }
+
+               if (!*valid_link_freqs) {
+                       dev_info(&client->dev,
+                                "no valid link frequencies for %u bpp\n",
+                                f->compressed);
+                       sensor->default_mbus_frame_fmts &= ~BIT(i);
+                       continue;
+               }
+
+               if (!sensor->csi_format
+                   || f->width > sensor->csi_format->width
+                   || (f->width == sensor->csi_format->width
+                       && f->compressed > sensor->csi_format->compressed)) {
+                       sensor->csi_format = f;
+                       sensor->internal_csi_format = f;
+               }
        }
 
        if (!sensor->csi_format) {
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to