1. 12 11月, 2012 3 次提交
    • T
      pinctrl: mvebu: remove useless include · de1d7625
      Thomas Petazzoni 提交于
      Including the core.h header for the pinctrl subsystem is not
      necessary, and it is actually causing problems when moving the
      pinctrl-mvebu drivers into a separate subdirectory.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      de1d7625
    • T
      pinctrl: mvebu: allow plat-orion architectures to use pinctrl-mvebu · 55d2e40d
      Thomas Petazzoni 提交于
      The mach-kirkwood and mach-dove architectures have not yet been
      integrated into the mach-mvebu directory, which should ultimately
      contain the support for all Marvell SoCs from the Engineering Business
      Unit.
      
      However, before this can happen, we need to let mach-kirkwood and
      mach-dove use the pinctrl-mvebu driver, which supports the kirkwood
      and dove SoC families. In order to do that, we make this driver
      available as soon as PLAT_ORION is selected, instead of using
      ARCH_MVEBU as a condition. In the long term, PLAT_ORION should
      disappear and be fully replaced by ARCH_MVEBU, but the plan is to make
      the migration step by step, by first having the existing mach-*
      directories for Marvell SoCs converge on several infrastructures,
      including the pinctrl one.
      
      Also, like the spear pinctrl driver, we put all pinctrl-mvebu Kconfig
      options under a if, in order to avoid having certain options
      (PINCTRL_DOVE, PINCTRL_KIRKWOOD, etc.) selecting an option
      (PINCTLR_MVEBU) which itself has a dependency (on ARCH_MVEBU). In this
      a construct, the dependency is in fact ignored due to the selects.
      Signed-off-by: NThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      55d2e40d
    • L
      pinctrl: reserve pins when states are activated · 1a78958d
      Linus Walleij 提交于
      This switches the way that pins are reserved for multiplexing:
      
      We used to do this when the map was parsed, at the creation of
      the settings inside the pinctrl handle, in pinmux_map_to_setting().
      
      However this does not work for us, because we want to use the
      same set of pins with different devices at different times: the
      current code assumes that the pin groups in a pinmux state will
      only be used with one single device, albeit different groups can
      be active at different times. For example if a single I2C driver
      block is used to drive two different busses located on two
      pin groups A and B, then the pins for all possible states of a
      function are reserved when fetching the pinctrl handle: the
      I2C bus can choose either set A or set B by a mux state at
      runtime, but all pins in both group A and B (the superset) are
      effectively reserved for that I2C function and mapped to the
      device. Another device can never get in and use the pins in
      group A, even if the device/function is using group B at the
      moment.
      
      Instead: let use reserve the pins when the state is activated
      and drop them when the state is disabled, i.e. when we move to
      another state. This way different devices/functions can use the
      same pins at different times.
      
      We know that this is an odd way of doing things, but we really
      need to switch e.g. an SD-card slot to become a tracing output
      sink at runtime: we plug in a special "tracing card" then mux
      the pins that used to be an SD slot around to the tracing
      unit and push out tracing data there instead of SD-card
      traffic.
      
      As a side effect pinmux_free_setting() is unused but the stubs
      are kept for future additions of code.
      
      Cc: Patrice Chotard <patrice.chotard@st.com>
      Cc: Loic Pallardy <loic.pallardy@st.com>
      Acked-by: NStephen Warren <swarren@nvidia.com>
      Tested-by: NJean Nicolas Graux <jean-nicolas.graux@stericsson.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      1a78958d
  2. 10 11月, 2012 3 次提交
  3. 09 11月, 2012 8 次提交
  4. 08 11月, 2012 23 次提交
  5. 07 11月, 2012 3 次提交
    • K
      xen/generic: Disable fallback build on ARM. · 6bf926dd
      Konrad Rzeszutek Wilk 提交于
      As there is no need for it (the fallback code is for older
      hypervisors and they only run under x86), and also b/c
      we get:
      
      drivers/xen/fallback.c: In function 'xen_event_channel_op_compat':
      drivers/xen/fallback.c:10:19: error: storage size of 'op' isn't known
      drivers/xen/fallback.c:15:2: error: implicit declaration of function '_hypercall1' [-Werror=implicit-function-declaration]
      drivers/xen/fallback.c:15:19: error: expected expression before 'int'
      drivers/xen/fallback.c:18:7: error: 'EVTCHNOP_close' undeclared (first use in this function)
      drivers/xen/fallback.c:18:7: note: each undeclared identifier is reported only once for each function it appears in
      .. and more
      
      [v1: Moved the enablement to be covered by CONFIG_X86 per Ian's suggestion]
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      6bf926dd
    • M
      xen/events: fix RCU warning, or Call idle notifier after irq_enter() · 772aebce
      Mojiong Qiu 提交于
      exit_idle() should be called after irq_enter(), otherwise it throws:
      
      [ INFO: suspicious RCU usage. ]
      3.6.5 #1 Not tainted
      -------------------------------
      include/linux/rcupdate.h:725 rcu_read_lock() used illegally while idle!
      
      other info that might help us debug this:
      
      RCU used illegally from idle CPU!
      rcu_scheduler_active = 1, debug_locks = 1
      RCU used illegally from extended quiescent state!
      1 lock held by swapper/0/0:
       #0:  (rcu_read_lock){......}, at: [<ffffffff810e9fe0>] __atomic_notifier_call_chain+0x0/0x140
      
      stack backtrace:
      Pid: 0, comm: swapper/0 Not tainted 3.6.5 #1
      Call Trace:
       <IRQ>  [<ffffffff811259a2>] lockdep_rcu_suspicious+0xe2/0x130
       [<ffffffff810ea10c>] __atomic_notifier_call_chain+0x12c/0x140
       [<ffffffff810e9fe0>] ? atomic_notifier_chain_unregister+0x90/0x90
       [<ffffffff811216cd>] ? trace_hardirqs_off+0xd/0x10
       [<ffffffff810ea136>] atomic_notifier_call_chain+0x16/0x20
       [<ffffffff810777c3>] exit_idle+0x43/0x50
       [<ffffffff81568865>] xen_evtchn_do_upcall+0x25/0x50
       [<ffffffff81aa690e>] xen_do_hypervisor_callback+0x1e/0x30
       <EOI>  [<ffffffff810013aa>] ? hypercall_page+0x3aa/0x1000
       [<ffffffff810013aa>] ? hypercall_page+0x3aa/0x1000
       [<ffffffff81061540>] ? xen_safe_halt+0x10/0x20
       [<ffffffff81075cfa>] ? default_idle+0xba/0x570
       [<ffffffff810778af>] ? cpu_idle+0xdf/0x140
       [<ffffffff81a4d881>] ? rest_init+0x135/0x144
       [<ffffffff81a4d74c>] ? csum_partial_copy_generic+0x16c/0x16c
       [<ffffffff82520c45>] ? start_kernel+0x3db/0x3e8
       [<ffffffff8252066a>] ? repair_env_string+0x5a/0x5a
       [<ffffffff82520356>] ? x86_64_start_reservations+0x131/0x135
       [<ffffffff82524aca>] ? xen_start_kernel+0x465/0x46
      
      Git commit 98ad1cc1
      Author: Frederic Weisbecker <fweisbec@gmail.com>
      Date:   Fri Oct 7 18:22:09 2011 +0200
      
          x86: Call idle notifier after irq_enter()
      
      did this, but it missed the Xen code.
      Signed-off-by: NMojiong Qiu <mjqiu@tencent.com>
      Cc: stable@vger.kernel.org # from 3.3 and newer.
      Signed-off-by: NKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      772aebce
    • A
      drm/radeon/dce3: switch back to old pll allocation order for discrete · 1e4db5f2
      Alex Deucher 提交于
      The order shouldn't matter, but this seems to cause regressions for
      certain specific cases.  This should fix it for now.  We probably
      need to investigate a proper fix in the next development cycle.
      Signed-off-by: NAlex Deucher <alexander.deucher@amd.com>
      Cc: Andy Furniss <andyqos@ukfsn.org>
      1e4db5f2