Re: [linux-usb-devel] USB Host performance

2006-05-09 Thread Greg KH
On Tue, May 09, 2006 at 11:16:57AM +0530, Juhee MALA wrote:
 We are using Linux USB Host stack and doing some performance analysis.
 For performance analysis we are testing it with a device, which
 accepts the Bulk-OUT packets with full effieciency (not much-NYTES
 from device side). We are submitting the data of URB size 8kbytes. The
 throughput in such scenario that we are getting is approximately
 175Mbps. 
 
 1. Can anybody tell me, if this is a good performance? 

I don't know, is that the max speed of your device?

 2. Can anybody tell me what is the best performance that can be achieved on a 
 USB host? 

It all depends on the USB device as well as the USB host controller
type.

 3. IS there any bench marking tool for checking the host stack performance? 
 4. Which application should be used for demonstrating the host performance? 

Again, it all depends on your device.

What exactly are you trying to show here?  The raw speed of Linux, or of
a specific hardware implementation?

thanks,

greg k-h


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [RFC 2.6.16.5 1/1] usb/media : Support for Quickcam Messenger

2006-05-09 Thread jayakumar . video
Hi GregKH, USB folk, QCE-GA folk (esp Tuukka/Kurt/Christian),

I've appended my first pass at a driver for the Logitech Quickcam
Messenger USB webcam. I'm still at an early stage. I just got ohphone 
working with it today so I figured I'd pause here and check my bearings. 

I'd like to get your feedback about the general design and anything else
you'd care to comment about. I've implemented it as a usbvideo driver
(rather than plain usb + v4l or v4l2) because I wanted to take advantage
of the existing interface and buffer management code in usbvideo.c The
konicawc driver looked really simple and nice so I used that as the
starting point for this code.

I noticed that there is an out-of-tree driver at

http://home.mag.cx/messenger/source/qc-usb-messenger-1.2.tar.gz

I found this code to be useful for obtaining the register read/write
sequences for init. I recognize that the image quality obtained from
that driver will probably be far superior to what I've implemented. This
is because I've only implemented a very trivial demosaicing scheme. The
Pei-Tam linear filtering done in the out-of-tree driver is nice but I
felt that should be done in userspace. se401 which is already in-tree
does Bayer decode and I decided to do something similar. So I've done
only trivial demosaic so that I could just test the driver with regular
unmodified userspace apps.

Here are a list of various other thoughts and to-do items:
- hsv, auto-exposure, shutter, gain control stuff
- supporting the other known-to-work sizes of QCIF, etc
- check proper byte order support for BE archs
- reducing copies in the buffer management between urb, ringqueue, and
  user frames and removing the scratch buf for demosaicing
- how to deliver raw (un-demosaiced) Bayer to userspace.
- support for the 640x480 mode in the hardware ( btw, I called ST
  Microelectronics sales about getting the datasheet for the VV6422 
  on May 2nd and was told to send email instead. I've sent emails to
  their sales as well as several distributors of the VV6422 chip. Maybe
  someone from ST can help. )
- v4lv2 in usbvideo support
- some on-loading sysfs complaint coming from usbvideo, I think.
- frame sync problem

I look forward to your feedback.

Thanks,
Jaya Kumar

ps: in case it's useful, i'm using ohphone v1.14 and test args are:
ohphone -o /tmp/oh.log -t -n 192.168.0.1 --videotransmit --videodevice QCM 
USB Camera --videosize large --videoinput 0

---

 Kconfig  |   18 +
 Makefile |1 
 quickcam_messenger.c |  793 +++
 3 files changed, 812 insertions(+)

---

diff -X linux-2.6.16.5/Documentation/dontdiff -uprN 
linux-2.6.16.5-vanilla/drivers/usb/media/Kconfig 
linux-2.6.16.5/drivers/usb/media/Kconfig
--- linux-2.6.16.5-vanilla/drivers/usb/media/Kconfig2006-04-15 
11:02:25.0 +0800
+++ linux-2.6.16.5/drivers/usb/media/Kconfig2006-04-15 11:27:25.0 
+0800
@@ -224,3 +224,21 @@ config USB_PWC
 
  To compile this driver as a module, choose M here: the
  module will be called pwc.
+
+config USB_QUICKCAM_MESSENGER
+   tristate USB Logitech Quickcam Messenger
+   depends on USB  VIDEO_DEV
+   ---help---
+ Say Y or M here to enable support for the USB Logitech Quickcam
+  Messenger webcam.
+
+ The built-in microphone is enabled by selecting USB Audio support.
+
+ This driver uses the Video For Linux API. You must say Y or M to
+ Video For Linux (under Character Devices) to use this driver.
+ Information on this API and pointers to v4l programs may be found
+ at file:Documentation/video4linux/API.html.
+
+ To compile this driver as a module, choose M here: the
+ module will be called quickcam_messenger.
+
diff -X linux-2.6.16.5/Documentation/dontdiff -uprN 
linux-2.6.16.5-vanilla/drivers/usb/media/Makefile 
linux-2.6.16.5/drivers/usb/media/Makefile
--- linux-2.6.16.5-vanilla/drivers/usb/media/Makefile   2006-04-15 
11:02:25.0 +0800
+++ linux-2.6.16.5/drivers/usb/media/Makefile   2006-04-15 11:28:01.0 
+0800
@@ -17,3 +17,4 @@ obj-$(CONFIG_USB_STV680)  += stv680.o
 obj-$(CONFIG_USB_VICAM)+= vicam.o usbvideo.o
 obj-$(CONFIG_USB_W9968CF)  += w9968cf.o
 obj-$(CONFIG_USB_PWC)   += pwc/
