mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-09 20:32:04 +09:00
ARM: EXYNOS: Set 64-bit DMA mask for EXYNOS5250
When LPAE is enabled, we need to set 64bit DMA mask bits. [The actual fix for this issue is a much more involved patch series reworking how DMA masks are set which is still in review upstream -- broonie] Signed-off-by: Tushar Behera <tushar.behera@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
committed by
Mark Brown
parent
8bb495e3f0
commit
1288d63721
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user