1. 19 6月, 2007 1 次提交
    • B
      [POWERPC] Fix snd-powermac refcounting bugs · 41e904de
      Benjamin Herrenschmidt 提交于
      The old snd-powermac driver has some serious refcounting issues when
      initialisation fails, which is the case on all new machines with
      a layout-id since those are handled by the new snd-aoa driver.
      
      Some of those bugs seem to have been under the radar for some time
      (like double pci_dev_put), but one was actually added in 2.6.22 with
      Stephen attempt at teaching refcounting to the driver which didn't
      do it at all.
      
      This patch fixes both, thus removing all sort of kref errors that
      would happen if that driver gets loaded on a G5 machine or a recent
      PowerBook due to OF nodes left around with a 0 refcount.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      41e904de
  2. 07 5月, 2007 1 次提交
  3. 24 4月, 2007 1 次提交
  4. 13 4月, 2007 1 次提交
  5. 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
  6. 03 7月, 2006 1 次提交
    • B
      [POWERPC] Add new interrupt mapping core and change platforms to use it · 0ebfff14
      Benjamin Herrenschmidt 提交于
      This adds the new irq remapper core and removes the old one.  Because
      there are some fundamental conflicts with the old code, like the value
      of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
      etc..., this commit also changes the relevant platform and driver code
      over to use the new remapper (so as not to cause difficulties later
      in bisecting).
      
      This patch removes the old pre-parsing of the open firmware interrupt
      tree along with all the bogus assumptions it made to try to renumber
      interrupts according to the platform. This is all to be handled by the
      new code now.
      
      For the pSeries XICS interrupt controller, a single remapper host is
      created for the whole machine regardless of how many interrupt
      presentation and source controllers are found, and it's set to match
      any device node that isn't a 8259.  That works fine on pSeries and
      avoids having to deal with some of the complexities of split source
      controllers vs. presentation controllers in the pSeries device trees.
      
      The powerpc i8259 PIC driver now always requests the legacy interrupt
      range. It also has the feature of being able to match any device node
      (including NULL) if passed no device node as an input. That will help
      porting over platforms with broken device-trees like Pegasos who don't
      have a proper interrupt tree.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      0ebfff14
  7. 02 7月, 2006 1 次提交
  8. 28 6月, 2006 1 次提交
  9. 23 6月, 2006 1 次提交
  10. 28 3月, 2006 1 次提交
  11. 08 2月, 2006 1 次提交
  12. 02 2月, 2006 1 次提交
  13. 23 1月, 2006 1 次提交
    • S
      [ALSA] sound/ppc/pmac.c typo · 168a95f1
      Stelian Pop 提交于
      Modules: PPC PMAC driver
      
      In 2.6.16-rc1 there is a small typo introduced by the
      'Remove device_node addrs/n_addr' changes
      which prevents my Powerbook G4 sound from working:
      
      	Advanced Linux Sound Architecture Driver Version 1.0.11rc2
      	(Wed Jan 04 08:57:20 2006 UTC).
      	snd: can't request rsrc  0 (Sound Control: 0x80000000:80004fff)
      	ALSA device list:
      	   No soundcards found.
      
      The patch below fixes it. Of course, the patch fixing the i2c issues
      ('i2c_smbus_write_i2c_block_data' patch) needs to be applied to in
      order for the sound to completly work.
      Signed-off-by: NStelian Pop <stelian@popies.net>
      Signed-off-by: NTakashi Iwai <tiwai@suse.de>
      168a95f1
  14. 09 1月, 2006 1 次提交
  15. 03 1月, 2006 5 次提交
  16. 04 11月, 2005 1 次提交
  17. 07 10月, 2005 1 次提交
  18. 12 9月, 2005 2 次提交
  19. 18 8月, 2005 1 次提交
  20. 28 7月, 2005 1 次提交
  21. 28 6月, 2005 1 次提交
  22. 29 5月, 2005 2 次提交
  23. 01 5月, 2005 1 次提交
  24. 17 4月, 2005 3 次提交
    • B
      [PATCH] ppc64: very basic desktop g5 sound support · 7bbd8277
      Benjamin Herrenschmidt 提交于
      This patch hacks the current PowerMac Alsa driver to add some basic support
      of analog sound output to some desktop G5s.  It has severe limitations
      though:
      
       - Only 44100Khz 16 bits
       - Only work on G5 models using a TAS3004 analog code, that is early
         single CPU desktops and all dual CPU desktops at this date, but none
         of the more recent ones like iMac G5.
       - It does analog only, no digital/SPDIF support at all, no native
         AC3 support
      
      Better support would require a complete rewrite of the driver (which I am
      working on, but don't hold your breath), to properly support the diversity
      of apple sound HW setup, including dual codecs, several i2s busses, all the
      new codecs used in the new machines, proper clock switching with digital,
      etc etc etc...
      
      This patch applies on top of the other PowerMac sound patches I posted in
      the past couple of days (new powerbook support and sleep fixes).  
      
      Note: This is a FAQ entry for PowerMac sound support with TI codecs: They
      have a feature called "DRC" which is automatically enabled for the internal
      speaker (at least when auto mute control is enabled) which will cause your
      sound to fade out to nothing after half a second of playback if you don't
      set a proper "DRC Range" in the mixer.  So if you have a problem like that,
      check alsamixer and raise your DRC Range to something reasonable.
      
      Note2: This patch will also add auto-mute of the speaker when line-out jack
      is used on some earlier desktop G4s (and on the G5) in addition to the
      headphone jack.  If that behaviour isn't what you want, just disable
      auto-muting and use the manual mute controls in alsamixer.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      7bbd8277
    • B
      [PATCH] pmac: sound support for latest laptops · b75550e1
      Benjamin Herrenschmidt 提交于
      This patch hacks the current Alsa snd-powermac driver to add support for
      recent machine models with the tas3004 chip, that is basically new laptop
      models.  The Mac Mini is _NOT_ yet supported by this patch (soon soon ...).
       The G5s (iMac or Desktop) will need the rewritten sound driver on which
      I'm working on (I _might_ get a hack for analog only on some G5s on the
      current driver, but no promise).
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b75550e1
    • L
      Linux-2.6.12-rc2 · 1da177e4
      Linus Torvalds 提交于
      Initial git repository build. I'm not bothering with the full history,
      even though we have it. We can create a separate "historical" git
      archive of that later if we want to, and in the meantime it's about
      3.2GB when imported into git - space that would just make the early
      git days unnecessarily complicated, when we don't have a lot of good
      infrastructure for it.
      
      Let it rip!
      1da177e4