Commit 0bade8b5 authored by Arvind Yadav's avatar Arvind Yadav Committed by Mauro Carvalho Chehab

media: sta2x11: Use gpio_is_valid() and remove unnecessary check

Replace the manual validity checks for the GPIO with the
gpio_is_valid().

In vip_gpio_reserve(), Error checking for gpio pin is not correct.
If pwr_pin = -1, It will return 0. This should be return an error.

In sta2x11_vip_init_one(), Error checking for gpio 'reset_pin'
is unnecessary. Because vip_gpio_reserve() is also checking for
valid gpio pin. So removed extra error checking for gpio 'reset_pin'.
Signed-off-by: default avatarArvind Yadav <arvind.yadav.cs@gmail.com>
Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+samsung@kernel.org>
parent 03b76523
...@@ -908,10 +908,10 @@ static int sta2x11_vip_init_controls(struct sta2x11_vip *vip) ...@@ -908,10 +908,10 @@ static int sta2x11_vip_init_controls(struct sta2x11_vip *vip)
static int vip_gpio_reserve(struct device *dev, int pin, int dir, static int vip_gpio_reserve(struct device *dev, int pin, int dir,
const char *name) const char *name)
{ {
int ret; int ret = -ENODEV;
if (pin == -1) if (!gpio_is_valid(pin))
return 0; return ret;
ret = gpio_request(pin, name); ret = gpio_request(pin, name);
if (ret) { if (ret) {
...@@ -946,7 +946,7 @@ static int vip_gpio_reserve(struct device *dev, int pin, int dir, ...@@ -946,7 +946,7 @@ static int vip_gpio_reserve(struct device *dev, int pin, int dir,
*/ */
static void vip_gpio_release(struct device *dev, int pin, const char *name) static void vip_gpio_release(struct device *dev, int pin, const char *name)
{ {
if (pin != -1) { if (gpio_is_valid(pin)) {
dev_dbg(dev, "releasing pin %d (%s)\n", pin, name); dev_dbg(dev, "releasing pin %d (%s)\n", pin, name);
gpio_unexport(pin); gpio_unexport(pin);
gpio_free(pin); gpio_free(pin);
...@@ -1003,25 +1003,24 @@ static int sta2x11_vip_init_one(struct pci_dev *pdev, ...@@ -1003,25 +1003,24 @@ static int sta2x11_vip_init_one(struct pci_dev *pdev,
if (ret) if (ret)
goto disable; goto disable;
if (config->reset_pin >= 0) { ret = vip_gpio_reserve(&pdev->dev, config->reset_pin, 0,
ret = vip_gpio_reserve(&pdev->dev, config->reset_pin, 0, config->reset_name);
config->reset_name); if (ret) {
if (ret) { vip_gpio_release(&pdev->dev, config->pwr_pin,
vip_gpio_release(&pdev->dev, config->pwr_pin, config->pwr_name);
config->pwr_name); goto disable;
goto disable;
}
} }
if (config->pwr_pin != -1) {
if (gpio_is_valid(config->pwr_pin)) {
/* Datasheet says 5ms between PWR and RST */ /* Datasheet says 5ms between PWR and RST */
usleep_range(5000, 25000); usleep_range(5000, 25000);
ret = gpio_direction_output(config->pwr_pin, 1); gpio_direction_output(config->pwr_pin, 1);
} }
if (config->reset_pin != -1) { if (gpio_is_valid(config->reset_pin)) {
/* Datasheet says 5ms between PWR and RST */ /* Datasheet says 5ms between PWR and RST */
usleep_range(5000, 25000); usleep_range(5000, 25000);
ret = gpio_direction_output(config->reset_pin, 1); gpio_direction_output(config->reset_pin, 1);
} }
usleep_range(5000, 25000); usleep_range(5000, 25000);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment