--- Lothar Wassmann <[EMAIL PROTECTED]> wrote:
> Hi David,
>
> > On Friday 17 December 2004 6:53 am, Lothar Wassmann wrote:
> > > Hi David,
> > >
> > > > On Friday 17 December 2004 1:51 am, Lothar Wassmann wrote:
> > > > > > xfer_size = ptd_xfer_size(ptd_q, xfer_type, len);
> > > > > > printk("len = %d, xfer_size = %d, mps = %d, xfer_type
> = %d\n",
> > > > > > len, xfer_size, mps, xfer_type);
> > > > > > if (xfer_size < len && xfer_size % mps) {
> > > > > > BUG_ON(xfer_size < mps);
> > > > > > // round down to an integer multiple of
> max_packet_size
> > > > > > xfer_size -= xfer_size % mps;
> > > > > >
> > > > > If xfer_size is less than mps this assignment would give
> a bogus
> > > > > result, thus the BUG_ON() macro to catch this case.
> > > >
> > > > Not that I know that Philips chip or driver, but I don't
> see
> > > > why this should be a BUG either ... looks like the test is
> wrong,
> > > > the "if" should include "xfer_size > mps".
> > > >
> > > No. The test is absolutely correct! 'xfer_size' is calculated
> by
> > > ptd_xfer_size() as the maximum chunk of data that can be
> transferred
> > > in one block based on mps and the block size that is
> configured for
> > > the chip internal buffer. 'len' is the amount of data that
> read()
> > > expects.
> >
> > My point still remains that the maximum chunk for any given
> > transfer can easily be less than the maximum packet size.
> >
> You're right. I omitted an 'except for the last packet' in my
> original
> answer.
>
> > Though it's not clear how that maps to the state variables
> > you have there ...
> >
> In the case of a buffer smaller than 'mps' 'xfer_size' will be
> equal
> to 'len', so the BUG_ON() statement won't be reached.
>
Thanks for your responses, guys.
I worked around the problem by increasing the INT buffer's blk
size:
// dev->intl_queue.num_bufs = 32;
// dev->intl_queue.blk_size = 8;
dev->intl_queue.num_bufs = 1;
dev->intl_queue.blk_size = 64;
That seemed to fix it. Performance isn't a big issue, so I think
this will be okay.
Mike
-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://productguide.itmanagersjournal.com/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel