aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/tty/serial/mfd.c
diff options
context:
space:
mode:
authorFeng Tang <feng.tang@intel.com>2011-02-22 02:28:12 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-22 18:49:00 -0500
commitf023eab379821365bf265a0240f30c00cecaef7c (patch)
tree7c8f5f5b847d4200e346a384412932de151c0529 /drivers/tty/serial/mfd.c
parent085a4f758f0cf95e1865b63892bf4304a149f0ca (diff)
serial: mfd: add a module parameter for setting each port's working mode
The three identical uart ports can work either in DMA or PIO mode. Adding such a module parameter "hsu_dma_enable" will enable user to chose working modes for each port. If the mfd driver is built in kernel, adding a "mfd.hsu_dma_enable=x" in kernel command line has the same effect. Signed-off-by: Feng Tang <feng.tang@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/tty/serial/mfd.c')
-rw-r--r--drivers/tty/serial/mfd.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/tty/serial/mfd.c b/drivers/tty/serial/mfd.c
index 53ff6af16273..c111f36f5d21 100644
--- a/drivers/tty/serial/mfd.c
+++ b/drivers/tty/serial/mfd.c
@@ -47,6 +47,11 @@
47#define mfd_readl(obj, offset) readl(obj->reg + offset) 47#define mfd_readl(obj, offset) readl(obj->reg + offset)
48#define mfd_writel(obj, offset, val) writel(val, obj->reg + offset) 48#define mfd_writel(obj, offset, val) writel(val, obj->reg + offset)
49 49
50static int hsu_dma_enable;
51module_param(hsu_dma_enable, int, 0);
52MODULE_PARM_DESC(hsu_dma_enable, "It is a bitmap to set working mode, if \
53bit[x] is 1, then port[x] will work in DMA mode, otherwise in PIO mode.");
54
50struct hsu_dma_buffer { 55struct hsu_dma_buffer {
51 u8 *buf; 56 u8 *buf;
52 dma_addr_t dma_addr; 57 dma_addr_t dma_addr;
@@ -1367,6 +1372,12 @@ static void hsu_global_init(void)
1367 1372
1368 serial_hsu_ports[i] = uport; 1373 serial_hsu_ports[i] = uport;
1369 uport->index = i; 1374 uport->index = i;
1375
1376 if (hsu_dma_enable & (1<<i))
1377 uport->use_dma = 1;
1378 else
1379 uport->use_dma = 0;
1380
1370 uport++; 1381 uport++;
1371 } 1382 }
1372 1383