+obj-$(CONFIG_USB_QUICKCAM_MESSENGER)   += quickcam_messenger.o usbvideo.o
diff -X linux-2.6.16.5/Documentation/dontdiff -uprN 
linux-2.6.16.5-vanilla/drivers/usb/media/quickcam_messenger.c 
linux-2.6.16.5/drivers/usb/media/quickcam_messenger.c
--- linux-2.6.16.5-vanilla/drivers/usb/media/quickcam_messenger.c   
1970-01-01 07:30:00.0 +0730
+++ linux-2.6.16.5/drivers/usb/media/quickcam_messenger.c   2006-05-09 
16:36:47.0 +0800
@@ -0,0 +1,793 @@
+/*
+ * Driver for Logitech Quickcam Messenger usb video camera 
+ * Copyright (C) Jaya Kumar
+ *  
+ * This work was sponsored by CIS(M) Sdn Bhd.
+ * History:
+ * 05/08/2006 - Jaya Kumar
+ 

Re: [linux-usb-devel] [RFC 2.6.16.5 1/1] usb/media : Support for Quickcam Messenger

2006-05-09 Thread Oliver Neukum
Am Dienstag, 9. Mai 2006 10:50 schrieb [EMAIL PROTECTED]:
 +   /* buf for doing demosaicing */ 
 +   for (i=0; i  USBVIDEO_NUMSBUF; i++) {
 +   errflag = usb_submit_urb(uvd-sbuf[i].urb, GFP_KERNEL);
 +   if (errflag)
 +   err (usb_submit_isoc(%d) ret %d, i, errflag);
 +   }
 +
 +   qcm_camera_on(uvd);
 +   uvd-streaming = 1;
 +   return 0;
 +}

Race condition. The irq handler may run before you mark the device as
streaming.

Regards
Oliver


Re: [linux-usb-devel] USB Host performance

2006-05-09 Thread Alan Stern
On Tue, 9 May 2006, Juhee MALA wrote:

 We are using Linux USB Host stack and doing some performance analysis.
 For performance analysis we are testing it with a device, which accepts
 the Bulk-OUT packets with full effieciency (not much-NYTES from device
 side). We are submitting the data of URB size 8kbytes. The throughput in
 such scenario that we are getting is approximately 175Mbps.
 
 1. Can anybody tell me, if this is a good performance? 

Good for what?  It's certainly not the best possible.  But it's more than 
adequate for USB-audio.

 2. Can anybody tell me what is the best performance that can be achieved on a 
 USB host? 

The maximum theoretical throughput for high-speed 512-byte bulk transfers
is 13 packets per microframe, or 53248000 B/s.  That's equivalent to 426 
million bits per second.

Linux can achieve such rates, if the hardware allows.  To reach it, you
have to submit a lot of URBs asynchronously.  If you're using 8 KB
transfer lengths then you should submit at least two batches of URBs, with
at least 64 URBs in each batch, and with the URB_NO_INTERRUPT flag set on
each URB except the last one in a batch.  Each time a batch completes,
immediately submit another batch.

 3. IS there any bench marking tool for checking the host stack performance? 

Not that I know of.

 4. Which application should be used for demonstrating the host performance? 

This is almost the same question as number 3.

If you want to use your test device, you should select an application that 
will work with it.  Of course, since I don't know what your test device 
is, I can't recommend any applications.

Alan Stern



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] problems moving EHCI glue from 2.6.10 to 2.6.16

2006-05-09 Thread David Brownell
On Monday 08 May 2006 5:06 pm, Duck wrote:
 Hi,
 
 I'm working on an ARM-based SoC with an ARC USB block.  It has
 2 EHCI host controllers and an OTG controller.  Everything
 worked fairly well on a 2.6.10+ kernel.  However, after moving my
 code to 2.6.16.11, I'm having absoultely no luck talking to a
 device with any host controller. 

HCD initialization has changed substantially since then, addressing
various design bugs.  But that doesn't seem to be an obvious issue,
since the resulting init looks OK here.

One problem is that you're getting an ERR irq from EHCI, presumably
just highlighting what the QTD_STS_HALT flag in the qtd token says
in the first few requests.  You didn't see that in earlier kernels,
and so the obvious question is why _that_ request is losing.

Now, I _did_ see one successful descriptor fetch, after the fallback
to the old style enumeration.  So it looks like the controller is
doing many of the right things, and signals are likely getting to/from
the downstream device.


I don't have any bright ideas for you, sorry.  Double check clock
and PLL setup ... see if other USB peripherals have the same issue.
(Try full, low, and high speed devices.)

If you have any kind of USB sniffer (CATC etc) then this would be
a good time to use it.  Just borrowing one for a few days could
save a lot of time.

- Dave





---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] ehci-sched.c questions

2006-05-09 Thread David Brownell
On Wednesday 03 May 2006 1:03 pm, Christopher Montgomery wrote:
 I've done some of the requisite homework myself for getting full speed
 audio devices to work properly through ehci and TTs on a 2.0 hub
 (playback *and* capture).  At this point it all works although my
 changes are not production-ready.

Good; the ISO stuff has always been a bit iffy, in that some things
have worked and others haven't.  Capture has been iffiest.


 I have three specific questions for now.
 
 The primary reason DIR_IN iso modes didn't work comes down to schedule
 mask bugs. However, there's also an explicit test to see that IN
 csplits are not wrapped into a following frame; if they would have to
 be, the schedule attempt is rejected.  I see no reason for this
 restriction anywhere in the spec docs (and indeed, ISO IN can't work
 properly unless the restriction is removed; the 'start capture' OUT
 plus the 'get capture data' IN don't fit in one frame for  stereo
 capture).  AFAICT, the restriction was there to hide/prevent a c_mask
 overflow.

And the question is .. why?  Probably because what you see is the
very first implementation for the split iso support, and the goal
was to have something work at all (for the test devices at hand,
mostly USB speakers) and defer the more complex scheduling issues
until later when they were better understood.

So that restriction is a simplification.  And you're wrong about
the can't work; the start split plus N* complete split messages
can certainly fit into a single frame in cases like SSPLIT in uframe 0
and needing only a couple CSPLITs.


 Second question: The official USB 2.0 spec shows no examples that do
 this, but the Intel echi spec examples all pipeline transfers heavily
 by overlapping the final c-split of the current transfer and the
 initial s-split of the following transfer into the same uframe.  I've
 implemented the same strategy myself and it works as the Intel docs
 suggest... but is there a reason the preexisting scheduler does not do
 this?  Is there a contention issue I'm not seing (eg, is this only
 working because my final csplit and overlapping intiial ssplit are
 small enough to fit in one uframe, but it's possible that wouldn't
 work in the future?  Or is the final c-split always padding anyway?)

That sort of pipelining was always on the to do list, but the
initial scheduling for periodic split transfers (iso and interrupt)
was simplistic, in order to get something working.

