Matthew Dharm [Fri, 16 Jan 2004 09:18:20 +0000 (01:18 -0800)]
[PATCH] USB Storage: add sysfs info attribute
This patch adds a sysfs attribute to the usb-storage SCSI devices. This
attribute (read-only) is basically a clone of the information available in
/proc/scsi/scsi -- since that interface is going away, adding a new sysfs
attribute seemed like a good idea.
Matthew Dharm [Fri, 16 Jan 2004 09:14:52 +0000 (01:14 -0800)]
[PATCH] USB Storage: Fix scatter-gather for non READ/WRITE in sddr09
This patch (from Alan Stern as157) fixes the non-READ/WRITE paths of the
sddr09.c driver to be compliant to the requirements of scatter-gather. It
also cleans up MODE_SENSE processing and reports errors a little better.
This patch also makes MODE_SENSE_10 commands report an error. The old code
claimed to support both 6- and 10-byte versions, but really only supported
6-byte. Bad data was returned for the 10-byte case, so it was removed. A
patch to follow in a few minutes fixes this.
Alan Stern [Fri, 16 Jan 2004 09:11:49 +0000 (01:11 -0800)]
[PATCH] USB Storage: Fix scatter-gather for non READ/WRITE in jumpshot
These patch fixes the scatter-gather usage in the jumpshot driver for
commands other than READ or WRITE. It also tidies up the MODE-SENSE
handler considerably and reports more command failures correctly.
Alan Stern [Fri, 16 Jan 2004 09:11:35 +0000 (01:11 -0800)]
[PATCH] USB Storage: Scatter-gather fixes for non READ/WRITE in datafab
These patch fixes the scatter-gather usage in the datafab driver for
commands other than READ or WRITE. It also tidies up the MODE-SENSE
handler considerably and reports more command failures correctly.
Alan Stern [Fri, 16 Jan 2004 09:11:16 +0000 (01:11 -0800)]
[PATCH] USB Storage: Remove non s-g pathway from subdriver READ/WRITE
This patch does what you suggested. The read/write routines from the
updated subdrivers are changed so they don't bother to differentiate
between transfers that do or do not use scatter-gather. The low-level
usb_stor_access_xfer_buf routine will Do The Right Thing regardless, and
there probably won't ever be more than a few non s-g calls. (What about
filesystem I/O requests to access metadata?)
It turns out that in addition to removing some comments and a few tests,
this change allowed me to remove the buffer and use_sg arguments passed to
the read/write routines as well. So the simplification ended up being a
bit bigger than I expected.
While writing this patch, I noticed spots in several drivers that still
need to be changed -- they slipped past me before. These drivers handle
things like READ-CAPACITY or REQUEST-SENSE by copying the data directly to
srb->request_buffer, which is obviously wrong if s-g is being used. I'll
send in changes next week that convert them to use the
usb_stor_set_xfer_buf function. Like you said, it's going to be handy in
more places than originally intended!
Marcel Sebek [Fri, 16 Jan 2004 08:58:03 +0000 (00:58 -0800)]
[PATCH] USB: fix whiteheat problems
> CC [M] drivers/usb/serial/whiteheat.o
> drivers/usb/serial/whiteheat.c: In function `firm_setup_port':
> drivers/usb/serial/whiteheat.c:1209: `CMSPAR' undeclared (first use in this function)
> drivers/usb/serial/whiteheat.c:1209: (Each undeclared identifier is reported only once
> drivers/usb/serial/whiteheat.c:1209: for each function it appears in.)
David Brownell [Fri, 16 Jan 2004 08:43:13 +0000 (00:43 -0800)]
[PATCH] USB: ehci update: 3/3, highspeed iso rewrite
This is an updated version of a patch submitted to me from
Michal Sojka <sojkam1@fel.cvut.cz>, basically providing a
much-needed rewrite of the highspeed ISO support. I updated
the scheduling and made it a closer match to how OHCI works;
and also tested it a bunch.
So far it seems most of the requests for highspeed ISO support
have been for realtime data collection -- custom apps, nothing
a mainstream kernel would ship with. The USB Video class is
now defined; highspeed video will also need these updates.
Key changes:
- Define an "iso_stream" head for iso endpoints. This acts
enough like a QH that endpoint_disable() works. It holds the
queue of ITDs, and the endpoint's current schedule state.
And it's easy to find (spinlocked array access), no search.
- Uses a temporary "itd_sched" while submitting each URB, with
not-yet-linked ITDs and request-specific metadata. There's
a per-stream cache of ITDs, so resubmitting ISO urbs (to
achieve a "ring" of transfers) is typically cheap.
- Scheduling for most URBs is almost a NOP: just a sanity
check to make sure there's no need to reschedule, and then
just link into the schedule at the current schedule slot.
(The previous code was a gross hack that didn't even work
reasonably with more than two URBs queued.)
- Is a reasonable model to use with full speed ISO transfers.
(They need additional TT scheduling hooks, most of which
are already written but not merged.)
- Handles several cases the previous code didn't, including
high bandwidth transfers (loads up to 24 MByte/sec)
- Has had more testing than the old code, including 20+ hour
successful IN+OUT runs, more varied transfer intervals and
maxpacket sizes. (Using net2280 and a gadgetfs driver.)
So it's worth replacing the existing code with this; there
aren't too many rough edges, and it's much more fixable than
the previous version.
This patch is needed to make high bandwidth ISO streams behave,
but could resolve some other scanning glitches. Current users
of periodic transfers (interrupt transfer modes for hubs, mice,
and keyboards) shouldn't even notice this change.
It makes the periodic schedule scan handle cases where a given
frame's schedule slot reports completions in several different
microframes. So far that's been uncommon, but it's typical
for high bandwidth iso (or even with busier interrupt trees than
this driver has supported yet).
It also starts to remove the assumption that each ITD only uses
one microframe; but most of those changes are in the next patch.
And it fixes a bug where some status bits were mis-interpreted as
significant bits in the ITD transfer length.
David Brownell [Fri, 16 Jan 2004 08:42:42 +0000 (00:42 -0800)]
[PATCH] USB: ehci update: 1/3, misc
This is minor "obvious" fixes plus two tweaks to help later
patches:
- Interrupt QH has a link to the device, needed to implement
schedule trees (like OHCI does today) that are TT-aware
(essential for most keyboards and mice).
- Export the macros that do high bandwidth packetsize stuff.
They're also needed for high bandwidth ISO transfers.
It also morphs some existing "too much debug info" urb tracing
so it's kicked in by a manual #define EHCI_URB_TRACE. If some
generic version of that gets added to usbcore, this sort
of debug code can vanish (from all hcds).
David Brownell [Fri, 16 Jan 2004 08:29:03 +0000 (00:29 -0800)]
[PATCH] USB: high speed iso maxpacket is 1024 not 1023
Someone sent this around mixed with an EHCI patch which should not
be applied (there's a different patch on the way). I lost their
name, sorry. It lets 1024 byte ISO packets be used.
David T. Hollis [Fri, 16 Jan 2004 08:24:11 +0000 (00:24 -0800)]
[PATCH] USB: usbnet on 2.6.0 -- needs ax8817x_ethtool_ops
On Tue, 2003-12-23 at 22:49, David Brownell wrote:
> > This patch should take care of it. Additionally, I had to fold one of
> > my patches that's in the queue for 2.6.1 (ethtool link check fix) into
> > this as the other would not apply due to changes.
>
> It looks fine, though it didn't apply against Greg's usb-devel-2.6
> tree ... which has a few more methods added.
>
> I guess I'll just add this one to my tree, and let you merge this
> with those additional ax8817x changes.
>
> - Dave
>
Alan Stern [Fri, 16 Jan 2004 08:20:49 +0000 (00:20 -0800)]
[PATCH] USB Storage: Old patches (as129 and as141)
There's a couple of old patches floating around still that you might want
to apply. I have reproduced them below.
as129 handles the situation where a command error causes us to do a device
reset, but the SCSI layer times out and aborts the command during the
reset delay. It clears a flag that otherwise will prevent us from sending
the clear-halt messages following the reset.
as141 is the DMA buffer alignment patch. You asked me to remind you about
it eventually. There shouldn't be any harm at all in applying it without
waiting for the corresponding SCSI part of the patch to be applied.
Without that other part, this will essentially do nothing.
Adrian Knoth [Fri, 16 Jan 2004 08:08:49 +0000 (00:08 -0800)]
[PATCH] USB: add Driver for Emagic A6-2 (formerly known as EMI 6|2m)
this patch which applies against Linux-2.6.0 (and also 2.6.1)
adds support for the Emagic A6-2 USB-Audio-Interface.
Note that the selection of either MIDI or SPDIF is actually done
by ifdefs in the driver, this behaviour should clearly be changed
to MODULE_PARAM in the future.
Rasmus Rohde [Fri, 16 Jan 2004 07:39:38 +0000 (23:39 -0800)]
[PATCH] USB: Missing patch for ftdi_sio.c
On Sat, 2004-01-10 at 05:07, Greg KH wrote:
> On Thu, Dec 18, 2003 at 10:28:24PM +0100, Rasmus Rohde wrote:
> > I wrote to you earlier about a missing patch to ftdi_sio.c that appeared
> > in
> >
> > http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.5/usb-ftdi_sio-2.5.68.patch
> >
> > It has to do with the introduction tiocmset and tiocmget.
> > This patch was dropped in
> >
> > http://www.kernel.org/pub/linux/kernel/people/gregkh/usb/2.5/usb-ftdi_sio-2.5.75.patch
> >
> > which unfortunately breaks the driver.
>
> Hm, sorry about that. Care to send me a patch to fix it up?
Alan Stern [Fri, 16 Jan 2004 07:28:56 +0000 (23:28 -0800)]
[PATCH] USB Storage: unusual_devs.h update
On Wed, 14 Jan 2004, Marcin Juszkiewicz wrote:
> After running "MS Import" on my Sony Clie SJ30 palmtop I got:
>
> hub 3-0:1.0: new USB device on port 2, assigned address 6
> usb-storage: This device (054c,006d,0100 S 05 P 00) has unneeded SubClass and Protocol entries in unusual_devs.h
> Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>
Thanks for sending this. The updated information will appear in an
upcoming kernel.
Alan Stern [Fri, 16 Jan 2004 07:28:05 +0000 (23:28 -0800)]
[PATCH] USB Storage: another unusual_devs entry
On Fri, 2 Jan 2004, Eric Lussard wrote:
> <5>usb-storage: This device (05e3,0701,0002 S 02 P 50) has an unneeded
> Protocol entry
> in unusual_devs.h
> <4> Please send a copy of this message to
> <linux-usb-devel@lists.sourceforge.net>
Yet another unusual_devs change! I really should stick to a policy of
reading through all the new email before sending any replies...
Alan Stern [Fri, 16 Jan 2004 07:27:26 +0000 (23:27 -0800)]
[PATCH] USB Storage: another unneeded unusual_devs entry
On Fri, 2 Jan 2004, Oliver Neukum wrote:
> Hi Alan,
>
> you seem to like them. Here it is:
>
> usb-storage 3-1:1.0: usb_probe_interface
> usb-storage 3-1:1.0: usb_probe_interface - got id
> usb-storage: This device (0686,4014,0001 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h
> Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>
> scsi1 : SCSI emulation for USB Mass Storage devices
> Vendor: MINOLTA Model: DIMAGE CAMERA Rev: 1.00
> Type: Direct-Access ANSI SCSI revision: 02
Thanks Oliver. Interestingly, it looks as though the unneeded SubClass
and Protocol values were the only reason for keeping this entry, so now it
can be deleted in both 2.4 and 2.6.
Alan Stern [Fri, 16 Jan 2004 07:26:54 +0000 (23:26 -0800)]
[PATCH] USB storage: unusual_devs.h change
On Tue, 23 Dec 2003, sledgedog wrote:
> USB Mass Storage support registered.
> hub 3-0:1.0: new USB device on port 2, assigned address 2
> usb-storage: This device (090c,1132,0100 S 06 P 50) has unneeded SubClass and Protocol entries in unusual_devs.h
> Please send a copy of this message to <linux-usb-devel@lists.sourceforge.net>
Thank you for sending this in.
Greg, here is the patch for unusual_devs.h, both 2.4 and 2.6.
Ross Boswell [Fri, 16 Jan 2004 07:24:13 +0000 (23:24 -0800)]
[PATCH] USB Storage: patch to unusual_devs.h for Pentax Optio 330GS camera
I was unable to get my Pentax Optio 330GSrecognised
by the 2.6.0 kernel until I applied the patch below that I found
posted some months ago on the German Debian mailing list.
David Brownell [Tue, 6 Jan 2004 06:19:09 +0000 (22:19 -0800)]
[PATCH] USB: add goku_udc driver (Toshiba TC86C001 USB device)
This patch implements the "USB Gadget" API using the
"Goku-S" (TC86C001) full speed usb device controller.
It's passed testing with Gadget Zero, g_ether (full
CDC Ethernet support), gadgetfs, and most interestingly
Alan Stern's "File Storage Gadget" (FSG, talking to
Linux or Windows as a usb-storage device) to give the
halt processing a good workout. Control-OUT works.
Tested mostly on x86, with reported success on MIPS.
As well as being directly useful with that hardware,
I think this is small and simple enough to be useful
as an example of how to write a USB controller driver.
(There will be many more controller drivers than gadget
drivers, I suspect ...)
Please merge this to the next 2.6 release that takes
new drivers. Corresponding updates for kbuild and the
various gadget drivers will be coming (not in a flood).
Fix for oops on rmmod caused by *_remove() function marked as __devinit
(and thus discarded after module initialization - if CONFIG_MODULES=y
and CONFIG_HOTPLUG is not set).
This patch changes __devinit to __devexit and adds __devexit_p() where
pointer to such function is used.
The only exception is au1000, where au1000_remove() is called from
cleanup_au1000() function - __devinit is jest removed there.
Russell King [Sun, 4 Jan 2004 17:29:23 +0000 (17:29 +0000)]
[ARM] Fix cachepolicy=<foo>
On ARM, it is possible to configure the desired cache policy in
the page tables. Unfortunately, we haven't been updating the
protection_map nor PAGE_KERNEL, so this option doesn't change
the behaviour of the majority of mappings. This cset corrects
this oversight.
Amit Gurdasani [Sun, 4 Jan 2004 16:28:39 +0000 (16:28 +0000)]
[SERIAL] EISA ID for PnP modem
Patch from: Amit Gurdasani
I have a PROLiNK 1456VH internal Rockwell-based ISA PnP K56flex fax modem
whose EISA ID seems not to be known to 8250_pnp.c. The ID is AEI0250 as
reported in /sys/devices/pnp1/01:01/01:01.00/id and adding this into the
pnp_dev_table[] allows the device to be found and enabled properly by the
8250 serial driver.
Linus Torvalds [Sat, 3 Jan 2004 10:25:13 +0000 (02:25 -0800)]
Fix IDE "PIO WRITE wait for ready" test under extreme interrupt load.
From Daniel Tram Lux: under extreme irq load on an underpowered CPU,
the timeout loop may not make any progress, and decide that a timeout
occurred before it has actually tested the status register.
The minimal fix for now is to just have a final test _after_ the timeout
to remove the problem. The real fix would likely be to not have irqs
enabled between reading the status and the timeout.
Russell King [Fri, 2 Jan 2004 19:36:52 +0000 (19:36 +0000)]
[SERIAL] Remove old RSA resource handlign.
The resource handling left in autoconfig() is plainly wrong, since
we've already claimed the necessary resources prior to calling
autoconfig(). Therefore, we remove the superfluous code from
autoconfig().
Andi Kleen [Thu, 1 Jan 2004 03:41:03 +0000 (19:41 -0800)]
[PATCH] X86-64 merge
At least one of them is critical. It fixes an path in the IOMMU that
I broke with the ealier "fullflush" workaround.
- Check for ~/bin/installkernel like i386 (M. Bligh)
- Implement 32bit RTC_IRQ_SET correctly (Lutz Vieweg)
- Disable some useless printks in 32bit emulation
- Warning fixes for mixed C99 style declarations/statements.
- Sync lAPIC power management with i386
- Use topology sysfs like i386
- Fix some serious bugs in the MCE handler. ECC should
be decoded correctly now.
- Add oops=panic option to panic on Oopses.
- Fix hackish code in head.S
- Add missing options in IOMMU
- Fix _syscall6 (Olaf Hering)
- Remove broken ACPI locking code. Port IA64 C version.
- Make safe_smp_processor_id() more reliable
- Read HPET in vsyscall code
- Add workaround for BIOS that corrupt 64bit registers in HLT
- Fix unaligned access in bitops.h
- Remove broken ntp drift correction code for now
- i386 merge in SCI setup
- Fix wrong offset in callin.h (Jim Houston)
- Minor comment fixes
Michael Hunold [Thu, 1 Jan 2004 03:25:24 +0000 (19:25 -0800)]
[PATCH] DVB: Revamp of the TTUSB-DEC driver
- Alter hotplug firmware naming to fit in with dvb standard.
- Use the hotplug firmware loader for 2.6 kernels instead of compiling
the firmware into the module.
- Integrate frontend into ttusb_dec module and remove pseudo-i2c bits,
move ttusb_dec header into source file.
- Rudimentary section filter support (enough for scan).
Michael Hunold [Thu, 1 Jan 2004 03:25:04 +0000 (19:25 -0800)]
[PATCH] DVB: Fixes for frontend drivers
- ves1820: increase mdelay from 30 to 50 to be more reliable with bad
reception quality (Andreas Oberritter)
- dst: remove AUTO_INVERSION for capabilities, allow params
dst_type_flags and dst_type to have multiple values for multiple
cards in one machine (Jamie Honan)
David Mosberger [Wed, 31 Dec 2003 15:18:59 +0000 (07:18 -0800)]
ia64: Allow system-call number to be changed during system-call tracing
(both for native and x86 system call tracing). This is needed
by recent versions of strace and UML likes to do that, too.
David Mosberger [Tue, 30 Dec 2003 17:10:09 +0000 (09:10 -0800)]
ia64: Fix a ptrace-bug that caused "strace -f" to crash the inferior
process. The root-cause of the problem was that ptrace() tried
to copy the portion of the register backing store that landed on
the kernel stack back to users-space, but the resulting state
was inconsistent if the inferior process was in the middle of a
system-call (as would always be the case for strace).
The solution is to avoid all needless copying and to instead
ensure that when accessing a memory location that may belong to
a thread's register-backing store, we attach to that particular
thread, rather than the thread identified by the PID argument.
If the thread happens to be unattachable, we fall back to using
the thread identified by the PID argument. This should have the
desired effect if the thread has terminated already and if the
thread is running while ptrace() is trying to access its state,
all bets are off anyhow and there are no coherency guarantees.
In other words, this should be doing the right thing under all
circumstances.
The patch also fixes the case where PT_AR_BSP and/or PT_CFM are
written while the inferior process is in the middle of a system
call. This makes arguments passed to GDB inferior calls come
out right.
The patch was tested with strace -f and the GDB testsuite, which
showed no regressions compared to the previous version of the
kernel.