1. 24 9月, 2013 4 次提交
    • N
      ARM: bL_switcher: synchronize the outbound with the inbound · 108a9640
      Nicolas Pitre 提交于
      Let's wait for the inbound CPU to come up and snoop some of the outbound
      CPU cache before bringing the outbound CPU down.  That should be more
      efficient than going down right away.
      
      Possible improvements might involve some monitoring of the CCI event
      counters.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      108a9640
    • D
      ARM: bL_switcher: Add switch completion callback for bL_switch_request() · 0577fee2
      Dave Martin 提交于
      There is no explicit way to know when a switch started via
      bL_switch_request() is complete.  This can lead to unpredictable
      behaviour when the switcher is controlled by a subsystem which
      makes dynamic decisions (such as cpufreq).
      
      The CPU PM notifier is not really suitable for signalling
      completion, because the CPU could get suspended and resumed for
      other, independent reasons while a switch request is in flight.
      Adding a whole new notifier for this seems excessive, and may tempt
      people to put heavyweight code on this path.
      
      This patch implements a new bL_switch_request_cb() function that
      allows for a per-request lightweight callback, private between the
      switcher and the caller of bL_switch_request_cb().
      
      Overlapping switches on a single CPU are considered incorrect if
      they are requested via bL_switch_request_cb() with a callback (they
      will lead to an unpredictable final state without explicit external
      synchronisation to force the requests into a particular order).
      Queuing requests robustly would be overkill because only one
      subsystem should be attempting to control the switcher at any time.
      
      Overlapping requests of this kind will be failed with -EBUSY to
      indicate that the second request won't take effect and the
      completer will never be called for it.
      
      bL_switch_request() is retained as a wrapper round the new function,
      with the old, fire-and-forget semantics.  In this case the last request
      will always win. The request may still be denied if a previous request
      with a completer is still pending.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      0577fee2
    • D
      ARM: bL_switcher: Add runtime control notifier · 491990e2
      Dave Martin 提交于
      Some subsystems will need to respond synchronously to runtime
      enabling and disabling of the switcher.
      
      This patch adds a dedicated notifier interface to support such
      subsystems.  Pre- and post- enable/disable notifications are sent
      to registered callbacks, allowing safe transition of non-b.L-
      transparent subsystems across these control transitions.
      
      Notifier callbacks may veto switcher (de)activation on pre notifications
      only.  Post notifications won't revert the action.
      
      If enabling or disabling of the switcher fails after the pre-change
      notification has been sent, subsystems which have registered
      notifiers can be left in an inappropriate state.
      
      This patch sends a suitable post-change notification on failure,
      indicating that the old state has been reestablished.
      
      For example, a failed initialisation will result in the following
      sequence:
      
          BL_NOTIFY_PRE_ENABLE
          /* switcher initialisation fails */
          BL_NOTIFY_POST_DISABLE
      
      It is the responsibility of notified subsystems to respond in an
      appropriate way.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      491990e2
    • D
      ARM: bL_switcher: Add synchronous enable/disable interface · c0f43751
      Dave Martin 提交于
      Some subsystems will need to know for sure whether the switcher is
      enabled or disabled during certain critical regions.
      
      This patch provides a simple mutex-based mechanism to discover
      whether the switcher is enabled and temporarily lock out further
      enable/disable:
      
        * bL_switcher_get_enabled() returns true iff the switcher is
          enabled and temporarily inhibits enable/disable.
      
        * bL_switcher_put_enabled() permits enable/disable of the switcher
          again after a previous call to bL_switcher_get_enabled().
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      c0f43751
  2. 17 9月, 2013 6 次提交
  3. 16 9月, 2013 3 次提交
    • L
      Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus · d8efd82e
      Linus Torvalds 提交于
      Pull MIPS fixes from Ralf Baechle:
       "These are four patches for three construction sites:
      
         - Fix register decoding for the combination of multi-core processors
           and multi-threading.
      
         - Two more fixes that are part of the ongoing DECstation resurrection
           work.  One of these touches a DECstation-only network driver.
      
         - Finally Markos' trivial build fix for the AP/SP support.
      
        (With this applied now all MIPS defconfigs are building again)"
      
      * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
        MIPS: kernel: vpe: Make vpe_attrs an array of pointers.
        MIPS: Fix SMP core calculations when using MT support.
        MIPS: DECstation I/O ASIC DMA interrupt handling fix
        MIPS: DECstation HRT initialization rearrangement
      d8efd82e
    • L
      Merge branch 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86 · cd619e21
      Linus Torvalds 提交于
      Pull x86 platform updates from Matthew Garrett:
       "Nothing amazing here, almost entirely cleanups and minor bugfixes and
        one bit of hardware enablement in the amilo-rfkill driver"
      
      * 'for_linus' of git://cavan.codon.org.uk/platform-drivers-x86:
        platform/x86: panasonic-laptop: reuse module_acpi_driver
        samsung-laptop: fix config build error
        platform: x86: remove unnecessary platform_set_drvdata()
        amilo-rfkill: Enable using amilo-rfkill with the FSC Amilo L1310.
        wmi: parse_wdg() should return kernel error codes
        hp_wmi: Fix unregister order in hp_wmi_rfkill_setup()
        platform: replace strict_strto*() with kstrto*()
        x86: irst: use module_acpi_driver to simplify the code
        x86: smartconnect: use module_acpi_driver to simplify the code
        platform samsung-q10: use ACPI instead of direct EC calls
        thinkpad_acpi: add the ability setting TPACPI_LED_NONE by quirk
        thinkpad_acpi: return -NODEV while operating uninitialized LEDs
      cd619e21
    • L
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 0375ec58
      Linus Torvalds 提交于
      Pull misc SCSI driver updates from James Bottomley:
       "This patch set is a set of driver updates (megaraid_sas, fnic, lpfc,
        ufs, hpsa) we also have a couple of bug fixes (sd out of bounds and
        ibmvfc error handling) and the first round of esas2r checker fixes and
        finally the much anticipated big endian additions for megaraid_sas"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (47 commits)
        [SCSI] fnic: fnic Driver Tuneables Exposed through CLI
        [SCSI] fnic: Kernel panic while running sh/nosh with max lun cfg
        [SCSI] fnic: Hitting BUG_ON(io_req->abts_done) in fnic_rport_exch_reset
        [SCSI] fnic: Remove QUEUE_FULL handling code
        [SCSI] fnic: On system with >1.1TB RAM, VIC fails multipath after boot up
        [SCSI] fnic: FC stat param seconds_since_last_reset not getting updated
        [SCSI] sd: Fix potential out-of-bounds access
        [SCSI] lpfc 8.3.42: Update lpfc version to driver version 8.3.42
        [SCSI] lpfc 8.3.42: Fixed issue of task management commands having a fixed timeout
        [SCSI] lpfc 8.3.42: Fixed inconsistent spin lock usage.
        [SCSI] lpfc 8.3.42: Fix driver's abort loop functionality to skip IOs already getting aborted
        [SCSI] lpfc 8.3.42: Fixed failure to allocate SCSI buffer on PPC64 platform for SLI4 devices
        [SCSI] lpfc 8.3.42: Fix WARN_ON when driver unloads
        [SCSI] lpfc 8.3.42: Avoided making pci bar ioremap call during dual-chute WQ/RQ pci bar selection
        [SCSI] lpfc 8.3.42: Fixed driver iocbq structure's iocb_flag field running out of space
        [SCSI] lpfc 8.3.42: Fix crash on driver load due to cpu affinity logic
        [SCSI] lpfc 8.3.42: Fixed logging format of setting driver sysfs attributes hard to interpret
        [SCSI] lpfc 8.3.42: Fixed back to back RSCNs discovery failure.
        [SCSI] lpfc 8.3.42: Fixed race condition between BSG I/O dispatch and timeout handling
        [SCSI] lpfc 8.3.42: Fixed function mode field defined too small for not recognizing dual-chute mode
        ...
      0375ec58
  4. 15 9月, 2013 4 次提交
  5. 14 9月, 2013 8 次提交
  6. 13 9月, 2013 15 次提交