Loading drivers/ssb/driver_gpio.c +12 −0 Original line number Diff line number Diff line Loading @@ -174,3 +174,15 @@ int ssb_gpio_init(struct ssb_bus *bus) return -1; } int ssb_gpio_unregister(struct ssb_bus *bus) { if (ssb_chipco_available(&bus->chipco) || ssb_extif_available(&bus->extif)) { return gpiochip_remove(&bus->gpio); } else { SSB_WARN_ON(1); } return -1; } drivers/ssb/main.c +9 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,15 @@ static void ssb_devices_unregister(struct ssb_bus *bus) void ssb_bus_unregister(struct ssb_bus *bus) { int err; err = ssb_gpio_unregister(bus); if (err == -EBUSY) ssb_dprintk(KERN_ERR PFX "Some GPIOs are still in use.\n"); else if (err) ssb_dprintk(KERN_ERR PFX "Can not unregister GPIO driver: %i\n", err); ssb_buses_lock(); ssb_devices_unregister(bus); list_del(&bus->list); Loading drivers/ssb/ssb_private.h +5 −0 Original line number Diff line number Diff line Loading @@ -252,11 +252,16 @@ static inline void ssb_extif_init(struct ssb_extif *extif) #ifdef CONFIG_SSB_DRIVER_GPIO extern int ssb_gpio_init(struct ssb_bus *bus); extern int ssb_gpio_unregister(struct ssb_bus *bus); #else /* CONFIG_SSB_DRIVER_GPIO */ static inline int ssb_gpio_init(struct ssb_bus *bus) { return -ENOTSUPP; } static inline int ssb_gpio_unregister(struct ssb_bus *bus) { return 0; } #endif /* CONFIG_SSB_DRIVER_GPIO */ #endif /* LINUX_SSB_PRIVATE_H_ */ Loading
drivers/ssb/driver_gpio.c +12 −0 Original line number Diff line number Diff line Loading @@ -174,3 +174,15 @@ int ssb_gpio_init(struct ssb_bus *bus) return -1; } int ssb_gpio_unregister(struct ssb_bus *bus) { if (ssb_chipco_available(&bus->chipco) || ssb_extif_available(&bus->extif)) { return gpiochip_remove(&bus->gpio); } else { SSB_WARN_ON(1); } return -1; }
drivers/ssb/main.c +9 −0 Original line number Diff line number Diff line Loading @@ -443,6 +443,15 @@ static void ssb_devices_unregister(struct ssb_bus *bus) void ssb_bus_unregister(struct ssb_bus *bus) { int err; err = ssb_gpio_unregister(bus); if (err == -EBUSY) ssb_dprintk(KERN_ERR PFX "Some GPIOs are still in use.\n"); else if (err) ssb_dprintk(KERN_ERR PFX "Can not unregister GPIO driver: %i\n", err); ssb_buses_lock(); ssb_devices_unregister(bus); list_del(&bus->list); Loading
drivers/ssb/ssb_private.h +5 −0 Original line number Diff line number Diff line Loading @@ -252,11 +252,16 @@ static inline void ssb_extif_init(struct ssb_extif *extif) #ifdef CONFIG_SSB_DRIVER_GPIO extern int ssb_gpio_init(struct ssb_bus *bus); extern int ssb_gpio_unregister(struct ssb_bus *bus); #else /* CONFIG_SSB_DRIVER_GPIO */ static inline int ssb_gpio_init(struct ssb_bus *bus) { return -ENOTSUPP; } static inline int ssb_gpio_unregister(struct ssb_bus *bus) { return 0; } #endif /* CONFIG_SSB_DRIVER_GPIO */ #endif /* LINUX_SSB_PRIVATE_H_ */