1. 06 7月, 2012 1 次提交
    • R
      PM / Domains: Add device domain data reference counter · 1d5fcfec
      Rafael J. Wysocki 提交于
      Add a mechanism for counting references to the
      struct generic_pm_domain_data object pointed to by
      dev->power.subsys_data->domain_data if the device in question
      belongs to a generic PM domain.
      
      This change is necessary for a subsequent patch making it possible to
      allocate that object from within pm_genpd_add_callbacks(), so that
      drivers can attach their PM domain device callbacks to devices before
      those devices are added to PM domains.
      
      This patch has been tested on the SH7372 Mackerel board.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      1d5fcfec
  2. 04 7月, 2012 4 次提交
    • R
      PM / Domains: Add preliminary support for cpuidle, v2 · cbc9ef02
      Rafael J. Wysocki 提交于
      On some systems there are CPU cores located in the same power
      domains as I/O devices.  Then, power can only be removed from the
      domain if all I/O devices in it are not in use and the CPU core
      is idle.  Add preliminary support for that to the generic PM domains
      framework.
      
      First, the platform is expected to provide a cpuidle driver with one
      extra state designated for use with the generic PM domains code.
      This state should be initially disabled and its exit_latency value
      should be set to whatever time is needed to bring up the CPU core
      itself after restoring power to it, not including the domain's
      power on latency.  Its .enter() callback should point to a procedure
      that will remove power from the domain containing the CPU core at
      the end of the CPU power transition.
      
      The remaining characteristics of the extra cpuidle state, referred to
      as the "domain" cpuidle state below, (e.g. power usage, target
      residency) should be populated in accordance with the properties of
      the hardware.
      
      Next, the platform should execute genpd_attach_cpuidle() on the PM
      domain containing the CPU core.  That will cause the generic PM
      domains framework to treat that domain in a special way such that:
      
       * When all devices in the domain have been suspended and it is about
         to be turned off, the states of the devices will be saved, but
         power will not be removed from the domain.  Instead, the "domain"
         cpuidle state will be enabled so that power can be removed from
         the domain when the CPU core is idle and the state has been chosen
         as the target by the cpuidle governor.
      
       * When the first I/O device in the domain is resumed and
         __pm_genpd_poweron(() is called for the first time after
         power has been removed from the domain, the "domain" cpuidle
         state will be disabled to avoid subsequent surprise power removals
         via cpuidle.
      
      The effective exit_latency value of the "domain" cpuidle state
      depends on the time needed to bring up the CPU core itself after
      restoring power to it as well as on the power on latency of the
      domain containing the CPU core.  Thus the "domain" cpuidle state's
      exit_latency has to be recomputed every time the domain's power on
      latency is updated, which may happen every time power is restored
      to the domain, if the measured power on latency is greater than
      the latency stored in the corresponding generic_pm_domain structure.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Reviewed-by: NKevin Hilman <khilman@ti.com>
      cbc9ef02
    • R
      Merge branch 'pm-cpuidle' into pm-domains · e3b8cdd8
      Rafael J. Wysocki 提交于
      * pm-cpuidle:
        PM / cpuidle: Add driver reference counter
        cpuidle: move field disable from per-driver to per-cpu
      e3b8cdd8
    • R
      PM / cpuidle: Add driver reference counter · 6e797a07
      Rafael J. Wysocki 提交于
      Add a reference counter for the cpuidle driver, so that it can't
      be unregistered when it is in use.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      6e797a07
    • S
      cpuidle: move field disable from per-driver to per-cpu · dc7fd275
      ShuoX Liu 提交于
      Andrew J.Schorr raises a question.  When he changes the disable setting on
      a single CPU, it affects all the other CPUs.  Basically, currently, the
      disable field is per-driver instead of per-cpu.  All the C states of the
      same driver are shared by all CPU in the same machine.
      
      The patch changes the `disable' field to per-cpu, so we could set this
      separately for each cpu.
      Signed-off-by: NShuoX Liu <shuox.liu@intel.com>
      Reported-by: NAndrew J.Schorr <aschorr@telemetry-investments.com>
      Reviewed-by: NYanmin Zhang <yanmin_zhang@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      dc7fd275
  3. 01 7月, 2012 11 次提交
    • R
      PM / Domains: Do not stop devices after restoring their states · 80de3d7f
      Rafael J. Wysocki 提交于
      While resuming a device belonging to a PM domain,
      pm_genpd_runtime_resume() calls __pm_genpd_restore_device() to
      restore its state, if necessary.  The latter starts the device,
      using genpd_start_dev(), restores its state, using
      genpd_restore_dev(), and then stops it, using genpd_stop_dev().
      However, this last operation is not necessary, because the
      device is supposed to be operational after pm_genpd_runtime_resume()
      has returned and because of it pm_genpd_runtime_resume() has to
      call genpd_start_dev() once again for the "restored" device, which
      is inefficient.
      
      To make things more efficient, remove the call to genpd_stop_dev()
      from __pm_genpd_restore_device() and the direct call to
      genpd_start_dev() from pm_genpd_runtime_resume().  [Of course,
      genpd_start_dev() still has to be called by it for devices with the
      power.irq_safe flag set, because __pm_genpd_restore_device() is not
      executed for them.]
      
      This change has been tested on the SH7372 Mackerel board.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      80de3d7f
    • R
      PM / Domains: Use subsystem runtime suspend/resume callbacks by default · 0b589741
      Rafael J. Wysocki 提交于
      Currently, the default "save state" and "restore state" routines
      for generic PM domains, pm_genpd_default_save_state() and
      pm_genpd_default_restore_state(), respectively, only use runtime PM
      callbacks provided by device drivers, but in general those callbacks
      need not provide the entire necessary functionality.  Namely, in
      general it may be necessary to execute subsystem (i.e. device type,
      device class or bus type) callbacks that will carry out all of the
      necessary operations.
      
      For this reason, modify pm_genpd_default_save_state() and
      pm_genpd_default_restore_state() to execute subsystem callbacks,
      if they are provided, and fall back to driver callbacks otherwise.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      0b589741
    • L
      Linux 3.5-rc5 · 6887a413
      Linus Torvalds 提交于
      6887a413
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c07978b3
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "Another week, another batch of fixes.
      
        All are small, contained, targeted fixes for explicit problems --
        mostly build and boot failures across i.MX, OMAP, Renesas/Shmobile and
        Samsung."
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: imx6q: fix suspend regression caused by common clk migration
        ARM: OMAP4470: Fix OMAP4470 boot failure
        ARM: EXYNOS: Fix EXYNOS_DEV_DMA Kconfig entry
        ARM: OMAP2+: nand: fix build error when CONFIG_MTD_ONENAND_OMAP2=n
        ARM: shmobile: r8a7779: Route all interrupts to ARM
        ARM: shmobile: kzm9d: use late init machine hook
        ARM: shmobile: kzm9g: use late init machine hook
        ARM: mach-shmobile: armadillo800eva: Use late init machine hook
        ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping
        ARM: mach-shmobile: add missing GPIO IRQ configuration on mackerel
        ARM: mach-shmobile: Fix build when SMP is enabled and EMEV2 is not enabled
        ARM: shmobile: sh7372: bugfix: chclr_offset base
        ARM: shmobile: sh73a0: bugfix: SY-DMAC number
        ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL
      c07978b3
    • R
      printk.c: fix kernel-doc warnings · 4f0f4af5
      Randy Dunlap 提交于
      Fix kernel-doc warnings in printk.c: use correct parameter name.
      
        Warning(kernel/printk.c:2429): No description found for parameter 'buf'
        Warning(kernel/printk.c:2429): Excess function parameter 'line' description in 'kmsg_dump_get_buffer'
      Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4f0f4af5
    • R
      linux/irq.h: fix kernel-doc warning · 87fac288
      Randy Dunlap 提交于
      Fix kernel-doc warning.  This struct member was removed in commit
      87568264 ("irq: Remove irq_chip->release()") so remove its
      associated kernel-doc entry also.
      
        Warning(include/linux/irq.h:338): Excess struct/union/enum/typedef member 'release' description in 'irq_chip'
      Signed-off-by: NRandy Dunlap <rdunlap@xenotime.net>
      Cc: Richard Weinberger <richard@nod.at>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      87fac288
    • O
      Merge branch 'v3.5-samsung-fixes-1' of... · 5d5474df
      Olof Johansson 提交于
      Merge branch 'v3.5-samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into fixes
      
      * 'v3.5-samsung-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung:
        ARM: EXYNOS: Fix EXYNOS_DEV_DMA Kconfig entry
        ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping
        ARM: SAMSUNG: Should check for IS_ERR(clk) instead of NULL
      5d5474df
    • S
      ARM: imx6q: fix suspend regression caused by common clk migration · 5ae95aef
      Shawn Guo 提交于
      When moving to common clk framework, the imx6q clks rom and mmdc_ch1_axi
      get different on/off states than old clk driver, which breaks suspend
      function.  There might be a better way to manage these clocks, but let's
      takes the old clk driver approach to fix the regression first.
      Signed-off-by: NShawn Guo <shawn.guo@linaro.org>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      5ae95aef
    • O
      Merge tag 'omap-fixes-for-v3.5-rc4' of... · e5a5192a
      Olof Johansson 提交于
      Merge tag 'omap-fixes-for-v3.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes
      
      From Tony Lindgren:
      "Here's one more regression fix that I missed earlier, and a
       trivial fix to get omap4470 booting."
      
      * tag 'omap-fixes-for-v3.5-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
        ARM: OMAP4470: Fix OMAP4470 boot failure
        ARM: OMAP2+: nand: fix build error when CONFIG_MTD_ONENAND_OMAP2=n
      e5a5192a
    • L
      Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · c7676092
      Linus Torvalds 提交于
      Pull ACPI & Power Management patches from Len Brown.
      
      * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        acpi_pad: fix power_saving thread deadlock
        ACPI video: Still use ACPI backlight control if _DOS doesn't exist
        ACPI, APEI, Avoid too much error reporting in runtime
        ACPI: Add a quirk for "AMILO PRO V2030" to ignore the timer overriding
        ACPI: Remove one board specific WARN when ignoring timer overriding
        ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases
        ACPI, x86: fix Dell M6600 ACPI reboot regression via DMI
        ACPI sysfs.c strlen fix
      c7676092
    • L
      Merge tag 'driver-core-3.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 21f27291
      Linus Torvalds 提交于
      Pull driver Core fixes from Greg Kroah-Hartman:
       "Here is a number of printk() fixes, specifically a few reported by the
        crazy blog program that ships in SUSE releases (that's "boot log" and
        not "web log", it predates the general "blog" terminology by many
        years), and the restoration of the continuation line functionality
        reported by Stephen and others.  Yes, the changes seem a bit big this
        late in the cycle, but I've been beating on them for a while now, and
        Stephen has even optimized it a bit, so all looks good to me.
      
        The other change in here is a Documentation update for the stable
        kernel rules describing how some distro patches should be backported,
        to hopefully drive a bit more response from the distros to the stable
        kernel releases.
      
        Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
      
      * tag 'driver-core-3.5-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        printk: Optimize if statement logic where newline exists
        printk: flush continuation lines immediately to console
        syslog: fill buffer with more than a single message for SYSLOG_ACTION_READ
        Revert "printk: return -EINVAL if the message len is bigger than the buf size"
        printk: fix regression in SYSLOG_ACTION_CLEAR
        stable: Allow merging of backports for serious user-visible performance issues
      21f27291
  4. 30 6月, 2012 9 次提交
  5. 29 6月, 2012 15 次提交