Re: ISP1761 / FTDI SIO USB serial problems

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

 



On Mon, Jan 10, 2011 at 08:25:36PM +0000, Russell King - ARM Linux wrote:
> On Mon, Jan 10, 2011 at 08:13:20PM +0100, Sebastian Andrzej Siewior wrote:
> > * Russell King - ARM Linux | 2011-01-09 12:54:21 [+0000]:
> > 
> > >
> > >If you have a patch, I'll test it - it's very easy to reproduce here.
> > >Last night, it was at the point of having to restart minicom almost every
> > >time I rebooted the OMAP4 board because at some point during the uboot
> > >blurb the USB serial port went awol.
> > 
> > I have here like 10 usb-to-serial adapters but all of them have pl2303
> > which does not even show the "reloaded" symptom.
> > The patch here changes from ATL triggered interrupt into an SOF
> > interrupt which could fix your problem if it is what the errata
> > describes.
> 
> So far soo good - this plus the removal of the printk statement seems
> to have done the trick.  I've run several 'dmesg' invocations and
> rebooted the OMAP4 board a few times, and I've not had to restart
> minicom once.
> 
> For reference the patch below represents what I actually tested - that
> being your patch plus removal of the too verbose printk.
> 
> Tested-by: Russell King <rmk+kernel@xxxxxxxxxxxxxxxx>

So what's happening with this patch?  Are you going to submit it for -rc?

> diff --git a/drivers/usb/host/isp1760-hcd.c b/drivers/usb/host/isp1760-hcd.c
> index bdba8c5..9cb8722 100644
> --- a/drivers/usb/host/isp1760-hcd.c
> +++ b/drivers/usb/host/isp1760-hcd.c
> @@ -1049,17 +1049,6 @@ static void do_atl_int(struct usb_hcd *usb_hcd)
>  		if (!nakcount && (dw3 & DW3_QTD_ACTIVE)) {
>  			u32 buffstatus;
>  
> -			/*
> -			 * NAKs are handled in HW by the chip. Usually if the
> -			 * device is not able to send data fast enough.
> -			 * This happens mostly on slower hardware.
> -			 */
> -			printk(KERN_NOTICE "Reloading ptd %p/%p... qh %p read: "
> -					"%d of %zu done: %08x cur: %08x\n", qtd,
> -					urb, qh, PTD_XFERRED_LENGTH(dw3),
> -					qtd->length, done_map,
> -					(1 << queue_entry));
> -
>  			/* RL counter = ERR counter */
>  			dw3 &= ~(0xf << 19);
>  			dw3 |= rl << 19;
> @@ -1770,7 +1759,7 @@ static irqreturn_t isp1760_irq(struct usb_hcd *usb_hcd)
>  		goto leave;
>  
>  	isp1760_writel(imask, usb_hcd->regs + HC_INTERRUPT_REG);
> -	if (imask & HC_ATL_INT)
> +	if (imask & (HC_ATL_INT | HC_SOT_INT))
>  		do_atl_int(usb_hcd);
>  
>  	if (imask & HC_INTL_INT)
> diff --git a/drivers/usb/host/isp1760-hcd.h b/drivers/usb/host/isp1760-hcd.h
> index 6931ef5..0d6023b 100644
> --- a/drivers/usb/host/isp1760-hcd.h
> +++ b/drivers/usb/host/isp1760-hcd.h
> @@ -68,7 +68,7 @@ void deinit_kmem_cache(void);
>  #define HC_INTERRUPT_REG	0x310
>  
>  #define HC_INTERRUPT_ENABLE	0x314
> -#define INTERRUPT_ENABLE_MASK	(HC_INTL_INT | HC_ATL_INT | HC_EOT_INT)
> +#define INTERRUPT_ENABLE_MASK	(HC_INTL_INT | HC_SOT_INT | HC_EOT_INT)
>  
>  #define HC_ISO_INT		(1 << 9)
>  #define HC_ATL_INT		(1 << 8)
--
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