mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-30 13:34:27 -04:00 
			
		
		
		
	Add support for NXP layerscape ls1043ardb 64b/32b Dev board. LS1043a is an SoC with 4x64-bit up to 1.6 GHz ARMv8 A53 cores. ls1043ardb support features as: 2GB DDR4, 128MB NOR/512MB NAND, USB3.0, eSDHC, I2C, GPIO, PCIe/Mini-PCIe, 6x1G/1x10G network port, etc. 64b/32b ls1043ardb target is using 4.4 kernel, and rcw/u-boot/fman images from NXP QorIQ SDK release. All of 4.4 kernel patches porting from SDK release or upstream. QorIQ SDK ISOs can be downloaded from this location: http://www.nxp.com/products/software-and-tools/run-time-software/linux-sdk/linux-sdk-for-qoriq-processors:SDKLINUX Signed-off-by: Yutang Jiang <yutang.jiang@nxp.com>
		
			
				
	
	
		
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 6aa1eca98ca44f515e10d8058d0ff6db3c8a3c11 Mon Sep 17 00:00:00 2001
 | |
| From: Bogdan Hamciuc <bogdan.hamciuc@freescale.com>
 | |
| Date: Fri, 28 Sep 2012 17:04:33 +0300
 | |
| Subject: [PATCH 21/70] net: Make the netdev watchdog aware of hardware
 | |
|  multiqueue devices
 | |
| 
 | |
| If the netdev declares the NETIF_F_HW_ACCEL_MQ (accelerated multiqueue)
 | |
| capability, tell the watchdog to consider the per-netdev trans_start
 | |
| field rather than any individual multiqueue's timestamp. That is
 | |
| justified by the fact that queues only go in and out of congestion
 | |
| in groups, not individually, as far as the net device is concerned.
 | |
| 
 | |
| Change-Id: I07a6693bf1f0bb1e9396c5e232452223a511ecc1
 | |
| Signed-off-by: Bogdan Hamciuc <bogdan.hamciuc@freescale.com>
 | |
| Reviewed-on: http://git.am.freescale.net:8181/1033
 | |
| Reviewed-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
 | |
| Tested-by: Fleming Andrew-AFLEMING <AFLEMING@freescale.com>
 | |
| ---
 | |
|  net/sched/sch_generic.c |   17 ++++++++++++++++-
 | |
|  1 file changed, 16 insertions(+), 1 deletion(-)
 | |
| 
 | |
| --- a/net/sched/sch_generic.c
 | |
| +++ b/net/sched/sch_generic.c
 | |
| @@ -290,8 +290,23 @@ static void dev_watchdog(unsigned long a
 | |
|  				txq = netdev_get_tx_queue(dev, i);
 | |
|  				/*
 | |
|  				 * old device drivers set dev->trans_start
 | |
| +				 *
 | |
| +				 * (Actually, not only "old" devices, but also
 | |
| +				 * those which perform queue management in a
 | |
| +				 * separate hw accelerator. So even though the
 | |
| +				 * net device itself is single-queued, it makes
 | |
| +				 * sense (and is safe, too) to use kernel's
 | |
| +				 * multiqueue interface, specifically to avoid
 | |
| +				 * unnecessary device locking in SMP systems.
 | |
| +				 * In this case, we ought to consider not an
 | |
| +				 * individual txq's timestamp as a congestion
 | |
| +				 * indicator, but the "old" per-netdev field.)
 | |
|  				 */
 | |
| -				trans_start = txq->trans_start ? : dev->trans_start;
 | |
| +				if (dev->features & NETIF_F_HW_ACCEL_MQ)
 | |
| +					trans_start = dev->trans_start;
 | |
| +				else
 | |
| +					trans_start = txq->trans_start ? :
 | |
| +						dev->trans_start;
 | |
|  				if (netif_xmit_stopped(txq) &&
 | |
|  				    time_after(jiffies, (trans_start +
 | |
|  							 dev->watchdog_timeo))) {
 |