From: Lad, Prabhakar <prabhakar.cse...@gmail.com>

generally the pdata needs to be a constant pointer in the device
state structure. This patch makes the pdata as a constant pointer
and alongside returns -EINVAL when pdata is NULL.

Signed-off-by: Lad, Prabhakar <prabhakar.cse...@gmail.com>
Cc: Hans Verkuil <hans.verk...@cisco.com>
Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com>
Cc: Mauro Carvalho Chehab <mche...@redhat.com>
Cc: Guennadi Liakhovetski <g.liakhovet...@gmx.de>
Cc: Sylwester Nawrocki <s.nawro...@samsung.com>
Cc: Sakari Ailus <sakari.ai...@iki.fi>
Cc: linux-kernel@vger.kernel.org
Cc: davinci-linux-open-sou...@linux.davincidsp.com
---
 drivers/media/i2c/ths7303.c |   15 ++++++++-------
 1 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/drivers/media/i2c/ths7303.c b/drivers/media/i2c/ths7303.c
index af06187c..b954195 100644
--- a/drivers/media/i2c/ths7303.c
+++ b/drivers/media/i2c/ths7303.c
@@ -35,7 +35,7 @@
 
 struct ths7303_state {
        struct v4l2_subdev              sd;
-       struct ths7303_platform_data    pdata;
+       const struct ths7303_platform_data *pdata;
        struct v4l2_bt_timings          bt;
        int std_id;
        int stream_on;
@@ -89,7 +89,7 @@ int ths7303_setval(struct v4l2_subdev *sd, enum 
ths7303_filter_mode mode)
 {
        struct i2c_client *client = v4l2_get_subdevdata(sd);
        struct ths7303_state *state = to_state(sd);
-       struct ths7303_platform_data *pdata = &state->pdata;
+       const struct ths7303_platform_data *pdata = state->pdata;
        u8 val, sel = 0;
        int err, disable = 0;
 
@@ -356,6 +356,11 @@ static int ths7303_probe(struct i2c_client *client,
        struct ths7303_state *state;
        struct v4l2_subdev *sd;
 
+       if (pdata == NULL) {
+               dev_err(&client->dev, "No platform data\n");
+               return -EINVAL;
+       }
+
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_BYTE_DATA))
                return -ENODEV;
 
@@ -367,11 +372,7 @@ static int ths7303_probe(struct i2c_client *client,
        if (!state)
                return -ENOMEM;
 
-       if (!pdata)
-               v4l_warn(client, "No platform data, using default data!\n");
-       else
-               state->pdata = *pdata;
-
+       state->pdata = pdata;
        sd = &state->sd;
        v4l2_i2c_subdev_init(sd, client, &ths7303_ops);
 
-- 
1.7.4.1

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

Reply via email to