1. 14 12月, 2010 4 次提交
    • C
      firewire: ohci: properly clear posted write errors · 8327b37b
      Clemens Ladisch 提交于
      To remove the error information from the controller's queue and to allow
      more posted writes, the driver has to read the failed posted write
      address before clearing the postedWriteErr interrupt bit.
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      
      (Stefan R:) The spec is somewhat fuzzy about the actual requirements.
      To err on the safe side, let's do these two read accesses.
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      8327b37b
    • C
      firewire: ohci: flush MMIO writes in the interrupt handler · e597e989
      Clemens Ladisch 提交于
      Make sure that interrupt event clear bit writes are executed before the
      interrupt handler returns.
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      e597e989
    • C
      firewire: ohci: fix AT context initialization error handling · c088ab30
      Clemens Ladisch 提交于
      Add proper error handling for the context_init() calls.
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      c088ab30
    • C
      firewire: ohci: Asynchronous Reception rewrite · 7a39d8b8
      Clemens Ladisch 提交于
      Move the AR DMA descriptors out of the buffer pages, and map the buffer
      pages linearly into the kernel's address space.  This allows the driver
      to ignore any page boundaries in the DMA data and thus to avoid any
      copying around of packet payloads.
      
      This fixes the bug where S800 packets that are so big (> 4080 bytes)
      that they can be split over three pages were not handled correctly.
      
      Due to the changed algorithm, we can now use arbitrarily many buffer
      pages, which improves performance because the controller can more easily
      unload its DMA FIFO.
      
      Furthermore, using streaming DMA mappings should improve perfomance on
      architectures where coherent DMA mappings are not cacheable.  Even on
      other architectures, the caching behaviour should be improved slightly
      because the CPU no longer writes to the buffer pages.
      
      v2: Detect the last filled buffer page by searching the descriptor's
          residual count value fields in order (like in the old code), instead
          of going backwards through the transfer status fields; it looks as
          if some controllers do not set the latter correctly.
      
      v3: Fix an old resume bug that would now make the handler run into
          a BUG_ON, and replace that check with more useful error handling.
          Increase the buffer size for better performance with non-TI chips.
      Signed-off-by: NClemens Ladisch <clemens@ladisch.de>
      
      Maxim Levitsky writes:
          Works almost perfectly.  I can still see RCODE_BUSY errors
          sometimes, not very often though.  64K here eliminates these errors
          completely.  This is most likely due to nouveau drivers and lowest
          perf level I use to lower card temperature.  That increases
          latencies too much I think.  Besides that the IO is just perfect.
      Tested-by: NMaxim Levitsky <maximlevitsky@gmail.com>
      Signed-off-by: NStefan Richter <stefanr@s5r6.in-berlin.de>
      7a39d8b8
  2. 12 12月, 2010 4 次提交
  3. 07 12月, 2010 7 次提交
  4. 06 12月, 2010 6 次提交
  5. 05 12月, 2010 4 次提交
    • G
      parisc: Fix GSC PS/2 driver name for keyboard and mouse · 7bfbeae9
      Guy Martin 提交于
      Fix kernel warnings caused by the driver name of GSC PS/2 containing '/'.
      
      The following warnings are observed on a K410 system :
      
      [   10.700000] name 'GSC PS/2 keyboard'
      [   10.732000] ------------[ cut here ]------------
      [   10.772000] WARNING: at fs/proc/generic.c:323
      [   10.828000] Modules linked in:
      [   10.916000]
      [   10.916000]      YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
      [   10.936000] PSW: 00000000000001000000000000001111 Not tainted
      [   10.992000] r00-03  0004000f 104fe3e0 10201ea0 00000000
      [   11.060000] r04-07  4fc405c8 00000006 4fc405c8 4fc40694
      [   11.124000] r08-11  4fc40708 10438aa0 00000001 1043bfc8
      [   11.184000] r12-15  104ff2a0 104ff2a0 4fc38634 104ff2a0
      [   11.248000] r16-19  f0001570 10479af0 f000006c 1044fe50
      [   11.308000] r20-23  00000000 00000028 104cd858 00000000
      [   11.372000] r24-27  ffffffff 0000000e 1044fe10 1043bbe0
      [   11.436000] r28-31  0000002b 00000078 4fc40800 0000000d
      [   11.496000] sr00-03  00000000 00000000 00000000 00000000
      [   11.560000] sr04-07  00000000 00000000 00000000 00000000
      [   11.624000]
      [   11.688000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
      [   11.704000]  IIR: 03ffe01f    ISR: 00000000  IOR: 0000000d
      [   11.772000]  CPU:        0   CR30: 4fc40000 CR31: f01043b0
      [   11.836000]  ORIG_R28: 4fc40940
      [   11.904000]  IAOQ[0]: __xlate_proc_name+0x90/0xd0
      [   11.940000]  IAOQ[1]: __xlate_proc_name+0x94/0xd0
      [   11.996000]  RP(r2): __xlate_proc_name+0x90/0xd0
      [   12.052000] Backtrace:
      [   12.108000]  [<10257790>] vsnprintf+0x290/0x4f4
      [   12.136000]
      [   12.188000] ---[ end trace 91bf6ece17e322dd ]---
      [   12.208000] serio: GSC PS/2 keyboard port at 0x0001c000 irq 19 @ 10:12:7
      [   12.264000] name 'GSC PS/2 mouse'
      [   12.344000] ------------[ cut here ]------------
      [   12.384000] WARNING: at fs/proc/generic.c:323
      [   12.436000] Modules linked in:
      [   12.524000]
      [   12.528000]      YZrvWESTHLNXBCVMcbcbcbcbOGFRQPDI
      [   12.544000] PSW: 00000000000001000000000000001111 Tainted: G        W
      [   12.600000] r00-03  0004000f 104fe3e0 10201ea0 00000000
      [   12.680000] r04-07  4fc405c8 00000006 4fc405c8 4fc40694
      [   12.740000] r08-11  4fc40708 10438aa0 00000001 1043bfc8
      [   12.804000] r12-15  104ff2a0 104ff2a0 4fc38634 104ff2a0
      [   12.868000] r16-19  f0001570 10479af0 f000006c 1044fe50
      [   12.928000] r20-23  00000000 00000025 104cd858 00000000
      [   12.992000] r24-27  ffffffff 0000000e 1044fe10 1043bbe0
      [   13.056000] r28-31  00000028 00000078 4fc40800 0000000d
      [   13.116000] sr00-03  00000000 00000000 00000000 00000000
      [   13.180000] sr04-07  00000000 00000000 00000000 00000000
      [   13.244000]
      [   13.308000] IASQ: 00000000 00000000 IAOQ: 10201ea0 10201ea4
      [   13.324000]  IIR: 03ffe01f    ISR: 00000000  IOR: 0000000d
      [   13.392000]  CPU:        0   CR30: 4fc40000 CR31: f01043b0
      [   13.456000]  ORIG_R28: 4fc40940
      [   13.524000]  IAOQ[0]: __xlate_proc_name+0x90/0xd0
      [   13.560000]  IAOQ[1]: __xlate_proc_name+0x94/0xd0
      [   13.616000]  RP(r2): __xlate_proc_name+0x90/0xd0
      [   13.672000] Backtrace:
      [   13.728000]  [<10257790>] vsnprintf+0x290/0x4f4
      [   13.756000]
      [   13.808000] ---[ end trace 91bf6ece17e322de ]---
      [   13.828000] serio: GSC PS/2 mouse port at 0x00020100 irq 19 @ 10:12:8
      Signed-off-by: NGuy Martin <gmsoft@tuxicoman.be>
      Acked-by: NHelge Deller <deller@gmx.de>
      Signed-off-by: NKyle McMartin <kyle@mcmartin.ca>
      7bfbeae9
    • G
      parisc: KittyHawk LCD fix · 79a04296
      Guy Martin 提交于
      K class aka KittyHawk don't have LED support on their LCD. Installing
      HP-UX confirmed this. The current led_wq fills the LCD with black
      characters each time it runs.
      
      The patch prevents the led_wq workqueue and its proc entry to be
      created for KittyHawk machines.
      
      It also increase min_cmd_delay as currently, one character out of two
      is lost when a string is sent to the LCD.
      Signed-off-by: NGuy Martin <gmsoft@tuxicoman.be>
      Signed-off-by: NKyle McMartin <kyle@mcmartin.c>
      79a04296
    • J
      parisc: convert the rest of the irq handlers to simple/percpu · 51890613
      James Bottomley 提交于
      The generic conversion eliminates the spurious no_ack and no_end
      routines, converts all the cascaded handlers to handle_simple_irq() and
      makes iosapic use a modified handle_percpu_irq() to become the same as
      the CPU irq's.  This isn't an essential change, but it eliminates the
      mask/unmask overhead of handle_level_irq().
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      Tested-by: NHelge Deller <deller@gmx.de>
      Signed-off-by: NKyle McMartin <kyle@mcmartin.ca>
      51890613
    • J
      parisc: fix dino/gsc interrupts · d16cd297
      James Bottomley 提交于
      The essential problem we're currently having is that dino (and gsc) is a
      cascaded CPU interrupt.  Under the old __do_IRQ() handler, our CPU
      interrupts basically did an ack followed by an end.  In the new scheme,
      we replaced them with level handlers which do a mask, an ack and then an
      unmask (but no end).  Instead, with the renaming of end to eoi, we
      actually want to call the percpu flow handlers, because they actually
      have all the characteristics we want.
      
      This patch does the conversion and gets my C360 booting again.
      Signed-off-by: NJames Bottomley <James.Bottomley@suse.de>
      Signed-off-by: NKyle McMartin <kyle@mcmartin.ca>
      d16cd297
  6. 04 12月, 2010 11 次提交
  7. 03 12月, 2010 4 次提交