]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
Merge tag 'staging-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 May 2013 16:27:49 +0000 (09:27 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 May 2013 16:27:49 +0000 (09:27 -0700)
Pull staging driver fixes from Greg Kroah-Hartman:
 "Here are some staging tree driver fixes for 3.10-rc2

  The drivers/iio/ changes are here as they are still tied into
  drivers/staging/iio/.

  Nothing major, just a number of small bugfixes, and a larger
  documentation update for the ramster code."

* tag 'staging-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (28 commits)
  staging: dwc2: remove compile warning for USB_DWC2_TRACK_MISSED_SOFS
  iio: exynos_adc: fix wrong structure extration in suspend and resume
  iio:common:st: added disable function after read info raw data
  iio: dac: Fix build error when CONFIG_SPI_MASTER=y && CONFIG_I2C=m
  staging:iio:light:tsl2x7x: fix the error handling in tsl2x7x_probe()
  staging/iio/mxs-lradc: fix preenable for multiple buffers
  staging: imx-drm: imx-tve: Check the return value of 'regulator_enable()'
  staging: video: imx: Select VIDEOMODE_HELPERS for parallel display
  staging: ramster: add how-to document
  staging: dwc2: Fix dma-enabled platform devices using a default dma_mask
  staging: vt6656: [bug] Fix missing spin lock in iwctl_siwpower.
  staging: Swap zram and zsmalloc in Kconfig
  staging: android: logger: use kuid_t instead of uid_t
  staging: zcache: Fix incorrect module_param_array types
  staging/solo6x10: depend on CONFIG_FONTS
  staging/drm: imx: add missing dependencies
  staging: ste_rmi4: Suppress 'ignoring return value of â€˜regulator_enable()' warning
  staging: sep: fix driver build and kconfig
  staging: nvec: cleanup childs on remove
  staging: nvec: implement unregistering of notifiers
  ...

1  2 
drivers/staging/dwc2/Kconfig
drivers/staging/dwc2/platform.c
drivers/staging/nvec/nvec.c

index bbee1775d49e40cf8ec8f0f12dc679a2e435e77b,609d35c19c3561b34401b571008653c8808185e0..d15d9d58e5ac2a3022c92e9843f7de7b64685f1f
@@@ -2,6 -2,7 +2,6 @@@ config USB_DWC
        tristate "DesignWare USB2 DRD Core Support"
        depends on USB
        depends on VIRT_TO_BUS
 -      select USB_OTG_UTILS
        help
          Say Y or M here if your system has a Dual Role HighSpeed
          USB controller based on the DesignWare HSOTG IP Core.
@@@ -38,6 -39,7 +38,7 @@@ config USB_DWC2_TRACK_MISSED_SOF
        bool "Enable Missed SOF Tracking"
        help
          Say Y here to enable logging of missed SOF events to the dmesg log.
+         WARNING: This feature is still experimental.
          If in doubt, say N.
  
  config USB_DWC2_DEBUG_PERIODIC
index b610960e93d3fd10f1a6a34d56fa7bea83e52711,afc515bd8233baedb7ace47d45ee991bdd479a78..44cce2fa6361194a36ac72dff5825575fd324bf5
@@@ -95,6 -95,14 +95,14 @@@ static int dwc2_driver_probe(struct pla
  
        hsotg->dev = &dev->dev;
  
+       /*
+        * Use reasonable defaults so platforms don't have to provide these.
+        */
+       if (!dev->dev.dma_mask)
+               dev->dev.dma_mask = &dev->dev.coherent_dma_mask;
+       if (!dev->dev.coherent_dma_mask)
+               dev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
        irq = platform_get_irq(dev, 0);
        if (irq < 0) {
                dev_err(&dev->dev, "missing IRQ resource\n");
        }
  
        res = platform_get_resource(dev, IORESOURCE_MEM, 0);
 -      if (!res) {
 -              dev_err(&dev->dev, "missing memory base resource\n");
 -              return -EINVAL;
 -      }
 -
        hsotg->regs = devm_ioremap_resource(&dev->dev, res);
        if (IS_ERR(hsotg->regs))
                return PTR_ERR(hsotg->regs);
index 863b22e51b45f87bc074b4b5920ab25fa0ef1d38,0e34679916b8d165b05c7e49c1d2c431f8d230a4..197c393c4ca752a9f50062e2852afd2bb8be89a3
@@@ -123,6 -123,20 +123,20 @@@ int nvec_register_notifier(struct nvec_
  }
  EXPORT_SYMBOL_GPL(nvec_register_notifier);
  
+ /**
+  * nvec_unregister_notifier - Unregister a notifier with nvec
+  * @nvec: A &struct nvec_chip
+  * @nb: The notifier block to unregister
+  *
+  * Unregisters a notifier with @nvec. The notifier will be removed from the
+  * atomic notifier chain.
+  */
+ int nvec_unregister_notifier(struct nvec_chip *nvec, struct notifier_block *nb)
+ {
+       return atomic_notifier_chain_unregister(&nvec->notifier_list, nb);
+ }
+ EXPORT_SYMBOL_GPL(nvec_unregister_notifier);
  /**
   * nvec_status_notifier - The final notifier
   *
@@@ -185,7 -199,7 +199,7 @@@ static struct nvec_msg *nvec_msg_alloc(
   *
   * Free the given message
   */
inline void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg)
+ void nvec_msg_free(struct nvec_chip *nvec, struct nvec_msg *msg)
  {
        if (msg != &nvec->tx_scratch)
                dev_vdbg(nvec->dev, "INFO: Free %ti\n", msg - nvec->msg_pool);
@@@ -800,6 -814,11 +814,6 @@@ static int tegra_nvec_probe(struct plat
        }
  
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 -      if (!res) {
 -              dev_err(&pdev->dev, "no mem resource?\n");
 -              return -ENODEV;
 -      }
 -
        base = devm_ioremap_resource(&pdev->dev, res);
        if (IS_ERR(base))
                return PTR_ERR(base);
                return -ENODEV;
        }
  
-       i2c_clk = clk_get(&pdev->dev, "div-clk");
+       i2c_clk = devm_clk_get(&pdev->dev, "div-clk");
        if (IS_ERR(i2c_clk)) {
                dev_err(nvec->dev, "failed to get controller clock\n");
                return -ENODEV;
@@@ -897,8 -916,11 +911,11 @@@ static int tegra_nvec_remove(struct pla
  
        nvec_toggle_global_events(nvec, false);
        mfd_remove_devices(nvec->dev);
+       nvec_unregister_notifier(nvec, &nvec->nvec_status_notifier);
        cancel_work_sync(&nvec->rx_work);
        cancel_work_sync(&nvec->tx_work);
+       /* FIXME: needs check wether nvec is responsible for power off */
+       pm_power_off = NULL;
  
        return 0;
  }