Add upstream patches needed for PCIe through a switch. Signed-off-by: Tim Harvey <tharvey@gateworks.com> SVN-Revision: 38511
		
			
				
	
	
		
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From 8590081d5328fe59d4f72aaadafb47fb91d8dc7c Mon Sep 17 00:00:00 2001
 | |
| From: Tim Harvey <tharvey@gateworks.com>
 | |
| Date: Thu, 17 Oct 2013 15:52:16 -0700
 | |
| Subject: [PATCH] PCI: imx6: fix imprecise abort handler
 | |
| 
 | |
| An imprecise abort is triggered when a port behind a switch is accessed
 | |
| and no device is present.  At enumeration, imprecise aborts are not enabled
 | |
| thus this ends up getting deferred until the kernel has completed init.  At
 | |
| that point we must not adjust PC - the handler must do nothing, but a handler
 | |
| must exist.
 | |
| 
 | |
| This fixes random crashes that occur right after freeing init.
 | |
| This is against linux-pci/host-imx6.
 | |
| 
 | |
| Acked-by: Marek Vasut <marex@denx.de>
 | |
| Tested-by: Marek Vasut <marex@denx.de>
 | |
| Signed-off-by: Tim Harvey <tharvey@gateworks.com>
 | |
| ---
 | |
|  drivers/pci/host/pci-imx6.c |    6 ------
 | |
|  1 file changed, 6 deletions(-)
 | |
| 
 | |
| --- a/drivers/pci/host/pci-imx6.c
 | |
| +++ b/drivers/pci/host/pci-imx6.c
 | |
| @@ -200,12 +200,6 @@ static int pcie_phy_write(void __iomem *
 | |
|  static int imx6q_pcie_abort_handler(unsigned long addr,
 | |
|  		unsigned int fsr, struct pt_regs *regs)
 | |
|  {
 | |
| -	/*
 | |
| -	 * If it was an imprecise abort, then we need to correct the
 | |
| -	 * return address to be _after_ the instruction.
 | |
| -	 */
 | |
| -	if (fsr & (1 << 10))
 | |
| -		regs->ARM_pc += 4;
 | |
|  	return 0;
 | |
|  }
 | |
|  
 |