Commit 53e6a100 authored by Tony Lindgren's avatar Tony Lindgren

Merge branch 'fixes-omap4-dsp' into fixes-non-critical

parents 00a36698 222e5cec
...@@ -83,8 +83,6 @@ static int omap2_mbox_startup(struct omap_mbox *mbox) ...@@ -83,8 +83,6 @@ static int omap2_mbox_startup(struct omap_mbox *mbox)
l = mbox_read_reg(MAILBOX_REVISION); l = mbox_read_reg(MAILBOX_REVISION);
pr_debug("omap mailbox rev %d.%d\n", (l & 0xf0) >> 4, (l & 0x0f)); pr_debug("omap mailbox rev %d.%d\n", (l & 0xf0) >> 4, (l & 0x0f));
omap2_mbox_enable_irq(mbox, IRQ_RX);
return 0; return 0;
} }
......
...@@ -73,19 +73,17 @@ static struct iommu_device omap4_devices[] = { ...@@ -73,19 +73,17 @@ static struct iommu_device omap4_devices[] = {
.da_end = 0xFFFFF000, .da_end = 0xFFFFF000,
}, },
}, },
#if defined(CONFIG_MPU_TESLA_IOMMU)
{ {
.base = OMAP4_MMU2_BASE, .base = OMAP4_MMU2_BASE,
.irq = INT_44XX_DSP_MMU, .irq = OMAP44XX_IRQ_TESLA_MMU,
.pdata = { .pdata = {
.name = "tesla", .name = "tesla",
.nr_tlb_entries = 32, .nr_tlb_entries = 32,
.clk_name = "tesla_ick", .clk_name = "dsp_fck",
.da_start = 0x0, .da_start = 0x0,
.da_end = 0xFFFFF000, .da_end = 0xFFFFF000,
}, },
}, },
#endif
}; };
#define NR_OMAP4_IOMMU_DEVICES ARRAY_SIZE(omap4_devices) #define NR_OMAP4_IOMMU_DEVICES ARRAY_SIZE(omap4_devices)
static struct platform_device *omap4_iommu_pdev[NR_OMAP4_IOMMU_DEVICES]; static struct platform_device *omap4_iommu_pdev[NR_OMAP4_IOMMU_DEVICES];
......
...@@ -282,6 +282,8 @@ static int omap_mbox_startup(struct omap_mbox *mbox) ...@@ -282,6 +282,8 @@ static int omap_mbox_startup(struct omap_mbox *mbox)
} }
mbox->rxq = mq; mbox->rxq = mq;
mq->mbox = mbox; mq->mbox = mbox;
omap_mbox_enable_irq(mbox, IRQ_RX);
} }
mutex_unlock(&mbox_configured_lock); mutex_unlock(&mbox_configured_lock);
return 0; return 0;
...@@ -305,6 +307,7 @@ static void omap_mbox_fini(struct omap_mbox *mbox) ...@@ -305,6 +307,7 @@ static void omap_mbox_fini(struct omap_mbox *mbox)
mutex_lock(&mbox_configured_lock); mutex_lock(&mbox_configured_lock);
if (!--mbox->use_count) { if (!--mbox->use_count) {
omap_mbox_disable_irq(mbox, IRQ_RX);
free_irq(mbox->irq, mbox); free_irq(mbox->irq, mbox);
tasklet_kill(&mbox->txq->tasklet); tasklet_kill(&mbox->txq->tasklet);
flush_work_sync(&mbox->rxq->work); flush_work_sync(&mbox->rxq->work);
...@@ -338,13 +341,15 @@ struct omap_mbox *omap_mbox_get(const char *name, struct notifier_block *nb) ...@@ -338,13 +341,15 @@ struct omap_mbox *omap_mbox_get(const char *name, struct notifier_block *nb)
if (!mbox) if (!mbox)
return ERR_PTR(-ENOENT); return ERR_PTR(-ENOENT);
ret = omap_mbox_startup(mbox);
if (ret)
return ERR_PTR(-ENODEV);
if (nb) if (nb)
blocking_notifier_chain_register(&mbox->notifier, nb); blocking_notifier_chain_register(&mbox->notifier, nb);
ret = omap_mbox_startup(mbox);
if (ret) {
blocking_notifier_chain_unregister(&mbox->notifier, nb);
return ERR_PTR(-ENODEV);
}
return mbox; return mbox;
} }
EXPORT_SYMBOL(omap_mbox_get); EXPORT_SYMBOL(omap_mbox_get);
......
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