Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp3509465pxb; Mon, 24 Jan 2022 11:03:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJz23m3VPUfw0uZj3iUOB0km9BRUBuQQIvv2oOLtvoa6J+JhIKyNFlWwSeyvFcmhKBCP/SrG X-Received: by 2002:a17:902:e84b:b0:14b:4aa7:6198 with SMTP id t11-20020a170902e84b00b0014b4aa76198mr7037767plg.10.1643051009042; Mon, 24 Jan 2022 11:03:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643051009; cv=none; d=google.com; s=arc-20160816; b=xYOGZEWv1OzfI8UuXlWy1iK3SA5I7pgb24zgGJjMVLfIOPFaXsEAN4ox5J6aMjEIUb YYSU4kzXbYL54x1ZW4ORLGkQpnAMaR7a+ze0BlLYK1Wc+5dtT3JL5WZfTQuP7V2CmyMn DUlAp6WBXR0iP1MJmrAcpPqogi6hKuFbHkd1lTwyTeAfD7iCFc6CTc7EXt/a3MsHscaG GID4ygBOHPtH0a1B0fot9c5+lUwpB78Mr9YPbyJUh35JnwsymljtEH3JtY4SS7RkxF+6 5dw3cV+TpeHjJBKw2+8uBxfrugLgR1tAV6EIIqcUwhF8wq2asRfOKI6by4anlMPdKgCj KhzQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=xuZZHkIuEnvDpyJcRake/wQb+VN1KTh62QLAapj5S6A=; b=aQXAxbWfC2Rj6y4drul0DdMNshE2DN4vtyg6iVAvxFbhHQR5RCCVkVdeErPXEG6Y8l GMo1QwQfZYOHhtxGrDCMQYTzJ352gMltd2aSaddzyHbDQh3Xe4AcJAJ6T2jUY8GalA/l fiV5rnqhqvZC9q1cvyW6cK/W9pInAQWRQKFRSvqpMDbcgNOcw4LUUpJqDc9nCuHahapq jp3zxWq33FkjukcZtqHs2SFF8Xwn5V/Mb1iK1tLUOnPHsFT+BQ2Mpj8E+gc7xrSSfv20 tcOzfhGQAhZkka2WVsIp+4+lZ9fvNz9Y8E3s6yOUE5GotxK0RvElr8xsXndsAOKMiZoK UqSA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@semihalf-com.20210112.gappssmtp.com header.s=20210112 header.b="yP3/Yb6x"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y14si3208955pgl.94.2022.01.24.11.03.14; Mon, 24 Jan 2022 11:03:29 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@semihalf-com.20210112.gappssmtp.com header.s=20210112 header.b="yP3/Yb6x"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232392AbiAXKdm (ORCPT + 99 others); Mon, 24 Jan 2022 05:33:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38212 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231820AbiAXKdj (ORCPT ); Mon, 24 Jan 2022 05:33:39 -0500 Received: from mail-pl1-x633.google.com (mail-pl1-x633.google.com [IPv6:2607:f8b0:4864:20::633]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7F3DC06173D for ; Mon, 24 Jan 2022 02:33:38 -0800 (PST) Received: by mail-pl1-x633.google.com with SMTP id y17so4672858plg.7 for ; Mon, 24 Jan 2022 02:33:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=xuZZHkIuEnvDpyJcRake/wQb+VN1KTh62QLAapj5S6A=; b=yP3/Yb6xFM6+tLxjq5XcIad0refYGallErDeE9C88nR55gLVvfTPJ88r6MTD++X6WO 8YHrHPqyc4NtBwhov02CQWHZnBTahB2EwJ2YSVjfSomgxUoPXtA5LHUMzQAGwIR4RpFj RpwJbKue+JC1gMUyUcajyC4AcFFV5NNFWAwQsIu0HTIznMdhbGlQ3pfkjUALHHVHnkbD J4luQJJR1LdEo4eB228pOZ5o9+lxkTHet1xEtmg2DrQoTSMDPojAQEj0/rA11K9V6kCD QVtSjwDQ9/RBV43vgO+0pDKYssXJQVqyw3knC6hckiw9OPSkJSNpHJphUaPWdecd7wz3 RfWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=xuZZHkIuEnvDpyJcRake/wQb+VN1KTh62QLAapj5S6A=; b=cIgPJ1OKWcRDqXvsdnzhYOEGFTsEscoFHl38b6e0rdMuvhzojsz0fQPWrW4Ty/t9B/ PqCg3pKbfznWBVb8FioxrC/zaunaHIZ112K2wkz+R/GV0ImFcx46HZILQdh3J2nejmMO J7y/Tl0hwsp2VWc61vmA1d4Oof12GlZcueWnnVo1vtemycPEYsoqAFkEAKqoi47Lwk+7 UqprYJEFhGyKa2JExZFwqSz0E9bzsUyPLEmpNp0tYoRvQdzRfxDsJt8/TNAX0chMIJ0T 49itpbgH8jkGlhqQQbvChzmowOHZQgz6FOoNh3kJoQO+9mg6BvvUxFE77uBL894ku1se gmKQ== X-Gm-Message-State: AOAM530qRwUo+W77Kqz+NCAFKngx1CeEH3RKtoVROE3WSbN2PSB0hw9n vfMAfNors5ADO3BjvBV6kFFN/K7b0l4ne87qFGzTyg== X-Received: by 2002:a17:90b:1bcc:: with SMTP id oa12mr1306143pjb.4.1643020418211; Mon, 24 Jan 2022 02:33:38 -0800 (PST) MIME-Version: 1.0 References: <20220120001621.705352-1-jsd@semihalf.com> <20220120001621.705352-2-jsd@semihalf.com> <5bec947e-272b-cfa0-b9b6-4d0d2626153f@redhat.com> In-Reply-To: <5bec947e-272b-cfa0-b9b6-4d0d2626153f@redhat.com> From: =?UTF-8?B?SmFuIETEhWJyb8Wb?= Date: Mon, 24 Jan 2022 11:33:27 +0100 Message-ID: Subject: Re: [PATCH 1/2] i2c: designware: Add missing locks To: Hans de Goede Cc: Linux Kernel Mailing List , linux-i2c , Jarkko Nikula , Andy Shevchenko , Mika Westerberg , Wolfram Sang , Raul E Rangel , Marcin Wojtas , Grzegorz Jaszczyk , upstream@semihalf.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org czw., 20 sty 2022 o 12:25 Hans de Goede napisa=C5=82(= a): > > Hi, > > On 1/20/22 01:16, Jan Dabros wrote: > > All accesses to controller's registers should be protected on > > probe, disable and xfer paths. This is needed for i2c bus controllers > > that are shared with but not controller by kernel. > > > > Signed-off-by: Jan Dabros > > Thanks, patch looks good to me: > > Reviewed-by: Hans de Goede Thanks! Best Regards, Jan > > > Regards, > > Hans > > > > --- > > drivers/i2c/busses/i2c-designware-common.c | 12 ++++++++++++ > > drivers/i2c/busses/i2c-designware-master.c | 6 ++++++ > > 2 files changed, 18 insertions(+) > > > > diff --git a/drivers/i2c/busses/i2c-designware-common.c b/drivers/i2c/b= usses/i2c-designware-common.c > > index bf2a4920638a..9f8574320eb2 100644 > > --- a/drivers/i2c/busses/i2c-designware-common.c > > +++ b/drivers/i2c/busses/i2c-designware-common.c > > @@ -578,7 +578,12 @@ int i2c_dw_set_fifo_size(struct dw_i2c_dev *dev) > > * Try to detect the FIFO depth if not set by interface driver, > > * the depth could be from 2 to 256 from HW spec. > > */ > > + ret =3D i2c_dw_acquire_lock(dev); > > + if (ret) > > + return ret; > > + > > ret =3D regmap_read(dev->map, DW_IC_COMP_PARAM_1, ¶m); > > + i2c_dw_release_lock(dev); > > if (ret) > > return ret; > > > > @@ -607,6 +612,11 @@ u32 i2c_dw_func(struct i2c_adapter *adap) > > void i2c_dw_disable(struct dw_i2c_dev *dev) > > { > > u32 dummy; > > + int ret; > > + > > + ret =3D i2c_dw_acquire_lock(dev); > > + if (ret) > > + return; > > > > /* Disable controller */ > > __i2c_dw_disable(dev); > > @@ -614,6 +624,8 @@ void i2c_dw_disable(struct dw_i2c_dev *dev) > > /* Disable all interrupts */ > > regmap_write(dev->map, DW_IC_INTR_MASK, 0); > > regmap_read(dev->map, DW_IC_CLR_INTR, &dummy); > > + > > + i2c_dw_release_lock(dev); > > } > > > > void i2c_dw_disable_int(struct dw_i2c_dev *dev) > > diff --git a/drivers/i2c/busses/i2c-designware-master.c b/drivers/i2c/b= usses/i2c-designware-master.c > > index 9177463c2cbb..1a4b23556db3 100644 > > --- a/drivers/i2c/busses/i2c-designware-master.c > > +++ b/drivers/i2c/busses/i2c-designware-master.c > > @@ -905,7 +905,13 @@ int i2c_dw_probe_master(struct dw_i2c_dev *dev) > > irq_flags =3D IRQF_SHARED | IRQF_COND_SUSPEND; > > } > > > > + ret =3D i2c_dw_acquire_lock(dev); > > + if (ret) > > + return ret; > > + > > i2c_dw_disable_int(dev); > > + i2c_dw_release_lock(dev); > > + > > ret =3D devm_request_irq(dev->dev, dev->irq, i2c_dw_isr, irq_flag= s, > > dev_name(dev->dev), dev); > > if (ret) { > > >