Hi Sergei, On 05/23/2014 02:52 PM, Sergei Shtylyov wrote: > On 05/23/2014 01:31 PM, Daniel Mack wrote: > >> The datasheet says that MUSB_TXCSR_FLUSHFIFO is only valid when >> MUSB_CSR0_TXPKTRDY is set as well. Also, clear the MUSB_TXCSR_H_RXSTALL >> which drivers are not supposed to write, > > I'd say "to set" ISO "to write" -- the bit still is clearable by the driver. You're referring to the wording in the commit log? I can fix that, sure. >> according to the docs. > > Looks like the new code is contrariwise not clearing the stall. I I'd say it's not supposed to. I just wanted the bit to be 0 when writing back the CSR. IOW, it follows the advisory in the datasheet that says: "You should clear this bit." >> With this patch applied, the warning in this function does no longer >> kick in when an USB soundcard is unplugged while the stream is active. > >> Signed-off-by: Daniel Mack <zonque@xxxxxxxxx> >> --- >> drivers/usb/musb/musb_host.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) > >> diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c >> index f98a7c0..9d3a5b2 100644 >> --- a/drivers/usb/musb/musb_host.c >> +++ b/drivers/usb/musb/musb_host.c >> @@ -120,7 +120,8 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep) >> if (csr != lastcsr) >> dev_dbg(musb->controller, "Host TX FIFONOTEMPTY csr: %02x\n", csr); >> lastcsr = csr; >> - csr |= MUSB_TXCSR_FLUSHFIFO; >> + csr &= MUSB_TXCSR_H_RXSTALL; >> + csr |= MUSB_TXCSR_FLUSHFIFO | MUSB_CSR0_TXPKTRDY; >> musb_writew(epio, MUSB_TXCSR, csr); >> csr = musb_readw(epio, MUSB_TXCSR); >> if (WARN(retries-- < 1, > > I guess you meant this WARN()? Jup. It's easy to reproduce btw, presumably with any off-the-shelf USB audio card, connected to something like the BBB. Thanks, Daniel -- 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