Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1621557rwd; Sun, 21 May 2023 02:37:55 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ78u2wY/KDC1QeYx+0fqZOeImvie6mSA6kFOA3QMX/UJ1zD6ScbKy3atV2sPBgqsJwekB1X X-Received: by 2002:a17:902:e887:b0:1a6:c595:d7c3 with SMTP id w7-20020a170902e88700b001a6c595d7c3mr8982082plg.22.1684661875539; Sun, 21 May 2023 02:37:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684661875; cv=none; d=google.com; s=arc-20160816; b=zV0uWSVljDyEn++CorB1HYa8FQkH5TjQ5Ds1qWvMPbqCzCCcClqSWoh7GLnSrU+liI Y2lOt2/jq+nGYqnGmG76E9a+Pvhraj8RXO79B2G8RnW8q9iP9OM98DMDO59tS1ZfqjFg h6S8QNSKiqDpgAY8+Lg9R7d/sn65u7X440x8SpWWRQZLDESEgr18SYS0kfYWaTr+RDvu COe01rCxpSmAG4+X50lGXIpp4rti+XwyjWd2bXsuaZcF/IazxE2bhCIg2JrCZVBJtELA FXltaRRF4v4w6xu9GXDkgrjz9yM4O+gZDOfvlpio4ycsxM8XzacYUShfWpiFx5l9LWEj 5m+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version; bh=KHIw7JGPsQWr9sfK8pf8whE7OIvCqL302ZlVYFFtHzk=; b=WmR1lsEBLEEBSQ2Wq4uc7Jd8RdWTq5j0TXU1zojKK/3rkEewKEf2+mVEcfwCwcFmVC zhQMHKVcNXaGuLDiPEpmMCJ63OlNnv+YHRzkzxf+ULOiy8q85BuE0Rv5o/3U4iYil6M8 Pp93kWmyvNQmQD8UeRyfDre6LxBzwk1lxaqSJZaw6CCSSVOywVD4LE483SZWgNnZPqEA DFQR3DOyS2cvfKks2kJXoxjRNsg/JNTOnbf5gfTHbbjp8Xapz7R1NtMVf4iHYfYXO+Pw Yk0dLl+z74lO3DQ93O7FB4ebMEeJDT11OjdCIL7euCsbv9hviQM5KxGI7my8h++V4Wsh X5qA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id om6-20020a17090b3a8600b002533d06fefcsi3086412pjb.50.2023.05.21.02.37.37; Sun, 21 May 2023 02:37:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229990AbjEUJQb (ORCPT + 99 others); Sun, 21 May 2023 05:16:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55032 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229511AbjEUJQa (ORCPT ); Sun, 21 May 2023 05:16:30 -0400 Received: from mail-pf1-f169.google.com (mail-pf1-f169.google.com [209.85.210.169]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59D21CF; Sun, 21 May 2023 02:16:29 -0700 (PDT) Received: by mail-pf1-f169.google.com with SMTP id d2e1a72fcca58-64d2c865e4eso2035527b3a.0; Sun, 21 May 2023 02:16:29 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684660589; x=1687252589; 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=KHIw7JGPsQWr9sfK8pf8whE7OIvCqL302ZlVYFFtHzk=; b=EiW9f9bmO+FQZAhkkEdXsP0FA6mIbNTWvEGhFr2kB4sD99zUkNN7lyQbOpuwbScjG3 zSFXUJA4TFGMW/7huhnZLpxeCCdG96a2qSWtL1qlcjduDJ09MfEOzvHben+qNgh6ir+u duIGog8SMBniaHmTTWMJWzMogQ4RMmHDWnC9fDpBPwvfDD47fSjN6O4Kse2uqkgTnibr 0Z6agHRJ++fXEVv3JYeo8CPg9DBkhQceqZUlrqcQIWcXJz/oXMxaJi1DYNEZRVqMh5sG OC6US2nZh9l3vsXkxClOSG71lhpebjVgXxZGEK7RiWhhIYLt0ZTsemxxtetZt3o22j0j OO3w== X-Gm-Message-State: AC+VfDzfCM9XHZcQvnL3e6RhIRcHkaWQ0NLwJK/Xybo3tkjDnDmfH8xv pnMFRbotdyGKPsJAPNxhPgI7nAeTZLN34QXXIrI= X-Received: by 2002:a05:6a20:e615:b0:102:2de7:ee1d with SMTP id my21-20020a056a20e61500b001022de7ee1dmr7751637pzb.6.1684660588725; Sun, 21 May 2023 02:16:28 -0700 (PDT) MIME-Version: 1.0 References: <20230519195600.420644-1-frank.jungclaus@esd.eu> <20230519195600.420644-3-frank.jungclaus@esd.eu> In-Reply-To: <20230519195600.420644-3-frank.jungclaus@esd.eu> From: Vincent MAILHOL Date: Sun, 21 May 2023 18:16:17 +0900 Message-ID: Subject: Re: [PATCH v2 2/6] can: esd_usb: Replace initializer macros used for struct can_bittiming_const To: Frank Jungclaus Cc: linux-can@vger.kernel.org, Marc Kleine-Budde , Wolfgang Grandegger , =?UTF-8?Q?Stefan_M=C3=A4tje?= , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Thanks for the patch. On Sat. 20 May 2023 at 04:57, Frank Jungclaus wrote: > Replace the macros used to initialize the members of struct > can_bittiming_const with direct values. Then also use those struct > members to do the calculations in esd_usb2_set_bittiming(). > > Link: https://lore.kernel.org/all/CAMZ6RqLaDNy-fZ2G0+QMhUEckkXLL+ZyELVSDFmqpd++aBzZQg@mail.gmail.com/ > Suggested-by: Vincent MAILHOL > Signed-off-by: Frank Jungclaus > --- > drivers/net/can/usb/esd_usb.c | 33 +++++++++++++-------------------- > 1 file changed, 13 insertions(+), 20 deletions(-) > > diff --git a/drivers/net/can/usb/esd_usb.c b/drivers/net/can/usb/esd_usb.c > index 32354cfdf151..2eecf352ec47 100644 > --- a/drivers/net/can/usb/esd_usb.c > +++ b/drivers/net/can/usb/esd_usb.c > @@ -60,18 +60,10 @@ MODULE_LICENSE("GPL v2"); > #define ESD_USB_NO_BAUDRATE GENMASK(30, 0) /* bit rate unconfigured */ > > /* bit timing CAN-USB/2 */ > -#define ESD_USB2_TSEG1_MIN 1 > -#define ESD_USB2_TSEG1_MAX 16 > #define ESD_USB2_TSEG1_SHIFT 16 > -#define ESD_USB2_TSEG2_MIN 1 > -#define ESD_USB2_TSEG2_MAX 8 > #define ESD_USB2_TSEG2_SHIFT 20 > -#define ESD_USB2_SJW_MAX 4 > #define ESD_USB2_SJW_SHIFT 14 > #define ESD_USBM_SJW_SHIFT 24 > -#define ESD_USB2_BRP_MIN 1 > -#define ESD_USB2_BRP_MAX 1024 > -#define ESD_USB2_BRP_INC 1 > #define ESD_USB2_3_SAMPLES BIT(23) > > /* esd IDADD message */ > @@ -909,19 +901,20 @@ static const struct ethtool_ops esd_usb_ethtool_ops = { > > static const struct can_bittiming_const esd_usb2_bittiming_const = { > .name = "esd_usb2", > - .tseg1_min = ESD_USB2_TSEG1_MIN, > - .tseg1_max = ESD_USB2_TSEG1_MAX, > - .tseg2_min = ESD_USB2_TSEG2_MIN, > - .tseg2_max = ESD_USB2_TSEG2_MAX, > - .sjw_max = ESD_USB2_SJW_MAX, > - .brp_min = ESD_USB2_BRP_MIN, > - .brp_max = ESD_USB2_BRP_MAX, > - .brp_inc = ESD_USB2_BRP_INC, > + .tseg1_min = 1, > + .tseg1_max = 16, > + .tseg2_min = 1, > + .tseg2_max = 8, > + .sjw_max = 4, > + .brp_min = 1, > + .brp_max = 1024, > + .brp_inc = 1, > }; > > static int esd_usb2_set_bittiming(struct net_device *netdev) > { > struct esd_usb_net_priv *priv = netdev_priv(netdev); > + const struct can_bittiming_const *btc = priv->can.bittiming_const; I initially suggested doing: const struct can_bittiming_const *btc = priv->can.bittiming_const; But now that I think again about it, doing: const struct can_bittiming_const *btc = &esd_usb2_bittiming_const; is slightly better as it will allow the compiler to fold the integer constant expressions such as btc->brp_max - 1. The compiler is not smart enough to figure out what values are held in priv->can.bittiming_const at compile time. Sorry for not figuring this the first time. > struct can_bittiming *bt = &priv->can.bittiming; > union esd_usb_msg *msg; > int err; > @@ -932,7 +925,7 @@ static int esd_usb2_set_bittiming(struct net_device *netdev) > if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) > canbtr |= ESD_USB_LOM; > > - canbtr |= (bt->brp - 1) & (ESD_USB2_BRP_MAX - 1); > + canbtr |= (bt->brp - 1) & (btc->brp_max - 1); > > if (le16_to_cpu(priv->usb->udev->descriptor.idProduct) == > USB_CANUSBM_PRODUCT_ID) > @@ -940,12 +933,12 @@ static int esd_usb2_set_bittiming(struct net_device *netdev) > else > sjw_shift = ESD_USB2_SJW_SHIFT; > > - canbtr |= ((bt->sjw - 1) & (ESD_USB2_SJW_MAX - 1)) > + canbtr |= ((bt->sjw - 1) & (btc->sjw_max - 1)) > << sjw_shift; > canbtr |= ((bt->prop_seg + bt->phase_seg1 - 1) > - & (ESD_USB2_TSEG1_MAX - 1)) > + & (btc->tseg1_max - 1)) > << ESD_USB2_TSEG1_SHIFT; > - canbtr |= ((bt->phase_seg2 - 1) & (ESD_USB2_TSEG2_MAX - 1)) > + canbtr |= ((bt->phase_seg2 - 1) & (btc->tseg2_max - 1)) > << ESD_USB2_TSEG2_SHIFT; > if (priv->can.ctrlmode & CAN_CTRLMODE_3_SAMPLES) > canbtr |= ESD_USB2_3_SAMPLES; > -- > 2.25.1 >