Hi Christian, On 21 November 2017 at 19:35, Christian Gromm <christian.gromm@xxxxxxxxxxxxx> wrote: > For the MOST packet channel there are two dedicated USB endpoints. But > internally the hardware has actually one channel for data forwarding from > and to MOST. To have the hardware clean up its state machine correctly in > case of an error, both USB pipes need to be reset. This patch triggers the > host to also clear the OUT endpoint's halt condition in case an IN endpoint > has signaled to be stalled. > > Signed-off-by: Christian Gromm <christian.gromm@xxxxxxxxxxxxx> > --- > drivers/staging/most/usb/usb.c | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/drivers/staging/most/usb/usb.c b/drivers/staging/most/usb/usb.c > index acd0a36..49f5495 100644 > --- a/drivers/staging/most/usb/usb.c > +++ b/drivers/staging/most/usb/usb.c > @@ -815,6 +815,21 @@ static void wq_clear_halt(struct work_struct *wq_obj) > if (usb_clear_halt(mdev->usb_device, pipe)) > dev_warn(&mdev->usb_device->dev, "Failed to reset endpoint.\n"); > > + /* If the functional Stall condition has been set on an > + * asynchronous rx channel, we need to clear the tx channel > + * too, since the hardware runs its clean-up sequence on both > + * channels, as they are physically one on the network. > + * > + * The USB interface that exposes the asynchronous channels > + * contains always two endpoints, and two only. > + */ > + if (mdev->conf[channel].data_type == MOST_CH_ASYNC && > + mdev->conf[channel].direction == MOST_CH_RX) { > + int peer = 1 - channel; > + int snd_pipe = usb_sndbulkpipe(mdev->usb_device, > + mdev->ep_address[peer]); > + usb_clear_halt(mdev->usb_device, snd_pipe); > + } > mdev->is_channel_healthy[channel] = true; > most_resume_enqueue(&mdev->iface, channel); > mutex_unlock(&mdev->io_mutex); > -- > 2.7.4 > > _______________________________________________ > devel mailing list > devel@xxxxxxxxxxxxxxxxxxxxxx > http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel This fix is independent of the series. Can you decouple this and post as a separate patch? This fix can go in even if the series takes time to go in. Regards, PrasannaKumar _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel