aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/video/via/via-gpio.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/video/via/via-gpio.c b/drivers/video/via/via-gpio.c
index 44537be1f070..63cb7acc0faf 100644
--- a/drivers/video/via/via-gpio.c
+++ b/drivers/video/via/via-gpio.c
@@ -246,7 +246,6 @@ static int viafb_gpio_remove(struct platform_device *platdev)
246 unsigned long flags; 246 unsigned long flags;
247 int ret = 0, i; 247 int ret = 0, i;
248 248
249 spin_lock_irqsave(&gpio_config.vdev->reg_lock, flags);
250 /* 249 /*
251 * Get unregistered. 250 * Get unregistered.
252 */ 251 */
@@ -254,16 +253,16 @@ static int viafb_gpio_remove(struct platform_device *platdev)
254 ret = gpiochip_remove(&gpio_config.gpio_chip); 253 ret = gpiochip_remove(&gpio_config.gpio_chip);
255 if (ret) { /* Somebody still using it? */ 254 if (ret) { /* Somebody still using it? */
256 printk(KERN_ERR "Viafb: GPIO remove failed\n"); 255 printk(KERN_ERR "Viafb: GPIO remove failed\n");
257 goto out; 256 return ret;
258 } 257 }
259 } 258 }
260 /* 259 /*
261 * Disable the ports. 260 * Disable the ports.
262 */ 261 */
262 spin_lock_irqsave(&gpio_config.vdev->reg_lock, flags);
263 for (i = 0; i < gpio_config.gpio_chip.ngpio; i += 2) 263 for (i = 0; i < gpio_config.gpio_chip.ngpio; i += 2)
264 viafb_gpio_disable(gpio_config.active_gpios[i]); 264 viafb_gpio_disable(gpio_config.active_gpios[i]);
265 gpio_config.gpio_chip.ngpio = 0; 265 gpio_config.gpio_chip.ngpio = 0;
266out:
267 spin_unlock_irqrestore(&gpio_config.vdev->reg_lock, flags); 266 spin_unlock_irqrestore(&gpio_config.vdev->reg_lock, flags);
268 return ret; 267 return ret;
269} 268}