Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752560AbbLLRUR (ORCPT ); Sat, 12 Dec 2015 12:20:17 -0500 Received: from mail-db3on0090.outbound.protection.outlook.com ([157.55.234.90]:24128 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751869AbbLLRUM (ORCPT ); Sat, 12 Dec 2015 12:20:12 -0500 Authentication-Results: spf=fail (sender IP is 212.179.42.66) smtp.mailfrom=ezchip.com; synopsys.com; dkim=none (message not signed) header.d=none;synopsys.com; dmarc=none action=none header.from=ezchip.com; From: Noam Camus To: CC: , , , , , , , , Noam Camus Subject: [PATCH v9 2/3] serial: 8250_dw: Add support for big-endian MMIO accesses Date: Sat, 12 Dec 2015 19:18:26 +0200 Message-ID: <1449940707-17633-3-git-send-email-noamc@ezchip.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1449940707-17633-1-git-send-email-noamc@ezchip.com> References: <1449940707-17633-1-git-send-email-noamc@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-21998.001 X-TM-AS-Result: No--6.640800-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD034;1:Efd9ObPdjRgWLOaNogUyEq6vsh4UlvZolRcqWF/Pgx9KIgCAdvznHkWLcFIrBu0ttaSA1pxdd8ZShZGZnazBFBeMcJtFSFOkg42QV6fiEKRmZRMUy6LfaUqoXSsdsqufu3+fmlDJnBCAXijs0mXhoG7bb8lJ7ox/J12gd2xvRsSGcXuoa5k50CXgMFeBUZEc1xlx4wOIFSHS+OUMsJteQW1wsivJKuUThl7tKpmRzoNaE6Rp2MdGQARPa9vD1PdMqrHlPXvpbCNH6X/KG2Rp/Uo4kAgb5EnOJ7pW7VzbqV4H+2le3T1JTzqs6yY4R0fzQpnZ7SMxWIRI5H9KfcZJ1iAbEDvj2G3JK2GtnWrZIbKgvwk/KThZcSVQT369nZieut4zaOePmT37M/rGLcSLLAcLz40w1EVgkYSYcJP6Sax51qPFLoitvCO+x707YUKsK50cLBM3P2LBKO6Gt9AIHA== X-Forefront-Antispam-Report: CIP:212.179.42.66;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(1109001)(1110001)(339900001)(189002)(199003)(106466001)(575784001)(5008740100001)(104016004)(4001430100002)(50466002)(19580395003)(19580405001)(105606002)(586003)(1220700001)(1096002)(6806005)(5003940100001)(92566002)(76176999)(50986999)(11100500001)(77096005)(48376002)(229853001)(36756003)(2950100001)(189998001)(86362001)(49486002)(87936001)(33646002)(2351001)(85426001)(5001970100001)(107886002)(50226001)(110136002)(47776003);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR02MB1215;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1215;2:AA5O+SWcA5L+T4jf/8zfQ/FVic87tTuHOPif1K3PMxes9ESapEbxZ4hgVuViBaqqF/FtJG/loDnc3ONZoxLNtJx3dC7m9ED5y3gmYRe7PayV/I8JPpzctuYLAWq6+xPzC81TIot/XGYJQSuK6QARNA==;3:NqcRZyf5bwGSDFdyOoI85N76NBgd7v5K+iq9ceE7ZPlPAcXkq7EGF0zSPkRFj9fVQ9N44rhkMU6KLIQ1z5GLYEcLjSX5gYFN3QwZMSx5Zyj91hpUDC44dQXrN24IU8UrNA8e+Q0Z8SAEu09OKQLqZj8OTDT+fOLuX4ZCp4MBJ3t3lKpAiOBpTYAkj72BECCAYyNT0nBythj5M1t3xLnvMC+yfWMYsXGWZvfa4Ok8yJ0=;25:moOw1rNS79+44pr7gLueJ3tIRFzG/n1XwVg5Vm5VTX/9nfHo8hdEMJLfB7dy3+SbwQbF8X4ea46wEXq1rkt+dcv8Ilwf8NqH3jF9QGCKppAz1eX44B56Dr8MyIoe6M10hrU282AG7fCz0jTFdZkuGtM52MmqVeqc9Hya26bN1jl35t413PhY6aEAk8IJZKIMR4iKsZDCcM5x2L5cnbmG30uPkZq9w6zqxnSB3noTcSAtOVxtXNMkNtuD1Lz3e964F+1tstDf6SC/1hE968xlxQ==;20:2jQ9LhlweP6Sni+SWQTlOzhflNyBgb6hUbTyS65oMUQMNp9rg4XDQE0wq9/iAAQPGMNEJaGE2D+tZu6bvrDKUo+JKwkokFJjAV22uLury0XSwY/DM4gODIywhfwmt1z3NpJNM+EUGpK+W2FC2JqU/u3kmZk9E1EBo+TAuIhEkbc= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1215; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(121898900299872); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(3002001)(10201501046);SRVR:VI1PR02MB1215;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1215; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1215;4:JDfv3EPxlKmxAhTeh8XSP6xCbLyXNNT6s/LIqsWF1k7fwn8Klyndw6zLxgXU3gBpcJsEJ1VaYGG6vGK7Z6akE5SY6mY8S65l9mjMLvkimY2QTYZX1zkJcEHox5jPNKLhjoOIvYBxadmIEwUZhycWl//3AxSa0Ob3Yc0j7v6FIPrpMD+OUKQ4JEBouCNI45vbFzzcTOOmY8Mg3hBrEEzhGpJn42slcZRQYPR8+D1VtT5+w8SyZ2/DzCNnJUvk70FKabs8DO1xMbM4HlbQuNq2tL82Mst/DJjgOsYXK3RFuhCcl02I39YSpRcLB7knPHTWeOx8zm1Cc/EUffNfAETDO/p/09mAdH3Qw6egRwwGoct30FZpSr16o+hR1Q1nLA0dNpVe62OxhzORoYU9khJvZ4RTcBKk8cLiZbfGsFlDpN6KYVSwGr77r4nk8IpLRuh3 X-Forefront-PRVS: 07880C4932 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR02MB1215;23:Df+2olUtchAdhqnEqBmtzHLwAXjcou7VqviK2uct7?= =?us-ascii?Q?CojAVhwgntKXdaX+BbBMcyQZfZAgye88JEKXdqf05VyxCEYo4SVCQJ/Woy9x?= =?us-ascii?Q?fIdG2SzGb2YOHuugvn5yGO8CJSWFIW2Ac9nBDMm9flqIlFjuWwKnM7/h9FIl?= =?us-ascii?Q?AD9wHcGu0EjujSOgobVtiKpURG2oegSBmxfHdGT5doioEbO8gzSXG5T2JGWu?= =?us-ascii?Q?++XYsJ/PsZmTJDsvZwQpgWlxPdbINe/vB/G6GOwe96Cp4wmiVrnXQH8qePZk?= =?us-ascii?Q?1w7Zgt7HpmvPuXVTkMTCcGQxHcikRPLVjvnJlzySm/nXi+6teW/dBGyenqk7?= =?us-ascii?Q?4vCekFTTi6KKCI9+/jrWveKj/s8YFLCXei7K1K/bU6d16o4wLx+KrvR54168?= =?us-ascii?Q?Q691Xkm7jfaPRyI+fN9+iAa/CMfkx25mBsgYwY5exAoNTqcaich74UbxjH7f?= =?us-ascii?Q?Sxg41WMZhPpAGjeFglXw1WFSwmfkuBFkoiRn1ASpRwg9gtAbt8tJi4uTUSGQ?= =?us-ascii?Q?1ihGezeEm77Gj+ZvIa0cEYVkkWU9U4C3ug/nqFj10xZi7OiSSjI3YGoxB8BM?= =?us-ascii?Q?uMrprCsznIg4rTuo6gWXKvELcSkyO7fPhO3UaoUnOIjB9+truQnLgMiy30sr?= =?us-ascii?Q?G0k5sBTPBcAwT+kVjttRwNLEt/gAFJMSKhYCiIL1P69w8wXEN9V2QX+IbdWh?= =?us-ascii?Q?GtSSXNEA1u/M+i/qT07Zz04532/QMXKCivIDRKFw3uqOrcpEYbh4qy0VJuuM?= =?us-ascii?Q?OCdya+ol5790GPbq9h9sO5pJLMVbGETdeIcHHUIFPrVFBSvjS28r4nZNvWH9?= =?us-ascii?Q?PvsIpX+y3bIlWdLyQjOBmj48ilRWZPXXHSw01rFAiJ7els3XHg2NHVFkF4kA?= =?us-ascii?Q?DKiNr+578jAbw9v7EFLzwzRnKhJPQoQidQzY0zsRPGlvo3DljRoF8QFxebJk?= =?us-ascii?Q?/2tZYbMWW0GiWb2HlK2PWZZy/Y/uhiHM0EJNZ3oK52S6Daz3Y8GkUpw2RTHQ?= =?us-ascii?Q?g9jC0RjJVXOx41IVrS3EHUE7995nBfxPPsQR0Oi9JRrpkNN8UMUI4dpfhvMU?= =?us-ascii?Q?1Y1A9MaxAAAUnq/mnHg9pxnlwCA+t2zndvJC4ZL3REAT0yEKtIouGn82H99a?= =?us-ascii?Q?xZq/JbVtvQ=3D?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1215;5:nInk03lRnF397n61TFFoUBbVFHQ85JHzudp6dfv4K1mtHZfbzH86XxZOX83iaAjD4wB27+yEgs8rzXHUFKOm1LtKryXw9Jgg1RvW/zbp30MYhMaGekGA5UMdsrj6V84CiiI6Kn9wJKecPL79BYCDpw==;24:u8l7dqYfgxpcxaWPnuzQhMgKitYyqmA5YqBrKMRohMEGQtahKuVbqxmrSlv8dU7Z0iQsWNE0H95hVJ2VeUdaFfyFLiys8bX10Yp4I2slqL8= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Dec 2015 17:20:07.2339 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[212.179.42.66];Helo=[ezex10.ezchip.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB1215 X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1085;2:XJ3uwUcSqo0R8ZtWUASjEM8Mle59h6EpCW5exDBugrPiJMnnROOl6/ODkfnhoj6lrK3ZFsGYRyi7nqG1Q0IMaL8b1ENFEsSM88cIxrbQbUsXNuZKB7Hsh5AuIC9CnXMM+xUka96YY83Ax3p/s5mJZw==;23:mDoXcNZ5Q4WjJwWvLiVlFxpmdqPOo9p6ttdsAGZPkEyHoQRbpL8TAvtAUbOd418mG2CEhqcbPv6AnO86uOGxqPY0PKjvd2TlqN2S2eGPPxt3jpkd6oUKXnJNN7whaUSYTsSuLlom9cA5kxcrevpk9YTVNepHS81nYz89F6EYCoWbOM79nVev+fVt3CGuHHq2 X-OriginatorOrg: ezchip.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1971 Lines: 61 From: Noam Camus Add support for UPIO_MEM32BE in addition to UPIO_MEM32. For big endian we use 2 new accessors similar to little endian, called dw8250_serial_out32be() and dw8250_serial_in32be(). Signed-off-by: Noam Camus --- drivers/tty/serial/8250/8250_dw.c | 23 +++++++++++++++++++++++ 1 files changed, 23 insertions(+), 0 deletions(-) diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c index ffe5e0c..92c4a9b 100644 --- a/drivers/tty/serial/8250/8250_dw.c +++ b/drivers/tty/serial/8250/8250_dw.c @@ -182,6 +182,24 @@ static unsigned int dw8250_serial_in32(struct uart_port *p, int offset) return dw8250_modify_msr(p, offset, value); } +static void dw8250_serial_out32be(struct uart_port *p, int offset, int value) +{ + struct dw8250_data *d = p->private_data; + + iowrite32be(value, p->membase + (offset << p->regshift)); + + if (offset == UART_LCR && !d->uart_16550_compatible) + dw8250_check_lcr(p, value); +} + +static unsigned int dw8250_serial_in32be(struct uart_port *p, int offset) +{ + unsigned int value = ioread32be(p->membase + (offset << p->regshift)); + + return dw8250_modify_msr(p, offset, value); +} + + static int dw8250_handle_irq(struct uart_port *p) { struct dw8250_data *d = p->private_data; @@ -276,6 +294,11 @@ static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data) data->skip_autocfg = true; } #endif + if (of_device_is_big_endian(p->dev->of_node)) { + p->iotype = UPIO_MEM32BE; + p->serial_in = dw8250_serial_in32be; + p->serial_out = dw8250_serial_out32be; + } } else if (has_acpi_companion(p->dev)) { p->iotype = UPIO_MEM32; p->regshift = 2; -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/