diff options
Diffstat (limited to 'drivers/gpio/gpiolib-acpi.c')
| -rw-r--r-- | drivers/gpio/gpiolib-acpi.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| diff --git a/drivers/gpio/gpiolib-acpi.c b/drivers/gpio/gpiolib-acpi.c index bf0f8b476696..401add28933f 100644 --- a/drivers/gpio/gpiolib-acpi.c +++ b/drivers/gpio/gpiolib-acpi.c @@ -233,7 +233,7 @@ static void acpi_gpiochip_request_interrupts(struct acpi_gpio_chip *acpi_gpio)  {  	struct gpio_chip *chip = acpi_gpio->chip; -	if (!chip->dev || !chip->to_irq) +	if (!chip->to_irq)  		return;  	INIT_LIST_HEAD(&acpi_gpio->events); @@ -253,7 +253,7 @@ static void acpi_gpiochip_free_interrupts(struct acpi_gpio_chip *acpi_gpio)  	struct acpi_gpio_event *event, *ep;  	struct gpio_chip *chip = acpi_gpio->chip; -	if (!chip->dev || !chip->to_irq) +	if (!chip->to_irq)  		return;  	list_for_each_entry_safe_reverse(event, ep, &acpi_gpio->events, node) { @@ -451,7 +451,7 @@ acpi_gpio_adr_space_handler(u32 function, acpi_physical_address address,  		if (function == ACPI_WRITE)  			gpiod_set_raw_value(desc, !!((1 << i) & *value));  		else -			*value |= gpiod_get_raw_value(desc) << i; +			*value |= (u64)gpiod_get_raw_value(desc) << i;  	}  out: @@ -501,6 +501,9 @@ void acpi_gpiochip_add(struct gpio_chip *chip)  	acpi_handle handle;  	acpi_status status; +	if (!chip || !chip->dev) +		return; +  	handle = ACPI_HANDLE(chip->dev);  	if (!handle)  		return; @@ -531,6 +534,9 @@ void acpi_gpiochip_remove(struct gpio_chip *chip)  	acpi_handle handle;  	acpi_status status; +	if (!chip || !chip->dev) +		return; +  	handle = ACPI_HANDLE(chip->dev);  	if (!handle)  		return; | 

