From patchwork Sat Nov 16 00:01:13 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Taras Kondratiuk X-Patchwork-Id: 3191181 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id 95B929F432 for ; Sat, 16 Nov 2013 00:06:48 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 90F2E2074E for ; Sat, 16 Nov 2013 00:06:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4AABB207A3 for ; Sat, 16 Nov 2013 00:06:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754457Ab3KPAG3 (ORCPT ); Fri, 15 Nov 2013 19:06:29 -0500 Received: from mail-ee0-f46.google.com ([74.125.83.46]:35087 "EHLO mail-ee0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753707Ab3KPABo (ORCPT ); Fri, 15 Nov 2013 19:01:44 -0500 Received: by mail-ee0-f46.google.com with SMTP id c4so1377729eek.33 for ; Fri, 15 Nov 2013 16:01:43 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=47/QssujoWl6kuQH6jNy8sd88my8/cTCB4IErx3wshM=; b=l2yX2ev5bp/uVKl0dYTxL6twQd89ETo5CGw91QCaXi1Q5Go9KhqTnb0rgWl6PXIFNQ Kiz6QaIGVRIiR4iB269/f1KfHtSuSHmfXB8bTij9sU2g6ulA2rXJQRpxg324wMhRN5ZX dD3vvhS6jkeUy/tFto4YqEoD3BB3tmb9adexUa33Kx3HVI1lO77dutdRw0Q0PjDrnkp+ jga4+mCguDt64u2tW00YR/mK3vQm3iu74hPnHxrQmnFXyebe58BspRkMOG4HrdQSq21m v3wTS7aEJiJXxAnHzO3V3mJOWT2q8ui5kVRYP1lihAITs9DEgalZp7uTFZ3UAbKj3NUa h4YQ== X-Gm-Message-State: ALoCoQmEJmg35fbwMCfAP1qoS/T5XLhZlZb2JJVrOOEksbxtOQk6vuOj3AGAnk8a5yQim+TBCLH5 X-Received: by 10.15.52.129 with SMTP id p1mr1986448eew.95.1384560103234; Fri, 15 Nov 2013 16:01:43 -0800 (PST) Received: from localhost.localdomain (5-1-15-192-dynamic.retail.datagroup.ua. [5.1.15.192]) by mx.google.com with ESMTPSA id b42sm11078875eem.9.2013.11.15.16.01.42 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Fri, 15 Nov 2013 16:01:42 -0800 (PST) From: Taras Kondratiuk To: linux-omap@vger.kernel.org Cc: linaro-networking@linaro.org, Victor Kamensky , Dmitry Torokhov , linux-input@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [RFC 10/23] Input: omap-keypad - raw read and write endian fix Date: Sat, 16 Nov 2013 02:01:13 +0200 Message-Id: <1384560086-11994-11-git-send-email-taras.kondratiuk@linaro.org> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1384560086-11994-1-git-send-email-taras.kondratiuk@linaro.org> References: <1384560086-11994-1-git-send-email-taras.kondratiuk@linaro.org> Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Victor Kamensky All OMAP IP blocks expect LE data, but CPU may operate in BE mode. Need to use endian neutral functions to read/write h/w registers. I.e instead of __raw_read[lw] and __raw_write[lw] functions code need to use read[lw]_relaxed and write[lw]_relaxed functions. If the first simply reads/writes register, the second will byteswap it if host operates in BE mode. Changes are trivial sed like replacement of __raw_xxx functions with xxx_relaxed variant. Signed-off-by: Victor Kamensky Signed-off-by: Taras Kondratiuk --- drivers/input/keyboard/omap4-keypad.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/input/keyboard/omap4-keypad.c b/drivers/input/keyboard/omap4-keypad.c index 30acfd4..952a2eb 100644 --- a/drivers/input/keyboard/omap4-keypad.c +++ b/drivers/input/keyboard/omap4-keypad.c @@ -89,26 +89,26 @@ struct omap4_keypad { static int kbd_readl(struct omap4_keypad *keypad_data, u32 offset) { - return __raw_readl(keypad_data->base + + return readl_relaxed(keypad_data->base + keypad_data->reg_offset + offset); } static void kbd_writel(struct omap4_keypad *keypad_data, u32 offset, u32 value) { - __raw_writel(value, + writel_relaxed(value, keypad_data->base + keypad_data->reg_offset + offset); } static int kbd_read_irqreg(struct omap4_keypad *keypad_data, u32 offset) { - return __raw_readl(keypad_data->base + + return readl_relaxed(keypad_data->base + keypad_data->irqreg_offset + offset); } static void kbd_write_irqreg(struct omap4_keypad *keypad_data, u32 offset, u32 value) { - __raw_writel(value, + writel_relaxed(value, keypad_data->base + keypad_data->irqreg_offset + offset); } @@ -312,7 +312,7 @@ static int omap4_keypad_probe(struct platform_device *pdev) dev_err(&pdev->dev, "pm_runtime_get_sync() failed\n"); goto err_unmap; } - rev = __raw_readl(keypad_data->base + OMAP4_KBD_REVISION); + rev = readl_relaxed(keypad_data->base + OMAP4_KBD_REVISION); rev &= 0x03 << 30; rev >>= 30; switch (rev) {