Marcel Holtmann [Fri, 5 Mar 2004 19:53:50 +0000 (20:53 +0100)]
[Bluetooth] Dynamic allocation of the RFCOMM TTY devices
Only allocate the RFCOMM TTY devices when they are really in use. This
prevents the system from calling hotplug and udev 256 times to create or
remove every device node. In fact this makes the loading and unloading
of the RFCOMM module much faster.
Marcel Holtmann [Fri, 5 Mar 2004 18:43:26 +0000 (19:43 +0100)]
[Bluetooth] Add notify callback for host drivers
This patch adds a notification callback to the hci_dev structure which
is used by the HCI core to tell the driver about connection creation
and clearing. It also notifies about changed voice setting.
Marcel Holtmann [Fri, 5 Mar 2004 18:27:52 +0000 (19:27 +0100)]
[Bluetooth] Send HCI_Reset for some Broadcom dongles
This patch introduces a quirk flag for sending the HCI_Reset command. In
general the HCI_Reset is not needed, but some Broadcom dongles uses this
reset command to switch from HID to HCI mode. And it is not safe to send
the HCI_Reset to every Bluetooth device, because the CSR firmware prior
HCI 12.x will reset the host transport and this is wrong according to the
Bluetooth specification.
Brian Gerst [Thu, 4 Mar 2004 15:05:03 +0000 (07:05 -0800)]
[PATCH] PnP BIOS exception fixes
This fixes two errors in fixup_exception() for PnP BIOS faults:
- Check for the correct segments used for the BIOS
- Fix asm constraints so that EIP and ESP are properly reloaded
Deepak Saxena [Thu, 4 Mar 2004 22:17:06 +0000 (22:17 +0000)]
[ARM PATCH] 1757/1: Allow building of LE kernels with BE-default toolchain
Patch from Deepak Saxena
The ARM makefile currently assumes that the compiler being used
defaults to little-endian builds unless the big-endian options
are provided. This may not always be the case (my toolchains default
to BE since that's what I mostly work with) so this patch forces
endianess options to be passed to the toolchain. W/O this,
building without CONFIG_CPU_BIG_ENDIAN on a big-endian toolchain
will still result in a big-endian kernel.
Alexander Viro [Thu, 4 Mar 2004 05:21:34 +0000 (21:21 -0800)]
[PATCH] d_alloc_root() fixes: gadgetfs
gatgetfs fill_super:
- double-free of inode on last two failure exits
- leak on the last failure exit
- touching addresses near 0 on last two failure exits
New revision of the Sigmatel irda driver. This version has much
better performance and doesn't drop frames in FIR mode.
Tested with both UHCI and EHCI/OHCI against nsc-ircc on laptop.
Thanks to Martin for additional testing and feedback.
* Receiver:
- changed from interrupt to bulk URB. Queue's one bulk
urb per USB tick (1ms).
- FIR unpack now uses get_unaligned and cpu32_le
instead of explicit shifts
- FIR unpack copies small frames
* Transmitter:
- pack data into io buffer. Since irda is half duplex
can use same buffer for transmit and receive.
- use xchange and wait_event for synchronization
* Other:
- use USB format messages rather than IRDA (ugly)
- clean up USB startup
- reset device on network open to clear up stuck state
- handle FIFO errors
- disconnect cleanup (from viro)
- don't DMA onto stack when reading fifo status
This adds a "timbase" entry in /proc/cpuinfo like p/iSeries that
provides the CPU timebase frequency. It is using by a all sort of
performance analysis tools we are hacking in house.
It also remove a useless bit about the l2 cache that was copied over
from ppc32.
I've had reports of flicker that appear with large (23") flat panels
and radeonfb. From experiments, it appears that forbiding the "odd"
PLL divider values fix it (like it fixes the blur problem on TMDS2).
There should not be anything special with TMDS1 and "odd" PLL values
though, so the problem may be subtly different (a bandwidth problem),
but until I have proper bandwidth calculation and access to this
monitor, the following patch is an acceptable workaround (Odd PLL values
aren't that useful anyway)
Olof Johansson [Wed, 3 Mar 2004 05:30:05 +0000 (21:30 -0800)]
[PATCH] ppc64: More IOMMU cleanups
* Tidy up some of the arguments to iommu_*()
* Comment cleanup
* Don't bump the hint to the next block for large allocs, to avoid
fragmentation.
* Simplify vmerge logic during SG allocations
* Move the memory barriers from the bus-specific parts into the common
code.
Some changes are mine, some are from Ben Herrenschmidt.
- fix bug introduced by my recent fixes
(do not try to disable 66MHz clock on PDC20246)
- cleanup cable verification code a bit
- remove unused macros (leftovers from driver split-up)
and duplicated define from pdc202xx_old.h
Alexander Viro [Wed, 3 Mar 2004 03:07:49 +0000 (19:07 -0800)]
[PATCH] parport: get rid of parport_enumerate
parport_enumerate() is gone. The last caller was under ifdef that
never had been true. Function itself is removed, port list handling
cleaned up (now we can do that, since drivers don't mess with the list
directly), tons of racy crap removed from parport/share.c
Alexander Viro [Wed, 3 Mar 2004 03:07:39 +0000 (19:07 -0800)]
[PATCH] parport: keep track of parport_sunbpp ports
parport_sunbpp switched to keeping track of the ports it had
created; in module_exit it uses the private list instead of messing
with parport_enumerate(). Added check for sbus_ioremap() failure in
port initialization.
Alexander Viro [Wed, 3 Mar 2004 03:07:29 +0000 (19:07 -0800)]
[PATCH] parport: keep track of parport_pc ports
parport_pc switched to keeping track of the ports it had
created; in module_exit it uses the private list instead of messing
with parport_enumerate().
Added compile fix for configs that have CONFIG_PARPORT_PC_FIFO turned
off (from -mm).
Alexander Viro [Wed, 3 Mar 2004 03:07:20 +0000 (19:07 -0800)]
[PATCH] parport: clean up parport_announce_port and friends
parport_announce_port() was always called right after
parport_proc_register(). Call shifted into parport_announce_port().
Similar for parport_remove_port() and parport_proc_unregister().
Alexander Viro [Wed, 3 Mar 2004 03:07:08 +0000 (19:07 -0800)]
[PATCH] parport: fix parport_unregister_port
parport_unregister_port() is split; parport_remove_port() does
what parport_unregister_port() used to do sans the final parport_put_port()
call.
Callers updated; many of them needed only parport_put_port() (failure
exit paths where we never had the port announced to drivers).
Fixed multiple races on port removal by shifting parport_remove_port()
in front of the code that releases irq/io ports/etc.
Alexander Viro [Wed, 3 Mar 2004 03:06:58 +0000 (19:06 -0800)]
[PATCH] parport: slave port cleanups
references to slave ports of mux added to struct parport.
parport_daisy_init() doesn't go through parport_announce_port() for mux
slaves anymore; parport_annouce_port() deals with found ones itself.
Error handling sanitized, races on unregistration fixed.
Dely Sy [Tue, 2 Mar 2004 11:10:44 +0000 (03:10 -0800)]
[PATCH] PCI Hotplug: fixes for shpc and pcie hot-plug drivers
This patch contains the following:
1. Fix up the pcie and shpc options to make it easier for distros
to use as what we have discussed;
2. Fix bug encountered when installing the drivers on non-hotplug
systems;
3. Put PCI_CAP_ID_SHPC in include/linux/pci.h
David Brownell [Tue, 2 Mar 2004 06:32:28 +0000 (22:32 -0800)]
[PATCH] OHCI urb unlink fixes
Fix two OHCI unlink issues.
* All EDs now get a 1 msec delay before re-linking, even those
which were seemingly "clean" unlink cases. This gets rid of
some list corruption issues ("bad entry") by getting rid of
a fast-path carried over from 2.4 usb-ohci.
* In case of unlink-during-submit, we must giveback() right away.
This is a reasonably rare case.
There have been recent reports of problems here. The "bad entry"
showed up with usbtest tests #11 and #12, or "stir4200", and maybe
in other cases. The unlink-during-submit shows up in usbtest.
[PATCH] ppc32: Fix crash on load in DACA sound driver
The DACA sound driver (early iBook models) doesn't clear the i2c_client
structure. That cause the embedded struct device (and thus kobject) to
contain garbage in the "k_name" field, which kobject_set_name will
later try to kfree...
Also remove references to unused struct data_data.
Karsten Keil [Tue, 2 Mar 2004 03:45:33 +0000 (19:45 -0800)]
[PATCH] ISDN strpbrk fix
Here is a small ISDN fix for the current tree.
There is a compiler inlining/optimation problem with strpbrk, if it has
only a one character search string. This results in a missing strchr
because the compiler internally replace strpbrk with strchr in this
case, but did so after inline handling stage.
Ingo Molnar [Tue, 2 Mar 2004 00:19:23 +0000 (16:19 -0800)]
[PATCH] Avoid writing the APIC ID register
A small birdie tells us that in the long run it may not be a good idea
to write the APIC ID register. It might be read-only in some
hypothetical situation down the road.
Andrew Morton [Mon, 1 Mar 2004 15:07:26 +0000 (07:07 -0800)]
[PATCH] oprofile: fix P4 HT msr sharing
From: Philippe Elie <phil.el@wanadoo.fr>
When I debugged P4 ht oprofile a few month ago I noticed that but though it
wasn't a problem... The fix I propose is not completely clean.
With P4 HT we split msr in two subset, one for each logical processor. The
msrs subset used in op_model_p4.c at save and setup point of view are
distinct (*), it means we must serialize setup and save operation else a
logical processor can save some msr value already setup by the other thread
then when oprofile shutdown we restore wrong msrs values.
Nobody noticed the problem because after restoring the msrs we call
enable_lapic_nmi_watchdog() -> setup_p4_watchdog() wich clear all the msrs
but it's a bit fragile. If nmi watchdog is not enabled nothing bad occurs
because the LVTPC remains disabled.
(*) this is done in this way because it allows a lot of simplification in
op_model_p4.c, yes it isn't clean but it's not fixable w/o rewriting 75% of
op_model_p4.c and I think the code will be bigger and more complex.
Andrew Morton [Mon, 1 Mar 2004 15:07:05 +0000 (07:07 -0800)]
[PATCH] m68k interrupt handling fix
From: Geert Uytterhoeven <geert@linux-m68k.org>
The syscalls.h change broke the m68k interrupt management code, since
sys_{request,free}_irq() are not syscalls, but routines to manage system
(CPU) interrupts.
Andrew Morton [Mon, 1 Mar 2004 15:06:22 +0000 (07:06 -0800)]
[PATCH] convert pdflush to kthread
From: Keith Owens <kaos@sgi.com>
New pdflush threads are launched on-demand by pdflush.
It turns out that on some architectures (eg, ia64) a kernel thread inherits
its parent's stack utilisation. So after the thread-launches-a-thread
cycle has progressed sufficiently far we run out of stack space and crash.
Simple fix: convert pdflush to use kthreads. All kthreads are parented by
keventd so there is no stack windup as a result of pdflush launching
pdflush.
Move WATCHDOG_CP1XXX and WATCHDOG_RIO for SPARC64 architecture
from arch/sparc64/Kconfig to drivers/char/watchdog/Kconfig
and made them dependant of WATCHDOG also