1. 22 12月, 2011 1 次提交
    • K
      driver-core: remove sysdev.h usage. · edbaa603
      Kay Sievers 提交于
      The sysdev.h file should not be needed by any in-kernel code, so remove
      the .h file from these random files that seem to still want to include
      it.
      
      The sysdev code will be going away soon, so this include needs to be
      removed no matter what.
      
      Cc: Jiandong Zheng <jdzheng@broadcom.com>
      Cc: Scott Branden <sbranden@broadcom.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Kukjin Kim <kgene.kim@samsung.com>
      Cc: David Brown <davidb@codeaurora.org>
      Cc: Daniel Walker <dwalker@fifo99.com>
      Cc: Bryan Huntsman <bryanh@codeaurora.org>
      Cc: Ben Dooks <ben-linux@fluff.org>
      Cc: Wan ZongShun <mcuos.com@gmail.com>
      Cc: Haavard Skinnemoen <hskinnemoen@gmail.com>
      Cc: Hans-Christian Egtvedt <egtvedt@samfundet.no>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      Cc: "Venkatesh Pallipadi
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Matthew Garrett <mjg@redhat.com>
      Signed-off-by: NKay Sievers <kay.sievers@vrfy.org>
      edbaa603
  2. 07 11月, 2011 1 次提交
  3. 01 11月, 2011 2 次提交
    • P
      x86: efi_32.c is implicitly getting asm/desc.h via module.h · 783ac47c
      Paul Gortmaker 提交于
      We want to clean up the chain of includes stumbling through
      module.h, and when we do that, we'll see:
      
        CC      arch/x86/platform/efi/efi_32.o
        efi/efi_32.c: In function ‘efi_call_phys_prelog’:
        efi/efi_32.c:80: error: implicit declaration of function ‘get_cpu_gdt_table’
        efi/efi_32.c:82: error: implicit declaration of function ‘load_gdt’
        make[4]: *** [arch/x86/platform/efi/efi_32.o] Error 1
      
      Include asm/desc.h so that there are no implicit include assumptions.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      783ac47c
    • P
      x86: Fix files explicitly requiring export.h for EXPORT_SYMBOL/THIS_MODULE · 69c60c88
      Paul Gortmaker 提交于
      These files were implicitly getting EXPORT_SYMBOL via device.h
      which was including module.h, but that will be fixed up shortly.
      
      By fixing these now, we can avoid seeing things like:
      
      arch/x86/kernel/rtc.c:29: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’
      arch/x86/kernel/pci-dma.c:20: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL’
      arch/x86/kernel/e820.c:69: warning: type defaults to ‘int’ in declaration of ‘EXPORT_SYMBOL_GPL’
      
      [ with input from Randy Dunlap <rdunlap@xenotime.net> and also
        from Stephen Rothwell <sfr@canb.auug.org.au> ]
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      69c60c88
  4. 24 10月, 2011 2 次提交
  5. 14 10月, 2011 1 次提交
  6. 21 9月, 2011 3 次提交
    • M
      x86/rtc: Don't recursively acquire rtc_lock · 47997d75
      Matt Fleming 提交于
      A deadlock was introduced on x86 in commit ef68c8f8 ("x86:
      Serialize EFI time accesses on rtc_lock") because efi_get_time()
      and friends can be called with rtc_lock already held by
      read_persistent_time(), e.g.:
      
       timekeeping_init()
          read_persistent_clock()     <-- acquire rtc_lock
              efi_get_time()
                  phys_efi_get_time() <-- acquire rtc_lock <DEADLOCK>
      
      To fix this let's push the locking down into the get_wallclock()
      and set_wallclock() implementations.  Only the clock
      implementations that access the x86 RTC directly need to acquire
      rtc_lock, so it makes sense to push the locking down into the
      rtc, vrtc and efi code.
      
      The virtualization implementations don't require rtc_lock to be
      held because they provide their own serialization.
      Signed-off-by: NMatt Fleming <matt.fleming@intel.com>
      Acked-by: NJan Beulich <jbeulich@novell.com>
      Acked-by: Avi Kivity <avi@redhat.com> [for the virtualization aspect]
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Josh Boyer <jwboyer@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      47997d75
    • J
      x86: uv2: Workaround for UV2 Hub bug (system global address format) · 6a469e46
      Jack Steiner 提交于
      This is a workaround for a UV2 hub bug that affects the format of system
      global addresses.
      
      The GRU API for UV2 was inadvertently broken by a hardware change.  The
      format of the physical address used for TLB dropins and for addresses used
      with instructions running in unmapped mode has changed.  This change was
      not documented and became apparent only when diags failed running on
      system simulators.
      
      For UV1, TLB and GRU instruction physical addresses are identical to
      socket physical addresses (although high NASID bits must be OR'ed into the
      address).
      
      For UV2, socket physical addresses need to be converted.  The NODE portion
      of the physical address needs to be shifted so that the low bit is in bit
      39 or bit 40, depending on an MMR value.
      
      It is not yet clear if this bug will be fixed in a silicon respin.  If it
      is fixed, the hub revision will be incremented & the workaround disabled.
      Signed-off-by: NJack Steiner <steiner@sgi.com>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: <stable@kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      6a469e46
    • E
      x86: geode: New PCEngines Alix system driver · d4f3e350
      Ed Wildgoose 提交于
      This new driver replaces the old PCEngines Alix 2/3 LED driver with a
      new driver that controls the LEDs through the leds-gpio driver. The
      old driver accessed GPIOs directly, which created a conflict and
      prevented also loading the cs5535-gpio driver to read other GPIOs on
      the Alix board. With this new driver, we hook into leds-gpio which in
      turn uses GPIO to control the LEDs and therefore it's possible to
      control both the LEDs and access onboard GPIOs
      
      Driver is moved to platform/geode as requested by Grant and any other
      geode initialisation modules should move here also
      
      This driver is inspired by leds-net5501.c by Alessandro Zummo.
      
      Ideally, leds-net5501.c should also be moved to platform/geode. 
      Additionally the driver relies on parts of the patch: 7f131cf3 ("leds:
      leds-alix2c - take port address from MSR) by Daniel Mack to perform
      detection of the Alix board.
      
      [akpm@linux-foundation.org: include module.h]
      Signed-off-by: NEd Wildgoose <kernel@wildgooses.com>
      Cc: git@wildgooses.com
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Daniel Mack <daniel@caiaq.de>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Reviewed-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      d4f3e350
  7. 27 8月, 2011 2 次提交
  8. 06 8月, 2011 1 次提交
    • P
      x86, olpc: Wait for last byte of EC command to be accepted · a3ea14df
      Paul Fox 提交于
      When executing EC commands, only waiting when there are still
      more bytes to write is usually fine. However, if the system
      suspends very quickly after a call to olpc_ec_cmd(), the last
      data byte may not yet be transferred to the EC, and the command
      will not complete.
      
      This solves a bug where the SCI wakeup mask was not correctly
      written when going into suspend.
      
      It means that sometimes, on XO-1.5 (but not XO-1), the
      devices that were marked as wakeup sources can't wake up
      the system. e.g. you ask for wifi wakeups, suspend, but then
      incoming wifi frames don't wake up the system as they should.
      Signed-off-by: NPaul Fox <pgf@laptop.org>
      Signed-off-by: NDaniel Drake <dsd@laptop.org>
      Acked-by: NAndres Salomon <dilinger@queued.net>
      Cc: <stable@kernel.org>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      a3ea14df
  9. 04 8月, 2011 1 次提交
    • L
      mrst_pmu: driver for Intel Moorestown Power Management Unit · 6dccf9c5
      Len Brown 提交于
      The Moorestown (MRST) Power Management Unit (PMU) driver
      directs the SOC power states in the "Langwell" south complex (SCU).
      
      It hooks pci_platform_pm_ops[] and thus observes all PCI ".set_state"
      requests.  For devices in the SC, the pmu driver translates those
      PCI requests into the appropriate commands for the SCU.
      
      The PMU driver helps implement S0i3, a deep system idle power idle state.
      Entry into S0i3 is via cpuidle, just like regular processor c-states.
      S0i3 depends on pre-conditions including uni-processor, graphics off,
      and certain IO devices in the SC must be off.  If those pre-conditions
      are met, then the PMU allows cpuidle to enter S0i3, otherwise such requests
      are demoted, either to Atom C4 or Atom C6.
      
      This driver is based on prototype work by Bruce Flemming,
      Illyas Mansoor, Rajeev D. Muralidhar, Vishwesh M. Rudramuni,
      Hari Seshadri and Sujith Thomas.  The current driver also
      includes contributions from H. Peter Anvin, Arjan van de Ven,
      Kristen Accardi, and Yong Wang.
      
      Thanks for additional review feedback from Alan Cox and Randy Dunlap.
      Acked-by: NAlan Cox <alan@linux.intel.com>
      Acked-by: NH. Peter Anvin <hpa@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      6dccf9c5
  10. 25 7月, 2011 1 次提交
  11. 21 7月, 2011 1 次提交
  12. 07 7月, 2011 12 次提交
  13. 05 7月, 2011 1 次提交
  14. 21 6月, 2011 6 次提交
  15. 19 6月, 2011 1 次提交
  16. 07 6月, 2011 2 次提交
  17. 26 5月, 2011 1 次提交
    • M
      x86, efi: Retain boot service code until after switching to virtual mode · 916f676f
      Matthew Garrett 提交于
      UEFI stands for "Unified Extensible Firmware Interface", where "Firmware"
      is an ancient African word meaning "Why do something right when you can
      do it so wrong that children will weep and brave adults will cower before
      you", and "UEI" is Celtic for "We missed DOS so we burned it into your
      ROMs". The UEFI specification provides for runtime services (ie, another
      way for the operating system to be forced to depend on the firmware) and
      we rely on these for certain trivial tasks such as setting up the
      bootloader. But some hardware fails to work if we attempt to use these
      runtime services from physical mode, and so we have to switch into virtual
      mode. So far so dreadful.
      
      The specification makes it clear that the operating system is free to do
      whatever it wants with boot services code after ExitBootServices() has been
      called. SetVirtualAddressMap() can't be called until ExitBootServices() has
      been. So, obviously, a whole bunch of EFI implementations call into boot
      services code when we do that. Since we've been charmingly naive and
      trusted that the specification may be somehow relevant to the real world,
      we've already stuffed a picture of a penguin or something in that address
      space. And just to make things more entertaining, we've also marked it
      non-executable.
      
      This patch allocates the boot services regions during EFI init and makes
      sure that they're executable. Then, after SetVirtualAddressMap(), it
      discards them and everyone lives happily ever after. Except for the ones
      who have to work on EFI, who live sad lives haunted by the knowledge that
      someone's eventually going to write yet another firmware specification.
      
      [ hpa: adding this to urgent with a stable tag since it fixes currently-broken
        hardware.  However, I do not know what the dependencies are and so I do
        not know which -stable versions this may be a candidate for. ]
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      Link: http://lkml.kernel.org/r/1306331593-28715-1-git-send-email-mjg@redhat.comSigned-off-by: NH. Peter Anvin <hpa@linux.intel.com>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: <stable@kernel.org>
      916f676f
  18. 25 5月, 2011 1 次提交
    • C
      x86, UV: Clean up uv_tlb.c · f073cc8f
      Cliff Wickman 提交于
      SGI UV's uv_tlb.c driver has become rather hard to read, with overly large
      functions, non-standard coding style and (way) too long variable, constant
      and function names and non-obvious code flow sequences.
      
      This patch improves the readability and maintainability of the driver
      significantly, by doing the following strict code cleanups with no side
      effects:
      
       - Split long functions into shorter logical functions.
      
       - Shortened some variable and structure member names.
      
       - Added special functions for reads and writes of MMR regs with
         very long names.
      
       - Added the 'tunables' table to shortened tunables_write().
      
       - Added the 'stat_description' table to shorten uv_ptc_proc_write().
      
       - Pass fewer 'stat' arguments where it can be derived from the 'bcp'
         argument.
      
       - Function definitions consistent on one line, and inline in few (short) cases.
      
       - Moved some small structures and an atomic inline function to the header file.
      
       - Moved some local variables to the blocks where they are used.
      
       - Updated the copyright date.
      
       - Shortened uv_write_global_mmr64() etc. using some aliasing; no
         line breaks. Renamed many uv_.. functions that are not exported.
      
       - Aligned structure fields.
          [ note that not all structures are aligned the same way though; I'd like
            to keep the extensive commenting in some of them. ]
      
       - Shortened some long structure names.
      
       - Standard pass/fail exit from init_per_cpu()
      
       - Vertical alignment for mass initializations.
      
       - More separation between blocks of code.
      
      Tested on a 16-processor Altix UV.
      Signed-off-by: NCliff Wickman <cpw@sgi.com>
      Cc: penberg@kernel.org
      Link: http://lkml.kernel.org/r/E1QOw12-0004MN-Lp@eag09.americas.sgi.comSigned-off-by: NIngo Molnar <mingo@elte.hu>
      f073cc8f