mirror of https://gitee.com/openkylin/linux.git
Merge branch 'topic/dw' into for-linus
This commit is contained in:
commit
0d49fee9c1
|
@ -603,18 +603,11 @@ static void __init genclk_init_parent(struct clk *clk)
|
|||
clk->parent = parent;
|
||||
}
|
||||
|
||||
static struct dw_dma_platform_data dw_dmac0_data = {
|
||||
.nr_channels = 3,
|
||||
.block_size = 4095U,
|
||||
.nr_masters = 2,
|
||||
.data_width = { 2, 2 },
|
||||
};
|
||||
|
||||
static struct resource dw_dmac0_resource[] = {
|
||||
PBMEM(0xff200000),
|
||||
IRQ(2),
|
||||
};
|
||||
DEFINE_DEV_DATA(dw_dmac, 0);
|
||||
DEFINE_DEV(dw_dmac, 0);
|
||||
DEV_CLK(hclk, dw_dmac0, hsb, 10);
|
||||
|
||||
/* --------------------------------------------------------------------
|
||||
|
|
|
@ -163,7 +163,7 @@ static void dwc_initialize(struct dw_dma_chan *dwc)
|
|||
|
||||
/*----------------------------------------------------------------------*/
|
||||
|
||||
static inline unsigned int dwc_fast_fls(unsigned long long v)
|
||||
static inline unsigned int dwc_fast_ffs(unsigned long long v)
|
||||
{
|
||||
/*
|
||||
* We can be a lot more clever here, but this should take care
|
||||
|
@ -712,7 +712,7 @@ dwc_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
|
|||
dw->data_width[dwc->dst_master]);
|
||||
|
||||
src_width = dst_width = min_t(unsigned int, data_width,
|
||||
dwc_fast_fls(src | dest | len));
|
||||
dwc_fast_ffs(src | dest | len));
|
||||
|
||||
ctllo = DWC_DEFAULT_CTLLO(chan)
|
||||
| DWC_CTLL_DST_WIDTH(dst_width)
|
||||
|
@ -791,7 +791,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
|
|||
|
||||
switch (direction) {
|
||||
case DMA_MEM_TO_DEV:
|
||||
reg_width = __fls(sconfig->dst_addr_width);
|
||||
reg_width = __ffs(sconfig->dst_addr_width);
|
||||
reg = sconfig->dst_addr;
|
||||
ctllo = (DWC_DEFAULT_CTLLO(chan)
|
||||
| DWC_CTLL_DST_WIDTH(reg_width)
|
||||
|
@ -811,7 +811,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
|
|||
len = sg_dma_len(sg);
|
||||
|
||||
mem_width = min_t(unsigned int,
|
||||
data_width, dwc_fast_fls(mem | len));
|
||||
data_width, dwc_fast_ffs(mem | len));
|
||||
|
||||
slave_sg_todev_fill_desc:
|
||||
desc = dwc_desc_get(dwc);
|
||||
|
@ -848,7 +848,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
|
|||
}
|
||||
break;
|
||||
case DMA_DEV_TO_MEM:
|
||||
reg_width = __fls(sconfig->src_addr_width);
|
||||
reg_width = __ffs(sconfig->src_addr_width);
|
||||
reg = sconfig->src_addr;
|
||||
ctllo = (DWC_DEFAULT_CTLLO(chan)
|
||||
| DWC_CTLL_SRC_WIDTH(reg_width)
|
||||
|
@ -868,7 +868,7 @@ dwc_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
|
|||
len = sg_dma_len(sg);
|
||||
|
||||
mem_width = min_t(unsigned int,
|
||||
data_width, dwc_fast_fls(mem | len));
|
||||
data_width, dwc_fast_ffs(mem | len));
|
||||
|
||||
slave_sg_fromdev_fill_desc:
|
||||
desc = dwc_desc_get(dwc);
|
||||
|
|
|
@ -15,12 +15,6 @@
|
|||
|
||||
#include "internal.h"
|
||||
|
||||
static struct dw_dma_platform_data dw_pci_pdata = {
|
||||
.is_private = 1,
|
||||
.chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
|
||||
.chan_priority = CHAN_PRIORITY_ASCENDING,
|
||||
};
|
||||
|
||||
static int dw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pid)
|
||||
{
|
||||
struct dw_dma_chip *chip;
|
||||
|
@ -101,19 +95,19 @@ static const struct dev_pm_ops dw_pci_dev_pm_ops = {
|
|||
|
||||
static const struct pci_device_id dw_pci_id_table[] = {
|
||||
/* Medfield */
|
||||
{ PCI_VDEVICE(INTEL, 0x0827), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x0830), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x0827) },
|
||||
{ PCI_VDEVICE(INTEL, 0x0830) },
|
||||
|
||||
/* BayTrail */
|
||||
{ PCI_VDEVICE(INTEL, 0x0f06), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x0f40), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x0f06) },
|
||||
{ PCI_VDEVICE(INTEL, 0x0f40) },
|
||||
|
||||
/* Braswell */
|
||||
{ PCI_VDEVICE(INTEL, 0x2286), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x22c0), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x2286) },
|
||||
{ PCI_VDEVICE(INTEL, 0x22c0) },
|
||||
|
||||
/* Haswell */
|
||||
{ PCI_VDEVICE(INTEL, 0x9c60), (kernel_ulong_t)&dw_pci_pdata },
|
||||
{ PCI_VDEVICE(INTEL, 0x9c60) },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, dw_pci_id_table);
|
||||
|
|
Loading…
Reference in New Issue