Thread (12 messages) 12 messages, 7 authors, 2016-01-11

[PATCH v4 3/3] serial: amba-pl011: add ACPI support to AMBA probe

From: G Gregory <hidden>
Date: 2016-01-05 08:55:30
Also in: linux-acpi, linux-serial, lkml

On 4 January 2016 at 23:13, Timur Tabi [off-list ref] wrote:
On Wed, Dec 23, 2015 at 8:19 AM, Aleksey Makarov
[off-list ref] wrote:
quoted
From: Graeme Gregory <redacted>

In ACPI this device is only defined in SBSA mode so
if we are coming from ACPI use this mode.

Signed-off-by: Graeme Gregory <redacted>
Signed-off-by: Aleksey Makarov <redacted>
---
 drivers/tty/serial/amba-pl011.c | 37 ++++++++++++++++++++++++++-----------
 1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
index 899a771..974cb9e 100644
--- a/drivers/tty/serial/amba-pl011.c
+++ b/drivers/tty/serial/amba-pl011.c
@@ -2368,18 +2368,33 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
        if (!uap)
                return -ENOMEM;

-       uap->clk = devm_clk_get(&dev->dev, NULL);
-       if (IS_ERR(uap->clk))
-               return PTR_ERR(uap->clk);
-
-       uap->vendor = vendor;
-       uap->lcrh_rx = vendor->lcrh_rx;
-       uap->lcrh_tx = vendor->lcrh_tx;
-       uap->fifosize = vendor->get_fifosize(dev);
-       uap->port.irq = dev->irq[0];
-       uap->port.ops = &amba_pl011_pops;
+       /* ACPI only defines SBSA variant */
+       if (has_acpi_companion(&dev->dev)) {
+               /*
+                * According to ARM ARMH0011 is currently the only mapping
+                * of pl011 in ACPI and it's mapped to SBSA UART mode
+                */
+               uap->vendor     = &vendor_sbsa;
+               uap->fifosize   = 32;
+               uap->port.ops   = &sbsa_uart_pops;
+               uap->fixed_baud = 115200;
I'm confused by this patch.  We already have code like this in
tty-next, in the form of sbsa_uart_probe():

https://kernel.googlesource.com/pub/scm/linux/kernel/git/gregkh/tty/+/tty-next/drivers/tty/serial/amba-pl011.c#2553
Because Russell expressed unhappiness at that code existing. So this
is an alternative method to do same thing with ACPI.

If the "arm,sbsa-uart" id was added to drivers/of/platform.c as an
AMBA id then the same could be done for DT as well.

Ultimately this patch is optional depending on maintainers opinion!

Graeme
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help