mirror of
https://github.com/torvalds/linux.git
synced 2025-08-15 14:11:42 +02:00
gpio updates for v6.17-rc1
- remove unused, legacy GPIO line value setters from struct gpio_chip - rename the new set callbacks back to the original names treewide - fix interrupt handling in gpio-mlxbf2 - revert a buggy immutable irqchip conversion -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAmiV1PUACgkQEacuoBRx 13IQvQ//Rhl2xC/DKUHb8wR8yOyMRUQ2tmD8hM+lrS0Dej7mJ91e4SJpqxtQck+c mNeiMG1JLSrN+2RCWzinPR6ha7ML8Zu8XP1OxG5EDD06hyWAKHI6CF/PIeZX7Sy4 xMlSpH/brRInj3NBaBLdlompqfe2CVUFW2ahvovE97oz7l+nKEZUa5r3Gw7lHcRz bmbQ0FLKfYsAz9hzD0pc8wcralp5ggyiiGcdZI8U2YCAUKLV5M/FhMuU/M0jEiJi iYtr2OQJijtSWDP2i81aQj/ZsdW5gfCCiGSAoeVdcRLAL0bLHLCR8Wird+0DWCGO UHJg+Ed0+84+sahuoU07vYyDM1T92vUDwjAkr8H65+U7u4cHjoj4fYi6104Fbh0J /1deR53z6vhObFkZmh61lv63SES9xzOfM6FJP1UUMwtG40JQcZNYnHDFAD3V5wvN Gi1gVub9L5TKSJMsJHirtsk+QT6KnInVxzXcgqC09XxhuEvA+MC+Qkee+P8bbaAU mcOR4conQzcoWuv/Y0GCGJ3CpvHhCmcBfL1MdtjFWHipG4LhlIVtRCJDRAx2Q5oY C4vQterv4r9mXomAs4ykRlEdCnXvldv9PN8lKQ0KMendwTv4A4xG8o6IEoYSb90R q7CNQjxjyr77ovRbcfSoAZrcRG4oP3nGhSQsdv85wHZU5XbJXoU= =MulZ -----END PGP SIGNATURE----- Merge tag 'gpio-updates-for-v6.17-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux Pull gpio updates from Bartosz Golaszewski: "As discussed: there's a small commit that removes the legacy GPIO line value setter callbacks as they're no longer used and a big, treewide commit that renames the new ones to the old names across all GPIO drivers at once. While at it: there are also two fixes that I picked up over the course of the merge window: - remove unused, legacy GPIO line value setters from struct gpio_chip - rename the new set callbacks back to the original names treewide - fix interrupt handling in gpio-mlxbf2 - revert a buggy immutable irqchip conversion" * tag 'gpio-updates-for-v6.17-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: treewide: rename GPIO set callbacks back to their original names gpio: remove legacy GPIO line value setter callbacks gpio: mlxbf2: use platform_get_irq_optional() Revert "gpio: pxa: Make irq_chip immutable"
This commit is contained in:
commit
0227b49b50
283 changed files with 359 additions and 388 deletions
|
@ -617,8 +617,8 @@ static int sa1111_setup_gpios(struct sa1111 *sachip)
|
|||
sachip->gc.direction_input = sa1111_gpio_direction_input;
|
||||
sachip->gc.direction_output = sa1111_gpio_direction_output;
|
||||
sachip->gc.get = sa1111_gpio_get;
|
||||
sachip->gc.set_rv = sa1111_gpio_set;
|
||||
sachip->gc.set_multiple_rv = sa1111_gpio_set_multiple;
|
||||
sachip->gc.set = sa1111_gpio_set;
|
||||
sachip->gc.set_multiple = sa1111_gpio_set_multiple;
|
||||
sachip->gc.to_irq = sa1111_gpio_to_irq;
|
||||
sachip->gc.base = -1;
|
||||
sachip->gc.ngpio = 18;
|
||||
|
|
|
@ -218,7 +218,7 @@ static int scoop_probe(struct platform_device *pdev)
|
|||
devptr->gpio.label = dev_name(&pdev->dev);
|
||||
devptr->gpio.base = inf->gpio_base;
|
||||
devptr->gpio.ngpio = 12; /* PA11 = 0, PA12 = 1, etc. up to PA22 = 11 */
|
||||
devptr->gpio.set_rv = scoop_gpio_set;
|
||||
devptr->gpio.set = scoop_gpio_set;
|
||||
devptr->gpio.get = scoop_gpio_get;
|
||||
devptr->gpio.direction_input = scoop_gpio_direction_input;
|
||||
devptr->gpio.direction_output = scoop_gpio_direction_output;
|
||||
|
|
|
@ -516,8 +516,8 @@ static void __init samsung_gpiolib_add(struct samsung_gpio_chip *chip)
|
|||
gc->direction_input = samsung_gpiolib_2bit_input;
|
||||
if (!gc->direction_output)
|
||||
gc->direction_output = samsung_gpiolib_2bit_output;
|
||||
if (!gc->set_rv)
|
||||
gc->set_rv = samsung_gpiolib_set;
|
||||
if (!gc->set)
|
||||
gc->set = samsung_gpiolib_set;
|
||||
if (!gc->get)
|
||||
gc->get = samsung_gpiolib_get;
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ void ASSABET_BCR_frob(unsigned int mask, unsigned int val)
|
|||
{
|
||||
unsigned long m = mask, v = val;
|
||||
|
||||
assabet_bcr_gc->set_multiple_rv(assabet_bcr_gc, &m, &v);
|
||||
assabet_bcr_gc->set_multiple(assabet_bcr_gc, &m, &v);
|
||||
}
|
||||
EXPORT_SYMBOL(ASSABET_BCR_frob);
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ void neponset_ncr_frob(unsigned int mask, unsigned int val)
|
|||
unsigned long m = mask, v = val;
|
||||
|
||||
if (nep)
|
||||
n->gpio[0]->set_multiple_rv(n->gpio[0], &m, &v);
|
||||
n->gpio[0]->set_multiple(n->gpio[0], &m, &v);
|
||||
else
|
||||
WARN(1, "nep unset\n");
|
||||
}
|
||||
|
|
|
@ -540,7 +540,7 @@ void __init orion_gpio_init(int gpio_base, int ngpio,
|
|||
ochip->chip.direction_input = orion_gpio_direction_input;
|
||||
ochip->chip.get = orion_gpio_get;
|
||||
ochip->chip.direction_output = orion_gpio_direction_output;
|
||||
ochip->chip.set_rv = orion_gpio_set;
|
||||
ochip->chip.set = orion_gpio_set;
|
||||
ochip->chip.to_irq = orion_gpio_to_irq;
|
||||
ochip->chip.base = gpio_base;
|
||||
ochip->chip.ngpio = ngpio;
|
||||
|
|
|
@ -160,7 +160,7 @@ static struct gpio_chip mcfgpio_chip = {
|
|||
.direction_input = mcfgpio_direction_input,
|
||||
.direction_output = mcfgpio_direction_output,
|
||||
.get = mcfgpio_get_value,
|
||||
.set_rv = mcfgpio_set_value,
|
||||
.set = mcfgpio_set_value,
|
||||
.to_irq = mcfgpio_to_irq,
|
||||
.base = 0,
|
||||
.ngpio = MCFGPIO_PIN_MAX,
|
||||
|
|
|
@ -101,7 +101,7 @@ struct gpio_chip alchemy_gpio_chip[] = {
|
|||
.direction_input = gpio1_direction_input,
|
||||
.direction_output = gpio1_direction_output,
|
||||
.get = gpio1_get,
|
||||
.set_rv = gpio1_set,
|
||||
.set = gpio1_set,
|
||||
.to_irq = gpio1_to_irq,
|
||||
.base = ALCHEMY_GPIO1_BASE,
|
||||
.ngpio = ALCHEMY_GPIO1_NUM,
|
||||
|
@ -111,7 +111,7 @@ struct gpio_chip alchemy_gpio_chip[] = {
|
|||
.direction_input = gpio2_direction_input,
|
||||
.direction_output = gpio2_direction_output,
|
||||
.get = gpio2_get,
|
||||
.set_rv = gpio2_set,
|
||||
.set = gpio2_set,
|
||||
.to_irq = gpio2_to_irq,
|
||||
.base = ALCHEMY_GPIO2_BASE,
|
||||
.ngpio = ALCHEMY_GPIO2_NUM,
|
||||
|
@ -151,7 +151,7 @@ static struct gpio_chip au1300_gpiochip = {
|
|||
.direction_input = alchemy_gpic_dir_input,
|
||||
.direction_output = alchemy_gpic_dir_output,
|
||||
.get = alchemy_gpic_get,
|
||||
.set_rv = alchemy_gpic_set,
|
||||
.set = alchemy_gpic_set,
|
||||
.to_irq = alchemy_gpic_gpio_to_irq,
|
||||
.base = AU1300_GPIO_BASE,
|
||||
.ngpio = AU1300_GPIO_NUM,
|
||||
|
|
|
@ -131,7 +131,7 @@ static struct gpio_chip bcm63xx_gpio_chip = {
|
|||
.direction_input = bcm63xx_gpio_direction_input,
|
||||
.direction_output = bcm63xx_gpio_direction_output,
|
||||
.get = bcm63xx_gpio_get,
|
||||
.set_rv = bcm63xx_gpio_set,
|
||||
.set = bcm63xx_gpio_set,
|
||||
.base = 0,
|
||||
};
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ static int txx9_gpio_dir_out(struct gpio_chip *chip, unsigned int offset,
|
|||
|
||||
static struct gpio_chip txx9_gpio_chip = {
|
||||
.get = txx9_gpio_get,
|
||||
.set_rv = txx9_gpio_set,
|
||||
.set = txx9_gpio_set,
|
||||
.direction_input = txx9_gpio_dir_in,
|
||||
.direction_output = txx9_gpio_dir_out,
|
||||
.label = "TXx9",
|
||||
|
|
|
@ -164,7 +164,7 @@ static struct rb532_gpio_chip rb532_gpio_chip[] = {
|
|||
.direction_input = rb532_gpio_direction_input,
|
||||
.direction_output = rb532_gpio_direction_output,
|
||||
.get = rb532_gpio_get,
|
||||
.set_rv = rb532_gpio_set,
|
||||
.set = rb532_gpio_set,
|
||||
.to_irq = rb532_gpio_to_irq,
|
||||
.base = 0,
|
||||
.ngpio = 32,
|
||||
|
|
|
@ -655,7 +655,7 @@ void __init txx9_iocled_init(unsigned long baseaddr,
|
|||
if (!iocled->mmioaddr)
|
||||
goto out_free;
|
||||
iocled->chip.get = txx9_iocled_get;
|
||||
iocled->chip.set_rv = txx9_iocled_set;
|
||||
iocled->chip.set = txx9_iocled_set;
|
||||
iocled->chip.direction_input = txx9_iocled_dir_in;
|
||||
iocled->chip.direction_output = txx9_iocled_dir_out;
|
||||
iocled->chip.label = "iocled";
|
||||
|
|
|
@ -180,7 +180,7 @@ static int __init ppc4xx_add_gpiochips(void)
|
|||
gc->direction_input = ppc4xx_gpio_dir_in;
|
||||
gc->direction_output = ppc4xx_gpio_dir_out;
|
||||
gc->get = ppc4xx_gpio_get;
|
||||
gc->set_rv = ppc4xx_gpio_set;
|
||||
gc->set = ppc4xx_gpio_set;
|
||||
|
||||
ret = of_mm_gpiochip_add_data(np, mm_gc, ppc4xx_gc);
|
||||
if (ret)
|
||||
|
|
|
@ -336,7 +336,7 @@ static void mpc52xx_gpt_gpio_setup(struct mpc52xx_gpt_priv *gpt)
|
|||
gpt->gc.direction_input = mpc52xx_gpt_gpio_dir_in;
|
||||
gpt->gc.direction_output = mpc52xx_gpt_gpio_dir_out;
|
||||
gpt->gc.get = mpc52xx_gpt_gpio_get;
|
||||
gpt->gc.set_rv = mpc52xx_gpt_gpio_set;
|
||||
gpt->gc.set = mpc52xx_gpt_gpio_set;
|
||||
gpt->gc.base = -1;
|
||||
gpt->gc.parent = gpt->dev;
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ static int mcu_gpiochip_add(struct mcu *mcu)
|
|||
gc->can_sleep = 1;
|
||||
gc->ngpio = MCU_NUM_GPIO;
|
||||
gc->base = -1;
|
||||
gc->set_rv = mcu_gpio_set;
|
||||
gc->set = mcu_gpio_set;
|
||||
gc->direction_output = mcu_gpio_dir_out;
|
||||
gc->parent = dev;
|
||||
|
||||
|
|
|
@ -499,7 +499,7 @@ int cpm1_gpiochip_add16(struct device *dev)
|
|||
gc->direction_input = cpm1_gpio16_dir_in;
|
||||
gc->direction_output = cpm1_gpio16_dir_out;
|
||||
gc->get = cpm1_gpio16_get;
|
||||
gc->set_rv = cpm1_gpio16_set;
|
||||
gc->set = cpm1_gpio16_set;
|
||||
gc->to_irq = cpm1_gpio16_to_irq;
|
||||
gc->parent = dev;
|
||||
gc->owner = THIS_MODULE;
|
||||
|
@ -622,7 +622,7 @@ int cpm1_gpiochip_add32(struct device *dev)
|
|||
gc->direction_input = cpm1_gpio32_dir_in;
|
||||
gc->direction_output = cpm1_gpio32_dir_out;
|
||||
gc->get = cpm1_gpio32_get;
|
||||
gc->set_rv = cpm1_gpio32_set;
|
||||
gc->set = cpm1_gpio32_set;
|
||||
gc->parent = dev;
|
||||
gc->owner = THIS_MODULE;
|
||||
|
||||
|
|
|
@ -210,7 +210,7 @@ int cpm2_gpiochip_add32(struct device *dev)
|
|||
gc->direction_input = cpm2_gpio32_dir_in;
|
||||
gc->direction_output = cpm2_gpio32_dir_out;
|
||||
gc->get = cpm2_gpio32_get;
|
||||
gc->set_rv = cpm2_gpio32_set;
|
||||
gc->set = cpm2_gpio32_set;
|
||||
gc->parent = dev;
|
||||
gc->owner = THIS_MODULE;
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ int bcma_gpio_init(struct bcma_drv_cc *cc)
|
|||
chip->request = bcma_gpio_request;
|
||||
chip->free = bcma_gpio_free;
|
||||
chip->get = bcma_gpio_get_value;
|
||||
chip->set_rv = bcma_gpio_set_value;
|
||||
chip->set = bcma_gpio_set_value;
|
||||
chip->direction_input = bcma_gpio_direction_input;
|
||||
chip->direction_output = bcma_gpio_direction_output;
|
||||
chip->parent = bus->dev;
|
||||
|
|
|
@ -141,8 +141,8 @@ static int gen_74x164_probe(struct spi_device *spi)
|
|||
chip->gpio_chip.label = spi->modalias;
|
||||
chip->gpio_chip.direction_output = gen_74x164_direction_output;
|
||||
chip->gpio_chip.get = gen_74x164_get_value;
|
||||
chip->gpio_chip.set_rv = gen_74x164_set_value;
|
||||
chip->gpio_chip.set_multiple_rv = gen_74x164_set_multiple;
|
||||
chip->gpio_chip.set = gen_74x164_set_value;
|
||||
chip->gpio_chip.set_multiple = gen_74x164_set_multiple;
|
||||
chip->gpio_chip.base = -1;
|
||||
chip->gpio_chip.ngpio = GEN_74X164_NUMBER_GPIOS * chip->registers;
|
||||
chip->gpio_chip.can_sleep = true;
|
||||
|
|
|
@ -430,7 +430,7 @@ static int adnp_gpio_setup(struct adnp *adnp, unsigned int num_gpios,
|
|||
chip->direction_input = adnp_gpio_direction_input;
|
||||
chip->direction_output = adnp_gpio_direction_output;
|
||||
chip->get = adnp_gpio_get;
|
||||
chip->set_rv = adnp_gpio_set;
|
||||
chip->set = adnp_gpio_set;
|
||||
chip->can_sleep = true;
|
||||
|
||||
if (IS_ENABLED(CONFIG_DEBUG_FS))
|
||||
|
|
|
@ -122,7 +122,7 @@ static int adp5520_gpio_probe(struct platform_device *pdev)
|
|||
gc->direction_input = adp5520_gpio_direction_input;
|
||||
gc->direction_output = adp5520_gpio_direction_output;
|
||||
gc->get = adp5520_gpio_get_value;
|
||||
gc->set_rv = adp5520_gpio_set_value;
|
||||
gc->set = adp5520_gpio_set_value;
|
||||
gc->can_sleep = true;
|
||||
|
||||
gc->base = pdata->gpio_start;
|
||||
|
|
|
@ -428,7 +428,7 @@ static int adp5585_gpio_probe(struct platform_device *pdev)
|
|||
gc->direction_input = adp5585_gpio_direction_input;
|
||||
gc->direction_output = adp5585_gpio_direction_output;
|
||||
gc->get = adp5585_gpio_get_value;
|
||||
gc->set_rv = adp5585_gpio_set_value;
|
||||
gc->set = adp5585_gpio_set_value;
|
||||
gc->set_config = adp5585_gpio_set_config;
|
||||
gc->request = adp5585_gpio_request;
|
||||
gc->free = adp5585_gpio_free;
|
||||
|
|
|
@ -534,8 +534,8 @@ static struct gpiochip_fwd *gpiochip_fwd_create(struct device *dev,
|
|||
chip->direction_output = gpio_fwd_direction_output;
|
||||
chip->get = gpio_fwd_get;
|
||||
chip->get_multiple = gpio_fwd_get_multiple_locked;
|
||||
chip->set_rv = gpio_fwd_set;
|
||||
chip->set_multiple_rv = gpio_fwd_set_multiple_locked;
|
||||
chip->set = gpio_fwd_set;
|
||||
chip->set_multiple = gpio_fwd_set_multiple_locked;
|
||||
chip->to_irq = gpio_fwd_to_irq;
|
||||
chip->base = -1;
|
||||
chip->ngpio = ngpios;
|
||||
|
|
|
@ -69,7 +69,7 @@ static const struct gpio_chip altr_a10sr_gc = {
|
|||
.label = "altr_a10sr_gpio",
|
||||
.owner = THIS_MODULE,
|
||||
.get = altr_a10sr_gpio_get,
|
||||
.set_rv = altr_a10sr_gpio_set,
|
||||
.set = altr_a10sr_gpio_set,
|
||||
.direction_input = altr_a10sr_gpio_direction_input,
|
||||
.direction_output = altr_a10sr_gpio_direction_output,
|
||||
.can_sleep = true,
|
||||
|
|
|
@ -259,7 +259,7 @@ static int altera_gpio_probe(struct platform_device *pdev)
|
|||
altera_gc->gc.direction_input = altera_gpio_direction_input;
|
||||
altera_gc->gc.direction_output = altera_gpio_direction_output;
|
||||
altera_gc->gc.get = altera_gpio_get;
|
||||
altera_gc->gc.set_rv = altera_gpio_set;
|
||||
altera_gc->gc.set = altera_gpio_set;
|
||||
altera_gc->gc.owner = THIS_MODULE;
|
||||
altera_gc->gc.parent = &pdev->dev;
|
||||
altera_gc->gc.base = -1;
|
||||
|
|
|
@ -165,7 +165,7 @@ static int amd_fch_gpio_probe(struct platform_device *pdev)
|
|||
priv->gc.direction_output = amd_fch_gpio_direction_output;
|
||||
priv->gc.get_direction = amd_fch_gpio_get_direction;
|
||||
priv->gc.get = amd_fch_gpio_get;
|
||||
priv->gc.set_rv = amd_fch_gpio_set;
|
||||
priv->gc.set = amd_fch_gpio_set;
|
||||
|
||||
spin_lock_init(&priv->lock);
|
||||
|
||||
|
|
|
@ -165,7 +165,7 @@ static struct amd_gpio gp = {
|
|||
.ngpio = 32,
|
||||
.request = amd_gpio_request,
|
||||
.free = amd_gpio_free,
|
||||
.set_rv = amd_gpio_set,
|
||||
.set = amd_gpio_set,
|
||||
.get = amd_gpio_get,
|
||||
.direction_output = amd_gpio_dirout,
|
||||
.direction_input = amd_gpio_dirin,
|
||||
|
|
|
@ -138,7 +138,7 @@ static const struct gpio_chip template_chip = {
|
|||
.direction_input = arizona_gpio_direction_in,
|
||||
.get = arizona_gpio_get,
|
||||
.direction_output = arizona_gpio_direction_out,
|
||||
.set_rv = arizona_gpio_set,
|
||||
.set = arizona_gpio_set,
|
||||
.can_sleep = true,
|
||||
};
|
||||
|
||||
|
|
|
@ -596,7 +596,7 @@ static int __init aspeed_sgpio_probe(struct platform_device *pdev)
|
|||
gpio->chip.request = NULL;
|
||||
gpio->chip.free = NULL;
|
||||
gpio->chip.get = aspeed_sgpio_get;
|
||||
gpio->chip.set_rv = aspeed_sgpio_set;
|
||||
gpio->chip.set = aspeed_sgpio_set;
|
||||
gpio->chip.set_config = aspeed_sgpio_set_config;
|
||||
gpio->chip.label = dev_name(&pdev->dev);
|
||||
gpio->chip.base = -1;
|
||||
|
|
|
@ -1352,7 +1352,7 @@ static int aspeed_gpio_probe(struct platform_device *pdev)
|
|||
gpio->chip.request = aspeed_gpio_request;
|
||||
gpio->chip.free = aspeed_gpio_free;
|
||||
gpio->chip.get = aspeed_gpio_get;
|
||||
gpio->chip.set_rv = aspeed_gpio_set;
|
||||
gpio->chip.set = aspeed_gpio_set;
|
||||
gpio->chip.set_config = aspeed_gpio_set_config;
|
||||
gpio->chip.label = dev_name(&pdev->dev);
|
||||
gpio->chip.base = -1;
|
||||
|
|
|
@ -339,7 +339,7 @@ static const struct gpio_chip template_chip = {
|
|||
.direction_input = bcm_kona_gpio_direction_input,
|
||||
.get = bcm_kona_gpio_get,
|
||||
.direction_output = bcm_kona_gpio_direction_output,
|
||||
.set_rv = bcm_kona_gpio_set,
|
||||
.set = bcm_kona_gpio_set,
|
||||
.set_config = bcm_kona_gpio_set_config,
|
||||
.to_irq = bcm_kona_gpio_to_irq,
|
||||
.base = 0,
|
||||
|
|
|
@ -85,7 +85,7 @@ static const struct gpio_chip bd71815gpo_chip = {
|
|||
.owner = THIS_MODULE,
|
||||
.get = bd71815gpo_get,
|
||||
.get_direction = bd71815gpo_direction_get,
|
||||
.set_rv = bd71815gpo_set,
|
||||
.set = bd71815gpo_set,
|
||||
.set_config = bd71815_gpio_set_config,
|
||||
.can_sleep = true,
|
||||
};
|
||||
|
|
|
@ -109,7 +109,7 @@ static int bd71828_probe(struct platform_device *pdev)
|
|||
bdgpio->gpio.set_config = bd71828_gpio_set_config;
|
||||
bdgpio->gpio.can_sleep = true;
|
||||
bdgpio->gpio.get = bd71828_gpio_get;
|
||||
bdgpio->gpio.set_rv = bd71828_gpio_set;
|
||||
bdgpio->gpio.set = bd71828_gpio_set;
|
||||
bdgpio->gpio.base = -1;
|
||||
|
||||
/*
|
||||
|
|
|
@ -88,7 +88,7 @@ static const struct gpio_chip template_chip = {
|
|||
.direction_input = bd9571mwv_gpio_direction_input,
|
||||
.direction_output = bd9571mwv_gpio_direction_output,
|
||||
.get = bd9571mwv_gpio_get,
|
||||
.set_rv = bd9571mwv_gpio_set,
|
||||
.set = bd9571mwv_gpio_set,
|
||||
.base = -1,
|
||||
.ngpio = 2,
|
||||
.can_sleep = true,
|
||||
|
|
|
@ -145,7 +145,7 @@ static void bt8xxgpio_gpio_setup(struct bt8xxgpio *bg)
|
|||
c->direction_input = bt8xxgpio_gpio_direction_input;
|
||||
c->get = bt8xxgpio_gpio_get;
|
||||
c->direction_output = bt8xxgpio_gpio_direction_output;
|
||||
c->set_rv = bt8xxgpio_gpio_set;
|
||||
c->set = bt8xxgpio_gpio_set;
|
||||
c->dbg_show = NULL;
|
||||
c->base = modparam_gpiobase;
|
||||
c->ngpio = BT8XXGPIO_NR_GPIOS;
|
||||
|
|
|
@ -171,7 +171,7 @@ static int cgbc_gpio_probe(struct platform_device *pdev)
|
|||
chip->direction_output = cgbc_gpio_direction_output;
|
||||
chip->get_direction = cgbc_gpio_get_direction;
|
||||
chip->get = cgbc_gpio_get;
|
||||
chip->set_rv = cgbc_gpio_set;
|
||||
chip->set = cgbc_gpio_set;
|
||||
chip->ngpio = CGBC_GPIO_NGPIO;
|
||||
|
||||
ret = devm_mutex_init(dev, &gpio->lock);
|
||||
|
|
|
@ -167,7 +167,7 @@ static int creg_gpio_probe(struct platform_device *pdev)
|
|||
hcg->gc.label = dev_name(dev);
|
||||
hcg->gc.base = -1;
|
||||
hcg->gc.ngpio = ngpios;
|
||||
hcg->gc.set_rv = creg_gpio_set;
|
||||
hcg->gc.set = creg_gpio_set;
|
||||
hcg->gc.direction_output = creg_gpio_dir_out;
|
||||
|
||||
ret = devm_gpiochip_add_data(dev, &hcg->gc, hcg);
|
||||
|
|
|
@ -188,7 +188,7 @@ static int cros_ec_gpio_probe(struct platform_device *pdev)
|
|||
gc->can_sleep = true;
|
||||
gc->label = dev_name(dev);
|
||||
gc->base = -1;
|
||||
gc->set_rv = cros_ec_gpio_set;
|
||||
gc->set = cros_ec_gpio_set;
|
||||
gc->get = cros_ec_gpio_get;
|
||||
gc->get_direction = cros_ec_gpio_get_direction;
|
||||
|
||||
|
|
|
@ -349,7 +349,7 @@ static int crystalcove_gpio_probe(struct platform_device *pdev)
|
|||
cg->chip.direction_input = crystalcove_gpio_dir_in;
|
||||
cg->chip.direction_output = crystalcove_gpio_dir_out;
|
||||
cg->chip.get = crystalcove_gpio_get;
|
||||
cg->chip.set_rv = crystalcove_gpio_set;
|
||||
cg->chip.set = crystalcove_gpio_set;
|
||||
cg->chip.base = -1;
|
||||
cg->chip.ngpio = CRYSTALCOVE_VGPIO_NUM;
|
||||
cg->chip.can_sleep = true;
|
||||
|
|
|
@ -296,7 +296,7 @@ static struct cs5535_gpio_chip cs5535_gpio_chip = {
|
|||
.request = chip_gpio_request,
|
||||
|
||||
.get = chip_gpio_get,
|
||||
.set_rv = chip_gpio_set,
|
||||
.set = chip_gpio_set,
|
||||
|
||||
.direction_input = chip_direction_input,
|
||||
.direction_output = chip_direction_output,
|
||||
|
|
|
@ -172,7 +172,7 @@ static const struct gpio_chip reference_gp = {
|
|||
.label = "da9052-gpio",
|
||||
.owner = THIS_MODULE,
|
||||
.get = da9052_gpio_get,
|
||||
.set_rv = da9052_gpio_set,
|
||||
.set = da9052_gpio_set,
|
||||
.direction_input = da9052_gpio_direction_input,
|
||||
.direction_output = da9052_gpio_direction_output,
|
||||
.to_irq = da9052_gpio_to_irq,
|
||||
|
|
|
@ -116,7 +116,7 @@ static const struct gpio_chip reference_gp = {
|
|||
.label = "da9055-gpio",
|
||||
.owner = THIS_MODULE,
|
||||
.get = da9055_gpio_get,
|
||||
.set_rv = da9055_gpio_set,
|
||||
.set = da9055_gpio_set,
|
||||
.direction_input = da9055_gpio_direction_input,
|
||||
.direction_output = da9055_gpio_direction_output,
|
||||
.to_irq = da9055_gpio_to_irq,
|
||||
|
|
|
@ -202,7 +202,7 @@ static int davinci_gpio_probe(struct platform_device *pdev)
|
|||
chips->chip.direction_input = davinci_direction_in;
|
||||
chips->chip.get = davinci_gpio_get;
|
||||
chips->chip.direction_output = davinci_direction_out;
|
||||
chips->chip.set_rv = davinci_gpio_set;
|
||||
chips->chip.set = davinci_gpio_set;
|
||||
|
||||
chips->chip.ngpio = ngpio;
|
||||
chips->chip.base = -1;
|
||||
|
|
|
@ -469,7 +469,7 @@ static int dln2_gpio_probe(struct platform_device *pdev)
|
|||
dln2->gpio.base = -1;
|
||||
dln2->gpio.ngpio = pins;
|
||||
dln2->gpio.can_sleep = true;
|
||||
dln2->gpio.set_rv = dln2_gpio_set;
|
||||
dln2->gpio.set = dln2_gpio_set;
|
||||
dln2->gpio.get = dln2_gpio_get;
|
||||
dln2->gpio.request = dln2_gpio_request;
|
||||
dln2->gpio.free = dln2_gpio_free;
|
||||
|
|
|
@ -663,7 +663,7 @@ static int sprd_eic_probe(struct platform_device *pdev)
|
|||
sprd_eic->chip.request = sprd_eic_request;
|
||||
sprd_eic->chip.free = sprd_eic_free;
|
||||
sprd_eic->chip.set_config = sprd_eic_set_config;
|
||||
sprd_eic->chip.set_rv = sprd_eic_set;
|
||||
sprd_eic->chip.set = sprd_eic_set;
|
||||
fallthrough;
|
||||
case SPRD_EIC_ASYNC:
|
||||
case SPRD_EIC_SYNC:
|
||||
|
|
|
@ -306,7 +306,7 @@ static int em_gio_probe(struct platform_device *pdev)
|
|||
gpio_chip->direction_input = em_gio_direction_input;
|
||||
gpio_chip->get = em_gio_get;
|
||||
gpio_chip->direction_output = em_gio_direction_output;
|
||||
gpio_chip->set_rv = em_gio_set;
|
||||
gpio_chip->set = em_gio_set;
|
||||
gpio_chip->to_irq = em_gio_to_irq;
|
||||
gpio_chip->request = pinctrl_gpio_request;
|
||||
gpio_chip->free = em_gio_free;
|
||||
|
|
|
@ -211,7 +211,7 @@ static int gpio_exar_probe(struct platform_device *pdev)
|
|||
exar_gpio->gpio_chip.direction_input = exar_direction_input;
|
||||
exar_gpio->gpio_chip.get_direction = exar_get_direction;
|
||||
exar_gpio->gpio_chip.get = exar_get_value;
|
||||
exar_gpio->gpio_chip.set_rv = exar_set_value;
|
||||
exar_gpio->gpio_chip.set = exar_set_value;
|
||||
exar_gpio->gpio_chip.base = -1;
|
||||
exar_gpio->gpio_chip.ngpio = ngpios;
|
||||
exar_gpio->index = index;
|
||||
|
|
|
@ -173,7 +173,7 @@ static int f7188x_gpio_set_config(struct gpio_chip *chip, unsigned offset,
|
|||
.direction_input = f7188x_gpio_direction_in, \
|
||||
.get = f7188x_gpio_get, \
|
||||
.direction_output = f7188x_gpio_direction_out, \
|
||||
.set_rv = f7188x_gpio_set, \
|
||||
.set = f7188x_gpio_set, \
|
||||
.set_config = f7188x_gpio_set_config, \
|
||||
.base = -1, \
|
||||
.ngpio = _ngpio, \
|
||||
|
|
|
@ -159,7 +159,7 @@ static const struct gpio_chip gnr_gpio_chip = {
|
|||
.owner = THIS_MODULE,
|
||||
.request = gnr_gpio_request,
|
||||
.get = gnr_gpio_get,
|
||||
.set_rv = gnr_gpio_set,
|
||||
.set = gnr_gpio_set,
|
||||
.get_direction = gnr_gpio_get_direction,
|
||||
.direction_input = gnr_gpio_direction_input,
|
||||
.direction_output = gnr_gpio_direction_output,
|
||||
|
|
|
@ -86,7 +86,7 @@ static int gw_pld_probe(struct i2c_client *client)
|
|||
gw->chip.direction_input = gw_pld_input8;
|
||||
gw->chip.get = gw_pld_get8;
|
||||
gw->chip.direction_output = gw_pld_output8;
|
||||
gw->chip.set_rv = gw_pld_set8;
|
||||
gw->chip.set = gw_pld_set8;
|
||||
gw->client = client;
|
||||
|
||||
/*
|
||||
|
|
|
@ -324,7 +324,7 @@ static int __init egpio_probe(struct platform_device *pdev)
|
|||
chip->parent = &pdev->dev;
|
||||
chip->owner = THIS_MODULE;
|
||||
chip->get = egpio_get;
|
||||
chip->set_rv = egpio_set;
|
||||
chip->set = egpio_set;
|
||||
chip->direction_input = egpio_direction_input;
|
||||
chip->direction_output = egpio_direction_output;
|
||||
chip->get_direction = egpio_get_direction;
|
||||
|
|
|
@ -273,7 +273,7 @@ static void ichx_gpiolib_setup(struct gpio_chip *chip)
|
|||
chip->get = ichx_priv.desc->get ?
|
||||
ichx_priv.desc->get : ichx_gpio_get;
|
||||
|
||||
chip->set_rv = ichx_gpio_set;
|
||||
chip->set = ichx_gpio_set;
|
||||
chip->get_direction = ichx_gpio_get_direction;
|
||||
chip->direction_input = ichx_gpio_direction_input;
|
||||
chip->direction_output = ichx_gpio_direction_output;
|
||||
|
|
|
@ -102,7 +102,7 @@ static int imx_scu_gpio_probe(struct platform_device *pdev)
|
|||
gc->ngpio = ARRAY_SIZE(scu_rsrc_arr);
|
||||
gc->label = dev_name(dev);
|
||||
gc->get = imx_scu_gpio_get;
|
||||
gc->set_rv = imx_scu_gpio_set;
|
||||
gc->set = imx_scu_gpio_set;
|
||||
gc->get_direction = imx_scu_gpio_get_direction;
|
||||
|
||||
platform_set_drvdata(pdev, priv);
|
||||
|
|
|
@ -267,7 +267,7 @@ static const struct gpio_chip it87_template_chip = {
|
|||
.request = it87_gpio_request,
|
||||
.get = it87_gpio_get,
|
||||
.direction_input = it87_gpio_direction_in,
|
||||
.set_rv = it87_gpio_set,
|
||||
.set = it87_gpio_set,
|
||||
.direction_output = it87_gpio_direction_out,
|
||||
.base = -1
|
||||
};
|
||||
|
|
|
@ -171,7 +171,7 @@ static int ttl_probe(struct platform_device *pdev)
|
|||
gpio->parent = &pdev->dev;
|
||||
gpio->label = pdev->name;
|
||||
gpio->get = ttl_get_value;
|
||||
gpio->set_rv = ttl_set_value;
|
||||
gpio->set = ttl_set_value;
|
||||
gpio->owner = THIS_MODULE;
|
||||
|
||||
/* request dynamic allocation */
|
||||
|
|
|
@ -169,7 +169,7 @@ static int kempld_gpio_probe(struct platform_device *pdev)
|
|||
chip->direction_output = kempld_gpio_direction_output;
|
||||
chip->get_direction = kempld_gpio_get_direction;
|
||||
chip->get = kempld_gpio_get;
|
||||
chip->set_rv = kempld_gpio_set;
|
||||
chip->set = kempld_gpio_set;
|
||||
chip->ngpio = kempld_gpio_pincount(pld);
|
||||
if (chip->ngpio == 0) {
|
||||
dev_err(dev, "No GPIO pins detected\n");
|
||||
|
|
|
@ -166,11 +166,11 @@ static int gpio_latch_probe(struct platform_device *pdev)
|
|||
|
||||
if (gpio_latch_can_sleep(priv, n_latches)) {
|
||||
priv->gc.can_sleep = true;
|
||||
priv->gc.set_rv = gpio_latch_set_can_sleep;
|
||||
priv->gc.set = gpio_latch_set_can_sleep;
|
||||
mutex_init(&priv->mutex);
|
||||
} else {
|
||||
priv->gc.can_sleep = false;
|
||||
priv->gc.set_rv = gpio_latch_set;
|
||||
priv->gc.set = gpio_latch_set;
|
||||
spin_lock_init(&priv->spinlock);
|
||||
}
|
||||
|
||||
|
|
|
@ -437,7 +437,7 @@ static int ljca_gpio_probe(struct auxiliary_device *auxdev,
|
|||
ljca_gpio->gc.direction_output = ljca_gpio_direction_output;
|
||||
ljca_gpio->gc.get_direction = ljca_gpio_get_direction;
|
||||
ljca_gpio->gc.get = ljca_gpio_get_value;
|
||||
ljca_gpio->gc.set_rv = ljca_gpio_set_value;
|
||||
ljca_gpio->gc.set = ljca_gpio_set_value;
|
||||
ljca_gpio->gc.set_config = ljca_gpio_set_config;
|
||||
ljca_gpio->gc.init_valid_mask = ljca_gpio_init_valid_mask;
|
||||
ljca_gpio->gc.can_sleep = true;
|
||||
|
|
|
@ -134,7 +134,7 @@ static int logicvc_gpio_probe(struct platform_device *pdev)
|
|||
logicvc->chip.ngpio = LOGICVC_CTRL_GPIO_BITS +
|
||||
LOGICVC_POWER_CTRL_GPIO_BITS;
|
||||
logicvc->chip.get = logicvc_gpio_get;
|
||||
logicvc->chip.set_rv = logicvc_gpio_set;
|
||||
logicvc->chip.set = logicvc_gpio_set;
|
||||
logicvc->chip.direction_output = logicvc_gpio_direction_output;
|
||||
|
||||
return devm_gpiochip_add_data(dev, &logicvc->chip, logicvc);
|
||||
|
|
|
@ -157,7 +157,7 @@ static int loongson_gpio_init(struct device *dev, struct loongson_gpio_chip *lgp
|
|||
lgpio->chip.get = loongson_gpio_get;
|
||||
lgpio->chip.get_direction = loongson_gpio_get_direction;
|
||||
lgpio->chip.direction_output = loongson_gpio_direction_output;
|
||||
lgpio->chip.set_rv = loongson_gpio_set;
|
||||
lgpio->chip.set = loongson_gpio_set;
|
||||
lgpio->chip.parent = dev;
|
||||
spin_lock_init(&lgpio->lock);
|
||||
}
|
||||
|
|
|
@ -106,7 +106,7 @@ static int loongson_gpio_probe(struct platform_device *pdev)
|
|||
gc->base = 0;
|
||||
gc->ngpio = LOONGSON_N_GPIO;
|
||||
gc->get = loongson_gpio_get_value;
|
||||
gc->set_rv = loongson_gpio_set_value;
|
||||
gc->set = loongson_gpio_set_value;
|
||||
gc->direction_input = loongson_gpio_direction_input;
|
||||
gc->direction_output = loongson_gpio_direction_output;
|
||||
|
||||
|
|
|
@ -184,7 +184,7 @@ static const struct gpio_chip lp3943_gpio_chip = {
|
|||
.direction_input = lp3943_gpio_direction_input,
|
||||
.get = lp3943_gpio_get,
|
||||
.direction_output = lp3943_gpio_direction_output,
|
||||
.set_rv = lp3943_gpio_set,
|
||||
.set = lp3943_gpio_set,
|
||||
.base = -1,
|
||||
.ngpio = LP3943_MAX_GPIO,
|
||||
.can_sleep = 1,
|
||||
|
|
|
@ -124,7 +124,7 @@ static const struct gpio_chip template_chip = {
|
|||
.direction_input = lp873x_gpio_direction_input,
|
||||
.direction_output = lp873x_gpio_direction_output,
|
||||
.get = lp873x_gpio_get,
|
||||
.set_rv = lp873x_gpio_set,
|
||||
.set = lp873x_gpio_set,
|
||||
.set_config = lp873x_gpio_set_config,
|
||||
.base = -1,
|
||||
.ngpio = 2,
|
||||
|
|
|
@ -139,7 +139,7 @@ static const struct gpio_chip template_chip = {
|
|||
.direction_input = lp87565_gpio_direction_input,
|
||||
.direction_output = lp87565_gpio_direction_output,
|
||||
.get = lp87565_gpio_get,
|
||||
.set_rv = lp87565_gpio_set,
|
||||
.set = lp87565_gpio_set,
|
||||
.set_config = lp87565_gpio_set_config,
|
||||
.base = -1,
|
||||
.ngpio = 3,
|
||||
|
|
|
@ -327,7 +327,7 @@ static const struct gpio_chip lpc18xx_chip = {
|
|||
.free = gpiochip_generic_free,
|
||||
.direction_input = lpc18xx_gpio_direction_input,
|
||||
.direction_output = lpc18xx_gpio_direction_output,
|
||||
.set_rv = lpc18xx_gpio_set,
|
||||
.set = lpc18xx_gpio_set,
|
||||
.get = lpc18xx_gpio_get,
|
||||
.ngpio = LPC18XX_MAX_PORTS * LPC18XX_PINS_PER_PORT,
|
||||
.owner = THIS_MODULE,
|
||||
|
|
|
@ -407,7 +407,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
|
|||
.direction_input = lpc32xx_gpio_dir_input_p012,
|
||||
.get = lpc32xx_gpio_get_value_p012,
|
||||
.direction_output = lpc32xx_gpio_dir_output_p012,
|
||||
.set_rv = lpc32xx_gpio_set_value_p012,
|
||||
.set = lpc32xx_gpio_set_value_p012,
|
||||
.request = lpc32xx_gpio_request,
|
||||
.to_irq = lpc32xx_gpio_to_irq_p01,
|
||||
.base = LPC32XX_GPIO_P0_GRP,
|
||||
|
@ -423,7 +423,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
|
|||
.direction_input = lpc32xx_gpio_dir_input_p012,
|
||||
.get = lpc32xx_gpio_get_value_p012,
|
||||
.direction_output = lpc32xx_gpio_dir_output_p012,
|
||||
.set_rv = lpc32xx_gpio_set_value_p012,
|
||||
.set = lpc32xx_gpio_set_value_p012,
|
||||
.request = lpc32xx_gpio_request,
|
||||
.to_irq = lpc32xx_gpio_to_irq_p01,
|
||||
.base = LPC32XX_GPIO_P1_GRP,
|
||||
|
@ -439,7 +439,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
|
|||
.direction_input = lpc32xx_gpio_dir_input_p012,
|
||||
.get = lpc32xx_gpio_get_value_p012,
|
||||
.direction_output = lpc32xx_gpio_dir_output_p012,
|
||||
.set_rv = lpc32xx_gpio_set_value_p012,
|
||||
.set = lpc32xx_gpio_set_value_p012,
|
||||
.request = lpc32xx_gpio_request,
|
||||
.base = LPC32XX_GPIO_P2_GRP,
|
||||
.ngpio = LPC32XX_GPIO_P2_MAX,
|
||||
|
@ -454,7 +454,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
|
|||
.direction_input = lpc32xx_gpio_dir_input_p3,
|
||||
.get = lpc32xx_gpio_get_value_p3,
|
||||
.direction_output = lpc32xx_gpio_dir_output_p3,
|
||||
.set_rv = lpc32xx_gpio_set_value_p3,
|
||||
.set = lpc32xx_gpio_set_value_p3,
|
||||
.request = lpc32xx_gpio_request,
|
||||
.to_irq = lpc32xx_gpio_to_irq_gpio_p3,
|
||||
.base = LPC32XX_GPIO_P3_GRP,
|
||||
|
@ -482,7 +482,7 @@ static struct lpc32xx_gpio_chip lpc32xx_gpiochip[] = {
|
|||
.chip = {
|
||||
.label = "gpo_p3",
|
||||
.direction_output = lpc32xx_gpio_dir_out_always,
|
||||
.set_rv = lpc32xx_gpo_set_value,
|
||||
.set = lpc32xx_gpo_set_value,
|
||||
.get = lpc32xx_gpo_get_value,
|
||||
.request = lpc32xx_gpio_request,
|
||||
.base = LPC32XX_GPO_P3_GRP,
|
||||
|
|
|
@ -261,7 +261,7 @@ static int macsmc_gpio_probe(struct platform_device *pdev)
|
|||
smcgp->gc.label = "macsmc-pmu-gpio";
|
||||
smcgp->gc.owner = THIS_MODULE;
|
||||
smcgp->gc.get = macsmc_gpio_get;
|
||||
smcgp->gc.set_rv = macsmc_gpio_set;
|
||||
smcgp->gc.set = macsmc_gpio_set;
|
||||
smcgp->gc.get_direction = macsmc_gpio_get_direction;
|
||||
smcgp->gc.init_valid_mask = macsmc_gpio_init_valid_mask;
|
||||
smcgp->gc.can_sleep = true;
|
||||
|
|
|
@ -109,7 +109,7 @@ static const struct gpio_chip madera_gpio_chip = {
|
|||
.direction_input = madera_gpio_direction_in,
|
||||
.get = madera_gpio_get,
|
||||
.direction_output = madera_gpio_direction_out,
|
||||
.set_rv = madera_gpio_set,
|
||||
.set = madera_gpio_set,
|
||||
.set_config = gpiochip_generic_config,
|
||||
.can_sleep = true,
|
||||
};
|
||||
|
|
|
@ -188,7 +188,7 @@ int __max730x_probe(struct max7301 *ts)
|
|||
ts->chip.direction_input = max7301_direction_input;
|
||||
ts->chip.get = max7301_get;
|
||||
ts->chip.direction_output = max7301_direction_output;
|
||||
ts->chip.set_rv = max7301_set;
|
||||
ts->chip.set = max7301_set;
|
||||
|
||||
ts->chip.ngpio = PIN_NUMBER;
|
||||
ts->chip.can_sleep = true;
|
||||
|
|
|
@ -585,8 +585,8 @@ static int max732x_setup_gpio(struct max732x_chip *chip,
|
|||
gc->direction_input = max732x_gpio_direction_input;
|
||||
if (chip->dir_output) {
|
||||
gc->direction_output = max732x_gpio_direction_output;
|
||||
gc->set_rv = max732x_gpio_set_value;
|
||||
gc->set_multiple_rv = max732x_gpio_set_multiple;
|
||||
gc->set = max732x_gpio_set_value;
|
||||
gc->set_multiple = max732x_gpio_set_multiple;
|
||||
}
|
||||
gc->get = max732x_gpio_get_value;
|
||||
gc->can_sleep = true;
|
||||
|
|
|
@ -311,7 +311,7 @@ static int max77620_gpio_probe(struct platform_device *pdev)
|
|||
mgpio->gpio_chip.direction_input = max77620_gpio_dir_input;
|
||||
mgpio->gpio_chip.get = max77620_gpio_get;
|
||||
mgpio->gpio_chip.direction_output = max77620_gpio_dir_output;
|
||||
mgpio->gpio_chip.set_rv = max77620_gpio_set;
|
||||
mgpio->gpio_chip.set = max77620_gpio_set;
|
||||
mgpio->gpio_chip.set_config = max77620_gpio_set_config;
|
||||
mgpio->gpio_chip.ngpio = MAX77620_GPIO_NR;
|
||||
mgpio->gpio_chip.can_sleep = 1;
|
||||
|
|
|
@ -166,7 +166,7 @@ static int max77650_gpio_probe(struct platform_device *pdev)
|
|||
|
||||
chip->gc.direction_input = max77650_gpio_direction_input;
|
||||
chip->gc.direction_output = max77650_gpio_direction_output;
|
||||
chip->gc.set_rv = max77650_gpio_set_value;
|
||||
chip->gc.set = max77650_gpio_set_value;
|
||||
chip->gc.get = max77650_gpio_get_value;
|
||||
chip->gc.get_direction = max77650_gpio_get_direction;
|
||||
chip->gc.set_config = max77650_gpio_set_config;
|
||||
|
|
|
@ -469,7 +469,7 @@ static int max77759_gpio_probe(struct platform_device *pdev)
|
|||
chip->gc.direction_input = max77759_gpio_direction_input;
|
||||
chip->gc.direction_output = max77759_gpio_direction_output;
|
||||
chip->gc.get = max77759_gpio_get_value;
|
||||
chip->gc.set_rv = max77759_gpio_set_value;
|
||||
chip->gc.set = max77759_gpio_set_value;
|
||||
|
||||
girq = &chip->gc.irq;
|
||||
gpio_irq_chip_set_chip(girq, &max77759_gpio_irq_chip);
|
||||
|
|
|
@ -180,7 +180,7 @@ static int mb86s70_gpio_probe(struct platform_device *pdev)
|
|||
gchip->gc.request = mb86s70_gpio_request;
|
||||
gchip->gc.free = mb86s70_gpio_free;
|
||||
gchip->gc.get = mb86s70_gpio_get;
|
||||
gchip->gc.set_rv = mb86s70_gpio_set;
|
||||
gchip->gc.set = mb86s70_gpio_set;
|
||||
gchip->gc.to_irq = mb86s70_gpio_to_irq;
|
||||
gchip->gc.label = dev_name(&pdev->dev);
|
||||
gchip->gc.ngpio = 32;
|
||||
|
|
|
@ -103,7 +103,7 @@ static int mc33880_probe(struct spi_device *spi)
|
|||
mc->spi = spi;
|
||||
|
||||
mc->chip.label = DRIVER_NAME;
|
||||
mc->chip.set_rv = mc33880_set;
|
||||
mc->chip.set = mc33880_set;
|
||||
mc->chip.base = pdata->base;
|
||||
mc->chip.ngpio = PIN_NUMBER;
|
||||
mc->chip.can_sleep = true;
|
||||
|
|
|
@ -224,7 +224,7 @@ static void ioh_gpio_setup(struct ioh_gpio *chip, int num_port)
|
|||
gpio->direction_input = ioh_gpio_direction_input;
|
||||
gpio->get = ioh_gpio_get;
|
||||
gpio->direction_output = ioh_gpio_direction_output;
|
||||
gpio->set_rv = ioh_gpio_set;
|
||||
gpio->set = ioh_gpio_set;
|
||||
gpio->dbg_show = NULL;
|
||||
gpio->base = -1;
|
||||
gpio->ngpio = num_port;
|
||||
|
|
|
@ -397,7 +397,7 @@ mlxbf2_gpio_probe(struct platform_device *pdev)
|
|||
gc->ngpio = npins;
|
||||
gc->owner = THIS_MODULE;
|
||||
|
||||
irq = platform_get_irq(pdev, 0);
|
||||
irq = platform_get_irq_optional(pdev, 0);
|
||||
if (irq >= 0) {
|
||||
girq = &gs->gc.irq;
|
||||
gpio_irq_chip_set_chip(girq, &mlxbf2_gpio_irq_chip);
|
||||
|
|
|
@ -111,7 +111,7 @@ static int ltq_mm_probe(struct platform_device *pdev)
|
|||
|
||||
chip->mmchip.gc.ngpio = 16;
|
||||
chip->mmchip.gc.direction_output = ltq_mm_dir_out;
|
||||
chip->mmchip.gc.set_rv = ltq_mm_set;
|
||||
chip->mmchip.gc.set = ltq_mm_set;
|
||||
chip->mmchip.save_regs = ltq_mm_save_regs;
|
||||
|
||||
/* store the shadow value if one was passed by the devicetree */
|
||||
|
|
|
@ -367,7 +367,7 @@ static int bgpio_dir_out_err(struct gpio_chip *gc, unsigned int gpio,
|
|||
static int bgpio_simple_dir_out(struct gpio_chip *gc, unsigned int gpio,
|
||||
int val)
|
||||
{
|
||||
gc->set_rv(gc, gpio, val);
|
||||
gc->set(gc, gpio, val);
|
||||
|
||||
return bgpio_dir_return(gc, gpio, true);
|
||||
}
|
||||
|
@ -432,14 +432,14 @@ static int bgpio_dir_out_dir_first(struct gpio_chip *gc, unsigned int gpio,
|
|||
int val)
|
||||
{
|
||||
bgpio_dir_out(gc, gpio, val);
|
||||
gc->set_rv(gc, gpio, val);
|
||||
gc->set(gc, gpio, val);
|
||||
return bgpio_dir_return(gc, gpio, true);
|
||||
}
|
||||
|
||||
static int bgpio_dir_out_val_first(struct gpio_chip *gc, unsigned int gpio,
|
||||
int val)
|
||||
{
|
||||
gc->set_rv(gc, gpio, val);
|
||||
gc->set(gc, gpio, val);
|
||||
bgpio_dir_out(gc, gpio, val);
|
||||
return bgpio_dir_return(gc, gpio, true);
|
||||
}
|
||||
|
@ -528,18 +528,18 @@ static int bgpio_setup_io(struct gpio_chip *gc,
|
|||
if (set && clr) {
|
||||
gc->reg_set = set;
|
||||
gc->reg_clr = clr;
|
||||
gc->set_rv = bgpio_set_with_clear;
|
||||
gc->set_multiple_rv = bgpio_set_multiple_with_clear;
|
||||
gc->set = bgpio_set_with_clear;
|
||||
gc->set_multiple = bgpio_set_multiple_with_clear;
|
||||
} else if (set && !clr) {
|
||||
gc->reg_set = set;
|
||||
gc->set_rv = bgpio_set_set;
|
||||
gc->set_multiple_rv = bgpio_set_multiple_set;
|
||||
gc->set = bgpio_set_set;
|
||||
gc->set_multiple = bgpio_set_multiple_set;
|
||||
} else if (flags & BGPIOF_NO_OUTPUT) {
|
||||
gc->set_rv = bgpio_set_none;
|
||||
gc->set_multiple_rv = NULL;
|
||||
gc->set = bgpio_set_none;
|
||||
gc->set_multiple = NULL;
|
||||
} else {
|
||||
gc->set_rv = bgpio_set;
|
||||
gc->set_multiple_rv = bgpio_set_multiple;
|
||||
gc->set = bgpio_set;
|
||||
gc->set_multiple = bgpio_set_multiple;
|
||||
}
|
||||
|
||||
if (!(flags & BGPIOF_UNREADABLE_REG_SET) &&
|
||||
|
@ -676,7 +676,7 @@ int bgpio_init(struct gpio_chip *gc, struct device *dev,
|
|||
}
|
||||
|
||||
gc->bgpio_data = gc->read_reg(gc->reg_dat);
|
||||
if (gc->set_rv == bgpio_set_set &&
|
||||
if (gc->set == bgpio_set_set &&
|
||||
!(flags & BGPIOF_UNREADABLE_REG_SET))
|
||||
gc->bgpio_data = gc->read_reg(gc->reg_set);
|
||||
|
||||
|
|
|
@ -449,9 +449,9 @@ static int gpio_mockup_probe(struct platform_device *pdev)
|
|||
gc->owner = THIS_MODULE;
|
||||
gc->parent = dev;
|
||||
gc->get = gpio_mockup_get;
|
||||
gc->set_rv = gpio_mockup_set;
|
||||
gc->set = gpio_mockup_set;
|
||||
gc->get_multiple = gpio_mockup_get_multiple;
|
||||
gc->set_multiple_rv = gpio_mockup_set_multiple;
|
||||
gc->set_multiple = gpio_mockup_set_multiple;
|
||||
gc->direction_output = gpio_mockup_dirout;
|
||||
gc->direction_input = gpio_mockup_dirin;
|
||||
gc->get_direction = gpio_mockup_get_direction;
|
||||
|
|
|
@ -140,7 +140,7 @@ static int moxtet_gpio_probe(struct device *dev)
|
|||
chip->gpio_chip.direction_input = moxtet_gpio_direction_input;
|
||||
chip->gpio_chip.direction_output = moxtet_gpio_direction_output;
|
||||
chip->gpio_chip.get = moxtet_gpio_get_value;
|
||||
chip->gpio_chip.set_rv = moxtet_gpio_set_value;
|
||||
chip->gpio_chip.set = moxtet_gpio_set_value;
|
||||
chip->gpio_chip.base = -1;
|
||||
|
||||
chip->gpio_chip.ngpio = MOXTET_GPIO_NGPIOS;
|
||||
|
|
|
@ -153,7 +153,7 @@ static int mpc52xx_wkup_gpiochip_probe(struct platform_device *ofdev)
|
|||
gc->direction_input = mpc52xx_wkup_gpio_dir_in;
|
||||
gc->direction_output = mpc52xx_wkup_gpio_dir_out;
|
||||
gc->get = mpc52xx_wkup_gpio_get;
|
||||
gc->set_rv = mpc52xx_wkup_gpio_set;
|
||||
gc->set = mpc52xx_wkup_gpio_set;
|
||||
|
||||
ret = of_mm_gpiochip_add_data(ofdev->dev.of_node, &chip->mmchip, chip);
|
||||
if (ret)
|
||||
|
@ -315,7 +315,7 @@ static int mpc52xx_simple_gpiochip_probe(struct platform_device *ofdev)
|
|||
gc->direction_input = mpc52xx_simple_gpio_dir_in;
|
||||
gc->direction_output = mpc52xx_simple_gpio_dir_out;
|
||||
gc->get = mpc52xx_simple_gpio_get;
|
||||
gc->set_rv = mpc52xx_simple_gpio_set;
|
||||
gc->set = mpc52xx_simple_gpio_set;
|
||||
|
||||
ret = of_mm_gpiochip_add_data(ofdev->dev.of_node, &chip->mmchip, chip);
|
||||
if (ret)
|
||||
|
|
|
@ -150,7 +150,7 @@ static int mpfs_gpio_probe(struct platform_device *pdev)
|
|||
mpfs_gpio->gc.direction_output = mpfs_gpio_direction_output;
|
||||
mpfs_gpio->gc.get_direction = mpfs_gpio_get_direction;
|
||||
mpfs_gpio->gc.get = mpfs_gpio_get;
|
||||
mpfs_gpio->gc.set_rv = mpfs_gpio_set;
|
||||
mpfs_gpio->gc.set = mpfs_gpio_set;
|
||||
mpfs_gpio->gc.base = -1;
|
||||
mpfs_gpio->gc.ngpio = ngpios;
|
||||
mpfs_gpio->gc.label = dev_name(dev);
|
||||
|
|
|
@ -448,9 +448,9 @@ static int gpio_mpsse_probe(struct usb_interface *interface,
|
|||
priv->gpio.direction_input = gpio_mpsse_direction_input;
|
||||
priv->gpio.direction_output = gpio_mpsse_direction_output;
|
||||
priv->gpio.get = gpio_mpsse_gpio_get;
|
||||
priv->gpio.set_rv = gpio_mpsse_gpio_set;
|
||||
priv->gpio.set = gpio_mpsse_gpio_set;
|
||||
priv->gpio.get_multiple = gpio_mpsse_get_multiple;
|
||||
priv->gpio.set_multiple_rv = gpio_mpsse_set_multiple;
|
||||
priv->gpio.set_multiple = gpio_mpsse_set_multiple;
|
||||
priv->gpio.base = -1;
|
||||
priv->gpio.ngpio = 16;
|
||||
priv->gpio.offset = priv->intf_id * priv->gpio.ngpio;
|
||||
|
|
|
@ -658,7 +658,7 @@ static int msc313_gpio_probe(struct platform_device *pdev)
|
|||
gpiochip->direction_input = msc313_gpio_direction_input;
|
||||
gpiochip->direction_output = msc313_gpio_direction_output;
|
||||
gpiochip->get = msc313_gpio_get;
|
||||
gpiochip->set_rv = msc313_gpio_set;
|
||||
gpiochip->set = msc313_gpio_set;
|
||||
gpiochip->base = -1;
|
||||
gpiochip->ngpio = gpio->gpio_data->num;
|
||||
gpiochip->names = gpio->gpio_data->names;
|
||||
|
|
|
@ -1168,7 +1168,7 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
|
|||
mvchip->chip.direction_input = mvebu_gpio_direction_input;
|
||||
mvchip->chip.get = mvebu_gpio_get;
|
||||
mvchip->chip.direction_output = mvebu_gpio_direction_output;
|
||||
mvchip->chip.set_rv = mvebu_gpio_set;
|
||||
mvchip->chip.set = mvebu_gpio_set;
|
||||
if (have_irqs)
|
||||
mvchip->chip.to_irq = mvebu_gpio_to_irq;
|
||||
mvchip->chip.base = id * MVEBU_MAX_GPIO_PER_BANK;
|
||||
|
|
|
@ -674,7 +674,7 @@ static int nmk_gpio_probe(struct platform_device *pdev)
|
|||
chip->direction_input = nmk_gpio_make_input;
|
||||
chip->get = nmk_gpio_get_input;
|
||||
chip->direction_output = nmk_gpio_make_output;
|
||||
chip->set_rv = nmk_gpio_set_output;
|
||||
chip->set = nmk_gpio_set_output;
|
||||
chip->dbg_show = nmk_gpio_dbg_show;
|
||||
chip->can_sleep = false;
|
||||
chip->owner = THIS_MODULE;
|
||||
|
|
|
@ -211,7 +211,7 @@ static int npcm_sgpio_dir_in(struct gpio_chip *gc, unsigned int offset)
|
|||
|
||||
static int npcm_sgpio_dir_out(struct gpio_chip *gc, unsigned int offset, int val)
|
||||
{
|
||||
return gc->set_rv(gc, offset, val);
|
||||
return gc->set(gc, offset, val);
|
||||
}
|
||||
|
||||
static int npcm_sgpio_get_direction(struct gpio_chip *gc, unsigned int offset)
|
||||
|
@ -546,7 +546,7 @@ static int npcm_sgpio_probe(struct platform_device *pdev)
|
|||
gpio->chip.direction_output = npcm_sgpio_dir_out;
|
||||
gpio->chip.get_direction = npcm_sgpio_get_direction;
|
||||
gpio->chip.get = npcm_sgpio_get;
|
||||
gpio->chip.set_rv = npcm_sgpio_set;
|
||||
gpio->chip.set = npcm_sgpio_set;
|
||||
gpio->chip.label = dev_name(&pdev->dev);
|
||||
gpio->chip.base = -1;
|
||||
|
||||
|
|
|
@ -108,7 +108,7 @@ static int octeon_gpio_probe(struct platform_device *pdev)
|
|||
chip->direction_input = octeon_gpio_dir_in;
|
||||
chip->get = octeon_gpio_get;
|
||||
chip->direction_output = octeon_gpio_dir_out;
|
||||
chip->set_rv = octeon_gpio_set;
|
||||
chip->set = octeon_gpio_set;
|
||||
err = devm_gpiochip_add_data(&pdev->dev, chip, gpio);
|
||||
if (err)
|
||||
return err;
|
||||
|
|
|
@ -1046,8 +1046,8 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct device *pm_dev)
|
|||
bank->chip.get_multiple = omap_gpio_get_multiple;
|
||||
bank->chip.direction_output = omap_gpio_output;
|
||||
bank->chip.set_config = omap_gpio_set_config;
|
||||
bank->chip.set_rv = omap_gpio_set;
|
||||
bank->chip.set_multiple_rv = omap_gpio_set_multiple;
|
||||
bank->chip.set = omap_gpio_set;
|
||||
bank->chip.set_multiple = omap_gpio_set_multiple;
|
||||
if (bank->is_mpuio) {
|
||||
bank->chip.label = "mpuio";
|
||||
if (bank->regs->wkup_en)
|
||||
|
|
|
@ -166,7 +166,7 @@ static int palmas_gpio_probe(struct platform_device *pdev)
|
|||
palmas_gpio->gpio_chip.direction_input = palmas_gpio_input;
|
||||
palmas_gpio->gpio_chip.direction_output = palmas_gpio_output;
|
||||
palmas_gpio->gpio_chip.to_irq = palmas_gpio_to_irq;
|
||||
palmas_gpio->gpio_chip.set_rv = palmas_gpio_set;
|
||||
palmas_gpio->gpio_chip.set = palmas_gpio_set;
|
||||
palmas_gpio->gpio_chip.get = palmas_gpio_get;
|
||||
palmas_gpio->gpio_chip.parent = &pdev->dev;
|
||||
|
||||
|
|
|
@ -789,10 +789,10 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)
|
|||
gc->direction_input = pca953x_gpio_direction_input;
|
||||
gc->direction_output = pca953x_gpio_direction_output;
|
||||
gc->get = pca953x_gpio_get_value;
|
||||
gc->set_rv = pca953x_gpio_set_value;
|
||||
gc->set = pca953x_gpio_set_value;
|
||||
gc->get_direction = pca953x_gpio_get_direction;
|
||||
gc->get_multiple = pca953x_gpio_get_multiple;
|
||||
gc->set_multiple_rv = pca953x_gpio_set_multiple;
|
||||
gc->set_multiple = pca953x_gpio_set_multiple;
|
||||
gc->set_config = pca953x_gpio_set_config;
|
||||
gc->can_sleep = true;
|
||||
|
||||
|
|
|
@ -126,7 +126,7 @@ static int pca9570_probe(struct i2c_client *client)
|
|||
gpio->chip.owner = THIS_MODULE;
|
||||
gpio->chip.get_direction = pca9570_get_direction;
|
||||
gpio->chip.get = pca9570_get;
|
||||
gpio->chip.set_rv = pca9570_set;
|
||||
gpio->chip.set = pca9570_set;
|
||||
gpio->chip.base = -1;
|
||||
gpio->chip_data = device_get_match_data(&client->dev);
|
||||
gpio->chip.ngpio = gpio->chip_data->ngpio;
|
||||
|
|
|
@ -295,8 +295,8 @@ static int pcf857x_probe(struct i2c_client *client)
|
|||
gpio->chip.owner = THIS_MODULE;
|
||||
gpio->chip.get = pcf857x_get;
|
||||
gpio->chip.get_multiple = pcf857x_get_multiple;
|
||||
gpio->chip.set_rv = pcf857x_set;
|
||||
gpio->chip.set_multiple_rv = pcf857x_set_multiple;
|
||||
gpio->chip.set = pcf857x_set;
|
||||
gpio->chip.set_multiple = pcf857x_set_multiple;
|
||||
gpio->chip.direction_input = pcf857x_input;
|
||||
gpio->chip.direction_output = pcf857x_output;
|
||||
gpio->chip.ngpio = (uintptr_t)i2c_get_match_data(client);
|
||||
|
|
|
@ -219,7 +219,7 @@ static void pch_gpio_setup(struct pch_gpio *chip)
|
|||
gpio->direction_input = pch_gpio_direction_input;
|
||||
gpio->get = pch_gpio_get;
|
||||
gpio->direction_output = pch_gpio_direction_output;
|
||||
gpio->set_rv = pch_gpio_set;
|
||||
gpio->set = pch_gpio_set;
|
||||
gpio->base = -1;
|
||||
gpio->ngpio = gpio_pins[chip->ioh];
|
||||
gpio->can_sleep = false;
|
||||
|
|
|
@ -330,7 +330,7 @@ static int pl061_probe(struct amba_device *adev, const struct amba_id *id)
|
|||
pl061->gc.direction_input = pl061_direction_input;
|
||||
pl061->gc.direction_output = pl061_direction_output;
|
||||
pl061->gc.get = pl061_get_value;
|
||||
pl061->gc.set_rv = pl061_set_value;
|
||||
pl061->gc.set = pl061_set_value;
|
||||
pl061->gc.ngpio = PL061_GPIO_NR;
|
||||
pl061->gc.label = dev_name(dev);
|
||||
pl061->gc.parent = dev;
|
||||
|
|
|
@ -355,7 +355,7 @@ static int pxa_init_gpio_chip(struct pxa_gpio_chip *pchip, int ngpio, void __iom
|
|||
pchip->chip.direction_input = pxa_gpio_direction_input;
|
||||
pchip->chip.direction_output = pxa_gpio_direction_output;
|
||||
pchip->chip.get = pxa_gpio_get;
|
||||
pchip->chip.set_rv = pxa_gpio_set;
|
||||
pchip->chip.set = pxa_gpio_set;
|
||||
pchip->chip.to_irq = pxa_gpio_to_irq;
|
||||
pchip->chip.ngpio = ngpio;
|
||||
pchip->chip.request = gpiochip_generic_request;
|
||||
|
@ -499,8 +499,6 @@ static void pxa_mask_muxed_gpio(struct irq_data *d)
|
|||
gfer = readl_relaxed(base + GFER_OFFSET) & ~GPIO_bit(gpio);
|
||||
writel_relaxed(grer, base + GRER_OFFSET);
|
||||
writel_relaxed(gfer, base + GFER_OFFSET);
|
||||
|
||||
gpiochip_disable_irq(&pchip->chip, gpio);
|
||||
}
|
||||
|
||||
static int pxa_gpio_set_wake(struct irq_data *d, unsigned int on)
|
||||
|
@ -520,21 +518,17 @@ static void pxa_unmask_muxed_gpio(struct irq_data *d)
|
|||
unsigned int gpio = irqd_to_hwirq(d);
|
||||
struct pxa_gpio_bank *c = gpio_to_pxabank(&pchip->chip, gpio);
|
||||
|
||||
gpiochip_enable_irq(&pchip->chip, gpio);
|
||||
|
||||
c->irq_mask |= GPIO_bit(gpio);
|
||||
update_edge_detect(c);
|
||||
}
|
||||
|
||||
static const struct irq_chip pxa_muxed_gpio_chip = {
|
||||
static struct irq_chip pxa_muxed_gpio_chip = {
|
||||
.name = "GPIO",
|
||||
.irq_ack = pxa_ack_muxed_gpio,
|
||||
.irq_mask = pxa_mask_muxed_gpio,
|
||||
.irq_unmask = pxa_unmask_muxed_gpio,
|
||||
.irq_set_type = pxa_gpio_irq_type,
|
||||
.irq_set_wake = pxa_gpio_set_wake,
|
||||
.flags = IRQCHIP_IMMUTABLE,
|
||||
GPIOCHIP_IRQ_RESOURCE_HELPERS,
|
||||
};
|
||||
|
||||
static int pxa_gpio_nums(struct platform_device *pdev)
|
||||
|
|
|
@ -232,7 +232,7 @@ static int rpi_exp_gpio_probe(struct platform_device *pdev)
|
|||
rpi_gpio->gc.direction_output = rpi_exp_gpio_dir_out;
|
||||
rpi_gpio->gc.get_direction = rpi_exp_gpio_get_direction;
|
||||
rpi_gpio->gc.get = rpi_exp_gpio_get;
|
||||
rpi_gpio->gc.set_rv = rpi_exp_gpio_set;
|
||||
rpi_gpio->gc.set = rpi_exp_gpio_set;
|
||||
rpi_gpio->gc.can_sleep = true;
|
||||
|
||||
return devm_gpiochip_add_data(dev, &rpi_gpio->gc, rpi_gpio);
|
||||
|
|
|
@ -118,7 +118,7 @@ static int rc5t583_gpio_probe(struct platform_device *pdev)
|
|||
rc5t583_gpio->gpio_chip.free = rc5t583_gpio_free,
|
||||
rc5t583_gpio->gpio_chip.direction_input = rc5t583_gpio_dir_input,
|
||||
rc5t583_gpio->gpio_chip.direction_output = rc5t583_gpio_dir_output,
|
||||
rc5t583_gpio->gpio_chip.set_rv = rc5t583_gpio_set,
|
||||
rc5t583_gpio->gpio_chip.set = rc5t583_gpio_set,
|
||||
rc5t583_gpio->gpio_chip.get = rc5t583_gpio_get,
|
||||
rc5t583_gpio->gpio_chip.to_irq = rc5t583_gpio_to_irq,
|
||||
rc5t583_gpio->gpio_chip.ngpio = RC5T583_MAX_GPIO,
|
||||
|
|
|
@ -535,8 +535,8 @@ static int gpio_rcar_probe(struct platform_device *pdev)
|
|||
gpio_chip->get = gpio_rcar_get;
|
||||
gpio_chip->get_multiple = gpio_rcar_get_multiple;
|
||||
gpio_chip->direction_output = gpio_rcar_direction_output;
|
||||
gpio_chip->set_rv = gpio_rcar_set;
|
||||
gpio_chip->set_multiple_rv = gpio_rcar_set_multiple;
|
||||
gpio_chip->set = gpio_rcar_set;
|
||||
gpio_chip->set_multiple = gpio_rcar_set_multiple;
|
||||
gpio_chip->label = name;
|
||||
gpio_chip->parent = dev;
|
||||
gpio_chip->owner = THIS_MODULE;
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue