Commit f023eab3 authored by Feng Tang's avatar Feng Tang Committed by Greg Kroah-Hartman

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: default avatarFeng Tang <feng.tang@intel.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 085a4f75
...@@ -47,6 +47,11 @@ ...@@ -47,6 +47,11 @@
#define mfd_readl(obj, offset) readl(obj->reg + offset) #define mfd_readl(obj, offset) readl(obj->reg + offset)
#define mfd_writel(obj, offset, val) writel(val, obj->reg + offset) #define mfd_writel(obj, offset, val) writel(val, obj->reg + offset)
static int hsu_dma_enable;
module_param(hsu_dma_enable, int, 0);
MODULE_PARM_DESC(hsu_dma_enable, "It is a bitmap to set working mode, if \
bit[x] is 1, then port[x] will work in DMA mode, otherwise in PIO mode.");
struct hsu_dma_buffer { struct hsu_dma_buffer {
u8 *buf; u8 *buf;
dma_addr_t dma_addr; dma_addr_t dma_addr;
...@@ -1367,6 +1372,12 @@ static void hsu_global_init(void) ...@@ -1367,6 +1372,12 @@ static void hsu_global_init(void)
serial_hsu_ports[i] = uport; serial_hsu_ports[i] = uport;
uport->index = i; uport->index = i;
if (hsu_dma_enable & (1<<i))
uport->use_dma = 1;
else
uport->use_dma = 0;
uport++; uport++;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment