package: gpio-nct5104d: adapt to kernel 6.18 main master
authorJohn Audia <therealgraysky@proton.me>
Thu, 18 Dec 2025 17:51:33 +0000 (12:51 -0500)
committerRobert Marko <robimarko@gmail.com>
Tue, 30 Dec 2025 09:44:05 +0000 (10:44 +0100)
- Changing return type from void to int
- Returning error code instead of void on superio_enter() failure
- Returning 0 on success

Signed-off-by: John Audia <therealgraysky@proton.me>
Link: https://github.com/openwrt/openwrt/pull/21218
Signed-off-by: Robert Marko <robimarko@gmail.com>
package/kernel/gpio-nct5104d/src/gpio-nct5104d.c

index ffeab29eda2efaa3ff63c8ecb4739c6b232dba35..6dce1c29606ebfb9e27ccf5ec58f2e5d7bf59982 100644 (file)
@@ -124,8 +124,11 @@ static int nct5104d_gpio_direction_in(struct gpio_chip *chip, unsigned offset);
 static int nct5104d_gpio_get(struct gpio_chip *chip, unsigned offset);
 static int nct5104d_gpio_direction_out(struct gpio_chip *chip,
                                     unsigned offset, int value);
 static int nct5104d_gpio_get(struct gpio_chip *chip, unsigned offset);
 static int nct5104d_gpio_direction_out(struct gpio_chip *chip,
                                     unsigned offset, int value);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,17,0)
+static int nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value);
+#else
 static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value);
 static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value);
-
+#endif
 #define NCT5104D_GPIO_BANK(_base, _ngpio, _regbase)                    \
        {                                                               \
                .chip = {                                               \
 #define NCT5104D_GPIO_BANK(_base, _ngpio, _regbase)                    \
        {                                                               \
                .chip = {                                               \
@@ -219,7 +222,11 @@ static int nct5104d_gpio_direction_out(struct gpio_chip *chip,
        return 0;
 }
 
        return 0;
 }
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,17,0)
+static int nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+#else
 static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
 static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
+#endif
 {
        int err;
        struct nct5104d_gpio_bank *bank = gpiochip_get_data(chip);
 {
        int err;
        struct nct5104d_gpio_bank *bank = gpiochip_get_data(chip);
@@ -228,7 +235,11 @@ static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value
 
        err = superio_enter(sio->addr);
        if (err)
 
        err = superio_enter(sio->addr);
        if (err)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,17,0)
+               return err;
+#else
                return;
                return;
+#endif
        superio_select(sio->addr, SIO_LD_GPIO);
 
        data_out = superio_inb(sio->addr, gpio_data(bank->regbase));
        superio_select(sio->addr, SIO_LD_GPIO);
 
        data_out = superio_inb(sio->addr, gpio_data(bank->regbase));
@@ -239,6 +250,10 @@ static void nct5104d_gpio_set(struct gpio_chip *chip, unsigned offset, int value
        superio_outb(sio->addr, gpio_data(bank->regbase), data_out);
 
        superio_exit(sio->addr);
        superio_outb(sio->addr, gpio_data(bank->regbase), data_out);
 
        superio_exit(sio->addr);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,17,0)
+       return 0;
+#endif
 }
 
 /*
 }
 
 /*