From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB83FC4708E for ; Tue, 6 Dec 2022 11:57:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230151AbiLFL5v (ORCPT ); Tue, 6 Dec 2022 06:57:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50952 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231274AbiLFL5k (ORCPT ); Tue, 6 Dec 2022 06:57:40 -0500 Received: from mail-ed1-x52b.google.com (mail-ed1-x52b.google.com [IPv6:2a00:1450:4864:20::52b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1F295642F for ; Tue, 6 Dec 2022 03:57:38 -0800 (PST) Received: by mail-ed1-x52b.google.com with SMTP id c17so11375401edj.13 for ; Tue, 06 Dec 2022 03:57:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qNZbR/OCEKJKCF9Pyi6+mM/mCQOvMeAEcjhJky1x5bk=; b=NWXWNYnvN1jBg8fh4s6alBCUPRmNaziz7tTuEZ+3lKk9a1vsxZGan2QgpRPFxAXAP7 YsQ4Du++m8bcwKtpsi9WofamV42a9mEu1S/Fnqb6LfL6+40eaW4+0S7fTIkyY2HmDUiK lzWzBTLkGOwR9Sj1OClt/3jtRXnN4xSNEVMwxNfzsLQ6eQg38h/H1KPOUXF23luITTol vtY3VwKBxefY0dbmYHZvWLUFM37oFrl4EWpXOBjH7NRt2d8CfnEuR5gn0tlVq3YmhCyf WLiJ40Idltmo/IBDV+1sqF/ZJnty5NCiWqICdl+orbB0sLqxFoL70R47xDySUoYzufGE RBVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=qNZbR/OCEKJKCF9Pyi6+mM/mCQOvMeAEcjhJky1x5bk=; b=Fg2s/b16tmhbbI0/vhzV6WHV/HGusea1Fg7BhH3uRGF/wiBLqhR+zeUtcrx8AlGk0B Zjjnsv/bN8KKYPysL3TKrDu5tSSZWGXQurpbXPJqk1D4zb82brAjMU/saVaPnDShj5Ru YrW/kP84BmvufXPfxp94FOgtAa05NCwFKGb8XWPc246Q5C8A5VF53U2ps9ZfFQfOu0zE +/+/zn1BWK0STI3guI6LCUSRa1BmTX5rSmpW6oNVnvXB09QW66tcLmIltRKUI0/wYbdp C/ojw61Q+oXJAjckMBYkw+HKWbcHbaFHOGkE602aWhMxNAXPgO+kJMzM9PfHjY6x6LNR GSKg== X-Gm-Message-State: ANoB5pmCTeqeqwI/mJdkLqgSVX6kuE9mCKDURqeAXytykN1P6ocqTWEg Qr7JebdP1/n2/T7ejbMKGab9lA== X-Google-Smtp-Source: AA0mqf489vUcETfBpNEXYBWARn81KzeGgaVU6pd9QSVl665/cF68KK+1pB0YvEGuCclDi/LRhIw2og== X-Received: by 2002:a05:6402:3785:b0:461:e598:e0bb with SMTP id et5-20020a056402378500b00461e598e0bbmr14889196edb.21.1670327856563; Tue, 06 Dec 2022 03:57:36 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:36 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 01/11] can: m_can: Eliminate double read of TXFQS in tx_handler Date: Tue, 6 Dec 2022 12:57:18 +0100 Message-Id: <20221206115728.1056014-2-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The TXFQS register is read first to check if the fifo is full and then immediately again to get the putidx. This is unnecessary and adds significant overhead if read requests are done over a slow bus, for example SPI with tcan4x5x. Add a variable to store the value of the register. Split the m_can_tx_fifo_full function into two to avoid the hidden m_can_read call if not needed. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index e5575d2755e4..0cc0abde9b1d 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -368,9 +368,14 @@ m_can_txe_fifo_read(struct m_can_classdev *cdev, u32 f= gi, u32 offset, u32 *val) return cdev->ops->read_fifo(cdev, addr_offset, val, 1); } =20 +static inline bool _m_can_tx_fifo_full(u32 txfqs) +{ + return !!(txfqs & TXFQS_TFQF); +} + static inline bool m_can_tx_fifo_full(struct m_can_classdev *cdev) { - return !!(m_can_read(cdev, M_CAN_TXFQS) & TXFQS_TFQF); + return _m_can_tx_fifo_full(m_can_read(cdev, M_CAN_TXFQS)); } =20 static void m_can_config_endisable(struct m_can_classdev *cdev, bool enabl= e) @@ -1585,6 +1590,7 @@ static netdev_tx_t m_can_tx_handler(struct m_can_clas= sdev *cdev) struct sk_buff *skb =3D cdev->tx_skb; struct id_and_dlc fifo_header; u32 cccr, fdflags; + u32 txfqs; int err; int putidx; =20 @@ -1641,8 +1647,10 @@ static netdev_tx_t m_can_tx_handler(struct m_can_cla= ssdev *cdev) } else { /* Transmit routine for version >=3D v3.1.x */ =20 + txfqs =3D m_can_read(cdev, M_CAN_TXFQS); + /* Check if FIFO full */ - if (m_can_tx_fifo_full(cdev)) { + if (_m_can_tx_fifo_full(txfqs)) { /* This shouldn't happen */ netif_stop_queue(dev); netdev_warn(dev, @@ -1658,8 +1666,7 @@ static netdev_tx_t m_can_tx_handler(struct m_can_clas= sdev *cdev) } =20 /* get put index for frame */ - putidx =3D FIELD_GET(TXFQS_TFQPI_MASK, - m_can_read(cdev, M_CAN_TXFQS)); + putidx =3D FIELD_GET(TXFQS_TFQPI_MASK, txfqs); =20 /* Construct DLC Field, with CAN-FD configuration. * Use the put index of the fifo as the message marker, --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD978C4708E for ; Tue, 6 Dec 2022 11:57:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230402AbiLFL5r (ORCPT ); Tue, 6 Dec 2022 06:57:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235108AbiLFL5k (ORCPT ); Tue, 6 Dec 2022 06:57:40 -0500 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 071016583 for ; Tue, 6 Dec 2022 03:57:39 -0800 (PST) Received: by mail-ej1-x632.google.com with SMTP id kw15so2151325ejc.10 for ; Tue, 06 Dec 2022 03:57:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fPY/i2W9DO4EoXlKXBgjR2RaogZYXbKp1PtuK+1K7lo=; b=lHue8XX3/w6oT10x3GOfSeKr/cEhp3RW+YOtl/a9x3yzg+YxzZu2POfZyEOPevFKpg RY3eovz4dJzdelqPaW9ezwc5ctZZ3YdDh2UT3juvKIubGKwaSZ3J0FtyBtFPWQiv1Drl VlzLIN589cuDcToWTH/Dl5+8Y9mZXD9nwa7gHqld/aSVEDKcEU799r8Du8LzTHkQ11KK UeVt3EG3B2/EdKldT/clXPZh4ZVmLYXfJtLCFMeUJM5Kc+EePKo5xLmBzS0o9v75I+cC Iypdn4hRgvQLcMQ7D2r83jh6oCYk4ORN5SuhLHw7MFEgXyeZdOHlbIOz0xI58esuPp0F 2bbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fPY/i2W9DO4EoXlKXBgjR2RaogZYXbKp1PtuK+1K7lo=; b=iwt2jo2ltyqWsMPo7OuPGIAAlsTgumZ5EXACybDFdtvpGE0JzCDKat6OzqY9ZLBR1X Lu3oSKRD5vlQHEDuho8FKFhpsUcbEZYDkD1B76t1UVLaIVU6lvazdYJZiNjQPBE0MQ98 nx+eiOP3k56lu9y6mIWXkGhJJyk4wez/JryHiyXybSbMMtSNGLvM/9u8mqRHuhLAUqTc WYiead++rf8xNwzUgXfqB9Okf6sEuTcHEt1ydl0EQqCL6Y1ItR8Bzps+kOr/t7BIDYHx OJiQb6SQo4KlLNCupyzH8PDYDKKeszuvg1sawT6WhpVq0gPb13vcAw1AaSGIGENAUrHX MlNQ== X-Gm-Message-State: ANoB5pkwAhCCe2U5p/dX67pa0fmqxQv/Ave7HPZDLblEv6qT7DEu3XXU c/H6fZ7D+rOHUFHBqE7pKtOJEA== X-Google-Smtp-Source: AA0mqf7xsb8tS6Ea0DlvvR6lLe4tw1gGV4xlvBn6EzLzPGCKm16uB7/45j/fxJ1XrHQfNT5a29sGNA== X-Received: by 2002:a17:906:48d6:b0:7c1:b67:6a28 with SMTP id d22-20020a17090648d600b007c10b676a28mr2000190ejt.2.1670327857491; Tue, 06 Dec 2022 03:57:37 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:37 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 02/11] can: m_can: Avoid reading irqstatus twice Date: Tue, 6 Dec 2022 12:57:19 +0100 Message-Id: <20221206115728.1056014-3-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" For peripheral devices the m_can_rx_handler is called directly after setting cdev->irqstatus. This means we don't have to read the irqstatus again in m_can_rx_handler. Avoid this by adding a parameter that is false for direct calls. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 0cc0abde9b1d..d30afbb3503b 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -895,14 +895,13 @@ static int m_can_handle_bus_errors(struct net_device = *dev, u32 irqstatus, return work_done; } =20 -static int m_can_rx_handler(struct net_device *dev, int quota) +static int m_can_rx_handler(struct net_device *dev, int quota, u32 irqstat= us) { struct m_can_classdev *cdev =3D netdev_priv(dev); int rx_work_or_err; int work_done =3D 0; - u32 irqstatus, psr; + u32 psr; =20 - irqstatus =3D cdev->irqstatus | m_can_read(cdev, M_CAN_IR); if (!irqstatus) goto end; =20 @@ -946,12 +945,12 @@ static int m_can_rx_handler(struct net_device *dev, i= nt quota) return work_done; } =20 -static int m_can_rx_peripheral(struct net_device *dev) +static int m_can_rx_peripheral(struct net_device *dev, u32 irqstatus) { struct m_can_classdev *cdev =3D netdev_priv(dev); int work_done; =20 - work_done =3D m_can_rx_handler(dev, NAPI_POLL_WEIGHT); + work_done =3D m_can_rx_handler(dev, NAPI_POLL_WEIGHT, irqstatus); =20 /* Don't re-enable interrupts if the driver had a fatal error * (e.g., FIFO read failure). @@ -967,8 +966,11 @@ static int m_can_poll(struct napi_struct *napi, int qu= ota) struct net_device *dev =3D napi->dev; struct m_can_classdev *cdev =3D netdev_priv(dev); int work_done; + u32 irqstatus; + + irqstatus =3D cdev->irqstatus | m_can_read(cdev, M_CAN_IR); =20 - work_done =3D m_can_rx_handler(dev, quota); + work_done =3D m_can_rx_handler(dev, quota, irqstatus); =20 /* Don't re-enable interrupts if the driver had a fatal error * (e.g., FIFO read failure). @@ -1078,7 +1080,7 @@ static irqreturn_t m_can_isr(int irq, void *dev_id) m_can_disable_all_interrupts(cdev); if (!cdev->is_peripheral) napi_schedule(&cdev->napi); - else if (m_can_rx_peripheral(dev) < 0) + else if (m_can_rx_peripheral(dev, ir) < 0) goto out_fail; } =20 --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D38FAC352A1 for ; Tue, 6 Dec 2022 11:58:06 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235277AbiLFL6E (ORCPT ); Tue, 6 Dec 2022 06:58:04 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235139AbiLFL5n (ORCPT ); Tue, 6 Dec 2022 06:57:43 -0500 Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DC36C9580 for ; Tue, 6 Dec 2022 03:57:39 -0800 (PST) Received: by mail-ed1-x52f.google.com with SMTP id d14so14974062edj.11 for ; Tue, 06 Dec 2022 03:57:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=6/SM3kRtE0QNFZxUupuZ+9fh0CsrCFYSaqu7nZYqZws=; b=0+4ZNoct0t37OCBI0Y3zYjJ0HnauWB5gfqosr2YiHb/KDkgUB0W0OrWp6Td60o/qh2 mj23yCSgRd5vUr7yuTKBqXK1rKj0Dhlne1ZTLoggSHVQcVUnynig5NLWmEpmVyZtjCR9 irNVKd5e/1zjgrEagyZdtsouWAoDH1YU6TEqfWDYe8sKqoV5xy6a8vH3wt1gX/C2iF05 D9RYNZvOzX9Iu3F07nBTc6L5AZpNP9kV7QGs67cWBAQAzMJTfsXEK36ablfRhBOVi8rt LtImRuyGjgccVT2bgzzGb5sl8iVYYFbWE+C+3BKu1JbqA6qOh3YMau4R9iC5+p7Ap9Uw 8DQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6/SM3kRtE0QNFZxUupuZ+9fh0CsrCFYSaqu7nZYqZws=; b=cFANtEZa8BexaNFGU1HZSgTozY4yzv1xdULfKRtNHuvcgY8U58A1TXfIkJe1DYb1qF w88j9JicDQca8evNUa9N8jMbNYrmBzc1gK8LdX56M0ILgu+fI/8LkzTDfas+0O2Zo+cW G0suxEwElBuDgguSwzrl4am4f+5aHz4w72ZvPoCP6HtNQBgIO4LhpoG7KXtvxZdHpJU5 04dljMdWaW3KFu5goAa40XVtk4UVNS+QnsP/c8gECACzeleEwYMgwQAV8fQTblQkNhBy 80alzuzTTHrooUM4T4aDCyFXdzD69GkEkjXhutd5iaCFcx9Be8WgF83yFkkKocR7cB86 46dg== X-Gm-Message-State: ANoB5plZjcKEwUMDVBgS6AKErwyznOkRvn3tPmGJaReXdHOqS08+L5+M elc4S+GuUOcNgvV9XTkA6czBeQ== X-Google-Smtp-Source: AA0mqf7dfp5M+1XwnbbDWRD6RfH8MEGTMzGyhpgQVfsezjb8oi7qrVaCy9qNcQuAtPlBn6W5MrBokw== X-Received: by 2002:a05:6402:2b91:b0:457:23cb:20ab with SMTP id fj17-20020a0564022b9100b0045723cb20abmr12075583edb.254.1670327858359; Tue, 06 Dec 2022 03:57:38 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:38 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 03/11] can: m_can: Read register PSR only on error Date: Tue, 6 Dec 2022 12:57:20 +0100 Message-Id: <20221206115728.1056014-4-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Only read register PSR if there is an error indicated in irqstatus. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index d30afbb3503b..45c718413abf 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -900,7 +900,6 @@ static int m_can_rx_handler(struct net_device *dev, int= quota, u32 irqstatus) struct m_can_classdev *cdev =3D netdev_priv(dev); int rx_work_or_err; int work_done =3D 0; - u32 psr; =20 if (!irqstatus) goto end; @@ -926,13 +925,13 @@ static int m_can_rx_handler(struct net_device *dev, i= nt quota, u32 irqstatus) } } =20 - psr =3D m_can_read(cdev, M_CAN_PSR); - if (irqstatus & IR_ERR_STATE) - work_done +=3D m_can_handle_state_errors(dev, psr); + work_done +=3D m_can_handle_state_errors(dev, + m_can_read(cdev, M_CAN_PSR)); =20 if (irqstatus & IR_ERR_BUS_30X) - work_done +=3D m_can_handle_bus_errors(dev, irqstatus, psr); + work_done +=3D m_can_handle_bus_errors(dev, irqstatus, + m_can_read(cdev, M_CAN_PSR)); =20 if (irqstatus & IR_RF0N) { rx_work_or_err =3D m_can_do_rx_poll(dev, (quota - work_done)); --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 43E3FC352A1 for ; Tue, 6 Dec 2022 11:58:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235267AbiLFL55 (ORCPT ); Tue, 6 Dec 2022 06:57:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51028 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229780AbiLFL5o (ORCPT ); Tue, 6 Dec 2022 06:57:44 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AD18F958C for ; Tue, 6 Dec 2022 03:57:40 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id ud5so5617872ejc.4 for ; Tue, 06 Dec 2022 03:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Jg8CR20tG79djQpdFo8U0Y6E9PQi/JvNHqoQZx2uO1Q=; b=zELG2lnh50u90Jp2YLLVqH4yZCkDv7zMa535EWcQPw1JEmENJog2b3Vqaw170TwLzo Mz0Z8SmeWTO+dx1Wuqlpp0fYpWLBXeqtfqlcCQZ70JmisGnxHt9gDi7T3KbSDRq/ytP9 hOJ1oP74mxN+w1SRByUuzSSnFrUwbbjXn5/yUDUm5d+yU+2mw2E8sTLFVTMtLfuaVQCE w9JaR1YlrXSrq2LmYnEkm41ANlQdDqwshQbgkP3nVdbMCwXWNo8ur1m++gxNIw1Je89n Fj1r+UbVNA+7252hQFEO7reV7YGsMfRiDo7pj5nAZKquSRfB/BQZxVhRqEzcqJfFlJaT GPzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Jg8CR20tG79djQpdFo8U0Y6E9PQi/JvNHqoQZx2uO1Q=; b=CpLzQxnBsTxOF1C/PdEaF0s6E/A7V9dLBtnt9A2ESBekq5Kcd5DE7Cgq9+TqeXAx89 BmHuAcwPE8a0aLN4szybsIBsjiHQ1kUGDrf0kRwHARt6kE5sMqn6KMmrW8IqicSprJGu vJQsGVsxcobI31JGlmoaxLLlNyuwe7tvAyusdm8ZJ/r2W/COKU/j7wXa4PC4ghS+LNCp LpPb/e73dhM33sEnGPocFq1ub951kIk04YzL+bygP/z6H09RK22pRcAxYTYr+OEQeLbg RjAwmb7ztdYMuj1GqNdB1BQ78jPHhWsWDE+yMmRx3mcxQWbZXwHZoBAnj8HRvewSy/ir I8CA== X-Gm-Message-State: ANoB5pnys4pGYCa/+MhE0l77bTMlHVW06hJECGNWwKnoqSJ5Yuzex1OU bvzdZbYm8dVVs2YnF/EOQ99zPA== X-Google-Smtp-Source: AA0mqf6XeLvgIxwGH4a6RLaphDtEo1NWHsQelYYFWjvNWuKUdCDgRQQAeNLelwlOJQCFkYYAsDhtig== X-Received: by 2002:a17:906:444b:b0:7ad:dd43:5d53 with SMTP id i11-20020a170906444b00b007addd435d53mr54435818ejp.376.1670327859238; Tue, 06 Dec 2022 03:57:39 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:38 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 04/11] can: m_can: Count TXE FIFO getidx in the driver Date: Tue, 6 Dec 2022 12:57:21 +0100 Message-Id: <20221206115728.1056014-5-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The getindex simply increases by one for every iteration. There is no need to get the current getidx every time from a register. Instead we can just count and wrap if necessary. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 45c718413abf..a133f15fb90a 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -1020,15 +1020,13 @@ static int m_can_echo_tx_event(struct net_device *d= ev) =20 /* Get Tx Event fifo element count */ txe_count =3D FIELD_GET(TXEFS_EFFL_MASK, m_can_txefs); + fgi =3D FIELD_GET(TXEFS_EFGI_MASK, m_can_txefs); =20 /* Get and process all sent elements */ for (i =3D 0; i < txe_count; i++) { u32 txe, timestamp =3D 0; int err; =20 - /* retrieve get index */ - fgi =3D FIELD_GET(TXEFS_EFGI_MASK, m_can_read(cdev, M_CAN_TXEFS)); - /* get message marker, timestamp */ err =3D m_can_txe_fifo_read(cdev, fgi, 4, &txe); if (err) { @@ -1042,6 +1040,7 @@ static int m_can_echo_tx_event(struct net_device *dev) /* ack txe element */ m_can_write(cdev, M_CAN_TXEFA, FIELD_PREP(TXEFA_EFAI_MASK, fgi)); + fgi =3D (++fgi >=3D cdev->mcfg[MRAM_TXE].num ? 0 : fgi); =20 /* update stats */ m_can_tx_update_stats(cdev, msg_mark, timestamp); --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D8DAC352A1 for ; Tue, 6 Dec 2022 11:58:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231354AbiLFL6K (ORCPT ); Tue, 6 Dec 2022 06:58:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235144AbiLFL5n (ORCPT ); Tue, 6 Dec 2022 06:57:43 -0500 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7F3C2E3D for ; Tue, 6 Dec 2022 03:57:40 -0800 (PST) Received: by mail-ej1-x636.google.com with SMTP id qk9so5617701ejc.3 for ; Tue, 06 Dec 2022 03:57:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=LBqwKcCdNszQ4mwUTsccWY77ZqBMhKPDh+uspgjRsrc=; b=DPqqNGeJB+CLzaOy8DcBdvQ4jz5mShTjsBsQBiKtpJutZ9pt4futlXIv7BoIoLxKe1 ikRhLz4m7cQ7T/l7BPYX0zBg6Cp/hp+OmXJU5HpZpP3uN7z10J7635BmX25nND0MK2Tt ETAsPvi5kdq5jXRVH1OfPi+3HJHP6RfuZU3hqfrKBWZyC4zngg96khNNLz2iKp+fWlPu /DW905aQp3qfroPlS0pWoDMY+fczDnQXUTEJmd18IHZ1e5ByrTF/YqizF7kWto6RKrSo U5Nxdv5WjyxypVZbti2mw4Eofk4Y/wAOxrrqLim6nMpKVEWYndu5AuE4fI/Xrfx7MCrq yhbQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LBqwKcCdNszQ4mwUTsccWY77ZqBMhKPDh+uspgjRsrc=; b=0aRK3C6TrD1Euv+7SH2QB4ZHUGSikPYt+w/Tvz+pmhBu8fYAAydk/dk5CXj/tx3Et1 DQvQeeqX6BnNZ6ClsR7vlwJhLLH2HqHJm0LgI/EHpDjG/xaSq2F2niIlu939VejI0E1d coa71xodkhu3mFsXRKsVCTiuTmkql32AHZzig35KN6hrtbUsM0gw/Zygs12UxJhsBMqY b6U+lsaGkdsHj0g780Ytx7+ZKxZGmmyPeVuAMSQe4DDNdtP5GCQPU0RVtyDlN32UHX5F 0JejnrjHULYqvarWd21N32FDIwxFVclQL5AX9Qk8YwfLtV4bPO4I28G0/Xno/h8vm4BC kOnA== X-Gm-Message-State: ANoB5pkLKyQ3TjT65HxO0CRvNcHPkAURetyJkxZTLch0D+yelp47AoI+ Smv9+I36W4IgT/mMD8Xpj/0SDQ== X-Google-Smtp-Source: AA0mqf47x0bv/bx0CdJ4booRAhJIul6kiSx0Wgt7a/P3vRxUPTwsqwUNqSNrfwYI9fJ+L1nGhmitIw== X-Received: by 2002:a17:906:ad86:b0:7c0:7e90:ec98 with SMTP id la6-20020a170906ad8600b007c07e90ec98mr3823617ejb.537.1670327860065; Tue, 06 Dec 2022 03:57:40 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:39 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 05/11] can: m_can: Count read getindex in the driver Date: Tue, 6 Dec 2022 12:57:22 +0100 Message-Id: <20221206115728.1056014-6-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The getindex gets increased by one every time. We can calculate the correct getindex in the driver and avoid the additional reads of rxfs. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index a133f15fb90a..a0ae543d418c 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -476,19 +476,16 @@ static void m_can_receive_skb(struct m_can_classdev *= cdev, } } =20 -static int m_can_read_fifo(struct net_device *dev, u32 rxfs) +static int m_can_read_fifo(struct net_device *dev, u32 fgi) { struct net_device_stats *stats =3D &dev->stats; struct m_can_classdev *cdev =3D netdev_priv(dev); struct canfd_frame *cf; struct sk_buff *skb; struct id_and_dlc fifo_header; - u32 fgi; u32 timestamp =3D 0; int err; =20 - /* calculate the fifo get index for where to read data */ - fgi =3D FIELD_GET(RXFS_FGI_MASK, rxfs); err =3D m_can_fifo_read(cdev, fgi, M_CAN_FIFO_ID, &fifo_header, 2); if (err) goto out_fail; @@ -553,6 +550,9 @@ static int m_can_do_rx_poll(struct net_device *dev, int= quota) struct m_can_classdev *cdev =3D netdev_priv(dev); u32 pkts =3D 0; u32 rxfs; + u32 rx_count; + u32 fgi; + int i; int err; =20 rxfs =3D m_can_read(cdev, M_CAN_RXF0S); @@ -561,14 +561,17 @@ static int m_can_do_rx_poll(struct net_device *dev, i= nt quota) return 0; } =20 - while ((rxfs & RXFS_FFL_MASK) && (quota > 0)) { - err =3D m_can_read_fifo(dev, rxfs); + rx_count =3D FIELD_GET(RXFS_FFL_MASK, rxfs); + fgi =3D FIELD_GET(RXFS_FGI_MASK, rxfs); + + for (i =3D 0; i < rx_count && quota > 0; ++i) { + err =3D m_can_read_fifo(dev, fgi); if (err) return err; =20 quota--; pkts++; - rxfs =3D m_can_read(cdev, M_CAN_RXF0S); + fgi =3D (++fgi >=3D cdev->mcfg[MRAM_RXF0].num ? 0 : fgi); } =20 return pkts; --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7D588C47090 for ; Tue, 6 Dec 2022 11:57:55 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235218AbiLFL5y (ORCPT ); Tue, 6 Dec 2022 06:57:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234345AbiLFL5o (ORCPT ); Tue, 6 Dec 2022 06:57:44 -0500 Received: from mail-ej1-x632.google.com (mail-ej1-x632.google.com [IPv6:2a00:1450:4864:20::632]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3C2A05FFE for ; Tue, 6 Dec 2022 03:57:41 -0800 (PST) Received: by mail-ej1-x632.google.com with SMTP id vp12so5582732ejc.8 for ; Tue, 06 Dec 2022 03:57:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=AsKoU9M+5cIpcCQPCOg/6Uvu2CSKHlAbnecsoPfhR2A=; b=S8E2gky0aD2LAAceaAf9+51yBgoDUwQ456G2qknYvpGcW+Lv1KIaqhFMZFAwnCxkyl mqYFr3NvLPQUJM8f5uQ+00DHBz5y9cw1EVN21AE5Mjg5n3j7GYGERfWykh5L5Q+epIrS iRxkfKU1jo2HLqGNC0K/ZUG7PbJrUxn1NPFJ3kYKaMlf9FWHnFPyI/IVhDDJ8pBX+9KJ Md/wa6c/nTFApV5QUcks/mV7ntMyjveqvnvIMgZDZRn9561Tktlawkq1bDl25OYYgGZn fs/oPsxBMD1bx1vwI/U1Op25szWAu96FHguNXJ4Fm36Zu2+t+1keu7i0nCwFSSiw7HZ1 RAcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AsKoU9M+5cIpcCQPCOg/6Uvu2CSKHlAbnecsoPfhR2A=; b=bN2BSVucIph+NQpJNlrBjwuWU4KQ7KPKKw3e1+gsAsxkpbepFi1/uCac4ToJYcvE0a arTntu5994Gw6jzaLksK/xfOUFLX5vhRNEVHSBjSNBsNys+BEGHKkzg0Mele9NJLa1aJ 6RFfyFVmzxoQ3LOzEpGLy/J3rtl5nR98RG1suxvI8+UYWcqUTHF+l8mhD6VJ6/Ohzkv7 BuHs7fJvNNdkHodNfRCE5A9BiPYs4JdpWiCPd7MPT+bQLqEDuN8Hhv5OXU/oLjgJ1RGO i7ZRmv/mpATjtuhigRa7G1QnnnUVwydKCkSjzJN53vUhJUkOjrBaiOxwmZBG8NvT6O/i Lrhg== X-Gm-Message-State: ANoB5pkaAJPYKY17ybzcW7JmzsBJVQQ+PZ/JSsaGuJ7GoTu+vcGBS1mn RRy/R3Y8oRqf7p98XOLNavJ7xw== X-Google-Smtp-Source: AA0mqf5EGw2ZYPiRp+1wOueTLChciZ1I3gaAecnWP7Tl3f1EVPz2ufk8vb8tJCbslJ98ULsN9W9cyA== X-Received: by 2002:a17:906:6acc:b0:78d:b371:16e5 with SMTP id q12-20020a1709066acc00b0078db37116e5mr58056102ejs.456.1670327860866; Tue, 06 Dec 2022 03:57:40 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:40 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 06/11] can: m_can: Batch acknowledge transmit events Date: Tue, 6 Dec 2022 12:57:23 +0100 Message-Id: <20221206115728.1056014-7-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Transmit events from the txe fifo can be batch acknowledged by acknowledging the last read txe fifo item. This will save txe_count writes which is important for peripheral chips. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index a0ae543d418c..5572a6b3b94c 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -1013,7 +1013,9 @@ static int m_can_echo_tx_event(struct net_device *dev) u32 txe_count =3D 0; u32 m_can_txefs; u32 fgi =3D 0; + int ack_fgi =3D -1; int i =3D 0; + int err =3D 0; unsigned int msg_mark; =20 struct m_can_classdev *cdev =3D netdev_priv(dev); @@ -1028,28 +1030,29 @@ static int m_can_echo_tx_event(struct net_device *d= ev) /* Get and process all sent elements */ for (i =3D 0; i < txe_count; i++) { u32 txe, timestamp =3D 0; - int err; =20 /* get message marker, timestamp */ err =3D m_can_txe_fifo_read(cdev, fgi, 4, &txe); if (err) { netdev_err(dev, "TXE FIFO read returned %d\n", err); - return err; + break; } =20 msg_mark =3D FIELD_GET(TX_EVENT_MM_MASK, txe); timestamp =3D FIELD_GET(TX_EVENT_TXTS_MASK, txe) << 16; =20 - /* ack txe element */ - m_can_write(cdev, M_CAN_TXEFA, FIELD_PREP(TXEFA_EFAI_MASK, - fgi)); + ack_fgi =3D fgi; fgi =3D (++fgi >=3D cdev->mcfg[MRAM_TXE].num ? 0 : fgi); =20 /* update stats */ m_can_tx_update_stats(cdev, msg_mark, timestamp); } =20 - return 0; + if (ack_fgi !=3D -1) + m_can_write(cdev, M_CAN_TXEFA, FIELD_PREP(TXEFA_EFAI_MASK, + ack_fgi)); + + return err; } =20 static irqreturn_t m_can_isr(int irq, void *dev_id) --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D2A54C352A1 for ; Tue, 6 Dec 2022 11:58:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234300AbiLFL6W (ORCPT ); Tue, 6 Dec 2022 06:58:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50956 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235163AbiLFL5q (ORCPT ); Tue, 6 Dec 2022 06:57:46 -0500 Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 75C7B6596 for ; Tue, 6 Dec 2022 03:57:43 -0800 (PST) Received: by mail-ej1-x62d.google.com with SMTP id kw15so2151749ejc.10 for ; Tue, 06 Dec 2022 03:57:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=83PP3edth58TA8zB8E6Zh9GJd+Ky/ClAFIA3P8EFVEY=; b=ZmTzsvSEnQugnHmiOGpzBOFBYadRAHO8P94h8wRpc1ocO2mItjUJ8G2A2g1bg+aTxK qq/xGf0lhP9cuieUkkAAwVo1YGNexSDz4Y7524SetLJMGRPR1vqCD9LToU/YragnTqwa +GH5ZUrt2jJne1PAd0Fkh4L2kx0h4QnHM2ZrZm2OLzt++l2OaOCJuUW8L11kUwA4ZG9e fZoJl+oM0J7F+8P6/EMwvwIv6X5Dwo1HiRybxLpPB9V/LdijGr7UwhjZLgsY+VKngPWH WKWI72MG8U6NadKKD2SMTaZDziV4kUvYNJKZFIRxopvc4W9XvQDQB6YfamHcH+QVPuIj B3Gg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=83PP3edth58TA8zB8E6Zh9GJd+Ky/ClAFIA3P8EFVEY=; b=xCEUgAqdDzjrSuFiw1cV47DizEIWML3yTHbmYjUUO5jfKZ2bx6cixNqNL1FRrADyhT NncWpDXt8IHwXP+XwCBCbUlmkQl8ouxGZlyBwNc1XhelG221rm25quFplJG9vkwHi3Yo sYvf850Vlalx76OX/TITcum6vJ6VUbLApWbs4JL3obUf2Bt5lZrgfWcgCSlP1UpcEmPO ZbEBRgziRl4HRatCoYTSIeoHScZAchPSaDBNWQfkmpHu+c86ok3xT2Wnk8RrV0n3qKT2 xcfYtKl761IU7veDKTHC3qhU/gyit0tyFik+Fd83UxyCqYOH+r2OsyPjkFRCOeSaW6HA FCcw== X-Gm-Message-State: ANoB5plBbl9iO8zQd8BEY3F/J3Jx/vxwm1LWE3oa77tJ1Mxx6b34mLe0 hwwwCPqrKgOhUTtGpU88yDpaag== X-Google-Smtp-Source: AA0mqf56KMKwHGEPqLdvA1xeKZO3WSzbx+Hrig6h2oxmyp3nkUwQmFWl3nop/IYAJYnzUEu2T7QIew== X-Received: by 2002:a17:906:2851:b0:78d:88c7:c1bf with SMTP id s17-20020a170906285100b0078d88c7c1bfmr57231518ejc.299.1670327861708; Tue, 06 Dec 2022 03:57:41 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:41 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 07/11] can: m_can: Batch acknowledge rx fifo Date: Tue, 6 Dec 2022 12:57:24 +0100 Message-Id: <20221206115728.1056014-8-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Instead of acknowledging every item of the fifo, only acknowledge the last item read. This behavior is documented in the datasheet. The new getindex will be the acknowledged item + 1. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/m_can.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/net/can/m_can/m_can.c b/drivers/net/can/m_can/m_can.c index 5572a6b3b94c..56f07f2023dd 100644 --- a/drivers/net/can/m_can/m_can.c +++ b/drivers/net/can/m_can/m_can.c @@ -529,9 +529,6 @@ static int m_can_read_fifo(struct net_device *dev, u32 = fgi) } stats->rx_packets++; =20 - /* acknowledge rx fifo 0 */ - m_can_write(cdev, M_CAN_RXF0A, fgi); - timestamp =3D FIELD_GET(RX_BUF_RXTS_MASK, fifo_header.dlc) << 16; =20 m_can_receive_skb(cdev, skb, timestamp); @@ -552,8 +549,9 @@ static int m_can_do_rx_poll(struct net_device *dev, int= quota) u32 rxfs; u32 rx_count; u32 fgi; + int ack_fgi =3D -1; int i; - int err; + int err =3D 0; =20 rxfs =3D m_can_read(cdev, M_CAN_RXF0S); if (!(rxfs & RXFS_FFL_MASK)) { @@ -567,13 +565,20 @@ static int m_can_do_rx_poll(struct net_device *dev, i= nt quota) for (i =3D 0; i < rx_count && quota > 0; ++i) { err =3D m_can_read_fifo(dev, fgi); if (err) - return err; + break; =20 quota--; pkts++; + ack_fgi =3D fgi; fgi =3D (++fgi >=3D cdev->mcfg[MRAM_RXF0].num ? 0 : fgi); } =20 + if (ack_fgi !=3D -1) + m_can_write(cdev, M_CAN_RXF0A, ack_fgi); + + if (err) + return err; + return pkts; } =20 --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0BF60C352A1 for ; Tue, 6 Dec 2022 11:58:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234385AbiLFL6P (ORCPT ); Tue, 6 Dec 2022 06:58:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235171AbiLFL5s (ORCPT ); Tue, 6 Dec 2022 06:57:48 -0500 Received: from mail-ej1-x630.google.com (mail-ej1-x630.google.com [IPv6:2a00:1450:4864:20::630]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3CD526583 for ; Tue, 6 Dec 2022 03:57:44 -0800 (PST) Received: by mail-ej1-x630.google.com with SMTP id qk9so5617940ejc.3 for ; Tue, 06 Dec 2022 03:57:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=CcIt1IaTYEax5vtcXo6kulHEbyp3PY4P8eBt1nKytvc=; b=ctdptYH+HKK0dnEqg++UoD1XAweQtXUqNccU7/L76eMDHIErzeUt3U6s/1fqRzrUhl ecctv7dyhW5cwd9l1VdgZddpAJIitY/qqIw+l30VlveiezNqLurDmsyREuhuEu+jQBVl XANE5/Vkt/2QVxTzGgmiKZCKR3PbB6n8V+M4wiF3f+S0WlB2QaQEBrDmPe7JWmpZk3SU ruI8wuQsgk/pAjIHK5tfwAmyM95rn3BMpwDFpkmtL6nUy0kVGJFmpE8gqoKXbfHaXbgR KCmjLJxMyOc0lsBsd22XxQB6SA1j3UFFbS5oK1hU3140dnES75SaYSFu/XFgq+zSGpe6 ldqg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=CcIt1IaTYEax5vtcXo6kulHEbyp3PY4P8eBt1nKytvc=; b=L9BrtEwu0+9JQ1/Yy//Iywt4bIUVP/afr2gH7AVjLD1cq9AebtJfqnYNggvsXyXnnB 23HXVL2gArNfpwNMlrn3TGkFB1Pj1F+EQZMyHCiDlol1A7ZuO4ht9GNV3kmN5X2J2KNN xGhAma+mhuXr8zTdd0hoYOiTbR4hXtiJ6MEUw5gyZtF3WJjnbO30KaxEFlwUxJgnGBtP VBgbO/5CZzQ6nI3dQxF7t3IpIf+Llqt/oYipQta+4DOw6yVnlG0JxKOwrLwgAwB6+FnK sJifs3B5Wa1DN8n9obP5nkofauwyW2j0zggC0yfU3ISV5JFknYvFvzgF1/X0Fz8Y5bJj x//g== X-Gm-Message-State: ANoB5pnZ82DA9h2kBpFt8Wiuqm6Bre2s5zReYEW1MxuMWdb0mAsSz1A3 7hePrJAfO9HDMgmI8OG910GUAA== X-Google-Smtp-Source: AA0mqf6Gdfe48BdCM2e+T5oQj3c783mk2Tdg5AY9Nt0wWI7EHcHGoFluXhjLuOUAWsy/ynzjwBg34w== X-Received: by 2002:a17:907:8b06:b0:7c0:8e3a:9a54 with SMTP id sz6-20020a1709078b0600b007c08e3a9a54mr25879568ejc.619.1670327862671; Tue, 06 Dec 2022 03:57:42 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:42 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 08/11] can: tcan4x5x: Remove invalid write in clear_interrupts Date: Tue, 6 Dec 2022 12:57:25 +0100 Message-Id: <20221206115728.1056014-9-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Register 0x824 TCAN4X5X_MCAN_INT_REG is a read-only register. Any writes to this register do not have any effect. Remove this write. The m_can driver aldready clears the interrupts in m_can_isr() by writing to M_CAN_IR which is translated to register 0x1050 which is a writable version of this register. Fixes: 5443c226ba91 ("can: tcan4x5x: Add tcan4x5x driver to the kernel") Signed-off-by: Markus Schneider-Pargmann --- Notes: v2: - Add fixes tag drivers/net/can/m_can/tcan4x5x-core.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index 41645a24384c..1fec394b3517 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -204,11 +204,6 @@ static int tcan4x5x_clear_interrupts(struct m_can_clas= sdev *cdev) if (ret) return ret; =20 - ret =3D tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_MCAN_INT_REG, - TCAN4X5X_ENABLE_MCAN_INT); - if (ret) - return ret; - ret =3D tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_INT_FLAGS, TCAN4X5X_CLEAR_ALL_INT); if (ret) --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4EC00C352A1 for ; Tue, 6 Dec 2022 11:58:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233033AbiLFL60 (ORCPT ); Tue, 6 Dec 2022 06:58:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235112AbiLFL5s (ORCPT ); Tue, 6 Dec 2022 06:57:48 -0500 Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EEE8388C for ; Tue, 6 Dec 2022 03:57:44 -0800 (PST) Received: by mail-ej1-x62c.google.com with SMTP id ud5so5618297ejc.4 for ; Tue, 06 Dec 2022 03:57:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JjYuBcD7jZlcMi+USU++Fjz73CmyNYItk4pm8+k3tKw=; b=nkfae4PG+fak6KgW7NpaTgVTR1s5fmIbeyaIHwuH6k6RzMXAcjRf4MZT4xkRwBQJvj GC4TH5ZEFsU42Ruukc7h0vli299sxiDdAhBkQ4wX4fY7fcgXmAWumToF8jK9v2jFdG+n GdPFMB6sK4dF2HTrx1qpp1ZRdhkWvHYzTw5ic2CwPjRXKivWRPwE5sQvOwOXsJadgVH5 lElzZBdn6EJSHoirNtkAofdxX97Rc0cxtv+D63IXnow4sGs7WmmlYffD/Zs1wGPLxvCl 8QzqR6vE9los4tFcq91h3yrIGoQwVURZobC/WaKt09LqfZUtYZLZ63nskdeTStzoclAg SdQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JjYuBcD7jZlcMi+USU++Fjz73CmyNYItk4pm8+k3tKw=; b=QNHcNUO0J1TBd8QdonIGbMiaV5ZyYfF8lx9mOUxO20sl45Rh6x7kxhKrdjM0801Ygy 6AIGCpMJS7IkEOPxe2lHcwT/ZqZ6k7J9QvUrcjcVJwotrxcsdLLdC0B/IBr1iB6mJ5Od rc1b/32niE8kAw8SO17UA/9WPsrTkVMx1S3ZJY/3y+HJL8TWTxFb/HGv0XcoyKabQg/t 8G/0i0d7dEmnE48PcLu5vKRBNWjwNUHRfJ8uVPEhQMYHiNb8vQPPjjBLmv9Oc44O4suH IoElAyYZFlxeC7r6W7HmkO5X7ngGuaCqqAMtGoAMzlVzmG9LT8A774u0j5/oiZTEEEs3 XPfw== X-Gm-Message-State: ANoB5plMDlaxkMmM7aQx4xNPFcMuaAHsDQ8o6K8dq3aJOqpZUo6LbqTj vB6DyuFR5n9Y9o9iVx4m5G7YrA== X-Google-Smtp-Source: AA0mqf5jgQ4FcTy7pql9K1HWIuuGxaAGky+FaR2hbtqlMXGvIx/3XQ0qK5f+PJGcznSejAY31xwf4Q== X-Received: by 2002:a17:907:7884:b0:7c0:e6d8:6f22 with SMTP id ku4-20020a170907788400b007c0e6d86f22mr9275118ejc.670.1670327863538; Tue, 06 Dec 2022 03:57:43 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:43 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 09/11] can: tcan4x5x: Fix use of register error status mask Date: Tue, 6 Dec 2022 12:57:26 +0100 Message-Id: <20221206115728.1056014-10-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" TCAN4X5X_ERROR_STATUS is not a status register that needs clearing during interrupt handling. Instead this is a masking register that masks error interrupts. Writing TCAN4X5X_CLEAR_ALL_INT to this register effectively masks everything. Rename the register and mask all error interrupts only once by writing to the register in tcan4x5x_init. Fixes: 5443c226ba91 ("can: tcan4x5x: Add tcan4x5x driver to the kernel") Signed-off-by: Markus Schneider-Pargmann --- Notes: v2: - Add fixes tag drivers/net/can/m_can/tcan4x5x-core.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-core.c b/drivers/net/can/m_can/= tcan4x5x-core.c index 1fec394b3517..efa2381bf85b 100644 --- a/drivers/net/can/m_can/tcan4x5x-core.c +++ b/drivers/net/can/m_can/tcan4x5x-core.c @@ -10,7 +10,7 @@ #define TCAN4X5X_DEV_ID1 0x04 #define TCAN4X5X_REV 0x08 #define TCAN4X5X_STATUS 0x0C -#define TCAN4X5X_ERROR_STATUS 0x10 +#define TCAN4X5X_ERROR_STATUS_MASK 0x10 #define TCAN4X5X_CONTROL 0x14 =20 #define TCAN4X5X_CONFIG 0x800 @@ -204,12 +204,7 @@ static int tcan4x5x_clear_interrupts(struct m_can_clas= sdev *cdev) if (ret) return ret; =20 - ret =3D tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_INT_FLAGS, - TCAN4X5X_CLEAR_ALL_INT); - if (ret) - return ret; - - return tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_ERROR_STATUS, + return tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_INT_FLAGS, TCAN4X5X_CLEAR_ALL_INT); } =20 @@ -229,6 +224,11 @@ static int tcan4x5x_init(struct m_can_classdev *cdev) if (ret) return ret; =20 + ret =3D tcan4x5x_write_tcan_reg(cdev, TCAN4X5X_ERROR_STATUS_MASK, + TCAN4X5X_CLEAR_ALL_INT); + if (ret) + return ret; + /* Zero out the MCAN buffers */ ret =3D m_can_init_ram(cdev); if (ret) --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BB23C352A1 for ; Tue, 6 Dec 2022 11:58:33 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234666AbiLFL6a (ORCPT ); Tue, 6 Dec 2022 06:58:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50964 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235175AbiLFL5s (ORCPT ); Tue, 6 Dec 2022 06:57:48 -0500 Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 06421B7D6 for ; Tue, 6 Dec 2022 03:57:46 -0800 (PST) Received: by mail-ed1-x530.google.com with SMTP id f7so19931372edc.6 for ; Tue, 06 Dec 2022 03:57:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=kMpVZlkR98KLQohjfLGaqieOVI5mlDmYYzLpVIJ3+Co=; b=CNSjIQxzqCV1Ed/RyG27x1c8mgM8Tm7zw0uvRKceaLzWH646iHNwQ1x8wRdEfDtUKH ISwpGpz79jBDwK3kHgqoi86GP80S170WIaoqWbZnWFfYDEaxNk96RkF0B+BPF7bVeDFB BBb4e7yL2DQV9/Q8b/epz5m5Y1T809jO/LZaivf8pWfqikakzWK8Xe2cAI2VxdSzXjNO gi9b5c3kbfHAei05cGAPV2I3nf3kObO+BpnsMPHeYAdIbRHjtu1XYgvjn8CnWCJ2yGa5 YefpFp13s+Epzc+uZOF+SIZ4PFV3shbKfwkDIbyju4KHUwLDawcfT7zf6kGFpCXy1r7y IwdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kMpVZlkR98KLQohjfLGaqieOVI5mlDmYYzLpVIJ3+Co=; b=euRgYDdbJCWlRhD5VFZtrEdWPSuGGQljv6OCjvke6aGkYjCzVa3O4YhShgIfh56tsy UwDFSKnaDPN0W0uLPuDgHMWxG4PSV9E+X39bomaoG4Gajzw+0IhwjuWfFJarvmfLc8K1 CmGtW/QEc1LJcTkm674ephE4O4hLMDn3N7tBPQwOLw0CbaFnZxdeyTPyEvAs+9gYXZIj D9oiD5LX6aSiRtIa4FFoPJRfzCFFODTWABqOx0/1OoAY0LrHr9BBwEHkcLPnm8S4E3mq EqfvahGKb7EcJpYcMQ/lNBmSpzWXdq2Pn9zxBYOcKBwBCFDWr9rEgjiQbDepFTDMNVla 7TSQ== X-Gm-Message-State: ANoB5plW/pYH9Na1XK9lc/13/CUDqtSarr+Pr4Ap6TV1NWQcNzGcbaut v4b4gxcw+l6fWEU3j98Fl/lY4g== X-Google-Smtp-Source: AA0mqf61HAelMEyMCoEKHZ1S+ZPOwlygRrC4yfJN6dnK1EOKnRU7bKQ8CmWUh0UFuoxIt90m6JQRNw== X-Received: by 2002:a05:6402:78e:b0:46c:6f53:bf19 with SMTP id d14-20020a056402078e00b0046c6f53bf19mr11625077edy.299.1670327864545; Tue, 06 Dec 2022 03:57:44 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:44 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 10/11] can: tcan4x5x: Fix register range of first two blocks Date: Tue, 6 Dec 2022 12:57:27 +0100 Message-Id: <20221206115728.1056014-11-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" According to the datasheet 0x10 is the last register in the first block, not register 0x2c. The datasheet lists the last register of the second block as 0x830, not 0x83c. Signed-off-by: Markus Schneider-Pargmann --- Notes: v2: - Fix end of first range, was 0x1c, is now 0x10 - Add fix for the end of the second range, was 0x3c, is now 0x30. drivers/net/can/m_can/tcan4x5x-regmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-regmap.c b/drivers/net/can/m_ca= n/tcan4x5x-regmap.c index 26e212b8ca7a..33aed989e42a 100644 --- a/drivers/net/can/m_can/tcan4x5x-regmap.c +++ b/drivers/net/can/m_can/tcan4x5x-regmap.c @@ -91,8 +91,8 @@ static int tcan4x5x_regmap_read(void *context, } =20 static const struct regmap_range tcan4x5x_reg_table_yes_range[] =3D { - regmap_reg_range(0x0000, 0x002c), /* Device ID and SPI Registers */ - regmap_reg_range(0x0800, 0x083c), /* Device configuration registers and I= nterrupt Flags*/ + regmap_reg_range(0x0000, 0x0010), /* Device ID and SPI Registers */ + regmap_reg_range(0x0800, 0x0830), /* Device configuration registers and I= nterrupt Flags*/ regmap_reg_range(0x1000, 0x10fc), /* M_CAN */ regmap_reg_range(0x8000, 0x87fc), /* MRAM */ }; --=20 2.38.1 From nobody Fri Dec 19 06:33:03 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6976BC352A1 for ; Tue, 6 Dec 2022 11:58:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233993AbiLFL6f (ORCPT ); Tue, 6 Dec 2022 06:58:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51038 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235226AbiLFL54 (ORCPT ); Tue, 6 Dec 2022 06:57:56 -0500 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 054B9B1F2 for ; Tue, 6 Dec 2022 03:57:45 -0800 (PST) Received: by mail-ej1-x636.google.com with SMTP id m18so4048691eji.5 for ; Tue, 06 Dec 2022 03:57:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ETAV5GbK15ksIb7Y/2hAQrE1+2csG56eJ5O31jfiSm0=; b=DsfemFw96NwbJCFj2aFQGgrtCd2kXAYLnSqdxWwK+f1C3ozv2O2qwOA162mGChL6hn 6I8b6+MpLsRWGQ819BWKWHuvh1pk4JJwfFFq5sZbdmqFSxYOgMaXX7rKn93GpyuDU2UM h5KKd8pg+2P+K+zmKtJ/mqUMtoyDqHdgVCEk+rCn/GRBXHyMCW+INlcHnX5ff/IH/dhh ngzvdJTJTYXIr/Rkgt7Z2UtfSw73i5H6jbxRqHzhD+lA6Z+QcIb+UbW7AP4SfJ2zc+dz R5gcQq8CvqHxKE6Ju1pQQRc2JNIv/7wcy8FwdrRHsATiQb5fx6TjiACsYI+HbPtLeLG5 6s6A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ETAV5GbK15ksIb7Y/2hAQrE1+2csG56eJ5O31jfiSm0=; b=gYBUauZ18yKHhyM3a9si8dnBaAyJBTmOE9GZfJCR8GWetoJ5vIs7PW+oczI5+ak8mQ DtqkQ98Z32K59xMYCS/yYi5MeiYBEEPyjLL20spn8zmU2iKJM4WxY5m5UQ4mhl3W2ZWA IhSRfTPW+sUPjG6mSM1jzm7+H/T2hf6CSF9iQLhhShlouAUW7GQi5XbN4cD/+nvMRhfk O0/iQZb+bWgENxbq58rFuyVEim7QWqrCaRsVItGC7xKgm1o2WAfonbE6IzD4tBYhuVgP PujB637Yu6rt8oDNh4PB6QOqzOG05FUbaAPSMjfzm9DfvN2oMJDoGQRu4I1W4f7J5jN1 w04A== X-Gm-Message-State: ANoB5pnIVzlRhFFjxEbVuETM3pW1PI3q7KWO1zsSrpZ8Zm33PTP2/0+O XOCjT38SWReXJ4ucvU8+KvJa6g== X-Google-Smtp-Source: AA0mqf7GzGmbIAawAMwe6NRH9KO4raa68YejfLxvVTFxOOTu1R7RNxVCX6OXkVFF6vVz1mIthTIjtQ== X-Received: by 2002:a17:906:2552:b0:7ad:917b:61ec with SMTP id j18-20020a170906255200b007ad917b61ecmr59356203ejb.513.1670327865402; Tue, 06 Dec 2022 03:57:45 -0800 (PST) Received: from blmsp.fritz.box ([2001:4091:a245:805c:8713:84e4:2a9e:cbe8]) by smtp.gmail.com with ESMTPSA id ky20-20020a170907779400b007c0ac4e6b6esm6472076ejc.143.2022.12.06.03.57.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 06 Dec 2022 03:57:45 -0800 (PST) From: Markus Schneider-Pargmann To: Chandrasekar Ramakrishnan , Marc Kleine-Budde , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Markus Schneider-Pargmann Subject: [PATCH v2 11/11] can: tcan4x5x: Specify separate read/write ranges Date: Tue, 6 Dec 2022 12:57:28 +0100 Message-Id: <20221206115728.1056014-12-msp@baylibre.com> X-Mailer: git-send-email 2.38.1 In-Reply-To: <20221206115728.1056014-1-msp@baylibre.com> References: <20221206115728.1056014-1-msp@baylibre.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Specify exactly which registers are read/writeable in the chip. This is supposed to help detect any violations in the future. Signed-off-by: Markus Schneider-Pargmann --- drivers/net/can/m_can/tcan4x5x-regmap.c | 43 +++++++++++++++++++++---- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/drivers/net/can/m_can/tcan4x5x-regmap.c b/drivers/net/can/m_ca= n/tcan4x5x-regmap.c index 33aed989e42a..2b218ce04e9f 100644 --- a/drivers/net/can/m_can/tcan4x5x-regmap.c +++ b/drivers/net/can/m_can/tcan4x5x-regmap.c @@ -90,16 +90,47 @@ static int tcan4x5x_regmap_read(void *context, return 0; } =20 -static const struct regmap_range tcan4x5x_reg_table_yes_range[] =3D { +static const struct regmap_range tcan4x5x_reg_table_wr_range[] =3D { + /* Device ID and SPI Registers */ + regmap_reg_range(0x000c, 0x0010), + /* Device configuration registers and Interrupt Flags*/ + regmap_reg_range(0x0800, 0x080c), + regmap_reg_range(0x0814, 0x0814), + regmap_reg_range(0x0820, 0x0820), + regmap_reg_range(0x0830, 0x0830), + /* M_CAN */ + regmap_reg_range(0x100c, 0x102c), + regmap_reg_range(0x1048, 0x1048), + regmap_reg_range(0x1050, 0x105c), + regmap_reg_range(0x1080, 0x1088), + regmap_reg_range(0x1090, 0x1090), + regmap_reg_range(0x1098, 0x10a0), + regmap_reg_range(0x10a8, 0x10b0), + regmap_reg_range(0x10b8, 0x10c0), + regmap_reg_range(0x10c8, 0x10c8), + regmap_reg_range(0x10d0, 0x10d4), + regmap_reg_range(0x10e0, 0x10e4), + regmap_reg_range(0x10f0, 0x10f0), + regmap_reg_range(0x10f8, 0x10f8), + /* MRAM */ + regmap_reg_range(0x8000, 0x87fc), +}; + +static const struct regmap_range tcan4x5x_reg_table_rd_range[] =3D { regmap_reg_range(0x0000, 0x0010), /* Device ID and SPI Registers */ regmap_reg_range(0x0800, 0x0830), /* Device configuration registers and I= nterrupt Flags*/ regmap_reg_range(0x1000, 0x10fc), /* M_CAN */ regmap_reg_range(0x8000, 0x87fc), /* MRAM */ }; =20 -static const struct regmap_access_table tcan4x5x_reg_table =3D { - .yes_ranges =3D tcan4x5x_reg_table_yes_range, - .n_yes_ranges =3D ARRAY_SIZE(tcan4x5x_reg_table_yes_range), +static const struct regmap_access_table tcan4x5x_reg_table_wr =3D { + .yes_ranges =3D tcan4x5x_reg_table_wr_range, + .n_yes_ranges =3D ARRAY_SIZE(tcan4x5x_reg_table_wr_range), +}; + +static const struct regmap_access_table tcan4x5x_reg_table_rd =3D { + .yes_ranges =3D tcan4x5x_reg_table_rd_range, + .n_yes_ranges =3D ARRAY_SIZE(tcan4x5x_reg_table_rd_range), }; =20 static const struct regmap_config tcan4x5x_regmap =3D { @@ -107,8 +138,8 @@ static const struct regmap_config tcan4x5x_regmap =3D { .reg_stride =3D 4, .pad_bits =3D 8, .val_bits =3D 32, - .wr_table =3D &tcan4x5x_reg_table, - .rd_table =3D &tcan4x5x_reg_table, + .wr_table =3D &tcan4x5x_reg_table_wr, + .rd_table =3D &tcan4x5x_reg_table_rd, .max_register =3D TCAN4X5X_MAX_REGISTER, .cache_type =3D REGCACHE_NONE, .read_flag_mask =3D (__force unsigned long) --=20 2.38.1