1. 14 7月, 2006 34 次提交
  2. 13 7月, 2006 6 次提交
    • L
      Merge commit master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6 of HEAD · 0e2ffbf6
      Linus Torvalds 提交于
      * HEAD:
        [SPARC]: Fix OF register translations under sub-PCI busses.
        [SPARC64]: Refine Sabre wsync logic.
        [SERIAL] sunsu: Handle keyboard and mouse ports directly.
        [SPARC64]: Fix 2 bugs in sabre_irq_build()
        [SPARC64]: Update defconfig.
        [SPARC64]: Fix make headers_install
        [SPARC64]: of_device_register() error checking fix
      0e2ffbf6
    • G
      [PATCH] m68knommu: fix result type in get_user() macro · 1b0f06d0
      Greg Ungerer 提交于
      Keep the result holder variable the same type as the quantity we are
      retreiving in the get_user() macro - don't go through a pointer version
      of the user space address type.
      
      Using the address type causes problems if the address type was const
      (newer versions of gcc quite rightly error out for that condition).
      Signed-off-by: NGreg Ungerer <gerg@uclinux.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      1b0f06d0
    • C
      [PATCH] i386: system.h: remove extra semicolons and fix order · b43c7cec
      Chuck Ebbert 提交于
      include/asm-i386/system.h has trailing semicolons in some of the
      macros that cause legitimate code to fail compilation, so remove
      them. Also remove extra blank lines within one group of macros.
      
      And put stts() and clts() back together; they got separated somehow.
      Signed-off-by: NChuck Ebbert <76306.1226@compuserve.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b43c7cec
    • D
      [SPARC]: Fix OF register translations under sub-PCI busses. · a83f9823
      David S. Miller 提交于
      There is an implicit assumption in the code that ranges will translate
      to something that can fit in 2 32-bit cells, or a 64-bit value.  For
      certain kinds of things below PCI this isn't necessarily true.
      
      Here is what the relevant OF device hierarchy looks like for one of
      the serial controllers on an Ultra5:
      
          Node 0xf005f1e0
              ranges:      00000000.00000000.00000000.000001fe.01000000.00000000.01000000
                           01000000.00000000.00000000.000001fe.02000000.00000000.01000000
                           02000000.00000000.00000000.000001ff.00000000.00000001.00000000
                           03000000.00000000.00000000.000001ff.00000000.00000001.00000000
              device_type:  'pci'
              model:  'SUNW,sabre'
      
              Node 0xf005f9d4
                  device_type:  'pci'
                  model:  'SUNW,simba'
      
                 Node 0xf0060d24
                      ranges:  00000010.00000000 82010810.00000000.f0000000 01000000
      			 00000014.00000000 82010814.00000000.f1000000 00800000
                      name:  'ebus'
      
                      Node 0xf0062dac
                          reg:  00000014.003083f8.00000008 --> 0x1ff.f13083f8
                          device_type:  'serial'
                          name:  'su'
      
      So the correct translation here is:
      
      1) Match "su" register to second ranges entry of 'ebus', which translates
         into a PCI triplet "82010814.00000000.f1000000" of size 00800000, which
         gives us "82010814.00000000.f13083f8".
      
      2) Pass-through "SUNW,simba" since it lacks ranges property
      
      3) Match "82010814.00000000.f13083f8" to third ranges property of PCI
         controller node 'SUNW,sabre', and we arrive at the final physical
         MMIO address of "0x1fff13083f8".
      
      Due to the 2-cell assumption, we couldn't translate to a PCI 3-cell
      value, and we couldn't perform a pass-thru on it either.
      
      It was easiest to just stop splitting the ranges application operation
      between two methods, ->map and ->translate, and just let ->map do all
      the work.  That way it would work purely on 32-bit cell arrays instead
      of having to "return" some value like a u64.
      
      It's still not %100 correct because the out-of-range check is still
      done using the 64 least significant bits of the range and address.
      But it does work for all the cases I've thrown at it so far.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a83f9823
    • D
      [SPARC64]: Refine Sabre wsync logic. · 9bbd952e
      David S. Miller 提交于
      It is only needed when there is a PCI-PCI bridge sitting
      between the device and the PCI host controller which is
      not a Simba APB bridge.
      
      Add logic to handle two special cases:
      
      1) device behind EBUS, which sits on PCI
      2) PCI controller interrupts
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9bbd952e
    • D
      [SERIAL] sunsu: Handle keyboard and mouse ports directly. · 91d1ed1a
      David S. Miller 提交于
      The sunsu_ports[] array exists merely to be able to easily
      use an integer index to get at the proper serial console
      port struct.
      
      We size this only for real ports, not for the keyboard and
      mouse, and thus keyboard and mouse port registration would
      fail.
      
      Fix this by dynamically allocating the port struct for the
      keyboard and mouse, instead of using the sunsu_ports[]
      array.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      91d1ed1a