Received: by 2002:a05:7412:3290:b0:fa:6e18:a558 with SMTP id ev16csp846329rdb; Fri, 26 Jan 2024 12:30:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IEwwLjczxU5hAbfDWFxQvpoFuK1spmWmVxJTtGUOLrdBrQRD/3CoC2aI25B4UQ6GYsUMuCI X-Received: by 2002:a17:90a:6882:b0:28e:766e:2f11 with SMTP id a2-20020a17090a688200b0028e766e2f11mr415417pjd.75.1706301019577; Fri, 26 Jan 2024 12:30:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706301019; cv=pass; d=google.com; s=arc-20160816; b=Dzhnc7NahdA8xfnZ7a2oe40rxx/YE02vV6PIkWg/QSXH7Gv4zgJ0QRldcFRlrE980J JrebzuMl2ZFMgeX3Gc1iQhi2hihfiZC2u1CZnhH8i6r+79nMwHYMneN624k83a/b4i8v NG80JKuRSxIk1INWO6z1UScr2gS7VdZqBTOaBAFkSJQvs3/ZY+MzA6kWpGopeIGXmlxj vhlxwHJ7qFVZLIx/zQh1875ScarKsLlYXxMOUmw4QLWWYtqHnFwqCdr6XumD2URvcbe8 yKpqBtTM3JAboW2BB3v7JNeuusiV9oME+eslKLMB5oiCWEL9S9d7d36I6VF85GvLS9GA GqUw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:list-unsubscribe:list-subscribe:list-id:precedence :dkim-signature; bh=kZTd/qK4fjgGkjgEEZAEvtUcKpHSu6w+GQ9nB6HrsPo=; fh=x0tMGboSl7YKswvvbEkLHO90YMFIKuxkb3+tjIdWX8c=; b=F/W25yfGzxv7TtGpmQ1PMBvEnScsgwXK4TFePBb9fL+hjuTfgUNVp4MfFDohzo0QTt pRq7SMtG3sorCQxdjX2TTm9N1NNzpf4USBUt7sxr/oAWEzGZzqQ+Ue/cegEV4pypHlq4 OlYsEFA8lUH6Uc6RaBJHTZXSYSt77PuJEUGiOKRZFEeU2QORNaldF8a9tpw4lgDBARj8 m2BBu22SJGq6ztQnx3e5Ag+iF0f0+G0T1RS7RqvgSbtgU50ANty3Y0a6Aofc5chn2uFl lVoXJW1o+nR1XT2Z9CZn+lAFoWOTJzoS/jrgqZv1nH1/cucaslQus9zY6nLkqmRCb8m9 SiVg== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=v+N2oFYi; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-40628-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-40628-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [2604:1380:45e3:2400::1]) by mx.google.com with ESMTPS id j20-20020a17090a841400b00290d2a62818si3709314pjn.59.2024.01.26.12.30.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Jan 2024 12:30:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-40628-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) client-ip=2604:1380:45e3:2400::1; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=v+N2oFYi; arc=pass (i=1 spf=pass spfdomain=linaro.org dkim=pass dkdomain=linaro.org dmarc=pass fromdomain=linaro.org); spf=pass (google.com: domain of linux-kernel+bounces-40628-linux.lists.archive=gmail.com@vger.kernel.org designates 2604:1380:45e3:2400::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-40628-linux.lists.archive=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 38D80287442 for ; Fri, 26 Jan 2024 20:30:19 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id 713BD24219; Fri, 26 Jan 2024 20:30:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="v+N2oFYi" Received: from mail-yb1-f182.google.com (mail-yb1-f182.google.com [209.85.219.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DDC2923750 for ; Fri, 26 Jan 2024 20:30:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.219.182 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706301012; cv=none; b=CrAIljSZ2v91aGwRnscza1bcyQLYQ/iX2S9f3U1qp7hv7Z7OrPOu2dQica+Sl3PvZaHNaV4tdok+W30SWsiLHeMDFuS7Uc0xPVfClOFumxEpgAFqD5E6XOaIAZXUPQhOldgoLf8rTvxhSvocYxTUnZaUOvM3T8TkGMsdqGLCEKQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1706301012; c=relaxed/simple; bh=AZL2DiPws0S6+MBaKLJGGRKAIx0Xr+661L82JlgRYPs=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=u7ursbGAzYxJhSpVbwxzjcA0jE35LA4/w8EicpawOYFlWeah0nsgukmq3l8Gy1yKhR9LmSGN7gR4q+e2BAALdop0SfTIdnPI+4clW9cDdmH1Pbkx6FaM2bOjkFoKhC796phHb/0jEXyPYFuvl4Zc4ZQWReAoHqw1bRpGhwraVQI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=v+N2oFYi; arc=none smtp.client-ip=209.85.219.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Received: by mail-yb1-f182.google.com with SMTP id 3f1490d57ef6-dbed0710c74so796994276.1 for ; Fri, 26 Jan 2024 12:30:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1706301010; x=1706905810; darn=vger.kernel.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kZTd/qK4fjgGkjgEEZAEvtUcKpHSu6w+GQ9nB6HrsPo=; b=v+N2oFYi5I5DFNj/ijZx0suvviAhzj2S3+K+88E97pCNWWmYCEyB2G9LS9rw5xruhs YoU7u4lEFqgzTD+V1lg/6wPic/UoMfQbouNlNWfjKbaO2sttkefcuMF0WZd1mFiBW3Rh x0NQVbzOtlh5jIJ+4McKUXwyxYwnfE06L4Rc6mld7TYY/mnirFPgewMadXzPONE37qpB vQ/zGDAkj7NXguVvK9QZrVf93GR+uvHLF+eE0xW0WH3IfvAKGssboYYSomy0AGircQzc PuUXB6Hjkbezu3ajlbKwk6QeZpoIMAKBTzNydun0IWywbBg2R44x0mdAzatoW6x8FsFU Cmdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706301010; x=1706905810; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=kZTd/qK4fjgGkjgEEZAEvtUcKpHSu6w+GQ9nB6HrsPo=; b=qJiHiIKovognDCUk/N9OrJ2+wZ90vx4FrWvC3w3AmAtqM3SORq0UR7ccvY00BcSV8F Wq3gUZ5rK7eXuNyMo8itL096NdUCEKQ1hkdRmpLzM/Mx4FYXOvdMNzagyXXKwb2eGajj 3DGcM6e0Mxn/VqRi1bRSMDoBRTsW4X94l4Mj+JZ3zCRWf/U5PYZqVk98bOA1f+D8Dwca HXQKVGArvO0OYFLfXna+BkTR/f9G28ShSOznvIpyIhDTtU4VTwl7bVs25XI2LX+tkdTc AKubUNSviPuD5dKTOtshwdIVWlH/b/Pj/ekyYfp+NYVt1HAkDAsbODdkGKWOwP0lK8Ba 9sdg== X-Gm-Message-State: AOJu0YyeYezwYZwjZ5kmsxfwvl/erajWhnpB0So1IhyWYiAJrRw8cjAm NInYYI3qLxxBPMPZYFvc4mckK0H4nTBwBgMBfID8DSArf6uHQmEu7KnS2107YJIoC0igW9jqmfF LzPAw5BC8A1W1Y9NKkAWjkYFgWmAhNZwKHBStkg== X-Received: by 2002:a25:9948:0:b0:dc1:f71f:a1e8 with SMTP id n8-20020a259948000000b00dc1f71fa1e8mr473812ybo.128.1706301009942; Fri, 26 Jan 2024 12:30:09 -0800 (PST) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <12bfdd23772c49530b8b0993cc82bc89b3eb4ada.1706296015.git.quic_uchalich@quicinc.com> In-Reply-To: <12bfdd23772c49530b8b0993cc82bc89b3eb4ada.1706296015.git.quic_uchalich@quicinc.com> From: Dmitry Baryshkov Date: Fri, 26 Jan 2024 22:29:59 +0200 Message-ID: Subject: Re: [PATCH 5/5] soc: qcom: llcc: Add regmap for Broadcast_AND region To: Unnathi Chalicheemala Cc: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@quicinc.com Content-Type: text/plain; charset="UTF-8" On Fri, 26 Jan 2024 at 21:48, Unnathi Chalicheemala wrote: > > To support CSR programming, a broadcast interface is used to program > all channels in a single command. Until SM8450 there was only one > broadcast region (Broadcast_OR) used to broadcast write and check > for status bit 0. From SM8450 onwards another broadcast region > (Broadcast_AND) has been added which checks for status bit 1. > > Update llcc_drv_data structure with new regmap for Broadcast_AND > region and initialize regmap for Broadcast_AND region when HW block > version is greater than 4.1 for backwards compatibility. > > Switch from broadcast_OR to broadcast_AND region for checking > status bit 1 as Broadcast_OR region checks only for bit 0. This breaks backwards compatibility with the existing DT files, doesn't it? > While at it, also check return value after reading Broadcast_OR > region in llcc_update_act_ctrl(). Separate patch, Fixes tag. > > Signed-off-by: Unnathi Chalicheemala > --- > drivers/soc/qcom/llcc-qcom.c | 12 +++++++++++- > include/linux/soc/qcom/llcc-qcom.h | 4 +++- > 2 files changed, 14 insertions(+), 2 deletions(-) > > diff --git a/drivers/soc/qcom/llcc-qcom.c b/drivers/soc/qcom/llcc-qcom.c > index 4ca88eaebf06..5a2dac2d4772 100644 > --- a/drivers/soc/qcom/llcc-qcom.c > +++ b/drivers/soc/qcom/llcc-qcom.c > @@ -849,7 +849,7 @@ static int llcc_update_act_ctrl(u32 sid, > return ret; > > if (drv_data->version >= LLCC_VERSION_4_1_0_0) { > - ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, > + ret = regmap_read_poll_timeout(drv_data->bcast_and_regmap, status_reg, > slice_status, (slice_status & ACT_COMPLETE), > 0, LLCC_STATUS_READ_DELAY); > if (ret) > @@ -859,6 +859,8 @@ static int llcc_update_act_ctrl(u32 sid, > ret = regmap_read_poll_timeout(drv_data->bcast_regmap, status_reg, > slice_status, !(slice_status & status), > 0, LLCC_STATUS_READ_DELAY); > + if (ret) > + return ret; > > if (drv_data->version >= LLCC_VERSION_4_1_0_0) > ret = regmap_write(drv_data->bcast_regmap, act_clear_reg, > @@ -1282,6 +1284,14 @@ static int qcom_llcc_probe(struct platform_device *pdev) > > drv_data->version = version; > > + if (drv_data->version >= LLCC_VERSION_4_1_0_0) { > + drv_data->bcast_and_regmap = qcom_llcc_init_mmio(pdev, i + 1, "llcc_broadcast_and_base"); > + if (IS_ERR(drv_data->bcast_and_regmap)) { > + ret = PTR_ERR(drv_data->bcast_and_regmap); > + goto err; > + } > + } > + > llcc_cfg = cfg->sct_data; > sz = cfg->size; > > diff --git a/include/linux/soc/qcom/llcc-qcom.h b/include/linux/soc/qcom/llcc-qcom.h > index 1a886666bbb6..9e9f528b1370 100644 > --- a/include/linux/soc/qcom/llcc-qcom.h > +++ b/include/linux/soc/qcom/llcc-qcom.h > @@ -115,7 +115,8 @@ struct llcc_edac_reg_offset { > /** > * struct llcc_drv_data - Data associated with the llcc driver > * @regmaps: regmaps associated with the llcc device > - * @bcast_regmap: regmap associated with llcc broadcast offset > + * @bcast_regmap: regmap associated with llcc broadcast OR offset > + * @bcast_and_regmap: regmap associated with llcc broadcast AND offset > * @cfg: pointer to the data structure for slice configuration > * @edac_reg_offset: Offset of the LLCC EDAC registers > * @lock: mutex associated with each slice > @@ -129,6 +130,7 @@ struct llcc_edac_reg_offset { > struct llcc_drv_data { > struct regmap **regmaps; > struct regmap *bcast_regmap; > + struct regmap *bcast_and_regmap; > const struct llcc_slice_config *cfg; > const struct llcc_edac_reg_offset *edac_reg_offset; > struct mutex lock; > -- > 2.25.1 > > -- With best wishes Dmitry