Re: [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
On 05/26/2015 06:08 PM, Tony Lindgren wrote: * Peter Ujfalusi peter.ujfal...@ti.com [150526 06:28]: Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com CC: Greg Kroah-Hartman gre...@linuxfoundation.org --- drivers/tty/serial/8250/8250_dma.c | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c index 21d01a491405..a617eca4e97d 100644 --- a/drivers/tty/serial/8250/8250_dma.c +++ b/drivers/tty/serial/8250/8250_dma.c @@ -182,21 +182,19 @@ int serial8250_request_dma(struct uart_8250_port *p) dma_cap_set(DMA_SLAVE, mask); /* Get a channel for RX */ -dma-rxchan = dma_request_slave_channel_compat(mask, - dma-fn, dma-rx_param, - p-port.dev, rx); -if (!dma-rxchan) -return -ENODEV; +dma-rxchan = dma_request_slave_channel_compat_reason(mask, dma-fn, +dma-rx_param, p-port.dev, rx); +if (IS_ERR(dma-rxchan)) +return PTR_ERR(dma-rxchan); dmaengine_slave_config(dma-rxchan, dma-rxconf); /* Get a channel for TX */ -dma-txchan = dma_request_slave_channel_compat(mask, - dma-fn, dma-tx_param, - p-port.dev, tx); -if (!dma-txchan) { +dma-txchan = dma_request_slave_channel_compat_reason(mask, dma-fn, +dma-tx_param, p-port.dev, tx); +if (IS_ERR(dma-txchan)) { dma_release_channel(dma-rxchan); -return -ENODEV; +return PTR_ERR(dma-txchan); } dmaengine_slave_config(dma-txchan, dma-txconf); In general the drivers need to work just fine also without DMA. Does this handle the case properly where no DMA channel is configured for the driver in the dts file? The 8250 core will fall back to PIO mode if the DMA can not be requested. At the morning I was looking at the 8250 stack and realized that serial8250_request_dma() will not be called at driver probe time so this patch can be ignored and will be dropped from the v2 series. -- Péter -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
On 05/26/2015 05:44 PM, Greg Kroah-Hartman wrote: On Tue, May 26, 2015 at 04:25:58PM +0300, Peter Ujfalusi wrote: Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER I think you typed the function name wrong here :( Oops. Also in other drivers :( I will fix up the messages for the v2 series, which will not going to include the patch against 8250_dma. If I understand things right around the 8250_* is that the serial8250_request_dma() which is called from serial8250_do_startup() is not called at module probe time, so it can not be used to handle deferred probing. Thus this patch can be dropped IMO. -- Péter -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
On 05/27/2015 01:41 PM, Peter Ujfalusi wrote: On 05/26/2015 05:44 PM, Greg Kroah-Hartman wrote: On Tue, May 26, 2015 at 04:25:58PM +0300, Peter Ujfalusi wrote: Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER I think you typed the function name wrong here :( Oops. Also in other drivers :( I mean in other patches ;) I will fix up the messages for the v2 series, which will not going to include the patch against 8250_dma. If I understand things right around the 8250_* is that the serial8250_request_dma() which is called from serial8250_do_startup() is not called at module probe time, so it can not be used to handle deferred probing. Thus this patch can be dropped IMO. -- Péter -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
* Peter Ujfalusi peter.ujfal...@ti.com [150526 06:28]: Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com CC: Greg Kroah-Hartman gre...@linuxfoundation.org --- drivers/tty/serial/8250/8250_dma.c | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c index 21d01a491405..a617eca4e97d 100644 --- a/drivers/tty/serial/8250/8250_dma.c +++ b/drivers/tty/serial/8250/8250_dma.c @@ -182,21 +182,19 @@ int serial8250_request_dma(struct uart_8250_port *p) dma_cap_set(DMA_SLAVE, mask); /* Get a channel for RX */ - dma-rxchan = dma_request_slave_channel_compat(mask, -dma-fn, dma-rx_param, -p-port.dev, rx); - if (!dma-rxchan) - return -ENODEV; + dma-rxchan = dma_request_slave_channel_compat_reason(mask, dma-fn, + dma-rx_param, p-port.dev, rx); + if (IS_ERR(dma-rxchan)) + return PTR_ERR(dma-rxchan); dmaengine_slave_config(dma-rxchan, dma-rxconf); /* Get a channel for TX */ - dma-txchan = dma_request_slave_channel_compat(mask, -dma-fn, dma-tx_param, -p-port.dev, tx); - if (!dma-txchan) { + dma-txchan = dma_request_slave_channel_compat_reason(mask, dma-fn, + dma-tx_param, p-port.dev, tx); + if (IS_ERR(dma-txchan)) { dma_release_channel(dma-rxchan); - return -ENODEV; + return PTR_ERR(dma-txchan); } dmaengine_slave_config(dma-txchan, dma-txconf); In general the drivers need to work just fine also without DMA. Does this handle the case properly where no DMA channel is configured for the driver in the dts file? Regards, Tony -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
On Tue, May 26, 2015 at 04:25:58PM +0300, Peter Ujfalusi wrote: Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER I think you typed the function name wrong here :( -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH 03/13] serial: 8250_dma: Support for deferred probing when requesting DMA channels
Switch to use ma_request_slave_channel_compat_reason() to request the DMA channels. In case of error, return the error code we received including -EPROBE_DEFER Signed-off-by: Peter Ujfalusi peter.ujfal...@ti.com CC: Greg Kroah-Hartman gre...@linuxfoundation.org --- drivers/tty/serial/8250/8250_dma.c | 18 -- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dma.c b/drivers/tty/serial/8250/8250_dma.c index 21d01a491405..a617eca4e97d 100644 --- a/drivers/tty/serial/8250/8250_dma.c +++ b/drivers/tty/serial/8250/8250_dma.c @@ -182,21 +182,19 @@ int serial8250_request_dma(struct uart_8250_port *p) dma_cap_set(DMA_SLAVE, mask); /* Get a channel for RX */ - dma-rxchan = dma_request_slave_channel_compat(mask, - dma-fn, dma-rx_param, - p-port.dev, rx); - if (!dma-rxchan) - return -ENODEV; + dma-rxchan = dma_request_slave_channel_compat_reason(mask, dma-fn, + dma-rx_param, p-port.dev, rx); + if (IS_ERR(dma-rxchan)) + return PTR_ERR(dma-rxchan); dmaengine_slave_config(dma-rxchan, dma-rxconf); /* Get a channel for TX */ - dma-txchan = dma_request_slave_channel_compat(mask, - dma-fn, dma-tx_param, - p-port.dev, tx); - if (!dma-txchan) { + dma-txchan = dma_request_slave_channel_compat_reason(mask, dma-fn, + dma-tx_param, p-port.dev, tx); + if (IS_ERR(dma-txchan)) { dma_release_channel(dma-rxchan); - return -ENODEV; + return PTR_ERR(dma-txchan); } dmaengine_slave_config(dma-txchan, dma-txconf); -- 2.3.5 -- To unsubscribe from this list: send the line unsubscribe linux-omap in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html