Received: by 2002:a25:4158:0:0:0:0:0 with SMTP id o85csp116949yba; Wed, 3 Apr 2019 05:42:30 -0700 (PDT) X-Google-Smtp-Source: APXvYqyrz797T01YGMqkG4TQMiMfv9ony1P7HK2JeWltDyd/r4F+K6vu2ZB8weYARSVXhbjEqtT8 X-Received: by 2002:a63:f541:: with SMTP id e1mr71520469pgk.388.1554295350382; Wed, 03 Apr 2019 05:42:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1554295350; cv=none; d=google.com; s=arc-20160816; b=HMG+S5u5L//zjmVVEkZ9JMSiAcw1fSDeJ9kjn/aBlpP4CLrcbAC1Zld5gfVPX4gbg2 JUVT65wCDlZAS2bcXATOAapaSkwoPFf9bmoQWU5FvNWvVMC6mrJar6/z8qQxw0pYgf08 c7JLMohFTgRZQQKJRFUcqmwhDsOwgp700m6x/M0iq8apqrUmr6nIlmR8O4Q01W6RP76X pB3vYcWPCvQJYbNdxnS768uLMuTHC892QCgvigcQc4IhJzvtjx++2Al7NE5aRACkZ361 yEnZ9WW5CjMglkE5trl8TK1qj1PG8YsoV9/P2f4dWgJF2oNNniOdY0D0FpSCSjB5QSnV 3YLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=2CTESjfm9my2u+peRJLCso/r43DeNoeQPRhuC44/saI=; b=yYBWxyrSJwlkqPjtQWl0u4WEMLZOiJmrpLZUbOeVeZMdRy1H/2NqW3Iz6MsPInSjcH VEQa21QZrjWqaO92JmMApEfUe3JoLvLUEcnFv9HcaphakmnkvhLJyTHov6xOJmqzhhuu E3XEMYXxjvfgOw+IlYrHSHECS3e1MeH25SFaYVNQRG+hnDTTGIFF5vJGP8LrWnHL9Xn4 OLvE1hl9q97nHtX2RTOHzZXXjabzMeYZZRvVUUCWI5qIfue7PByIN95gKL2pwiIcIZ54 WxacDuS5XP5JAWDOarWcdwyyLyEayjiI2FXtQ8qoEKE/5pl8ZeBO41IWQGUIzi9/3kLY S2YA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id l11si13846353plb.159.2019.04.03.05.42.15; Wed, 03 Apr 2019 05:42:30 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727025AbfDCMlN (ORCPT + 99 others); Wed, 3 Apr 2019 08:41:13 -0400 Received: from sauhun.de ([88.99.104.3]:48380 "EHLO pokefinder.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726637AbfDCMkl (ORCPT ); Wed, 3 Apr 2019 08:40:41 -0400 Received: from localhost (p54B3311F.dip0.t-ipconnect.de [84.179.49.31]) by pokefinder.org (Postfix) with ESMTPSA id 50BB23E43CE; Wed, 3 Apr 2019 14:40:38 +0200 (CEST) From: Wolfram Sang To: linux-i2c@vger.kernel.org Cc: linux-renesas-soc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peter Rosin , Stefan Lengfeld , linux-omap@vger.kernel.org, linux-tegra@vger.kernel.org, Linus Walleij , Andy Shevchenko , Wolfram Sang , Timo Alho , Thierry Reding , Simon Horman Subject: [PATCH 07/12] i2c: tegra-bpmp: convert to use new atomic callbacks Date: Wed, 3 Apr 2019 14:40:14 +0200 Message-Id: <20190403124019.8947-8-wsa+renesas@sang-engineering.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20190403124019.8947-1-wsa+renesas@sang-engineering.com> References: <20190403124019.8947-1-wsa+renesas@sang-engineering.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The driver did handle this internally, convert it to use the new callbacks. Reviewed-by: Timo Alho Acked-by: Thierry Reding Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang --- drivers/i2c/busses/i2c-tegra-bpmp.c | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/drivers/i2c/busses/i2c-tegra-bpmp.c b/drivers/i2c/busses/i2c-tegra-bpmp.c index f6cd35d0a2ac..9bb085793a0c 100644 --- a/drivers/i2c/busses/i2c-tegra-bpmp.c +++ b/drivers/i2c/busses/i2c-tegra-bpmp.c @@ -207,7 +207,8 @@ static int tegra_bpmp_i2c_msg_len_check(struct i2c_msg *msgs, unsigned int num) static int tegra_bpmp_i2c_msg_xfer(struct tegra_bpmp_i2c *i2c, struct mrq_i2c_request *request, - struct mrq_i2c_response *response) + struct mrq_i2c_response *response, + bool atomic) { struct tegra_bpmp_message msg; int err; @@ -222,7 +223,7 @@ static int tegra_bpmp_i2c_msg_xfer(struct tegra_bpmp_i2c *i2c, msg.rx.data = response; msg.rx.size = sizeof(*response); - if (irqs_disabled()) + if (atomic) err = tegra_bpmp_transfer_atomic(i2c->bpmp, &msg); else err = tegra_bpmp_transfer(i2c->bpmp, &msg); @@ -230,8 +231,9 @@ static int tegra_bpmp_i2c_msg_xfer(struct tegra_bpmp_i2c *i2c, return err; } -static int tegra_bpmp_i2c_xfer(struct i2c_adapter *adapter, - struct i2c_msg *msgs, int num) +static int tegra_bpmp_i2c_xfer_common(struct i2c_adapter *adapter, + struct i2c_msg *msgs, int num, + bool atomic) { struct tegra_bpmp_i2c *i2c = i2c_get_adapdata(adapter); struct mrq_i2c_response response; @@ -253,7 +255,7 @@ static int tegra_bpmp_i2c_xfer(struct i2c_adapter *adapter, return err; } - err = tegra_bpmp_i2c_msg_xfer(i2c, &request, &response); + err = tegra_bpmp_i2c_msg_xfer(i2c, &request, &response, atomic); if (err < 0) { dev_err(i2c->dev, "failed to transfer message: %d\n", err); return err; @@ -268,6 +270,18 @@ static int tegra_bpmp_i2c_xfer(struct i2c_adapter *adapter, return num; } +static int tegra_bpmp_i2c_xfer(struct i2c_adapter *adapter, + struct i2c_msg *msgs, int num) +{ + return tegra_bpmp_i2c_xfer_common(adapter, msgs, num, false); +} + +static int tegra_bpmp_i2c_xfer_atomic(struct i2c_adapter *adapter, + struct i2c_msg *msgs, int num) +{ + return tegra_bpmp_i2c_xfer_common(adapter, msgs, num, true); +} + static u32 tegra_bpmp_i2c_func(struct i2c_adapter *adapter) { return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL | I2C_FUNC_10BIT_ADDR | @@ -276,6 +290,7 @@ static u32 tegra_bpmp_i2c_func(struct i2c_adapter *adapter) static const struct i2c_algorithm tegra_bpmp_i2c_algo = { .master_xfer = tegra_bpmp_i2c_xfer, + .master_xfer_atomic = tegra_bpmp_i2c_xfer_atomic, .functionality = tegra_bpmp_i2c_func, }; -- 2.11.0