1. 14 4月, 2010 2 次提交
  2. 22 2月, 2010 1 次提交
  3. 28 1月, 2010 1 次提交
  4. 24 11月, 2009 1 次提交
  5. 01 10月, 2009 1 次提交
  6. 23 9月, 2009 2 次提交
  7. 16 9月, 2009 2 次提交
  8. 12 9月, 2009 1 次提交
  9. 02 9月, 2009 1 次提交
  10. 09 7月, 2009 2 次提交
  11. 11 6月, 2009 1 次提交
    • L
      [ARM] 5544/1: Trust PrimeCell resource sizes · dc890c2d
      Linus Walleij 提交于
      I found the PrimeCell/AMBA Bus drivers distrusting the resource
      passed in as part of the struct amba_device abstraction. This
      patch removes all hard coded resource sizes found in the PrimeCell
      drivers and move the responsibility of this definition back to
      the platform/board device definition, which already exist and
      appear to be correct for all in-tree users of these drivers.
      We do this using the resource_size() inline function which was
      also replicated in the only driver using the resource size, so
      that has been changed too. The KMI_SIZE was left in kmi.h in case
      someone likes it. Test-compiled against Versatile and Integrator
      defconfigs, seems to work but I don't posess these boards and
      cannot test them.
      Signed-off-by: NLinus Walleij <linus.walleij@stericsson.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dc890c2d
  12. 21 5月, 2009 1 次提交
  13. 04 5月, 2009 1 次提交
  14. 13 3月, 2009 1 次提交
  15. 03 2月, 2009 1 次提交
  16. 01 12月, 2008 1 次提交
  17. 28 10月, 2008 1 次提交
  18. 15 7月, 2008 1 次提交
    • P
      mmc: remove multiwrite capability · 23af6039
      Pierre Ossman 提交于
      Relax requirements on host controllers and only require that they do not
      report a transfer count than is larger than the actual one (i.e. a lower
      value is okay). This is how many other parts of the kernel behaves so
      upper layers should already be prepared to handle that scenario. This
      gives us a performance boost on MMC cards.
      Signed-off-by: NPierre Ossman <drzeus@drzeus.cx>
      23af6039
  19. 04 5月, 2008 1 次提交
    • L
      [ARM] 5024/1: Fix some minor clk issues in the MMCI PL18x driver · c8df9a53
      Linus Walleij 提交于
      This fixes some two minor clk issues.
      
      The first is a comparison where a byte will probably wrap around to 0 instead of being saturated to 255, shouldn't be triggered very often but need fixing.
      
      The second is an attempt by the driver to adjust MCLK down to the maximum frequency according to the spec, so we don't accidentally overclock the PL18x block. None of the mach-{versatile|integrator|lh7a40x} that use it in-tree seem to have a problem with this (all are well below 100MHz, typically 33MHz), but some day there will be a problem.
      
      This is not applied on top of the earlier mmci patch for race condition but rather a clean 2.6.25, but I guess it applies without major protests anyway.
      Signed-off-by: NLinus Walleij <triad@df.lth.se>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      c8df9a53
  20. 29 4月, 2008 1 次提交
    • L
      [ARM] 5022/1: Race in ARM MMCI PL18x driver, V2 · 26eed9a5
      Linus Walleij 提交于
      Updated version of 4446/1. This also drops the suggested comparison
      of host_remain for == 0, since that doesn't make sense (still works
      for us, too). We have verified that this patch solve race problems
      on atleast 2 archs at high frequencies.
      
      (Verbatim copy of old patch text below.)
      
      The patch below fixes a race condition in the ARM MMCI PL18x driver.
      
      If new data arrives in the FIFO while existing data is being read then
      we get a second iteration of the loop in mmci_pio_read.
      
      However host->size is not updated until after mmci_pio_read returns,
      so we get count = number of new bytes PLUS number of bytes already
      copied in the first iteration. This results in a FIFO underrun as
      we try and read mode data than is available.
      
      The fix is to compensating for data read on previous iterations
      when calculating the amount of data in the FIFO.
      Signed-off-by: NLinus Walleij <triad@df.lth.se>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      26eed9a5
  21. 24 10月, 2007 1 次提交
  22. 12 10月, 2007 1 次提交
  23. 23 9月, 2007 2 次提交
  24. 26 7月, 2007 1 次提交
  25. 01 5月, 2007 2 次提交
  26. 05 2月, 2007 2 次提交
  27. 09 1月, 2007 1 次提交
  28. 02 12月, 2006 1 次提交
  29. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  30. 16 9月, 2006 2 次提交
  31. 03 7月, 2006 1 次提交
  32. 01 7月, 2006 1 次提交