diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-16 13:22:21 -0700 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-16 13:22:21 -0700 | 
| commit | 73f8be297e90f6ebb951c30490376833f8782349 (patch) | |
| tree | 1e15c36ed544e33b82e2bbbc6ba8d787c9d3e7e4 /drivers/mfd/mfd-core.c | |
| parent | c500ce38e52bb2f526b84f41314a9a9f83a2fdf5 (diff) | |
| parent | b186b12487efc80c44f2f0d26cc26eb249cf1524 (diff) | |
| download | olio-linux-3.10-73f8be297e90f6ebb951c30490376833f8782349.tar.xz olio-linux-3.10-73f8be297e90f6ebb951c30490376833f8782349.zip  | |
Merge tag 'mfd-for-linus-3.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull mfd fixes from Samuel Ortiz:
 "This is the remaining MFD fixes for 3.6, with 5 pending fixes:
   - A tps65217 build error fix.
   - A lcp_ich regression fix caused by the MFD driver failing to
     initialize the watchdog sub device due to ACPI conflicts.
   - 2 MAX77693 interrupt handling bug fixes.
   - An MFD core fix, adding an IRQ domain argument to the MFD device
     addition API in order to prevent silent and potentially harmful
     remapping behaviour changes for drivers supporting non-DT
     platforms."
* tag 'mfd-for-linus-3.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6:
  mfd: MAX77693: Fix NULL pointer error when initializing irqs
  mfd: MAX77693: Fix interrupt handling bug
  mfd: core: Push irqdomain mapping out into devices
  mfd: lpc_ich: Fix a 3.5 kernel regression for iTCO_wdt driver
  mfd: Move tps65217 regulator plat data handling to regulator
Diffstat (limited to 'drivers/mfd/mfd-core.c')
| -rw-r--r-- | drivers/mfd/mfd-core.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c index 0c3a01cde2f..f8b77711ad2 100644 --- a/drivers/mfd/mfd-core.c +++ b/drivers/mfd/mfd-core.c @@ -74,12 +74,11 @@ static int mfd_platform_add_cell(struct platform_device *pdev,  static int mfd_add_device(struct device *parent, int id,  			  const struct mfd_cell *cell,  			  struct resource *mem_base, -			  int irq_base) +			  int irq_base, struct irq_domain *domain)  {  	struct resource *res;  	struct platform_device *pdev;  	struct device_node *np = NULL; -	struct irq_domain *domain = NULL;  	int ret = -ENOMEM;  	int r; @@ -97,7 +96,6 @@ static int mfd_add_device(struct device *parent, int id,  		for_each_child_of_node(parent->of_node, np) {  			if (of_device_is_compatible(np, cell->of_compatible)) {  				pdev->dev.of_node = np; -				domain = irq_find_host(parent->of_node);  				break;  			}  		} @@ -177,7 +175,7 @@ fail_alloc:  int mfd_add_devices(struct device *parent, int id,  		    struct mfd_cell *cells, int n_devs,  		    struct resource *mem_base, -		    int irq_base) +		    int irq_base, struct irq_domain *domain)  {  	int i;  	int ret = 0; @@ -191,7 +189,8 @@ int mfd_add_devices(struct device *parent, int id,  	for (i = 0; i < n_devs; i++) {  		atomic_set(&cnts[i], 0);  		cells[i].usage_count = &cnts[i]; -		ret = mfd_add_device(parent, id, cells + i, mem_base, irq_base); +		ret = mfd_add_device(parent, id, cells + i, mem_base, +				     irq_base, domain);  		if (ret)  			break;  	} @@ -247,7 +246,8 @@ int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)  	for (i = 0; i < n_clones; i++) {  		cell_entry.name = clones[i];  		/* don't give up if a single call fails; just report error */ -		if (mfd_add_device(pdev->dev.parent, -1, &cell_entry, NULL, 0)) +		if (mfd_add_device(pdev->dev.parent, -1, &cell_entry, NULL, 0, +				   NULL))  			dev_err(dev, "failed to create platform device '%s'\n",  					clones[i]);  	}  |