Message ID | 1412728547-4126-1-git-send-email-rjui@broadcom.com |
---|---|
State | Accepted |
Commit | a8b26e1af94825296f29eee6bfc001c5543d3c7e |
Headers | show |
On Tue, Oct 07, 2014 at 05:35:47PM -0700, Ray Jui wrote: > The dma pointer under struct uart_8250_port is currently left > unassigned for non-ACPI platforms. It should be pointing to the dma > member in struct dw8250_data like how it was done for ACPI, so the core > 8250 code will try to request for DMA when registering the port > > If DMA is not enabled in device tree, request DMA will fail and the > driver will fall back to PIO > > Signed-off-by: Ray Jui <rjui@broadcom.com> > Reviewed-by: JD (Jiandong) Zheng <jdzheng@broadcom.com> > Reviewed-by: Scott Branden <sbranden@broadcom.com> > Tested-by: Scott Branden <sbranden@broadcom.com> OK by me. FWIW.. Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c index 4db7987..1038ea8 100644 --- a/drivers/tty/serial/8250/8250_dw.c +++ b/drivers/tty/serial/8250/8250_dw.c @@ -293,6 +293,14 @@ static int dw8250_probe_of(struct uart_port *p, if (has_ucv) dw8250_setup_port(up); + /* if we have a valid fifosize, try hooking up DMA here */ + if (p->fifosize) { + up->dma = &data->dma; + + up->dma->rxconf.src_maxburst = p->fifosize / 4; + up->dma->txconf.dst_maxburst = p->fifosize / 4; + } + if (!of_property_read_u32(np, "reg-shift", &val)) p->regshift = val;