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

Commit 60e540d6 authored by Arnaud Patard's avatar Arnaud Patard Committed by Linus Torvalds
Browse files

sm501: gpio dynamic registration for PCI devices



The SM501 PCI card requires a dyanmic gpio allocation as the number of
cards is not known at compile time.  Fixup the platform data and
registration to deal with this.

Acked-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarArnaud Patard <apatard@mandriva.com>
Cc: David Brownell <david-b@pacbell.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent f61be273
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -996,11 +996,12 @@ static int __devinit sm501_gpio_register_chip(struct sm501_devdata *sm,
{
	struct sm501_platdata *pdata = sm->platdata;
	struct gpio_chip *gchip = &chip->gpio;
	unsigned base = pdata->gpio_base;
	int base = pdata->gpio_base;

	memcpy(chip, &gpio_chip_template, sizeof(struct gpio_chip));

	if (chip == &gpio->high) {
		if (base > 0)
			base += 32;
		chip->regbase = gpio->regs + SM501_GPIO_DATA_HIGH;
		gchip->label  = "SM501-HIGH";
@@ -1452,6 +1453,7 @@ static struct sm501_platdata_fb sm501_fb_pdata = {
static struct sm501_platdata sm501_pci_platdata = {
	.init		= &sm501_pci_initdata,
	.fb		= &sm501_fb_pdata,
	.gpio_base	= -1,
};

static int sm501_pci_probe(struct pci_dev *dev,
+1 −1
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ struct sm501_platdata {
	struct sm501_platdata_fb	*fb;

	int				 flags;
	unsigned			 gpio_base;
	int				 gpio_base;

	int	(*get_power)(struct device *dev);
	int	(*set_power)(struct device *dev, unsigned int on);