Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d72cbed0 authored by Guennadi Liakhovetski's avatar Guennadi Liakhovetski Committed by Linus Torvalds
Browse files

gpiolib: i2c/spi drivers: handle rmmod better



Use the newly introduced owner field in struct gpio_chip to protect the
current (small) set of non-SOC GPIO drivers from being unloaded while any of
their GPIOs are in use.

Signed-off-by: default avatarGuennadi Liakhovetski <g.liakhovetski@pengutronix.de>
[ add mcp23s08 and pcf857x ]
Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 438d8908
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ static int mcp23s08_probe(struct spi_device *spi)
	mcp->chip.base = pdata->base;
	mcp->chip.ngpio = 8;
	mcp->chip.can_sleep = 1;
	mcp->chip.owner = THIS_MODULE;

	spi_set_drvdata(spi, mcp);

+1 −0
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ static void pca953x_setup_gpio(struct pca953x_chip *chip, int gpios)
	gc->base = chip->gpio_start;
	gc->ngpio = gpios;
	gc->label = chip->client->name;
	gc->owner = THIS_MODULE;
}

static int __devinit pca953x_probe(struct i2c_client *client)
+1 −0
Original line number Diff line number Diff line
@@ -159,6 +159,7 @@ static int pcf857x_probe(struct i2c_client *client)

	gpio->chip.base = pdata->gpio_base;
	gpio->chip.can_sleep = 1;
	gpio->chip.owner = THIS_MODULE;

	/* NOTE:  the OnSemi jlc1562b is also largely compatible with
	 * these parts, notably for output.  It has a low-resolution