Received: by 2002:a05:6a10:22f:0:0:0:0 with SMTP id 15csp1404179pxk; Fri, 2 Oct 2020 08:46:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz1TRRpYRBnW1JCEUA4msB8Cvap3mxig7/lofPZMdm1tQ4wmif4smqHD4DEqORptc7pUz8F X-Received: by 2002:a17:906:c007:: with SMTP id e7mr2884594ejz.55.1601653565453; Fri, 02 Oct 2020 08:46:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1601653565; cv=none; d=google.com; s=arc-20160816; b=TjUO7fEq2MRsvviWehZh5Fv08OTk77xg1Y4PhWPOaopHIOfL8lY638CrZDFPBWvAhz 72lclXTa+/paYaSGjlwWaqkdt+af9rSc1/uJaBrMSJE49/x/Rg34f4HvHkUyMVU4sZ0q kOmkQigMKUiclwR/qvnfMUXOhgFGHfcTpHqm5iA4e12XFSkoEFWyPBAyU/1n3PEKeJ5j VafRX07jxoKGMPrRBHIolcVBZHvec7tBMcjBRk3dJMddevIAPPPeq9h1TVROc6REa97Q Y7YncDLa08RHcOzhROTcSJclE2D9YQJGaT1nJQt7UVMWwQIgvfjxROCNxevro+w+if2i mu1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=DOlqAFAjqmmS7kTVJSxqAS/tTboK2M5omzlTFVfiLaw=; b=Fe/99iND7dLQUi9YWTWuLk/F66tiUv/WoAEyD5XSXqwLd4f0LXb8XgbBaO7xavsdlJ KsVr5Qlqy04Oloy4MP/tCtkkX1q/613IsmidJS1BDGmxU+sH7vsUBqE72FkL8K8jy72H MtG7larEOTE1dgfOvtmCDYA695D1nuDBMTPeG/w5JOWNCsRvQIWgnXId9ZmhJCd+EUx1 QFoFTEIoGiDPc96M7ElSXpVMcnOsf7OktI6ue2Zl3Sf9Qs7q5LAkt036NMvb6vtuOiNl jjJo1daAPXmRHip486ZVZJ+OQQZ9sfCk5K2ru6cHc6l0/ALad58AOXGbKnT036+9k1oh 00RQ== ARC-Authentication-Results: i=1; mx.google.com; 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 k7si1350166ejj.732.2020.10.02.08.45.43; Fri, 02 Oct 2020 08:46:05 -0700 (PDT) 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; 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 S2387966AbgJBPmq (ORCPT + 99 others); Fri, 2 Oct 2020 11:42:46 -0400 Received: from smtp13.smtpout.orange.fr ([80.12.242.135]:46740 "EHLO smtp.smtpout.orange.fr" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2387777AbgJBPmq (ORCPT ); Fri, 2 Oct 2020 11:42:46 -0400 Received: from tomoyo.flets-east.jp ([153.230.197.127]) by mwinf5d76 with ME id b3iL230022lQRaH033iZfK; Fri, 02 Oct 2020 17:42:43 +0200 X-ME-Helo: tomoyo.flets-east.jp X-ME-Auth: bWFpbGhvbC52aW5jZW50QHdhbmFkb28uZnI= X-ME-Date: Fri, 02 Oct 2020 17:42:43 +0200 X-ME-IP: 153.230.197.127 From: Vincent Mailhol To: linux-kernel@vger.kernel.org, netdev@vger.kernel.org, linux-can@vger.kernel.org, Wolfgang Grandegger , Marc Kleine-Budde , "David S . Miller" Cc: Vincent Mailhol , Jakub Kicinski , Oliver Neukum , Greg Kroah-Hartman , Masahiro Yamada , Arunachalam Santhanam , linux-usb@vger.kernel.org (open list:USB ACM DRIVER) Subject: [PATCH v3 0/7] can: add support for ETAS ES58X CAN USB Date: Sat, 3 Oct 2020 00:41:44 +0900 Message-Id: <20201002154219.4887-1-mailhol.vincent@wanadoo.fr> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200926175810.278529-1-mailhol.vincent@wanadoo.fr> References: <20200926175810.278529-1-mailhol.vincent@wanadoo.fr> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The purpose of this patch series is to introduce a new CAN USB driver to support ETAS USB interfaces (ES58X series). During development, issues in drivers/net/can/dev.c where discovered, the fix for those issues are included in this patch series. We also propose to add two helper functions in include/linux/can/dev.h which we think can benefit other drivers: get_can_len() and can_bit_time(). The driver indirectly relies on https://lkml.org/lkml/2020/9/26/251 ([PATCH] can: raw: add missing error queue support) for the call to skb_tx_timestamp() to work but can still compile without it. *Side notes*: scripts/checkpatch.pl returns 4 'checks' findings in [PATCH 5/6]. All those findings are of type: "Macro argument reuse 'x' possible side-effects?". Those arguments reuse are actually made by calling either __stringify() or sizeof_field() which are both pre-processor constant. Furthermore, those macro are never called with arguments sensible to side-effects. So no actual side effect would occur. Changes in v3: - Added one additional patch: [PATCH v3 2/7] can: dev: fix type of get_can_dlc() and get_canfd_dlc() macros. - Make get_can_len() return u8 and make the skb const in PATCH 3/7. - Remove all the calls to likely() and unlikely() in PATCH 6/7. Changes in v2: - Fixed -W1 warnings in PATCH 6/7 (v1 was tested with GCC -WExtra but not with -W1). - Added lsusb -v information in PATCH 7/7 and rephrased the comment. - Take care to put everyone in CC of each of the patch of the series (sorry for the mess in v1...) Vincent Mailhol (7): can: dev: can_get_echo_skb(): prevent call to kfree_skb() in hard IRQ context can: dev: fix type of get_can_dlc() and get_canfd_dlc() macros can: dev: add a helper function to get the correct length of Classical frames can: dev: __can_get_echo_skb(): fix the return length can: dev: add a helper function to calculate the duration of one bit can: usb: etas_es58X: add support for ETAS ES58X CAN USB interfaces usb: cdc-acm: add quirk to blacklist ETAS ES58X devices drivers/net/can/dev.c | 26 +- drivers/net/can/usb/Kconfig | 9 + drivers/net/can/usb/Makefile | 1 + drivers/net/can/usb/etas_es58x/Makefile | 3 + drivers/net/can/usb/etas_es58x/es581_4.c | 559 ++++ drivers/net/can/usb/etas_es58x/es581_4.h | 237 ++ drivers/net/can/usb/etas_es58x/es58x_core.c | 2725 +++++++++++++++++++ drivers/net/can/usb/etas_es58x/es58x_core.h | 700 +++++ drivers/net/can/usb/etas_es58x/es58x_fd.c | 648 +++++ drivers/net/can/usb/etas_es58x/es58x_fd.h | 243 ++ drivers/usb/class/cdc-acm.c | 11 + include/linux/can/dev.h | 44 +- 12 files changed, 5189 insertions(+), 17 deletions(-) create mode 100644 drivers/net/can/usb/etas_es58x/Makefile create mode 100644 drivers/net/can/usb/etas_es58x/es581_4.c create mode 100644 drivers/net/can/usb/etas_es58x/es581_4.h create mode 100644 drivers/net/can/usb/etas_es58x/es58x_core.c create mode 100644 drivers/net/can/usb/etas_es58x/es58x_core.h create mode 100644 drivers/net/can/usb/etas_es58x/es58x_fd.c create mode 100644 drivers/net/can/usb/etas_es58x/es58x_fd.h -- 2.26.2