From patchwork Thu Jan 22 18:12:21 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dmitry Osipenko X-Patchwork-Id: 431930 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 56632140277 for ; Fri, 23 Jan 2015 05:13:58 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753322AbbAVSN5 (ORCPT ); Thu, 22 Jan 2015 13:13:57 -0500 Received: from mail-lb0-f178.google.com ([209.85.217.178]:34699 "EHLO mail-lb0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753012AbbAVSN4 (ORCPT ); Thu, 22 Jan 2015 13:13:56 -0500 Received: by mail-lb0-f178.google.com with SMTP id u10so3014700lbd.9; Thu, 22 Jan 2015 10:13:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id; bh=YyessEeNS/X43gMIMduAmmq6oWoDOOiEgjzHp+Yuh4M=; b=v/GqRGmV9p2lDtkmo6f+2PmutW8xOmyV01jXRCKvttWZE360mW7V6ToQBuTOLrWOiP rOiMqf7VHYUOdDW1N95rSQ+CNeTCNgz8Cr5aUT1IiWjG5amcL7amxIMQzPzA69gYGVIs mho5Dh8Oto9jsZqk6cix++bfOmdsYxQmHW0HB04IFgbeA3CIpFaw8vtDmPu8Ucu6SLsZ sKx+jN/CnRVmuJvZdL+OO9R7l0KXTiEnJUa5bxV5g6PnTjjaUstOWM+oj+1TYW7VUnZp 6neG3QZSsLPyI3JcoYgttwEgkTTKwpRbcqezIJZMbM5X6ylyuVapaewNC9nLbg3Ds8+O 6t+Q== X-Received: by 10.112.172.167 with SMTP id bd7mr3279607lbc.14.1421950434414; Thu, 22 Jan 2015 10:13:54 -0800 (PST) Received: from localhost.localdomain (ppp95-165-114-106.pppoe.spdop.ru. [95.165.114.106]) by mx.google.com with ESMTPSA id au10sm5922907lbc.31.2015.01.22.10.13.53 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 22 Jan 2015 10:13:53 -0800 (PST) From: Dmitry Osipenko To: digetx@gmail.com, Wolfram Sang , Stephen Warren , Thierry Reding , Alexandre Courbot , Laxman Dewangan Cc: Ben Dooks , Bob Mottram , linux-tegra@vger.kernel.org, linux-i2c@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2] i2c: tegra: Maintain CPU endianness Date: Thu, 22 Jan 2015 21:12:21 +0300 Message-Id: <1421950352-26515-1-git-send-email-digetx@gmail.com> X-Mailer: git-send-email 2.2.1 Sender: linux-tegra-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-tegra@vger.kernel.org Support CPU BE mode by adding endianness conversion for memcpy interactions. Signed-off-by: Dmitry Osipenko Acked-by: Alexandre Courbot --- Changelog: v2: For consistency cpu_to_le32() changed to le32_to_cpu() because i2c_writel() takes BE value in BE CPU mode and value is in LE format. drivers/i2c/busses/i2c-tegra.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 28b87e6..b5afb9f 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -286,6 +286,7 @@ static int tegra_i2c_empty_rx_fifo(struct tegra_i2c_dev *i2c_dev) if (rx_fifo_avail > 0 && buf_remaining > 0) { BUG_ON(buf_remaining > 3); val = i2c_readl(i2c_dev, I2C_RX_FIFO); + val = cpu_to_le32(val); memcpy(buf, &val, buf_remaining); buf_remaining = 0; rx_fifo_avail--; @@ -343,7 +344,9 @@ static int tegra_i2c_fill_tx_fifo(struct tegra_i2c_dev *i2c_dev) */ if (tx_fifo_avail > 0 && buf_remaining > 0) { BUG_ON(buf_remaining > 3); + val = 0; memcpy(&val, buf, buf_remaining); + val = le32_to_cpu(val); /* Again update before writing to FIFO to make sure isr sees. */ i2c_dev->msg_buf_remaining = 0;