pinctrl: samsung: Detect and handle unsupported configuration types
authorTomasz Figa <t.figa@samsung.com>
Thu, 11 Oct 2012 08:11:07 +0000 (10:11 +0200)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 15 Oct 2012 07:10:10 +0000 (09:10 +0200)
This patch modifies the pinctrl-samsung driver to detect when width of a
bit field is set to zero (which means that such configuraton type is not
supported) and return an error instead of trying to modify an inexistent
register.

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Thomas Abraham <thomas.abraham@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-samsung.c

index dd108a9..c660fa5 100644 (file)
@@ -391,6 +391,9 @@ static int samsung_pinconf_rw(struct pinctrl_dev *pctldev, unsigned int pin,
                return -EINVAL;
        }
 
+       if (!width)
+               return -EINVAL;
+
        mask = (1 << width) - 1;
        shift = pin_offset * width;
        data = readl(reg_base + cfg_reg);