I have some patches from Dan Streetman that I need to go back and
re-review.  As you implied, the USB 2.0 spec and the EHCI spec are
not quite in lockstep ... not that there's necessarily any kind of
conflic, but split iso scheduling is not at all simple, and time
has been lacking.  (I'll forward his patches to you, with some
comments about one issue I need to make time to investigate.)


 Third: In ehci-sched.c:check_intr_sched():
 
 if (qh-c_usecs  uframe = 6){   /* FSTN territory? */
   goto done;
 }
 
 Huh?  Reject any csplit that falls into uframe 6 or 7 for an intr? 
 That doesn't make any sense (yes, a s-split can't fall into uframe 6,
 but that's something different that, ironically, the code doesn't
 check for).

At this point I don't recall what was going on there.  Likely it's
the same sort of take some shortcuts to get something working
thing I mentioned already.  That might even predate the existence
of the interrupt schedule tree.

- Dave



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] ehci-sched.c questions

2006-05-09 Thread Christopher Montgomery

Hi David,

I thought my post got lost; I never saw it appear and hadn't seen
replies.  Scratch that, I was *hoping* it got lost, as more code
research later showed each question was at least partially
nonsensical.

At this point, the actual ISO transfer machinery all looks perfectly
solid.  The problem is entirely the scheduler.  It's not that the
scheduler is buggy, it's that it burns burns burns bandwidth as if
there's an infinite number of uFrames to stick requests into.  Once
it's faced with, eg, full duplex audio using two endpoints each with a
data interval of one, it can't usually fit both requests into the
Hframe cmask/ssmask despite the fact they'd fit comfortably in half of
one full-speed frame.

But this we know.


 The primary reason DIR_IN iso modes didn't work comes down to schedule
 mask bugs.

And the question is .. why?


Actually, I retract this.  The schedule mask code is not buggy, it's
just, as you say, an initial design.


That sort of pipelining was always on the to do list, but the
initial scheduling for periodic split transfers (iso and interrupt)
was simplistic, in order to get something working.

I have some patches from Dan Streetman that I need to go back and
re-review.  As you implied, the USB 2.0 spec and the EHCI spec are
not quite in lockstep ... not that there's necessarily any kind of
conflic, but split iso scheduling is not at all simple, and time
has been lacking.  (I'll forward his patches to you, with some
comments about one issue I need to make time to investigate.)


I've also been reviewing the schedulers for other OSes to help with
spec understanding.  They primarily schedule by counting microseconds
used in uFrames and full speed frames.  SSPLITS and CSPLITS overlap
freely (so long as each endpoint only sees one per frame and the other
limitation restrictions are obeyed).


 Third: In ehci-sched.c:check_intr_sched():

 if (qh-c_usecs  uframe = 6){   /* FSTN territory? */
   goto done;
 }

 Huh?  Reject any csplit that falls into uframe 6 or 7 for an intr?
 That doesn't make any sense (yes, a s-split can't fall into uframe 6,
 but that's something different that, ironically, the code doesn't
 check for).

At this point I don't recall what was going on there.  Likely it's
the same sort of take some shortcuts to get something working
thing I mentioned already.  That might even predate the existence
of the interrupt schedule tree.


[After more meditation] the code is for avoiding the need to
potentially schedule an FSTN, but I'm still not quite sure that just
checking uFrame number against '6' was sufficient... I'd have though
'4' was correct, or you'd have to look at the highest bit in the mask,
or count microseconds

Popping back up in the conversation, I have a device that will never
fit all it needs to do in one Hframe using the bitmask scheduling
method.  It needs to 'overlap' too tightly with two interval 1
endpoints and two interval 32 endpoints all in the periodic schedule. 
The timing fits (obviously, it works fine under UHCI), but not if you

can't overlap transactions.

So, send me that patch and I'll read up on the spec sections detailing
budgeting timing.  I need this bugger to work, or I need to buy a
MacMini ;-)

Monty


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] Re: 2.6.16: usb modem (cdc-acm driver) and duplicate bytes

2006-05-09 Thread Alexander V. Lukyanov
On Sat, May 06, 2006 at 10:23:05AM +0200, Oliver Neukum wrote:
 Am Samstag, 6. Mai 2006 07:20 schrieben Sie:
  On Sat, May 06, 2006 at 12:05:42AM +0200, Oliver Neukum wrote:
   It might be that your modem cannot cope with the ring buffer patch
   that went into 2.6.16. Can you revert a specific patch?
 
 The patch indicated below. Are you running on x86?

Yes, x86. It is an athlon xp system with nforce2 chipset.

I could not find complete patch from the mailing list message you 
pointed me to, the sf list archive contains truncated (short) message
with the patch, and e-mail addresses from the patch are mangled.

But I have taken cdc_acm driver from 2.6.15, patched forward tty_flip
and usb_driver.owner incompatibilities with 2.6.16, and voila - cdc_acm
driver from 2.6.15 works fine on 2.6.16 kernel, no dups at all.

 This includes the patch:
 http://sourceforge.net/mailarchive/message.php?msg_id=13720408

-- 
   Alexander.


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] Re: 2.6.16: usb modem (cdc-acm driver) and duplicate bytes

2006-05-09 Thread Pete Zaitcev
On Tue, 9 May 2006 19:57:50 +0400, Alexander V. Lukyanov [EMAIL PROTECTED] 
wrote:

 But I have taken cdc_acm driver from 2.6.15, patched forward tty_flip
 and usb_driver.owner incompatibilities with 2.6.16, and voila - cdc_acm
 driver from 2.6.15 works fine on 2.6.16 kernel, no dups at all.

Hmm, glad to hear that. I just got around to reading the trace
you collected, but oh well...

-- Pete


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] Re: 2.6.16: usb modem (cdc-acm driver) and duplicate bytes

2006-05-09 Thread Oliver Neukum
Am Dienstag, 9. Mai 2006 17:57 schrieb Alexander V. Lukyanov:
 On Sat, May 06, 2006 at 10:23:05AM +0200, Oliver Neukum wrote:
  Am Samstag, 6. Mai 2006 07:20 schrieben Sie:
   On Sat, May 06, 2006 at 12:05:42AM +0200, Oliver Neukum wrote:
It might be that your modem cannot cope with the ring buffer patch
that went into 2.6.16. Can you revert a specific patch?
  
  The patch indicated below. Are you running on x86?
 
 Yes, x86. It is an athlon xp system with nforce2 chipset.
 
 I could not find complete patch from the mailing list message you 
 pointed me to, the sf list archive contains truncated (short) message
 with the patch, and e-mail addresses from the patch are mangled.
 
 But I have taken cdc_acm driver from 2.6.15, patched forward tty_flip
 and usb_driver.owner incompatibilities with 2.6.16, and voila - cdc_acm
 driver from 2.6.15 works fine on 2.6.16 kernel, no dups at all.

Very good. It seems that something in your system cannot cope with higher
speeds of the 2.6.16 driver. Could you please take the 2.6.16 driver and
half the values of ACM_NRU and ACM_NRB in cdc-acm.h until you find a
value that works?
The traces you provided show that the duplication is already present at
the hcd layer. Thus it must either be the hcd driver (very unlikely),
your motherboard or the device. In the latter case I'll have to introduce
a special case for your modem.

Regards
Oliver


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [GIT PATCH] USB fixes for 2.6.17-rc3

2006-05-09 Thread Greg KH
Here are some more small USB fixes for 2.6.17-rc3.  They contain a few
small bug fixes and a few new device ids for new devices.

All of these changes have been in the -mm tree for a number of weeks.

Please pull from:
rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/
or if master.kernel.org hasn't synced up yet:
master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6.git/

The full patches will be sent to the linux-usb-devel mailing list, if
anyone wants to see them.

thanks,

greg k-h


 drivers/block/ub.c|   18 ++
 drivers/usb/atm/speedtch.c|2 +-
 drivers/usb/atm/usbatm.c  |8 
 drivers/usb/core/hcd.c|   13 ++---
 drivers/usb/core/hub.c|   23 +--
 drivers/usb/host/ohci-hcd.c   |2 +-
 drivers/usb/net/pegasus.c |   20 +++-
 drivers/usb/serial/ftdi_sio.c |2 ++
 drivers/usb/serial/ftdi_sio.h |9 +
 9 files changed, 61 insertions(+), 36 deletions(-)

---

Alan Stern:
  USB: usbcore: don't check the device's power source

David Brownell:
  USB: fix bug in ohci-hcd.c ohci_restart()
  USB: pegasus fixes (logstorm, suspend)
  USB: fix OHCI PM regression

Duncan Sands:
  USBATM: change the default speedtouch iso altsetting
  USBATM: fix modinfo output

Ian Abbott:
  USB: ftdi_sio: Add support for HCG HF Dual ISO RFID Reader

Pete Zaitcev:
  USB: ub oops in block_uevent

Razvan Gavril:
  USB: ftdi_sio: add device id for ACT Solutions HomePro ZWave interface



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 1/9] USB: fix bug in ohci-hcd.c ohci_restart()

2006-05-09 Thread Greg KH
From: David Brownell [EMAIL PROTECTED]

A loop on a power-lost resume path used the wrong index.
I suspect khubd has been working around such bugs.
Noticed by Andreas Mohr [EMAIL PROTECTED].

Signed-off-by: David Brownell [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/host/ohci-hcd.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

839ab1d4ce4dfd7e6c189391a82c584292488b41
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 544f758..73f5a37 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -863,7 +863,7 @@ static int ohci_restart (struct ohci_hcd
i = ohci-num_ports;
while (i--)
ohci_writel (ohci, RH_PS_PSS,
-   ohci-regs-roothub.portstatus [temp]);
+   ohci-regs-roothub.portstatus [i]);
ohci_dbg (ohci, restart complete\n);
}
return 0;
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 7/9] USB: ub oops in block_uevent

2006-05-09 Thread Greg KH
From: Pete Zaitcev [EMAIL PROTECTED]

In kernel 2.6.16, if a mounted storage device is removed, an oops happens
because ub supplies an interface device (and kobject) to the block layer,
but neglects to pin it. And apparently, the block layer expects its users
to pin device structures.

The code in ub was broken this way for years. But the bug was exposed only
by 2.6.16 when it started to call block_uevent on close, which traverses
device structures (kobjects actually).

Signed-off-by: Pete Zaitcev [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/block/ub.c |   18 ++
 1 files changed, 10 insertions(+), 8 deletions(-)

77ef6c4d6e23653a79eedacdd6d1d0da7083e59c
diff --git a/drivers/block/ub.c b/drivers/block/ub.c
index f73446f..c688c25 100644
--- a/drivers/block/ub.c
+++ b/drivers/block/ub.c
@@ -536,6 +536,9 @@ static void ub_cleanup(struct ub_dev *sc
kfree(lun);
}
 
+   usb_set_intfdata(sc-intf, NULL);
+   usb_put_intf(sc-intf);
+   usb_put_dev(sc-dev);
kfree(sc);
 }
 
@@ -2221,7 +2224,12 @@ static int ub_probe(struct usb_interface
// sc-ifnum = intf-cur_altsetting-desc.bInterfaceNumber;
usb_set_intfdata(intf, sc);
usb_get_dev(sc-dev);
-   // usb_get_intf(sc-intf);  /* Do we need this? */
+   /*
+* Since we give the interface struct to the block level through
+* disk-driverfs_dev, we have to pin it. Otherwise, block_uevent
+* oopses on close after a disconnect (kernels 2.6.16 and up).
+*/
+   usb_get_intf(sc-intf);
 
snprintf(sc-name, 12, DRV_NAME (%d.%d),
sc-dev-bus-busnum, sc-dev-devnum);
@@ -2286,7 +2294,7 @@ #endif
 
 err_dev_desc:
usb_set_intfdata(intf, NULL);
-   // usb_put_intf(sc-intf);
+   usb_put_intf(sc-intf);
usb_put_dev(sc-dev);
kfree(sc);
 err_core:
@@ -2461,12 +2469,6 @@ static void ub_disconnect(struct usb_int
 * and no URBs left in transit.
 */
 
-   usb_set_intfdata(intf, NULL);
-   // usb_put_intf(sc-intf);
-   sc-intf = NULL;
-   usb_put_dev(sc-dev);
-   sc-dev = NULL;
-
ub_put(sc);
 }
 
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 6/9] USB: usbcore: don't check the device's power source

2006-05-09 Thread Greg KH
From: Alan Stern [EMAIL PROTECTED]

The choose_configuration() routine contains code the determine the
device's power source, so that configurations requiring external power
can be ruled out if the device is running on bus power.  Unfortunately
it turns out that some devices have errors in their config descriptors
and other devices don't like the GET_DEVICE_STATUS request.

