media: imx258: Check the rotation property has a value of 180
authorSakari Ailus <sakari.ailus@linux.intel.com>
Wed, 23 May 2018 09:33:32 +0000 (05:33 -0400)
committerMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Wed, 27 Jun 2018 13:49:11 +0000 (09:49 -0400)
The driver only supports streaming images flipped horizontally and
vertically. In order to ensure that all current users will be fine if or
when support for upright streaming is added, require the presence of the
"rotation" control now.

Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Tested-by: "Lai, Jim" <jim.lai@intel.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
drivers/media/i2c/imx258.c

index f3b124723aa0bdf551705c3a3f51a89bc44f54f2..31a1e2294843a4e7f8bad9a53f3ea9d23c795853 100644 (file)
@@ -1221,6 +1221,14 @@ static int imx258_probe(struct i2c_client *client)
        if (val != 19200000)
                return -EINVAL;
 
+       /*
+        * Check that the device is mounted upside down. The driver only
+        * supports a single pixel order right now.
+        */
+       ret = device_property_read_u32(&client->dev, "rotation", &val);
+       if (ret || val != 180)
+               return -EINVAL;
+
        imx258 = devm_kzalloc(&client->dev, sizeof(*imx258), GFP_KERNEL);
        if (!imx258)
                return -ENOMEM;