Ticket #7000: gpiolib.patch

File gpiolib.patch, 895 bytes (added by anonymous, 8 years ago)
  • drivers/gpio/gpiolib.c

    a b int __gpio_get_value(unsigned gpio) 
    12851285        struct gpio_chip        *chip; 
    12861286 
    12871287        chip = gpio_to_chip(gpio); 
    1288         WARN_ON(extra_checks && chip->can_sleep); 
    1289         return chip->get ? chip->get(chip, gpio - chip->base) : 0; 
     1288        if(chip) { 
     1289                WARN_ON(extra_checks && chip->can_sleep); 
     1290                return chip->get ? chip->get(chip, gpio - chip->base) : 0; 
     1291        } else { 
     1292                WARN_ON(extra_checks); 
     1293                return -EINVAL; 
     1294        } 
    12901295 
    12911296} 
    12921297EXPORT_SYMBOL_GPL(__gpio_get_value); 
    void __gpio_set_value(unsigned gpio, int 
    13051310        struct gpio_chip        *chip; 
    13061311 
    13071312        chip = gpio_to_chip(gpio); 
    1308         WARN_ON(extra_checks && chip->can_sleep); 
    1309         chip->set(chip, gpio - chip->base, value); 
     1313        if (chip) { 
     1314                WARN_ON(extra_checks && chip->can_sleep); 
     1315                chip->set(chip, gpio - chip->base, value); 
     1316        } else 
     1317                WARN_ON(extra_checks); 
    13101318} 
    13111319EXPORT_SYMBOL_GPL(__gpio_set_value); 
    13121320