You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma
Pull slave-dmaengine updates from Vinod Koul: "Once you have some time from extended weekend celebrations please consider pulling the following to get: - Various fixes and PCI driver for dw_dmac by Andy - DT binding for imx-dma by Markus & imx-sdma by Shawn - DT fixes for dmaengine by Lars - jz4740 dmac driver by Lars - and various fixes across the drivers" What "extended weekend celebrations"? I'm in the merge window, who has time for extended celebrations.. * 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma: (40 commits) DMA: shdma: add DT support DMA: shdma: shdma_chan_filter() has to be in shdma-base.h DMA: shdma: (cosmetic) don't re-calculate a pointer dmaengine: at_hdmac: prepare clk before calling enable dmaengine/trivial: at_hdmac: add curly brackets to if/else expressions dmaengine: at_hdmac: remove unsuded atc_cleanup_descriptors() dmaengine: at_hdmac: add FIFO configuration parameter to DMA DT binding ARM: at91: dt: add header to define at_hdmac configuration MIPS: jz4740: Correct clock gate bit for DMA controller MIPS: jz4740: Remove custom DMA API MIPS: jz4740: Register jz4740 DMA device dma: Add a jz4740 dmaengine driver MIPS: jz4740: Acquire and enable DMA controller clock dma: mmp_tdma: disable irq when disabling dma channel dmaengine: PL08x: Avoid collisions with get_signal() macro dmaengine: dw: select DW_DMAC_BIG_ENDIAN_IO automagically dma: dw: add PCI part of the driver dma: dw: split driver to library part and platform code dma: move dw_dmac driver to an own directory dw_dmac: don't check resource with devm_ioremap_resource ...
This commit is contained in:
+4
-25
@@ -157,7 +157,6 @@ enum pl330_reqtype {
|
||||
#define PERIPH_REV_R0P0 0
|
||||
#define PERIPH_REV_R1P0 1
|
||||
#define PERIPH_REV_R1P1 2
|
||||
#define PCELL_ID 0xff0
|
||||
|
||||
#define CR0_PERIPH_REQ_SET (1 << 0)
|
||||
#define CR0_BOOT_EN_SET (1 << 1)
|
||||
@@ -193,8 +192,6 @@ enum pl330_reqtype {
|
||||
#define INTEG_CFG 0x0
|
||||
#define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12))
|
||||
|
||||
#define PCELL_ID_VAL 0xb105f00d
|
||||
|
||||
#define PL330_STATE_STOPPED (1 << 0)
|
||||
#define PL330_STATE_EXECUTING (1 << 1)
|
||||
#define PL330_STATE_WFE (1 << 2)
|
||||
@@ -292,7 +289,6 @@ static unsigned cmd_line;
|
||||
/* Populated by the PL330 core driver for DMA API driver's info */
|
||||
struct pl330_config {
|
||||
u32 periph_id;
|
||||
u32 pcell_id;
|
||||
#define DMAC_MODE_NS (1 << 0)
|
||||
unsigned int mode;
|
||||
unsigned int data_bus_width:10; /* In number of bits */
|
||||
@@ -505,7 +501,7 @@ struct pl330_dmac {
|
||||
/* Maximum possible events/irqs */
|
||||
int events[32];
|
||||
/* BUS address of MicroCode buffer */
|
||||
u32 mcode_bus;
|
||||
dma_addr_t mcode_bus;
|
||||
/* CPU address of MicroCode buffer */
|
||||
void *mcode_cpu;
|
||||
/* List of all Channel threads */
|
||||
@@ -650,19 +646,6 @@ static inline bool _manager_ns(struct pl330_thread *thrd)
|
||||
return (pl330->pinfo->pcfg.mode & DMAC_MODE_NS) ? true : false;
|
||||
}
|
||||
|
||||
static inline u32 get_id(struct pl330_info *pi, u32 off)
|
||||
{
|
||||
void __iomem *regs = pi->base;
|
||||
u32 id = 0;
|
||||
|
||||
id |= (readb(regs + off + 0x0) << 0);
|
||||
id |= (readb(regs + off + 0x4) << 8);
|
||||
id |= (readb(regs + off + 0x8) << 16);
|
||||
id |= (readb(regs + off + 0xc) << 24);
|
||||
|
||||
return id;
|
||||
}
|
||||
|
||||
static inline u32 get_revision(u32 periph_id)
|
||||
{
|
||||
return (periph_id >> PERIPH_REV_SHIFT) & PERIPH_REV_MASK;
|
||||
@@ -1986,9 +1969,6 @@ static void read_dmac_config(struct pl330_info *pi)
|
||||
pi->pcfg.num_events = val;
|
||||
|
||||
pi->pcfg.irq_ns = readl(regs + CR3);
|
||||
|
||||
pi->pcfg.periph_id = get_id(pi, PERIPH_ID);
|
||||
pi->pcfg.pcell_id = get_id(pi, PCELL_ID);
|
||||
}
|
||||
|
||||
static inline void _reset_thread(struct pl330_thread *thrd)
|
||||
@@ -2098,10 +2078,8 @@ static int pl330_add(struct pl330_info *pi)
|
||||
regs = pi->base;
|
||||
|
||||
/* Check if we can handle this DMAC */
|
||||
if ((get_id(pi, PERIPH_ID) & 0xfffff) != PERIPH_ID_VAL
|
||||
|| get_id(pi, PCELL_ID) != PCELL_ID_VAL) {
|
||||
dev_err(pi->dev, "PERIPH_ID 0x%x, PCELL_ID 0x%x !\n",
|
||||
get_id(pi, PERIPH_ID), get_id(pi, PCELL_ID));
|
||||
if ((pi->pcfg.periph_id & 0xfffff) != PERIPH_ID_VAL) {
|
||||
dev_err(pi->dev, "PERIPH_ID 0x%x !\n", pi->pcfg.periph_id);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
@@ -2916,6 +2894,7 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
pi->pcfg.periph_id = adev->periphid;
|
||||
ret = pl330_add(pi);
|
||||
if (ret)
|
||||
goto probe_err1;
|
||||
|
||||
Reference in New Issue
Block a user