#include <linux/pm_runtime.h>
#include "dmaengine.h"
+#ifdef CONFIG_EXYNOS_PD
#include <soc/samsung/exynos-pm.h>
+#endif
#define PL330_MAX_CHAN 8
#define PL330_MAX_IRQS 32
return SZ_DMAMOV;
}
+static inline u32 _emit_NOP(unsigned dry_run, u8 buf[])
+{
+ if (dry_run)
+ return SZ_DMANOP;
+
+ buf[0] = CMD_DMANOP;
+
+ PL330_DBGCMD_DUMP(SZ_DMANOP, "\tDMANOP\n");
+
+ return SZ_DMANOP;
+}
+
static inline u32 _emit_RMB(unsigned dry_run, u8 buf[])
{
if (dry_run)
struct dma_pl330_chan *pch = to_pchan(chan);
void __iomem *regs;
struct pl330_thread *thrd;
+ unsigned idx;
if (unlikely(!pch))
return -EINVAL;
struct dma_pl330_chan *pch = to_pchan(chan);
void __iomem *regs;
struct pl330_thread *thrd;
- int idx;
if (unlikely(!pch))
return -EINVAL;
pl330->lpa_nb.priority = 0;
ret = exynos_pm_register_notifier(&pl330->lpa_nb);
+
if (ret) {
dev_err(&adev->dev, "failed to register pm notifier\n");
goto probe_err3;
{
channel = (unsigned long)dma_request_slave_channel(dev, ch_name);
return channel;
+ } else {
+ pr_err("No channel: %s\n", __func__);
+ return 0;
}
- else
- return (u64)dma_request_channel(mask, pl330_filter,
- (void *)dma_ch);
}
static int samsung_dmadev_release(unsigned long ch, void *param)