diff options
8 files changed, 57 insertions, 32 deletions
| diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c index 5b51ea4ab..1027e5c8c 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-dbg.c @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-dbg.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  /*-------------------------------------------------------------------------*/ diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-drv.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-drv.c index 04845d964..02c80f3fd 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-drv.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-drv.c @@ -1,7 +1,7 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-au1xxx.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at> @@ -16,7 +16,10 @@   *   Modified for AMD Alchemy Au1xxx   *    by Matt Porter <mporter@kernel.crashing.org>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  #include <linux/platform_device.h> diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c index 541859661..c75b87af4 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-hcd.c @@ -1,7 +1,7 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-hcd.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at> @@ -12,7 +12,10 @@   *   [ (C) Copyright 1999 Linus Torvalds  ]   *   [ (C) Copyright 1999 Gregory P. Smith]   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  #include <linux/module.h> @@ -42,7 +45,7 @@  #include "../core/hcd.h"  #include "../core/hub.h" -#define DRIVER_VERSION	"0.14.1" +#define DRIVER_VERSION	"0.16.0"  #define DRIVER_AUTHOR	"Gabor Juhos <juhosg at openwrt.org>"  #define DRIVER_DESC	"ADMtek USB 1.1 Host Controller Driver" diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-hub.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-hub.c index c431b8e1c..4fd826d55 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-hub.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-hub.c @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-hub.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2004 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  /*-------------------------------------------------------------------------*/ diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-mem.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-mem.c index 7cfd8c13b..3e4b2d992 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-mem.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-mem.c @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-mem.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  /*-------------------------------------------------------------------------*/ diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c index e10a8e95d..ac7bf6cfc 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-pm.c @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from fragments of the OHCI driver.   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2004 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  #define OHCI_SCHED_ENABLES \ diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120-q.c b/target/linux/adm5120/files/drivers/usb/host/adm5120-q.c index 9995d4254..9d33bc31b 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120-q.c +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120-q.c @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci-q.c   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  #include <linux/irq.h> @@ -571,51 +574,52 @@ static void td_submit_urb(struct admhcd *ahcd, struct urb *urb)  static int td_done(struct admhcd *ahcd, struct urb *urb, struct td *td)  {  	struct urb_priv *urb_priv = urb->hcpriv; -	u32	info = hc32_to_cpup(ahcd, &td->hwINFO); +	u32	info; +	u32	bl; +	u32	tdDBP;  	int	type = usb_pipetype(urb->pipe);  	int	cc; +	info = hc32_to_cpup(ahcd, &td->hwINFO); +	tdDBP = hc32_to_cpup(ahcd, &td->hwDBP); +	bl = TD_BL_GET(hc32_to_cpup(ahcd, &td->hwCBL));  	cc = TD_CC_GET(info);  	/* ISO ... drivers see per-TD length/status */  	if (type == PIPE_ISOCHRONOUS) { -#if 0  		/* TODO */  		int	dlen = 0;  		/* NOTE:  assumes FC in tdINFO == 0, and that  		 * only the first of 0..MAXPSW psws is used.  		 */ - -		cc = TD_CC_GET(td); +#if 0  		if (tdINFO & TD_CC)	/* hc didn't touch? */  			return; - -		if (usb_pipeout (urb->pipe)) -			dlen = urb->iso_frame_desc [td->index].length; +#endif +		if (usb_pipeout(urb->pipe)) +			dlen = urb->iso_frame_desc[td->index].length;  		else {  			/* short reads are always OK for ISO */ -			if (cc == TD_DATAUNDERRUN) +			if (cc == TD_CC_DATAUNDERRUN)  				cc = TD_CC_NOERROR; -			dlen = tdPSW & 0x3ff; +			dlen = tdDBP - td->data_dma + bl;  		} +  		urb->actual_length += dlen; -		urb->iso_frame_desc [td->index].actual_length = dlen; -		urb->iso_frame_desc [td->index].status = cc_to_error [cc]; +		urb->iso_frame_desc[td->index].actual_length = dlen; +		urb->iso_frame_desc[td->index].status = cc_to_error[cc];  		if (cc != TD_CC_NOERROR)  			admhc_vdbg (ahcd,  				"urb %p iso td %p (%d) len %d cc %d\n",  				urb, td, 1 + td->index, dlen, cc); -#endif +  	/* BULK, INT, CONTROL ... drivers see aggregate length/status,  	 * except that "setup" bytes aren't counted and "short" transfers  	 * might not be reported as errors.  	 */  	} else { -		u32	bl = TD_BL_GET(hc32_to_cpup(ahcd, &td->hwCBL)); -		u32	tdDBP = hc32_to_cpup(ahcd, &td->hwDBP); -  		/* update packet status if needed (short is normally ok) */  		if (cc == TD_CC_DATAUNDERRUN  				&& !(urb->transfer_flags & URB_SHORT_NOT_OK)) diff --git a/target/linux/adm5120/files/drivers/usb/host/adm5120.h b/target/linux/adm5120/files/drivers/usb/host/adm5120.h index 6152764c1..a3acfe53b 100644 --- a/target/linux/adm5120/files/drivers/usb/host/adm5120.h +++ b/target/linux/adm5120/files/drivers/usb/host/adm5120.h @@ -1,13 +1,16 @@  /*   * ADM5120 HCD (Host Controller Driver) for USB   * - * Copyright (C) 2007 Gabor Juhos <juhosg at openwrt.org> + * Copyright (C) 2007,2008 Gabor Juhos <juhosg at openwrt.org>   *   * This file was derived from: drivers/usb/host/ohci.h   *   (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>   *   (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>   * - * This file is licenced under the GPL. + *  This program is free software; you can redistribute it and/or modify it + *  under the terms of the GNU General Public License version 2 as published + *  by the Free Software Foundation. + *   */  /* | 
