Yes, there IS a bug of the d12 driver.
All the ep were added to the gadget.ep_list including
ep0, which cause the ep0->driver_data not pointing to
gadgetfs device after activate_ep_files() function,
and once writing to ep0 on setup_in, the fake dev
crashed everything.
Thanks for your help...
> On Monday 18 February 2008, hui zhuu wrote:
> > Hi Dave,
> >
> > After the stress test and backport gadget code
> from
> > 2.6.24 to my current 2.6.20 version, the problem
> > remains .
>
> Suggesting more strongly that it's the "d12" driver
> which is making trouble.
>
>
> > It always reports error when responding to the
> > following setup request:
> >
> > SETUP 80.06 v0300 i0000 l00ff
>
> See below ... this is *after* the problem. The fact
> that you see an error with this request is a side
> effect of the bug.
>
>
> > usb.c always fails at replying to this request, it
> > reports:
> >
> > write string data: Device or resource busy
> > ep0 read after poll: Level 2 halted
> >
> > I don't know if AIO is mandantory for this
> > enumaration, as I did not use AIO.
> >
> > I also got something DEBUG message from gadgetfs
> as
> > the following:
> >
> > SETUP 80.06 v0300 i0000 l00ff
> > gadgetfs: delegate req80.06 v0300 i0000 l255
> > gadgetfs: event[1] = 3
> > gadgetfs: ep0 request busy!
>
> Did you look at the gadgetfs source to see *WHY*
> that
> message was emitted? It explains much of what the
> problem is. Specifically, setup_out_ready is set.
>
> And a simple examination of the code shows that
> there's
> only one way that can be nonzero: there was an
> ep0out
> request, and its data didn't get up to userspace
> yet.
>
> What request was that? Is your d12 driver handling
> its part of that request correctly ... including the
> code paths which clear that flag after it gets set?
>
> - Dave
>
>
>
> > gadgetfs: ep0in stall
> >
> > Any suggestion for me?
> >
> > Thanks ...
> >
> >
> > --- David Brownell <[EMAIL PROTECTED]>写道:
> >
> > > On Thursday 14 February 2008, hui zhuu wrote:
> > > > > > Thanks, anyway, how can I find the if
> version
> > > of
> > > > > the
> > > > > > gadgetfs.h is wrong?
> > > > >
> > > > > Use the version of the header from the
> kernel
> > > that
> > > > > you're running with.
> > > >
> > > > I just did that, the problem is still there.
> > > >
> > > > This is strange, as our d12 driver works ok
> with
> > > the
> > > > serial/ether/file_storage gadget, from this
> point
> > > can
> > > > I suppose it is sufficient to hooks up with
> > > gadgetfs?
> > >
> > > It could be. Does g_zero work well in stress
> test
> > > mode?
> > > (That is, running all the tests in the test
> script,
> > > for
> > > several days at a time ... try it over this
> > > weekend.)
> > >
> > > Usually the problem with gadgetfs has been a
> mode
> > > for
> > > handling control transfers that isn't widely
> used
> > > ...
> > > except in gadgetfs, and g_file_storage.
> > >
> > >
> > > > The gadget code i am working with is form
> 2.6.20.4
> > > > kernel tree, I think it's pretty new. Did I
> miss
> > > > anything else?
> > >
> > > I've not used gadgetfs much lately, beyond just
> a
> > > quick sanity test on 2.6.24 to sort out that one
> > > issue (which turned out to be in userspace).
> > >
> > > So, all I can say for sure is: try 2.6.24 and
> see
> > > if that works for you too.
> > >
> > > - Dave
> > >
>
>
>
___________________________________________________________
雅虎邮箱传递新年祝福,个性贺卡送亲朋!
http://cn.mail.yahoo.com/gc/index.html?entry=5&souce=mail_mailletter_tagline
-
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html