Merge tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Tue, 11 Dec 2012 21:13:55 +0000 (13:13 -0800)]
Pull driver core updates from Greg Kroah-Hartman:
 "Here's the large driver core updates for 3.8-rc1.

  The biggest thing here is the various __dev* marking removals.  This
  is going to be a pain for the merge with different subsystem trees, I
  know, but all of the patches included here have been ACKed by their
  various subsystem maintainers, as they wanted them to go through here.

  If this is too much of a pain, I can pull all of them out of this tree
  and just send you one with the other fixes/updates and then, after
  3.8-rc1 is out, do the rest of the removals to ensure we catch them
  all, it's up to you.  The merges should all be trivial, and Stephen
  has been doing them all in linux-next for a few weeks now quite
  easily.

  Other than the __dev* marking removals, there's nothing major here,
  some firmware loading updates and other minor things in the driver
  core.

  All of these have (much to Stephen's annoyance), been in linux-next
  for a while.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"

Fixed up trivial conflicts in drivers/gpio/gpio-{em,stmpe}.c due to gpio
update.

* tag 'driver-core-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (93 commits)
  modpost.c: Stop checking __dev* section mismatches
  init.h: Remove __dev* sections from the kernel
  acpi: remove use of __devinit
  PCI: Remove __dev* markings
  PCI: Always build setup-bus when PCI is enabled
  PCI: Move pci_uevent into pci-driver.c
  PCI: Remove CONFIG_HOTPLUG ifdefs
  unicore32/PCI: Remove CONFIG_HOTPLUG ifdefs
  sh/PCI: Remove CONFIG_HOTPLUG ifdefs
  powerpc/PCI: Remove CONFIG_HOTPLUG ifdefs
  mips/PCI: Remove CONFIG_HOTPLUG ifdefs
  microblaze/PCI: Remove CONFIG_HOTPLUG ifdefs
  dma: remove use of __devinit
  dma: remove use of __devexit_p
  firewire: remove use of __devinitdata
  firewire: remove use of __devinit
  leds: remove use of __devexit
  leds: remove use of __devinit
  leds: remove use of __devexit_p
  mmc: remove use of __devexit
  ...

51 files changed:
1  2 
drivers/acpi/apei/ghes.c
drivers/acpi/hed.c
drivers/base/core.c
drivers/base/platform.c
drivers/clk/clk-wm831x.c
drivers/gpio/gpio-em.c
drivers/gpio/gpio-max730x.c
drivers/gpio/gpio-mcp23s08.c
drivers/gpio/gpio-mvebu.c
drivers/gpio/gpio-omap.c
drivers/gpio/gpio-pca953x.c
drivers/gpio/gpio-pch.c
drivers/gpio/gpio-stmpe.c
drivers/gpio/gpio-tc3589x.c
drivers/gpio/gpio-tegra.c
drivers/gpio/gpio-twl4030.c
drivers/gpio/gpio-vt8500.c
drivers/hwmon/coretemp.c
drivers/hwmon/da9052-hwmon.c
drivers/hwmon/fam15h_power.c
drivers/mfd/arizona-core.c
drivers/mfd/db8500-prcmu.c
drivers/mfd/twl-core.c
drivers/mmc/host/dw_mmc-pci.c
drivers/mmc/host/dw_mmc-pltfm.c
drivers/mmc/host/omap_hsmmc.c
drivers/mmc/host/sdhci-dove.c
drivers/mmc/host/sdhci-esdhc-imx.c
drivers/mmc/host/sdhci-of-esdhc.c
drivers/mmc/host/sdhci-pci.c
drivers/mmc/host/sdhci-pxav3.c
drivers/mmc/host/sdhci-s3c.c
drivers/mmc/host/sdhci-spear.c
drivers/mmc/host/sh_mmcif.c
drivers/mmc/host/sh_mobile_sdhi.c
drivers/pinctrl/pinctrl-bcm2835.c
drivers/pinctrl/pinctrl-imx.c
drivers/pinctrl/pinctrl-mxs.c
drivers/pinctrl/pinctrl-single.c
drivers/pinctrl/pinctrl-sirf.c
drivers/pinctrl/pinctrl-tegra.c
drivers/pinctrl/pinctrl-u300.c
drivers/pinctrl/spear/pinctrl-spear.c
drivers/pinctrl/spear/pinctrl-spear.h
drivers/pinctrl/spear/pinctrl-spear1310.c
drivers/pinctrl/spear/pinctrl-spear1340.c
drivers/pinctrl/spear/pinctrl-spear300.c
drivers/pinctrl/spear/pinctrl-spear310.c
drivers/pinctrl/spear/pinctrl-spear320.c
drivers/rapidio/rio.c
lib/Makefile

Simple merge
Simple merge
Simple merge
Simple merge
@@@ -387,10 -391,22 +387,10 @@@ static int wm831x_clk_probe(struct plat
        dev_set_drvdata(&pdev->dev, clkdata);
  
        return 0;
 -
 -err_fll:
 -      clk_unregister(clkdata->fll);
 -err_xtal:
 -      clk_unregister(clkdata->xtal);
 -      return ret;
  }
  
- static int __devexit wm831x_clk_remove(struct platform_device *pdev)
+ static int wm831x_clk_remove(struct platform_device *pdev)
  {
 -      struct wm831x_clk *clkdata = dev_get_drvdata(&pdev->dev);
 -
 -      clk_unregister(clkdata->clkout);
 -      clk_unregister(clkdata->fll);
 -      clk_unregister(clkdata->xtal);
 -
        return 0;
  }
  
@@@ -233,7 -234,41 +233,7 @@@ static struct irq_domain_ops em_gio_irq
        .map    = em_gio_irq_domain_map,
  };
  
- static int __devinit em_gio_probe(struct platform_device *pdev)
 -static int __devinit em_gio_irq_domain_init(struct em_gio_priv *p)
 -{
 -      struct platform_device *pdev = p->pdev;
 -      struct gpio_em_config *pdata = pdev->dev.platform_data;
 -
 -      p->irq_base = irq_alloc_descs(pdata->irq_base, 0,
 -                                    pdata->number_of_pins, numa_node_id());
 -      if (p->irq_base < 0) {
 -              dev_err(&pdev->dev, "cannot get irq_desc\n");
 -              return p->irq_base;
 -      }
 -      pr_debug("gio: hw base = %d, nr = %d, sw base = %d\n",
 -               pdata->gpio_base, pdata->number_of_pins, p->irq_base);
 -
 -      p->irq_domain = irq_domain_add_legacy(pdev->dev.of_node,
 -                                            pdata->number_of_pins,
 -                                            p->irq_base, 0,
 -                                            &em_gio_irq_domain_ops, p);
 -      if (!p->irq_domain) {
 -              irq_free_descs(p->irq_base, pdata->number_of_pins);
 -              return -ENXIO;
 -      }
 -
 -      return 0;
 -}
 -
 -static void em_gio_irq_domain_cleanup(struct em_gio_priv *p)
 -{
 -      struct gpio_em_config *pdata = p->pdev->dev.platform_data;
 -
 -      irq_free_descs(p->irq_base, pdata->number_of_pins);
 -      /* FIXME: irq domain wants to be freed! */
 -}
 -
+ static int em_gio_probe(struct platform_device *pdev)
  {
        struct gpio_em_config *pdata = pdev->dev.platform_data;
        struct em_gio_priv *p;
Simple merge
@@@ -473,9 -473,9 +473,9 @@@ fail
  
  /*----------------------------------------------------------------------*/
  
 -#ifdef CONFIG_I2C
 +#if IS_ENABLED(CONFIG_I2C)
  
- static int __devinit mcp230xx_probe(struct i2c_client *client,
+ static int mcp230xx_probe(struct i2c_client *client,
                                    const struct i2c_device_id *id)
  {
        struct mcp23s08_platform_data *pdata;
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -292,40 -287,23 +292,40 @@@ int stmpe_gpio_irq_map(struct irq_domai
        return 0;
  }
  
 -static void stmpe_gpio_irq_remove(struct stmpe_gpio *stmpe_gpio)
 +void stmpe_gpio_irq_unmap(struct irq_domain *d, unsigned int virq)
  {
 -      int base = stmpe_gpio->irq_base;
 -      int irq;
 -
 -      for (irq = base; irq < base + stmpe_gpio->chip.ngpio; irq++) {
  #ifdef CONFIG_ARM
 -              set_irq_flags(irq, 0);
 +      set_irq_flags(virq, 0);
  #endif
 -              irq_set_chip_and_handler(irq, NULL, NULL);
 -              irq_set_chip_data(irq, NULL);
 +      irq_set_chip_and_handler(virq, NULL, NULL);
 +      irq_set_chip_data(virq, NULL);
 +}
 +
 +static const struct irq_domain_ops stmpe_gpio_irq_simple_ops = {
 +      .unmap = stmpe_gpio_irq_unmap,
 +      .map = stmpe_gpio_irq_map,
 +      .xlate = irq_domain_xlate_twocell,
 +};
 +
- static int __devinit stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio)
++static int stmpe_gpio_irq_init(struct stmpe_gpio *stmpe_gpio)
 +{
 +      int base = stmpe_gpio->irq_base;
 +
 +      stmpe_gpio->domain = irq_domain_add_simple(NULL,
 +                              stmpe_gpio->chip.ngpio, base,
 +                              &stmpe_gpio_irq_simple_ops, stmpe_gpio);
 +      if (!stmpe_gpio->domain) {
 +              dev_err(stmpe_gpio->dev, "failed to create irqdomain\n");
 +              return -ENOSYS;
        }
 +
 +      return 0;
  }
  
- static int __devinit stmpe_gpio_probe(struct platform_device *pdev)
+ static int stmpe_gpio_probe(struct platform_device *pdev)
  {
        struct stmpe *stmpe = dev_get_drvdata(pdev->dev.parent);
 +      struct device_node *np = pdev->dev.of_node;
        struct stmpe_gpio_platform_data *pdata;
        struct stmpe_gpio *stmpe_gpio;
        int ret;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -530,9 -515,17 +530,9 @@@ static int sdhci_s3c_parse_dt(struct de
        }
  
        return 0;
 -
 - err_free_dt_gpios:
 -      while (--cnt >= 0)
 -              gpio_free(ourhost->gpios[cnt]);
 - err_free_dt_cd_gpio:
 -      if (pdata->cd_type == S3C_SDHCI_CD_INTERNAL)
 -              gpio_free(ourhost->ext_cd_gpio);
 -      return -EINVAL;
  }
  #else
- static int __devinit sdhci_s3c_parse_dt(struct device *dev,
+ static int sdhci_s3c_parse_dt(struct device *dev,
                struct sdhci_host *host, struct s3c_sdhci_platdata *pdata)
  {
        return -EINVAL;
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1305,9 -1285,8 +1305,9 @@@ out_no_gpio_remap
        return ret;
  }
  
- static const struct of_device_id pinmux_ids[] __devinitconst = {
+ static const struct of_device_id pinmux_ids[] = {
        { .compatible = "sirf,prima2-pinctrl" },
 +      { .compatible = "sirf,marco-pinctrl" },
        {}
  };
  
Simple merge
@@@ -1093,9 -1156,17 +1093,9 @@@ static int __devinit u300_pmx_probe(str
        dev_info(&pdev->dev, "initialized U300 pin control driver\n");
  
        return 0;
 -
 -out_no_pmx:
 -      iounmap(upmx->virtbase);
 -out_no_remap:
 -      platform_set_drvdata(pdev, NULL);
 -out_no_memregion:
 -      release_mem_region(upmx->phybase, upmx->physize);
 -      return ret;
  }
  
- static int __devexit u300_pmx_remove(struct platform_device *pdev)
+ static int u300_pmx_remove(struct platform_device *pdev)
  {
        struct u300_pmx *upmx = platform_get_drvdata(pdev);
  
Simple merge
@@@ -182,23 -135,10 +182,23 @@@ struct spear_pmx 
  };
  
  /* exported routines */
 +static inline u32 pmx_readl(struct spear_pmx *pmx, u32 reg)
 +{
 +      return readl_relaxed(pmx->vbase + reg);
 +}
 +
 +static inline void pmx_writel(struct spear_pmx *pmx, u32 val, u32 reg)
 +{
 +      writel_relaxed(val, pmx->vbase + reg);
 +}
 +
  void __devinit pmx_init_addr(struct spear_pinctrl_machdata *machdata, u16 reg);
 +void __devinit
 +pmx_init_gpio_pingroup_addr(struct spear_gpio_pingroup *gpio_pingroup,
 +              unsigned count, u16 reg);
  int __devinit spear_pinctrl_probe(struct platform_device *pdev,
                struct spear_pinctrl_machdata *machdata);
- int __devexit spear_pinctrl_remove(struct platform_device *pdev);
+ int spear_pinctrl_remove(struct platform_device *pdev);
  
  #define SPEAR_PIN_0_TO_101            \
        PINCTRL_PIN(0, "PLGPIO0"),      \
Simple merge
diff --cc lib/Makefile
Simple merge