|
@@ -15,6 +15,18 @@
|
|
|
|
|
|
#include "internal.h"
|
|
|
|
|
|
+static struct dw_dma_platform_data mrfld_pdata = {
|
|
|
+ .nr_channels = 8,
|
|
|
+ .is_private = true,
|
|
|
+ .is_memcpy = true,
|
|
|
+ .is_idma32 = true,
|
|
|
+ .chan_allocation_order = CHAN_ALLOCATION_ASCENDING,
|
|
|
+ .chan_priority = CHAN_PRIORITY_ASCENDING,
|
|
|
+ .block_size = 131071,
|
|
|
+ .nr_masters = 1,
|
|
|
+ .data_width = {4},
|
|
|
+};
|
|
|
+
|
|
|
static int dw_pci_probe(struct pci_dev *pdev, const struct pci_device_id *pid)
|
|
|
{
|
|
|
const struct dw_dma_platform_data *pdata = (void *)pid->driver_data;
|
|
@@ -103,6 +115,9 @@ static const struct pci_device_id dw_pci_id_table[] = {
|
|
|
{ PCI_VDEVICE(INTEL, 0x0f06) },
|
|
|
{ PCI_VDEVICE(INTEL, 0x0f40) },
|
|
|
|
|
|
+ /* Merrifield iDMA 32-bit (GPDMA) */
|
|
|
+ { PCI_VDEVICE(INTEL, 0x11a2), (kernel_ulong_t)&mrfld_pdata },
|
|
|
+
|
|
|
/* Braswell */
|
|
|
{ PCI_VDEVICE(INTEL, 0x2286) },
|
|
|
{ PCI_VDEVICE(INTEL, 0x22c0) },
|