mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-24 18:44:27 -04:00 
			
		
		
		
	mvebu: update Linux 4.0 patches
Signed-off-by: Imre Kaloz <kaloz@openwrt.org> SVN-Revision: 45762
This commit is contained in:
		
							parent
							
								
									588acc2cba
								
							
						
					
					
						commit
						f1ebb1dddd
					
				| @ -1,62 +0,0 @@ | ||||
| On Armada 38x SoCs, under heavy I/O load, the system hangs when CPU | ||||
| Idle is enabled. Waiting for a solution to this issue, this patch | ||||
| disables the CPU Idle support for this SoC. | ||||
| 
 | ||||
| As CPU Hot plug support also uses some of the CPU Idle functions it is | ||||
| also affected by the same issue. This patch disables it also for the | ||||
| Armada 38x SoCs. | ||||
| 
 | ||||
| Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com> | ||||
| Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | ||||
| Cc: <stable@vger.kernel.org> # v3.17 + | ||||
| ---
 | ||||
| Hi, | ||||
| 
 | ||||
| In this version I removed the unneeded initialization of the ret | ||||
| variable, I also fixed the warning message, and finally I added the | ||||
| Tested-by from Thomas. | ||||
| 
 | ||||
| Gregory | ||||
| 
 | ||||
|  arch/arm/mach-mvebu/pmsu.c | 16 +++++++++++++++- | ||||
|  1 file changed, 15 insertions(+), 1 deletion(-) | ||||
| 
 | ||||
| --- a/arch/arm/mach-mvebu/pmsu.c
 | ||||
| +++ b/arch/arm/mach-mvebu/pmsu.c
 | ||||
| @@ -415,6 +415,9 @@ static __init int armada_38x_cpuidle_ini
 | ||||
|  	void __iomem *mpsoc_base; | ||||
|  	u32 reg; | ||||
|   | ||||
| +	pr_warn("CPU idle is currently broken on Armada 38x: disabling");
 | ||||
| +	return 0;
 | ||||
| +
 | ||||
|  	np = of_find_compatible_node(NULL, NULL, | ||||
|  				     "marvell,armada-380-coherency-fabric"); | ||||
|  	if (!np) | ||||
| @@ -476,6 +479,16 @@ static int __init mvebu_v7_cpu_pm_init(v
 | ||||
|  		return 0; | ||||
|  	of_node_put(np); | ||||
|   | ||||
| +	/*
 | ||||
| +	 * Currently the CPU idle support for Armada 38x is broken, as
 | ||||
| +	 * the CPU hotplug uses some of the CPU idle functions it is
 | ||||
| +	 * broken too, so let's disable it
 | ||||
| +	 */
 | ||||
| +	if (of_machine_is_compatible("marvell,armada380")) {
 | ||||
| +		cpu_hotplug_disable();
 | ||||
| +		pr_warn("CPU hotplug support is currently broken on Armada 38x: disabling");
 | ||||
| +	}
 | ||||
| +
 | ||||
|  	if (of_machine_is_compatible("marvell,armadaxp")) | ||||
|  		ret = armada_xp_cpuidle_init(); | ||||
|  	else if (of_machine_is_compatible("marvell,armada370")) | ||||
| @@ -489,7 +502,8 @@ static int __init mvebu_v7_cpu_pm_init(v
 | ||||
|  		return ret; | ||||
|   | ||||
|  	mvebu_v7_pmsu_enable_l2_powerdown_onidle(); | ||||
| -	platform_device_register(&mvebu_v7_cpuidle_device);
 | ||||
| +	if (mvebu_v7_cpuidle_device.name)
 | ||||
| +		platform_device_register(&mvebu_v7_cpuidle_device);
 | ||||
|  	cpu_pm_register_notifier(&mvebu_v7_cpu_pm_notifier); | ||||
|   | ||||
|  	return 0; | ||||
| @ -299,7 +299,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> | ||||
|  { | ||||
|  	struct mvebu_gpio_chip *mvchip = | ||||
|  		container_of(chip, struct mvebu_gpio_chip, chip); | ||||
| @@ -609,6 +592,8 @@ static int mvebu_gpio_suspend(struct pla
 | ||||
| @@ -617,6 +600,8 @@ static int mvebu_gpio_suspend(struct pla
 | ||||
|  		BUG(); | ||||
|  	} | ||||
|   | ||||
| @ -308,7 +308,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -652,6 +637,8 @@ static int mvebu_gpio_resume(struct plat
 | ||||
| @@ -660,6 +645,8 @@ static int mvebu_gpio_resume(struct plat
 | ||||
|  		BUG(); | ||||
|  	} | ||||
|   | ||||
| @ -317,7 +317,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> | ||||
|  	return 0; | ||||
|  } | ||||
|   | ||||
| @@ -663,7 +650,6 @@ static int mvebu_gpio_probe(struct platf
 | ||||
| @@ -671,7 +658,6 @@ static int mvebu_gpio_probe(struct platf
 | ||||
|  	struct resource *res; | ||||
|  	struct irq_chip_generic *gc; | ||||
|  	struct irq_chip_type *ct; | ||||
| @ -325,7 +325,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> | ||||
|  	unsigned int ngpios; | ||||
|  	int soc_variant; | ||||
|  	int i, cpu, id; | ||||
| @@ -693,10 +679,10 @@ static int mvebu_gpio_probe(struct platf
 | ||||
| @@ -701,10 +687,10 @@ static int mvebu_gpio_probe(struct platf
 | ||||
|  		return id; | ||||
|  	} | ||||
|   | ||||
| @ -339,7 +339,7 @@ Signed-off-by: Andrew Lunn <andrew@lunn.ch> | ||||
|   | ||||
|  	mvchip->soc_variant = soc_variant; | ||||
|  	mvchip->chip.label = dev_name(&pdev->dev); | ||||
| @@ -830,7 +816,8 @@ static int mvebu_gpio_probe(struct platf
 | ||||
| @@ -838,7 +824,8 @@ static int mvebu_gpio_probe(struct platf
 | ||||
|  		goto err_generic_chip; | ||||
|  	} | ||||
|   | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user