Since that information wasn't used for anything else, this patch (as673)
removes the code, leaving only a comment.  It fixes bugzilla entry
#6448.

Signed-off-by: Alan Stern [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/core/hub.c |   23 +--
 1 files changed, 13 insertions(+), 10 deletions(-)

436f5762bcd4929825a0725d4bc78337e6fc0d8f
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 0c87f73..90b8d43 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1168,19 +1168,9 @@ static inline const char *plural(int n)
 static int choose_configuration(struct usb_device *udev)
 {
int i;
-   u16 devstatus;
-   int bus_powered;
int num_configs;
struct usb_host_config *c, *best;
 
-   /* If this fails, assume the device is bus-powered */
-   devstatus = 0;
-   usb_get_status(udev, USB_RECIP_DEVICE, 0, devstatus);
-   le16_to_cpus(devstatus);
-   bus_powered = ((devstatus  (1  USB_DEVICE_SELF_POWERED)) == 0);
-   dev_dbg(udev-dev, device is %s-powered\n,
-   bus_powered ? bus : self);
-
best = NULL;
c = udev-config;
num_configs = udev-descriptor.bNumConfigurations;
@@ -1197,6 +1187,19 @@ static int choose_configuration(struct u
 * similar errors in their descriptors.  If the next test
 * were allowed to execute, such configurations would always
 * be rejected and the devices would not work as expected.
+* In the meantime, we run the risk of selecting a config
+* that requires external power at a time when that power
+* isn't available.  It seems to be the lesser of two evils.
+*
+* Bugzilla #6448 reports a device that appears to crash
+* when it receives a GET_DEVICE_STATUS request!  We don't
+* have any other way to tell whether a device is self-powered,
+* but since we don't use that information anywhere but here,
+* the call has been removed.
+*
+* Maybe the GET_DEVICE_STATUS call and the test below can
+* be reinstated when device firmwares become more reliable.
+* Don't hold your breath.
 */
 #if 0
/* Rule out self-powered configs for a bus-powered device */
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 2/9] USBATM: change the default speedtouch iso altsetting

2006-05-09 Thread Greg KH
From: Duncan Sands [EMAIL PROTECTED]

The maximum possible bandwidth for a speedtouch modem is about 7Mbaud.
You can only get this by using isochronous urbs (enable_isoc=1) and
altsetting 3.  With the current default altsetting of 2, the modem
maxes out at about 4Mbaud.  So change the default altsetting to 3
when using isochronous urbs.  It would be nice to base the altsetting
on the detected line speed, but that's hard given the current design.

Signed-off-by: Duncan Sands [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/atm/speedtch.c |2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

67c752b41a4238c1a2d7eebcd061ff8c1127d3e9
diff --git a/drivers/usb/atm/speedtch.c b/drivers/usb/atm/speedtch.c
index 7860c8a..956b7a1 100644
--- a/drivers/usb/atm/speedtch.c
+++ b/drivers/usb/atm/speedtch.c
@@ -69,7 +69,7 @@ #define MAX_POLL_DELAY6   /* millise
 #define RESUBMIT_DELAY 1000/* milliseconds */
 
 #define DEFAULT_BULK_ALTSETTING1
-#define DEFAULT_ISOC_ALTSETTING2
+#define DEFAULT_ISOC_ALTSETTING3
 #define DEFAULT_DL_512_FIRST   0
 #define DEFAULT_ENABLE_ISOC0
 #define DEFAULT_SW_BUFFERING   0
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 4/9] USB: pegasus fixes (logstorm, suspend)

2006-05-09 Thread Greg KH
From: David Brownell [EMAIL PROTECTED]

Teach pegasus to handle a few of the disconnect fault paths
without hundreds of usless syslog messages.

Handle the carrier check workqueue entry even if the driver has
not been opened.

Signed-off-by: David Brownell [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/net/pegasus.c |   20 +++-
 1 files changed, 15 insertions(+), 5 deletions(-)

7e713b825610de9a9584c189c72e2d9f2326359c
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
index 2deb4c0..7683926 100644
--- a/drivers/usb/net/pegasus.c
+++ b/drivers/usb/net/pegasus.c
@@ -318,6 +318,8 @@ static int read_mii_word(pegasus_t * peg
set_register(pegasus, PhyCtrl, (indx | PHY_READ));
for (i = 0; i  REG_TIMEOUT; i++) {
ret = get_registers(pegasus, PhyCtrl, 1, data);
+   if (ret == -ESHUTDOWN)
+   goto fail;
if (data[0]  PHY_DONE)
break;
}
@@ -326,6 +328,7 @@ static int read_mii_word(pegasus_t * peg
*regd = le16_to_cpu(regdi);
return ret;
}
+fail:
if (netif_msg_drv(pegasus))
dev_warn(pegasus-intf-dev, fail %s\n, __FUNCTION__);
 
@@ -354,12 +357,15 @@ static int write_mii_word(pegasus_t * pe
set_register(pegasus, PhyCtrl, (indx | PHY_WRITE));
for (i = 0; i  REG_TIMEOUT; i++) {
ret = get_registers(pegasus, PhyCtrl, 1, data);
+   if (ret == -ESHUTDOWN)
+   goto fail;
if (data[0]  PHY_DONE)
break;
}
if (i  REG_TIMEOUT)
return ret;
 
+fail:
if (netif_msg_drv(pegasus))
dev_warn(pegasus-intf-dev, fail %s\n, __FUNCTION__);
return -ETIMEDOUT;
@@ -387,6 +393,8 @@ static int read_eprom_word(pegasus_t * p
ret = get_registers(pegasus, EpromCtrl, 1, tmp);
if (tmp  EPROM_DONE)
break;
+   if (ret == -ESHUTDOWN)
+   goto fail;
}
if (i  REG_TIMEOUT) {
ret = get_registers(pegasus, EpromData, 2, retdatai);
@@ -394,6 +402,7 @@ static int read_eprom_word(pegasus_t * p
return ret;
}
 
+fail:
if (netif_msg_drv(pegasus))
dev_warn(pegasus-intf-dev, fail %s\n, __FUNCTION__);
return -ETIMEDOUT;
@@ -433,12 +442,15 @@ static int write_eprom_word(pegasus_t * 
 
for (i = 0; i  REG_TIMEOUT; i++) {
ret = get_registers(pegasus, EpromCtrl, 1, tmp);
+   if (ret == -ESHUTDOWN)
+   goto fail;
if (tmp  EPROM_DONE)
break;
}
disable_eprom_write(pegasus);
if (i  REG_TIMEOUT)
return ret;
+fail:
if (netif_msg_drv(pegasus))
dev_warn(pegasus-intf-dev, fail %s\n, __FUNCTION__);
return -ETIMEDOUT;
@@ -1378,9 +1390,8 @@ static int pegasus_suspend (struct usb_i
struct pegasus *pegasus = usb_get_intfdata(intf);

netif_device_detach (pegasus-net);
+   cancel_delayed_work(pegasus-carrier_check);
if (netif_running(pegasus-net)) {
-   cancel_delayed_work(pegasus-carrier_check);
-
usb_kill_urb(pegasus-rx_urb);
usb_kill_urb(pegasus-intr_urb);
}
@@ -1400,10 +1411,9 @@ static int pegasus_resume (struct usb_in
pegasus-intr_urb-status = 0;
pegasus-intr_urb-actual_length = 0;
intr_callback(pegasus-intr_urb, NULL);
-
-   queue_delayed_work(pegasus_workqueue, pegasus-carrier_check,
-   CARRIER_CHECK_DELAY);
}
+   queue_delayed_work(pegasus_workqueue, pegasus-carrier_check,
+   CARRIER_CHECK_DELAY);
return 0;
 }
 
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 5/9] USB: fix OHCI PM regression

2006-05-09 Thread Greg KH
From: David Brownell [EMAIL PROTECTED]

This fixes a small regression in USB controller power usage for many
OHCI controllers, notably including every non-PCI version of OHCI:  on
those systems, the runtime autosuspend mechanism is no longer enabled.

The change moves to saner defaults.  All root hubs are expected to handle
remote wakeup (and hence autosuspend), although drivers for buggy silicon
may override that default.

Signed-off-by: David Brownell [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/core/hcd.c |   13 ++---
 1 files changed, 6 insertions(+), 7 deletions(-)

db4cefaaea4c6d67cdaebfd315abc791c5c9d22f
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index fbd938d..e2e00ba 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1805,6 +1805,12 @@ int usb_add_hcd(struct usb_hcd *hcd,
USB_SPEED_FULL;
hcd-self.root_hub = rhdev;
 
+   /* wakeup flag init defaults to everything works for root hubs,
+* but drivers can override it in reset() if needed, along with
+* recording the overall controller's system wakeup capability.
+*/
+   device_init_wakeup(rhdev-dev, 1);
+
/* reset is misnamed; its role is now one-time init. the controller
 * should already have been reset (and boot firmware kicked off etc).
 */
@@ -1813,13 +1819,6 @@ int usb_add_hcd(struct usb_hcd *hcd,
goto err_hcd_driver_setup;
}
 
-   /* wakeup flag init is in transition; for now we can't rely on PCI to
-* initialize these bits properly, so we let reset() override it.
-* This init should _precede_ the reset() once PCI behaves.
-*/
-   device_init_wakeup(rhdev-dev,
-   device_can_wakeup(hcd-self.controller));
-
/* NOTE: root hub and controller capabilities may not be the same */
if (device_can_wakeup(hcd-self.controller)
 device_can_wakeup(hcd-self.root_hub-dev))
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 8/9] USB: ftdi_sio: Add support for HCG HF Dual ISO RFID Reader

2006-05-09 Thread Greg KH
From: Ian Abbott [EMAIL PROTECTED]

This patch adds support for ACG Identification Technologies GmbH's HF
Dual ISO Reader (an RFID tag reader) to the ftdi_sio driver's device ID
table.  The product ID was supplied by anotonios (anton at goto10 dot
org) on the ftdi-usb-sio-devel list and subsequently verified by myself
(Ian Abbott).

Signed-off-by: Ian Abbott [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/serial/ftdi_sio.c |1 +
 drivers/usb/serial/ftdi_sio.h |5 +
 2 files changed, 6 insertions(+), 0 deletions(-)

20a0f47e18c646bcc772282512fc59e56b2fc968
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 8215120..9498da4 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -498,6 +498,7 @@ static struct usb_device_id id_table_com
{ USB_DEVICE(FTDI_VID, FTDI_ASK_RDR400_PID) },
{ USB_DEVICE(ICOM_ID1_VID, ICOM_ID1_PID) },
{ USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) },
+   { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) },
{ },/* Optional parameter entry */
{ } /* Terminating entry */
 };
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index 2c55a5e..3e4123f 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -426,6 +426,11 @@ #define FTDI_ECLO_COM_1WIRE_PID0xEA90  /
 #define PAPOUCH_VID0x5050  /* Vendor ID */
 #define PAPOUCH_TMU_PID0x0400  /* TMU USB Thermometer 
*/
 
+/*
+ * ACG Identification Technologies GmbH products (http://www.acg.de/).
+ * Submitted by anton -at- goto10 -dot- org.
+ */
+#define FTDI_ACG_HFDUAL_PID0xDD20  /* HF Dual ISO Reader (RFID) */
 
 /* Commands */
 #define FTDI_SIO_RESET 0 /* Reset the port */
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 3/9] USBATM: fix modinfo output

2006-05-09 Thread Greg KH
From: Duncan Sands [EMAIL PROTECTED]

Because of the way stringify works, using an expression
like 64 * 1024 for UDSL_MAX_BUF_SIZE results in 64 * 1024
turning up in the modinfo output instead of 65536.  So use
65536 directly (this was the only way I found of fixing this).

Signed-off-by: Duncan Sands [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/atm/usbatm.c |8 
 1 files changed, 4 insertions(+), 4 deletions(-)

6275cdfa0fe032208937a3567ebb8bcfd42d20b1
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index c1211fc..5462498 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -99,11 +99,11 @@ static const char usbatm_driver_name[] =
 
 #define UDSL_MAX_RCV_URBS  16
 #define UDSL_MAX_SND_URBS  16
-#define UDSL_MAX_BUF_SIZE  64 * 1024   /* bytes */
+#define UDSL_MAX_BUF_SIZE  65536
 #define UDSL_DEFAULT_RCV_URBS  4
 #define UDSL_DEFAULT_SND_URBS  4
-#define UDSL_DEFAULT_RCV_BUF_SIZE  64 * ATM_CELL_SIZE  /* bytes */
-#define UDSL_DEFAULT_SND_BUF_SIZE  64 * ATM_CELL_SIZE  /* bytes */
+#define UDSL_DEFAULT_RCV_BUF_SIZE  3392/* 64 * ATM_CELL_SIZE */
+#define UDSL_DEFAULT_SND_BUF_SIZE  3392/* 64 * ATM_CELL_SIZE */
 
 #define ATM_CELL_HEADER(ATM_CELL_SIZE - 
ATM_CELL_PAYLOAD)
 
@@ -135,7 +135,7 @@ MODULE_PARM_DESC(rcv_buf_bytes,
 module_param(snd_buf_bytes, uint, S_IRUGO);
 MODULE_PARM_DESC(snd_buf_bytes,
 Size of the buffers used for transmission, in bytes (range: 
1-
-__MODULE_STRING(UDSL_MAX_SND_BUF_SIZE) , default: 
+__MODULE_STRING(UDSL_MAX_BUF_SIZE) , default: 
 __MODULE_STRING(UDSL_DEFAULT_SND_BUF_SIZE) ));
 
 
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] [PATCH 9/9] USB: ftdi_sio: add device id for ACT Solutions HomePro ZWave interface

2006-05-09 Thread Greg KH
From: Razvan Gavril [EMAIL PROTECTED]

Signed-off-by: Razvan Gavril [EMAIL PROTECTED]
Signed-off-by: Greg Kroah-Hartman [EMAIL PROTECTED]

---

 drivers/usb/serial/ftdi_sio.c |1 +
 drivers/usb/serial/ftdi_sio.h |4 
 2 files changed, 5 insertions(+), 0 deletions(-)

72a9f958421a519e69b3e7b409948c3a294f4a32
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 9498da4..986d762 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -307,6 +307,7 @@ static struct ftdi_sio_quirk ftdi_HE_TIR
 
 
 static struct usb_device_id id_table_combined [] = {
+   { USB_DEVICE(FTDI_VID, FTDI_ACTZWAVE_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_IRTRANS_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_IPLUS_PID) },
{ USB_DEVICE(FTDI_VID, FTDI_SIO_PID) },
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index 3e4123f..d69a917 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -32,6 +32,10 @@ #define FTDI_NF_RIC_VID  0x0DCD  /* Vendor
 #define FTDI_NF_RIC_PID0x0001  /* Product Id */
 
 
+/* ACT Solutions HomePro ZWave interface 
(http://www.act-solutions.com/HomePro.htm) */
+#define FTDI_ACTZWAVE_PID  0xF2D0
+
+
 /* www.irtrans.de device */
 #define FTDI_IRTRANS_PID 0xFC60 /* Product Id */
 
-- 
1.3.2



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] Add support for,multiple gadgets

2006-05-09 Thread Carlos Aguiar
ext David Brownell wrote:

On Wednesday 19 April 2006 12:01 pm, Carlos Aguiar wrote:
  

Hi folks,

I'm starting a project that the main idea is to try to add support for
multiple gadgets. Ideally we would have Ethernet, serial and mass
storage available at the same time.



Good, I'll be glad to see some progress on this.  But please keep to
the current terminology:  there will be exactly one gadget, but it
will expose multiple interfaces or functions.

 
  

The platforms that I intend to use to develop the project is OMAP H2 and H3.



So it'll also go well with an OMAP OSK [1] or Nokia N770 ... ;)

I agree that the OMAP is a good platform to start this work on; it's got
plenty of endpoints, and I think omap_udc seems pretty solid.  You should
however think about what it'd mean to do this with a dual speed peripheral
too; there are some differences that can crop up.


  

I'm new in this list and I would like to ask you some orientations and
to get any hints on where to get started.



As I recall, the model we came up with last time this was discussed included:

  - Some core gadget driver into which interface/function/... drivers plug;
when given a single widget, the driver should act like todays drivers do.

  - Those interface/function/u-name-it/... widgets would include:
  * one or more usb_gadget_string tables for the strings
  * descriptors for the interface(s), for building the config descriptor
  * ... for dual-speed hardware, both high speed and full speed 
 desriptors...
  * setup() callback for interface and class requests and SET_CONFIGURATION
  * init() callback, used to set up interface and string identifers

So that core driver would be configured somehow, maybe with the desired device
descriptor and a table of those widgets to match each gadget configuration (or
maybe some other way). The gadget code would call the widget init() routines,
which would use some convention to allocate those numeric identifiers so they
don't collide.

At that point, that core driver would be able do respond to all setup() 
requests
from the USB host ... it would return device, string, and configuration 
descriptors
on demand (matching the current peripheral speed), and pass SET_CONFIGURATION
and SET_INTERFACE requests up to the widgets.  The widgets would initiate 
endpoint
I/O as appropriate, etc.

Details are left as an exercise.  :)

However you'll notice that all the gadget drivers you mentioned have already
been factored into tables of strings and descriptors, so that part has been
done already.  You should be able to get quite far by changing only the gadget
driver initialization, and splitting out setup() code into a reausable core
plus widget-specific bits.

- Dave


[1] http://tree.celinuxforum.org/CelfPubWiki/OSK ... more generally available
than H2 or H3.

  

Hi Dave,

First of all, thanks for this explanation that was very helpful.

But now, we have to write an action plan. We would like to know which
tasks could be done for us.

Could you help us to define these tasks?

Thanks in advance.

Carlos and David.

-- 
Carlos Eduardo
Software Engineer
Nokia Institute of Technology - INdT
Embedded Linux Laboratory - 10LE
Phone: +55 92 2126-1079
Mobile: +55 92 8127-1797
E-mail: [EMAIL PROTECTED]



---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


Re: [linux-usb-devel] Re: 2.6.16: usb modem (cdc-acm driver) and duplicate bytes

2006-05-09 Thread Alexander V. Lukyanov
On Tue, May 09, 2006 at 07:19:08PM +0200, Oliver Neukum wrote:
 Very good. It seems that something in your system cannot cope with higher
 speeds of the 2.6.16 driver. Could you please take the 2.6.16 driver and
 half the values of ACM_NRU and ACM_NRB in cdc-acm.h until you find a
 value that works?

I have tried value of 1 - still get dups. Duplicated data occurs rarer,
but a larger chunks of it get duplicated. I attach test data - typescript
of `atv' command and corresponding usbmon data. File name notation:
*-n1data with ACM_NRU=ACM_NRB=1
*-n16   data with ACM_NRU=ACM_NRB=16
*-old   data with 2.6.15 cdc_acm driver.

In the `n1' case the second attempt of atv results in a duplicated line.
`n16' produces lots of small dups. `old' produces no dups.

-- 
   Alexander.


2.mon.out-n1.gz
Description: application/gunzip


2.mon.out-n16.gz
Description: application/gunzip


2.mon.out-old.gz
Description: application/gunzip


typescript-n1.gz
Description: application/gunzip


typescript-n16.gz
Description: application/gunzip


typescript-old.gz
Description: application/gunzip


Re: [linux-usb-devel] Re: 2.6.16: usb modem (cdc-acm driver) and duplicate bytes

2006-05-09 Thread Oliver Neukum
Am Dienstag, 9. Mai 2006 23:12 schrieb Alexander V. Lukyanov:
 On Tue, May 09, 2006 at 07:19:08PM +0200, Oliver Neukum wrote:
  Very good. It seems that something in your system cannot cope with higher
  speeds of the 2.6.16 driver. Could you please take the 2.6.16 driver and
  half the values of ACM_NRU and ACM_NRB in cdc-acm.h until you find a
  value that works?
 
 I have tried value of 1 - still get dups. Duplicated data occurs rarer,
 but a larger chunks of it get duplicated. I attach test data - typescript
 of `atv' command and corresponding usbmon data. File name notation:
   *-n1data with ACM_NRU=ACM_NRB=1
   *-n16   data with ACM_NRU=ACM_NRB=16
   *-old   data with 2.6.15 cdc_acm driver.
 
 In the `n1' case the second attempt of atv results in a duplicated line.
 `n16' produces lots of small dups. `old' produces no dups.

Could you please remobe #undef DEBUG from the driver and rerun the n=1 test?

Regards
Oliver


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid=120709bid=263057dat=121642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


RE: [linux-usb-devel] USB Host performance

2006-05-09 Thread Juhee MALA
Hello Allan,

Thanks for your answers. Just one question, when we use the URB_NO_INTERRUPT
flag, does it inhibit the interrrupt for non-error completions only? or does
it inhbit all the interrupts? If it inhibits all the interrupts how can we
monitor the status?

The application we are using is the zero  gadget driver, for testing our
host. Actually I just wanted to know what is the maximum speed that anybody
would have seen with the URB size of  8KByte, or is the theoretical value
actually achievable?

The host controller that we are using is Synopsys EHCI controller.

rgds
Juhee



-Original Message-
From: Alan Stern [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, May 09, 2006 8:10 PM
To: Juhee MALA
Cc: linux-usb-devel@lists.sourceforge.net
Subject: Re: [linux-usb-devel] USB Host performance


On Tue, 9 May 2006, Juhee MALA wrote:

 We are using Linux USB Host stack and doing some performance analysis. 
 For performance analysis we are testing it with a device, which 
 accepts the Bulk-OUT packets with full effieciency (not much-NYTES 
 from device side). We are submitting the data of URB size 8kbytes. The 
 throughput in such scenario that we are getting is approximately 
 175Mbps.
 
 1. Can anybody tell me, if this is a good performance?

Good for what?  It's certainly not the best possible.  But it's more than 
adequate for USB-audio.

 2. Can anybody tell me what is the best performance that can be 
 achieved on a USB host?

The maximum theoretical throughput for high-speed 512-byte bulk transfers is
13 packets per microframe, or 53248000 B/s.  That's equivalent to 426 
million bits per second.

Linux can achieve such rates, if the hardware allows.  To reach it, you have
to submit a lot of URBs asynchronously.  If you're using 8 KB transfer
lengths then you should submit at least two batches of URBs, with at least
64 URBs in each batch, and with the URB_NO_INTERRUPT flag set on each URB
except the last one in a batch.  Each time a batch completes, immediately
submit another batch.

 3. IS there any bench marking tool for checking the host stack 
 performance?

Not that I know of.

 4. Which application should be used for demonstrating the host 
 performance?

This is almost the same question as number 3.

If you want to use your test device, you should select an application that 
will work with it.  Of course, since I don't know what your test device 
is, I can't recommend any applications.

Alan Stern




---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] Doubts in HCD Suspend/Resume

2006-05-09 Thread rakesh kn

Hi ,

I have written the platform glue for ARC - EHCI controller. I provided
the suspend/resume call backs in struct platform_driver with CONFIG_PM
and CONFIG_USB_SUSPEND for selecti ve suspend/resume enabled.

My kernel is compile to be monolithic. So once the kernel boots up,
the driver is registered.

I mounted on sysfs and when i try to suspend the host controller with
a camera (mass storage) pluggged in to it.

I have provided some debug prints in the suspend/resume call backs i
provided in the struct platform_driver.

I execute the command to suspend using /sys/bus/usb/devices/usb1/powe/state

ehco -n 3  /sys/bus/usb/devices/usb1/powe/state,
Shouldn't the corresponding suspend call back get invoked. For me it is not.
Similarly for resume.

Please tell me where i am wrong.

Rak


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel


[linux-usb-devel] Re: USB 2.0 ehci failure with large amount of RAM (4GB) on x86_64

2006-05-09 Thread Nathan Becker

Like I said in my previous message, I am not a kernel developer.  I am
a programmer though, so I thought I'd give your suggestions a try.

I added 1 line to drivers/usb/host/ehci-pci.c which sets the DMA mask,
and now it seems to work with ehci loaded and with 4 GB of RAM.
Unfortunately, I don't really understand what I did.  Perhaps you have
a better idea what this is doing and if it is correct.

case PCI_VENDOR_ID_NVIDIA:
/* NVidia reports that certain chips don't handle
 * QH, ITD, or SITD addresses above 2GB.  (But TD,
 * data buffer, and periodic schedule are normal.)
 */

dma_set_mask(hcd-self.controller, DMA_31BIT_MASK); /* I added 
this line */

switch (pdev-device) {
case 0x003c:/* MCP04 */
case 0x005b:/* CK804 */
case 0x00d8:/* CK8 */
case 0x00e8:/* CK8S */
if (pci_set_consistent_dma_mask(pdev,
DMA_31BIT_MASK)  0)
ehci_warn(ehci, can't enable NVidia 
workaround for 2GB RAM\n);
break;
}
break;
}


---
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnkkid0709bid3057dat1642
___
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel