From patchwork Fri Jan 20 06:05:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 4290 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp40701wrn; Thu, 19 Jan 2023 22:22:30 -0800 (PST) X-Google-Smtp-Source: AMrXdXvmTKCPfevSWJoIaAijc6o38omk/WyxHjexU7F5Z4dG9TfsL11D68jM6/RSW2s11XqSoWbI X-Received: by 2002:a05:6402:448:b0:492:798:385e with SMTP id p8-20020a056402044800b004920798385emr25880395edw.33.1674195750130; Thu, 19 Jan 2023 22:22:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674195750; cv=none; d=google.com; s=arc-20160816; b=TcRz0lo9ldgWNlrZ+25beCTHsswFwmEpd0HtLr5l+x7VgJ9B+blbsFsViUyEDIq7Mu lPWyPp0kLc7E4g0ImbNaX3hcGOmOhsoMTq7hiuCnlzTstce+DcnvwB2FNRgvwNRlJjUG Rh33AcNgbRKy7gzFhwyYbXK4Qd0Hwi8izdCSBTR0SbTZipt4hCRNntOHdd5pCZTRGoXM INCU55hWLlg9UQ8YCvPQqXiI9EZj6eTg5jE7BVyK442xJKM63dtA3aH0cChJmmiccKoJ 0vvsSalFImAZU1m6yWucHb3ot0LvKJAz+y7kNL5WWE429sbKV1zZAfKKBVI6w+wZ2F2m /0tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=kNfUWjB4PhLqRtHK64co0lEKokvExnDsRJFLDZxWoJw=; b=HOebxi92qBayON7utf/0vBtgC0csZg7GmfwojsbDLsMG/SMsf1RHPU3UwyEi2ZoiWv 9b/fc2wfS4m6rZfGs+QzMz7K8FrYhGle01YgSCMmSI/yYKMM/+kv6OPyMtGzPGKTjbF2 M7ix7gr6F1Fn9EfA/rBeYAgJMzYXMm8oIefwhfIknoPsi1ayzx8AsNuyLsFUYfcpsFRC M3d9GN1eVxfSIaGIUm7W4IZ1Ui69fHvhLpk4YBEK4Q/7ZkHNtwwHy3DcUebp0PtnmWxx H5kOjU9SKbXgZsOIV4yd5uTt6IYqZkZnBbdgNjGDbUxPuQpKNMgZo8Mv8lTIh4kNuqYa vH5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=PXOVLGBo; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id eq12-20020a056402298c00b0048567770f4esi40664364edb.628.2023.01.19.22.22.06; Thu, 19 Jan 2023 22:22:29 -0800 (PST) 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; dkim=pass header.i=@broadcom.com header.s=google header.b=PXOVLGBo; 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; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229720AbjATGUt (ORCPT + 99 others); Fri, 20 Jan 2023 01:20:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55144 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229762AbjATGUm (ORCPT ); Fri, 20 Jan 2023 01:20:42 -0500 Received: from mail-qt1-x835.google.com (mail-qt1-x835.google.com [IPv6:2607:f8b0:4864:20::835]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9285F829B2 for ; Thu, 19 Jan 2023 22:20:40 -0800 (PST) Received: by mail-qt1-x835.google.com with SMTP id j9so3473797qtv.4 for ; Thu, 19 Jan 2023 22:20:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=kNfUWjB4PhLqRtHK64co0lEKokvExnDsRJFLDZxWoJw=; b=PXOVLGBo8Czc7tLW/m3chlxdm29daD37dxwZlGU5W9kPt8yBoD/oifsQfQptpSqjEo 0+LXmU1sRoMUCFjkcPCTOtLkzY13WgslHaC8qpCNpFARM/P5FplvmdiqsBOVD7KFdZTB +VQtMdaAl3TgzgKmxOopJa0WWoYS9KO/zCet0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=mime-version:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=kNfUWjB4PhLqRtHK64co0lEKokvExnDsRJFLDZxWoJw=; b=tEkOFucUB9bTDRRoIgWB2lj37Wc2EayQH7i0YKVbtePJNO5Y5A10ksyNV6M3ZC5/TB Tp3UQRvTWrZLtinCHGq0VeBqB/JXjJKj7XLKlHhh/0LSCD+qRY/bG/HD7xpA+WLPxzI2 oJDmFvcm5hT1HEu/8+QQM59tmZGIo1RdikMBtZRGlfUfBJIIRgNDhPPYhQovlPuMaiDY fm66fiyz0EIsspsn/Mkn7FeFZuiwEzEC2POPNhihxiDDxkllXuSS733QbVHnDDTpZWrx mikYL93Eqp5adJbn+a9HCvJWgOcJnWqH0Ocf+NAiJjNSYglL2NckuliITGde1RXYmObl gcXQ== X-Gm-Message-State: AFqh2koz9U5JrMVR9sppbvMs/Kq4T5VNEtboGoe/imX5eUhOkEykRQuy mTD3Uk3Nx1z8HmDOpGbmGrzBHA== X-Received: by 2002:ac8:5a95:0:b0:3a8:faf:296a with SMTP id c21-20020ac85a95000000b003a80faf296amr25332954qtc.54.1674195639266; Thu, 19 Jan 2023 22:20:39 -0800 (PST) Received: from localhost.localdomain ([2605:a601:a780:1400:641c:466b:fa8e:b05a]) by smtp.gmail.com with ESMTPSA id e26-20020ac845da000000b003a527d29a41sm6903273qto.75.2023.01.19.22.20.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Jan 2023 22:20:38 -0800 (PST) From: Ajit Khaparde To: ajit.khaparde@broadcom.com Cc: andrew.gospodarek@broadcom.com, davem@davemloft.net, edumazet@google.com, jgg@ziepe.ca, kuba@kernel.org, leon@kernel.org, linux-kernel@vger.kernel.org, linux-rdma@vger.kernel.org, michael.chan@broadcom.com, netdev@vger.kernel.org, pabeni@redhat.com, selvin.xavier@broadcom.com Subject: [PATCH net-next v8 0/8] Add Auxiliary driver support Date: Thu, 19 Jan 2023 22:05:27 -0800 Message-Id: <20230120060535.83087-1-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.37.1 (Apple Git-137.1) MIME-Version: 1.0 X-Spam-Status: No, score=1.4 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MIME_NO_TEXT, RCVD_IN_DNSWL_NONE,SORTED_RECIPS,SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1755521483090862122?= X-GMAIL-MSGID: =?utf-8?q?1755521483090862122?= Add auxiliary device driver for Broadcom devices. The bnxt_en driver will register and initialize an aux device if RDMA is enabled in the underlying device. The bnxt_re driver will then probe and initialize the RoCE interfaces with the infiniband stack. We got rid of the bnxt_en_ops which the bnxt_re driver used to communicate with bnxt_en. Similarly We have tried to clean up most of the bnxt_ulp_ops. In most of the cases we used the functions and entry points provided by the auxiliary bus driver framework. And now these are the minimal functions needed to support the functionality. We will try to work on getting rid of the remaining if we find any other viable option in future. v1->v2: - Incorporated review comments including usage of ulp_id & complex function indirections. - Used function calls provided by the auxiliary bus interface instead of proprietary calls. - Refactor code to remove ROCE driver's access to bnxt structure. v2->v3: - Addressed review comments including cleanup of some unnecessary wrappers - Fixed warnings seen during cross compilation v3->v4: - Cleaned up bnxt_ulp.c and bnxt_ulp.h further - Removed some more dead code - Sending the patchset as a standalone series v4->v5: - Removed the SRIOV config callback which bnxt_en driver was calling into bnxt_re driver. - Removed excessive checks for rdev and other pointers. v5->v6: - Removed excessive checks for dev and other pointers - Remove runtime interrupt vector allocation. bnxt_en preallocates interrupt vectors for bnxt_re to use. v6->v7: - Removed incorrect usage of inline - Updated Kconfig to select AUXILIARY BUS support - Addressed various comments including removal of unnecessary forward declaration, using static functions where possible, unnecessary jump, cleanup logic, etc.. - Added Leon's Reviewed-by, to the commit log in the patches, from previous version. v7->v8: - Addressed various comments to remove unnecessary check for id, removed setting pointer to NULL after free, renamed private pointers to avoid confusing them with the auxiliary device names and refactored some code accordingly. - Auxiliary device will be released through auxiliary_device_uninit(); Commit message uses Leon's Reviewed-by from earlier version. Please apply. Thanks. The following are changes since commit 3ef4a8c8963b29813170177899f84ffb93f1a8f1 'Merge branch 'net-phy-remove-probe_capabilities' and are available in the git repository at: https://github.com/ajitkhaparde1/net-next/tree/aux-bus-v8 Ajit Khaparde (7): bnxt_en: Add auxiliary driver support RDMA/bnxt_re: Use auxiliary driver interface bnxt_en: Remove usage of ulp_id bnxt_en: Use direct API instead of indirection bnxt_en: Use auxiliary bus calls over proprietary calls RDMA/bnxt_re: Remove the sriov config callback bnxt_en: Remove runtime interrupt vector allocation Hongguang Gao (1): bnxt_en: Remove struct bnxt access from RoCE driver drivers/infiniband/hw/bnxt_re/bnxt_re.h | 10 +- drivers/infiniband/hw/bnxt_re/main.c | 635 +++++++----------- drivers/net/ethernet/broadcom/Kconfig | 1 + drivers/net/ethernet/broadcom/bnxt/bnxt.c | 11 +- drivers/net/ethernet/broadcom/bnxt/bnxt.h | 8 + .../net/ethernet/broadcom/bnxt/bnxt_sriov.c | 7 +- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 506 +++++++------- drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 52 +- 8 files changed, 494 insertions(+), 736 deletions(-)