Re: MAX3421E: device giving NAKs forever?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Alan,

On Fri, Mar 14, 2014 at 8:02 AM, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote:
> On Thu, 13 Mar 2014, David Mosberger wrote:
>
>> To answer my own question: it appears that USB peripherals return NAKs
>> not only when the peripheral is not ready to accept the data, but also
>> when the peripheral doesn't know what to do with the data.
>
> No, that's not right.  If the device doesn't know what to do with the
> data (for example, if it doesn't recognize a particular SETUP request),
> it replies with a STALL.

Please re-read my statement again.  I said that infinite NAKs is one
way for a peripheral to say, "I don't know what to do with this".  I
didn't say it's the only way to handle errors.  I certainly would have
much preferred to get a STALL for my situation because it'd have made
it very clear what the offending command was.

> Probably what happens is that the device doesn't queue an internal
> request for an OUT transfer until it knows that it needs some data.
> Without a request queued, the device's USB controller doesn't have
> any place to store the data sent by the host computer, so it NAKs the
> transfer.
>
> It really is saying "I'm not ready to accept this data".

Sure, that sounds very plausible.

I didn't say the device was doing anything wrong.  I just have seen
several other questions from developers about infinite NAKs but never
an answer as to what would cause that, so I wanted to explain it for
the benefit of others.

  --david
-- 
eGauge Systems LLC, http://egauge.net/, 1.877-EGAUGE1, fax 720.545.9768
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux