]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
drivers: tegra: imx091/max77665: fix edp issue
authorCharlie Huang <chahuang@nvidia.com>
Tue, 11 Dec 2012 20:17:10 +0000 (12:17 -0800)
committerDan Willemsen <dwillemsen@nvidia.com>
Sat, 14 Sep 2013 19:46:14 +0000 (12:46 -0700)
Fix the potential NULL pointer usage in the case there is no edp client
allocated.

bug 1193275

Reviewed on: http://git-master/r/#change,170249

Change-Id: I8cf6670edfd8ddd8f60a5200efe80a49767296bf
(cherry picked from commit 4be68a5750f55ea9b8e1062d6d2b6789891ee371)

Signed-off-by: Charlie Huang <chahuang@nvidia.com>
Change-Id: Iabb40765c7f5b935bb5938c24397fda54581638f
Reviewed-on: http://git-master/r/170560
Reviewed-by: Simone Willett <swillett@nvidia.com>
Tested-by: Simone Willett <swillett@nvidia.com>
drivers/media/video/tegra/imx091.c
drivers/media/video/tegra/max77665-flash.c

index 216554271a7107ada5455f013466af75294bf51d..8c47f300fd9196355f32a3be3fa126e3d093f1c3 100644 (file)
@@ -1129,8 +1129,11 @@ static void imx091_edp_register(struct imx091_info *info)
        int ret;
 
        info->edpc = NULL;
-       if (!edpc->num_states)
+       if (!edpc->num_states) {
+               dev_warn(&info->i2c_client->dev,
+                       "%s: NO edp states defined.\n", __func__);
                return;
+       }
 
        strncpy(edpc->name, "imx091", EDP_NAME_LEN - 1);
        edpc->name[EDP_NAME_LEN - 1] = 0;
@@ -1825,7 +1828,7 @@ static int imx091_mode_wr_full(struct imx091_info *info, u32 mode_index)
 
        /* the state num is temporary assigned, should be updated later as
        per-mode basis */
-       err = imx091_edp_req(info, info->edpc->e0_index);
+       err = imx091_edp_req(info, 0);
        if (err) {
                dev_err(&info->i2c_client->dev,
                        "%s: ERROR cannot set edp state! %d\n", __func__, err);
index 9bd09b022a8984e1390e6344cfb91a7f76b2246d..bb608963d9b5cf95dfc108ab75cd7233a6aefb91 100644 (file)
@@ -376,8 +376,11 @@ static void max77665_f_edp_register(struct max77665_f_info *info)
        int ret;
 
        info->edpc = NULL;
-       if (!edpc->num_states)
+       if (!edpc->num_states) {
+               dev_warn(info->dev, "%s: NO edp states defined.\n", __func__);
                return;
+       }
+
        strncpy(edpc->name, "max77665f", EDP_NAME_LEN - 1);
        edpc->name[EDP_NAME_LEN - 1] = 0;
        edpc->throttle = max77665_f_throttle;