Commit 56580bb4 authored by Jason Cooper's avatar Jason Cooper

Merge branch 'mvebu-misc-fixes' of...

Merge branch 'mvebu-misc-fixes' of git://github.com/MISL-EBU-System-SW/mainline-public into mvebu/everything
parents 4e76b1b2 73d9cdca
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
/ { / {
model = "Marvell Armada 370 and XP SoC"; model = "Marvell Armada 370 and XP SoC";
compatible = "marvell,armada_370_xp"; compatible = "marvell,armada-370-xp";
cpus { cpus {
cpu@0 { cpu@0 {
......
...@@ -78,7 +78,7 @@ armada_cfg_base(const struct orion_addr_map_cfg *cfg, int win) ...@@ -78,7 +78,7 @@ armada_cfg_base(const struct orion_addr_map_cfg *cfg, int win)
if (win < 8) if (win < 8)
offset = (win << 4); offset = (win << 4);
else else
offset = ARMADA_WINDOW_8_PLUS_OFFSET + (win << 3); offset = ARMADA_WINDOW_8_PLUS_OFFSET + ((win - 8) << 3);
return cfg->bridge_virt_base + offset; return cfg->bridge_virt_base + offset;
} }
......
...@@ -66,13 +66,12 @@ static void __init armada_370_xp_dt_init(void) ...@@ -66,13 +66,12 @@ static void __init armada_370_xp_dt_init(void)
coherency_init(); coherency_init();
} }
static const char * const armada_370_xp_dt_board_dt_compat[] = { static const char * const armada_370_xp_dt_compat[] = {
"marvell,a370-db", "marvell,armada-370-xp",
"marvell,axp-db",
NULL, NULL,
}; };
DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)") DT_MACHINE_START(ARMADA_XP_DT, "Marvell Armada 370/XP (Device Tree)")
.smp = smp_ops(armada_xp_smp_ops), .smp = smp_ops(armada_xp_smp_ops),
.init_machine = armada_370_xp_dt_init, .init_machine = armada_370_xp_dt_init,
.map_io = armada_370_xp_map_io, .map_io = armada_370_xp_map_io,
...@@ -81,5 +80,5 @@ DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)") ...@@ -81,5 +80,5 @@ DT_MACHINE_START(ARMADA_XP_DT, "Marvell Aramada 370/XP (Device Tree)")
.handle_irq = armada_370_xp_handle_irq, .handle_irq = armada_370_xp_handle_irq,
.timer = &armada_370_xp_timer, .timer = &armada_370_xp_timer,
.restart = mvebu_restart, .restart = mvebu_restart,
.dt_compat = armada_370_xp_dt_board_dt_compat, .dt_compat = armada_370_xp_dt_compat,
MACHINE_END MACHINE_END
...@@ -1162,9 +1162,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev, ...@@ -1162,9 +1162,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
/* clear errors before enabling interrupts */ /* clear errors before enabling interrupts */
mv_xor_device_clear_err_status(mv_chan); mv_xor_device_clear_err_status(mv_chan);
ret = devm_request_irq(&pdev->dev, mv_chan->irq, ret = request_irq(mv_chan->irq, mv_xor_interrupt_handler,
mv_xor_interrupt_handler, 0, dev_name(&pdev->dev), mv_chan);
0, dev_name(&pdev->dev), mv_chan);
if (ret) if (ret)
goto err_free_dma; goto err_free_dma;
...@@ -1185,14 +1184,14 @@ mv_xor_channel_add(struct mv_xor_device *xordev, ...@@ -1185,14 +1184,14 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
ret = mv_xor_memcpy_self_test(mv_chan); ret = mv_xor_memcpy_self_test(mv_chan);
dev_dbg(&pdev->dev, "memcpy self test returned %d\n", ret); dev_dbg(&pdev->dev, "memcpy self test returned %d\n", ret);
if (ret) if (ret)
goto err_free_dma; goto err_free_irq;
} }
if (dma_has_cap(DMA_XOR, dma_dev->cap_mask)) { if (dma_has_cap(DMA_XOR, dma_dev->cap_mask)) {
ret = mv_xor_xor_self_test(mv_chan); ret = mv_xor_xor_self_test(mv_chan);
dev_dbg(&pdev->dev, "xor self test returned %d\n", ret); dev_dbg(&pdev->dev, "xor self test returned %d\n", ret);
if (ret) if (ret)
goto err_free_dma; goto err_free_irq;
} }
dev_info(&pdev->dev, "Marvell XOR: " dev_info(&pdev->dev, "Marvell XOR: "
...@@ -1205,6 +1204,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev, ...@@ -1205,6 +1204,8 @@ mv_xor_channel_add(struct mv_xor_device *xordev,
dma_async_device_register(dma_dev); dma_async_device_register(dma_dev);
return mv_chan; return mv_chan;
err_free_irq:
free_irq(mv_chan->irq, mv_chan);
err_free_dma: err_free_dma:
dma_free_coherent(&pdev->dev, MV_XOR_POOL_SIZE, dma_free_coherent(&pdev->dev, MV_XOR_POOL_SIZE,
mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool); mv_chan->dma_desc_pool_virt, mv_chan->dma_desc_pool);
...@@ -1240,6 +1241,8 @@ mv_xor_conf_mbus_windows(struct mv_xor_device *xordev, ...@@ -1240,6 +1241,8 @@ mv_xor_conf_mbus_windows(struct mv_xor_device *xordev,
writel(win_enable, base + WINDOW_BAR_ENABLE(0)); writel(win_enable, base + WINDOW_BAR_ENABLE(0));
writel(win_enable, base + WINDOW_BAR_ENABLE(1)); writel(win_enable, base + WINDOW_BAR_ENABLE(1));
writel(0, base + WINDOW_OVERRIDE_CTRL(0));
writel(0, base + WINDOW_OVERRIDE_CTRL(1));
} }
static int __devinit mv_xor_probe(struct platform_device *pdev) static int __devinit mv_xor_probe(struct platform_device *pdev)
...@@ -1309,8 +1312,8 @@ static int __devinit mv_xor_probe(struct platform_device *pdev) ...@@ -1309,8 +1312,8 @@ static int __devinit mv_xor_probe(struct platform_device *pdev)
dma_cap_set(DMA_INTERRUPT, cap_mask); dma_cap_set(DMA_INTERRUPT, cap_mask);
irq = irq_of_parse_and_map(np, 0); irq = irq_of_parse_and_map(np, 0);
if (irq < 0) { if (!irq) {
ret = irq; ret = -ENODEV;
goto err_channel_add; goto err_channel_add;
} }
...@@ -1319,6 +1322,7 @@ static int __devinit mv_xor_probe(struct platform_device *pdev) ...@@ -1319,6 +1322,7 @@ static int __devinit mv_xor_probe(struct platform_device *pdev)
cap_mask, irq); cap_mask, irq);
if (IS_ERR(xordev->channels[i])) { if (IS_ERR(xordev->channels[i])) {
ret = PTR_ERR(xordev->channels[i]); ret = PTR_ERR(xordev->channels[i]);
xordev->channels[i] = NULL;
irq_dispose_mapping(irq); irq_dispose_mapping(irq);
goto err_channel_add; goto err_channel_add;
} }
......
...@@ -53,6 +53,7 @@ ...@@ -53,6 +53,7 @@
#define WINDOW_SIZE(w) (0x270 + ((w) << 2)) #define WINDOW_SIZE(w) (0x270 + ((w) << 2))
#define WINDOW_REMAP_HIGH(w) (0x290 + ((w) << 2)) #define WINDOW_REMAP_HIGH(w) (0x290 + ((w) << 2))
#define WINDOW_BAR_ENABLE(chan) (0x240 + ((chan) << 2)) #define WINDOW_BAR_ENABLE(chan) (0x240 + ((chan) << 2))
#define WINDOW_OVERRIDE_CTRL(chan) (0x2A0 + ((chan) << 2))
struct mv_xor_device { struct mv_xor_device {
void __iomem *xor_base; void __iomem *xor_base;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment