Re: [PATCH] [V2] powerpc: legacy_serial: reg-offset & shift aren't used
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date: 2008-07-07 06:47:48
On Tue, 2008-07-01 at 10:52 -0700, John Linn wrote:
The legacy serial driver does not work with an 8250 type UART that uses reg-offset and reg-shift. This change updates the driver so it doesn't find the UART when those properties are present on the UART in the device tree for soc devices. Signed-off-by: John Linn <redacted> Acked-by: Grant Likely <redacted> --- V2 Corrected logic to use "||" rather than "&&".
I have some problems with this patch: - First if the properties are present but their value match the register layout of a standard UART, we will bail out... not nice. - Why don't we just implement support for the reg-shift and offset instead ? Cheers, Ben.
quoted hunk ↗ jump to hunk
arch/powerpc/kernel/legacy_serial.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-)diff --git a/arch/powerpc/kernel/legacy_serial.c b/arch/powerpc/kernel/legacy_serial.c index 61dd174..cf37f5c 100644 --- a/arch/powerpc/kernel/legacy_serial.c +++ b/arch/powerpc/kernel/legacy_serial.c@@ -136,6 +136,11 @@ static int __init add_legacy_soc_port(struct device_node *np, if (of_get_property(np, "clock-frequency", NULL) == NULL) return -1; + /* if reg-shift or offset, don't try to use it */ + if ((of_get_property(np, "reg-shift", NULL) != NULL) || + (of_get_property(np, "reg-offset", NULL) != NULL)) + return -1; + /* if rtas uses this device, don't try to use it as well */ if (of_get_property(np, "used-by-rtas", NULL) != NULL) return -1;