Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'intel-gpio-v6.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-current

intel-gpio fixes for v6.18-1

* Make set debounce errors non-fatal in GPIO ACPI case
* Use human readable error when printing a message in GPIO ACPI code

+17 -14
+17 -14
drivers/gpio/gpiolib-acpi-core.c
··· 291 291 return GPIOD_ASIS; 292 292 } 293 293 294 + static void acpi_gpio_set_debounce_timeout(struct gpio_desc *desc, 295 + unsigned int acpi_debounce) 296 + { 297 + int ret; 298 + 299 + /* ACPI uses hundredths of milliseconds units */ 300 + acpi_debounce *= 10; 301 + ret = gpio_set_debounce_timeout(desc, acpi_debounce); 302 + if (ret) 303 + gpiod_warn(desc, "Failed to set debounce-timeout %u: %d\n", 304 + acpi_debounce, ret); 305 + } 306 + 294 307 static struct gpio_desc *acpi_request_own_gpiod(struct gpio_chip *chip, 295 308 struct acpi_resource_gpio *agpio, 296 309 unsigned int index, ··· 313 300 enum gpiod_flags flags = acpi_gpio_to_gpiod_flags(agpio, polarity); 314 301 unsigned int pin = agpio->pin_table[index]; 315 302 struct gpio_desc *desc; 316 - int ret; 317 303 318 304 desc = gpiochip_request_own_desc(chip, pin, label, polarity, flags); 319 305 if (IS_ERR(desc)) 320 306 return desc; 321 307 322 - /* ACPI uses hundredths of milliseconds units */ 323 - ret = gpio_set_debounce_timeout(desc, agpio->debounce_timeout * 10); 324 - if (ret) 325 - dev_warn(chip->parent, 326 - "Failed to set debounce-timeout for pin 0x%04X, err %d\n", 327 - pin, ret); 308 + acpi_gpio_set_debounce_timeout(desc, agpio->debounce_timeout); 328 309 329 310 return desc; 330 311 } ··· 382 375 desc = acpi_request_own_gpiod(chip, agpio, 0, "ACPI:Event"); 383 376 if (IS_ERR(desc)) { 384 377 dev_err(chip->parent, 385 - "Failed to request GPIO for pin 0x%04X, err %ld\n", 386 - pin, PTR_ERR(desc)); 378 + "Failed to request GPIO for pin 0x%04X, err %pe\n", 379 + pin, desc); 387 380 return AE_OK; 388 381 } 389 382 ··· 951 944 bool can_fallback = acpi_can_fallback_to_crs(adev, con_id); 952 945 struct acpi_gpio_info info = {}; 953 946 struct gpio_desc *desc; 954 - int ret; 955 947 956 948 desc = __acpi_find_gpio(fwnode, con_id, idx, can_fallback, &info); 957 949 if (IS_ERR(desc)) ··· 965 959 acpi_gpio_update_gpiod_flags(dflags, &info); 966 960 acpi_gpio_update_gpiod_lookup_flags(lookupflags, &info); 967 961 968 - /* ACPI uses hundredths of milliseconds units */ 969 - ret = gpio_set_debounce_timeout(desc, info.debounce * 10); 970 - if (ret) 971 - return ERR_PTR(ret); 962 + acpi_gpio_set_debounce_timeout(desc, info.debounce); 972 963 973 964 return desc; 974 965 }