When LPAE is enabled, we need to set 64bit DMA mask bits.
Signed-off-by: Tushar Behera tushar.behera@linaro.org --- This patch is based on v3.10. Targetted for LSK. Rebased patch will be submitted to upstream mailing list.
This is required for booting Arndale board if ARM_LPAE is enabled.
arch/arm/mach-exynos/mach-exynos5-dt.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c b/arch/arm/mach-exynos/mach-exynos5-dt.c index 753b94f..d88234e 100644 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c @@ -14,6 +14,7 @@ #include <linux/memblock.h> #include <linux/io.h> #include <linux/clocksource.h> +#include <linux/dma-mapping.h>
#include <asm/mach/arch.h> #include <mach/regs-pmu.h> @@ -23,11 +24,31 @@
#include "common.h"
+static u64 dma_mask64 = DMA_BIT_MASK(64); + static void __init exynos5_dt_map_io(void) { exynos_init_io(NULL, 0); }
+static int exynos5250_platform_notifier(struct notifier_block *nb, + unsigned long event, void *__dev) +{ + struct device *dev = __dev; + + if (event != BUS_NOTIFY_ADD_DEVICE) + return NOTIFY_DONE; + + dev->dma_mask = &dma_mask64; + dev->coherent_dma_mask = DMA_BIT_MASK(64); + + return NOTIFY_OK; +} + +static struct notifier_block exynos5250_platform_nb = { + .notifier_call = exynos5250_platform_notifier, +}; + static void __init exynos5_dt_machine_init(void) { struct device_node *i2c_np; @@ -52,6 +73,11 @@ static void __init exynos5_dt_machine_init(void) } }
+ if (config_enabled(CONFIG_ARM_LPAE) && + of_machine_is_compatible("samsung,exynos5250")) + bus_register_notifier(&platform_bus_type, + &exynos5250_platform_nb); + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); }
On Fri, Aug 09, 2013 at 02:12:27PM +0530, Tushar Behera wrote:
This patch is based on v3.10. Targetted for LSK. Rebased patch will be submitted to upstream mailing list.
Submit upstream first please. Remember the general policy for the LSK is to backport changes from upstream, taking advantage of upstream review and ensuring that we don't misunderstand the way in which we should be working with the generic kernel.
On 9 August 2013 14:57, Mark Brown broonie@kernel.org wrote:
On Fri, Aug 09, 2013 at 02:12:27PM +0530, Tushar Behera wrote:
This patch is based on v3.10. Targetted for LSK. Rebased patch will be submitted to upstream mailing list.
Submit upstream first please. Remember the general policy for the LSK is to backport changes from upstream, taking advantage of upstream review and ensuring that we don't misunderstand the way in which we should be working with the generic kernel.
Russell has posted a patchset to cleanup/fix dma_mask issues. So this patch won't be merged upstream anymore.
linaro-kernel@lists.linaro.org