1. 18 11月, 2011 1 次提交
  2. 16 11月, 2011 1 次提交
    • D
      sparc: Stash orig_i0 into %g6 instead of %g2 · e88d2468
      David S. Miller 提交于
      As per the comments added by this commit, %g2 turns out to not be a
      usable place to save away orig_i0 for syscall restart handling.
      
      In fact all of %g2, %g3, %g4, and %g5 are assumed to be saved across
      a system call by various bits of code in glibc.
      
      %g1 can't be used because that holds the syscall number, which would
      need to be saved and restored for syscall restart handling too, and
      that would only compound our problems :-)
      
      This leaves us with %g6 and %g7 which are for "system use".  %g7 is
      used as the "thread register" by glibc, but %g6 is used as a compiler
      and assembler temporary scratch register.  And in no instance is %g6
      used to hold a value across a system call.
      
      Therefore %g6 is safe for storing away orig_i0, at least for now.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e88d2468
  3. 15 11月, 2011 1 次提交
    • D
      sparc: Fix handling of orig_i0 wrt. debugging when restarting syscalls. · 1d299bc7
      David S. Miller 提交于
      Although we provide a proper way for a debugger to control whether
      syscall restart occurs, we run into problems because orig_i0 is not
      saved and restored properly.
      
      Luckily we can solve this problem without having to make debuggers
      aware of the issue.  Across system calls, several registers are
      considered volatile and can be safely clobbered.
      
      Therefore we use the pt_regs save area of one of those registers, %g2,
      as a place to save and restore orig_i0.
      
      Debuggers transparently will do the right thing because they save and
      restore this register already.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1d299bc7
  4. 14 11月, 2011 1 次提交
  5. 12 11月, 2011 3 次提交
  6. 11 11月, 2011 4 次提交
  7. 10 11月, 2011 3 次提交
    • Y
      arm/tegra: enable headphone detection gpio on seaboard · 686448d7
      Yufeng Shen 提交于
      Enable the headphone detection gpio on tegra platform.
      Signed-off-by: NYufeng Shen <miletus@chromium.org>
      Acked-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      686448d7
    • S
      arm/dt: Fix ventana SDHCI power-gpios · c406eeb3
      Stephen Warren 提交于
      Ventana uses the same SDHCI GPIOs as Seaboard; PI6 (70) is the power GPIO
      for the SD port, and there is no power GPIO for the MMC chip.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      c406eeb3
    • S
      arm/tegra: Don't create duplicate gpio and pinmux devices · 4b91b6fb
      Stephen Warren 提交于
      *_pinmux_init() register the GPIO and pinmux devices so that they're ready
      before any other device needs them.
      
      *_pinmux_init() are also called by board-dt.c in order to set up the GPIO
      and pinmux configurations. In this case, if we register the devices, they
      end up being probed once due to this registration, and a second time due
      to a device-tree node (or vice-versa). The second probe fails since the
      memory regions are already requested. Besides, we don't actually want the
      duplicated devices.
      
      To avoid this duplicate registration, modify *_pinmux_init() to check
      whether it's running on a DT machine. If not, register the pinmux devices.
      If so, don't register them.
      
      Finally, modify board-dt.c to call the *_pinmux_init() after all devices have
      been instantiated from device-tree. This allows the GPIO and pinmux devices
      to be instantiated and initialized before calling functions to configure the
      hardware.
      
      This has one disadvantage: The pinmux and GPIO initialization now happens
      after /all/ devices are instantiated, rather than after just gpio and
      pinmux but before anything else. So the correct HW configuration is not
      in place when e.g. the SD/MMC device is probed. Long-term, this should be
      solved by doing both:
      
      a) Initializing the HW state from DT nodes during GPIO and pinmux device
         probe.
      b) Using the deferred driver probe mechanism, so that drivers can defer
         their probe until after the gpio and pinmux drivers have probed.
      
      v2: s/int is_dt/bool is_dt/
      v3: Use of_machine_is_compatible inside *_pinmux_init() rather than passing
      an explicit parameter into the function from outside.
      Signed-off-by: NStephen Warren <swarren@nvidia.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      4b91b6fb
  8. 09 11月, 2011 26 次提交