From patchwork Fri Jun 25 19:51:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345789 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62F58C2B9F4 for ; Fri, 25 Jun 2021 19:52:12 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4C1C361973 for ; Fri, 25 Jun 2021 19:52:12 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229913AbhFYTy3 (ORCPT ); Fri, 25 Jun 2021 15:54:29 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:27917 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229573AbhFYTy3 (ORCPT ); Fri, 25 Jun 2021 15:54:29 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650728; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=8DrGKCk1PyABrk56DLPAvdbVVOLwe1RJgwvPdYUZWO0=; b=Q+aXLhLU/aZi1+4DccLUE/CZ3nx3y43qvvLFSmSQ7Vu7LAQvgMDpcAPdM4XqcQBxIJiYqk nJ4hXfNiHjhT2uUtUyr+gJTu/bVHgdia18kc2OfGSqe11m+Zcpn1UZTJD+/M7uFrRxeCB3 hjb2gl/ltr7dYlfa0/Klg5+aKjTxf1M= Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-204-OJV5fvbGP1mFKkIJTIZNaQ-1; Fri, 25 Jun 2021 15:52:06 -0400 X-MC-Unique: OJV5fvbGP1mFKkIJTIZNaQ-1 Received: by mail-oi1-f199.google.com with SMTP id 7-20020aca0f070000b029023d769dcb9bso3039732oip.14 for ; Fri, 25 Jun 2021 12:52:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8DrGKCk1PyABrk56DLPAvdbVVOLwe1RJgwvPdYUZWO0=; b=uS1qIxZx2LIv1Laovk9iEvU+zR6VQ1Za/AvDA2xCVr6pDF6oMuzetLzWK0UhvKHAzW 0vcVmeorc/NQCgNryQNhVydcPzA2NbedqjzLyjY5ovzo9764aeRWtluu5lxVhDc0ldlA Z69CTNkb2ZoNVhEG9FrG7Uudy9IGd5anjWBV4eMIUj7MO7AC0/hQ3vBMTByODxo6d59G GyDtvtSdMtfEOofabLXdjostczmqrtBBtDGXsbERY1zcvFM/t+3LEDnVgWRW2d6CcdhI t7TDb17N4GS8VsUzQpGMf6VvAIHm04A0f0MZInjGX1DMcQlJcRjJ1Y0i94jzYN211z3M 5Xcw== X-Gm-Message-State: AOAM532bciY3HMwqLgYd/u7+1JNLiXzNdrnnWbNHpt04FYntXsPc0t4e oWEszFno2bGlnI4vPS1C1KlMCyQZ12WgZDWbEGNREG0ri8SElnFZEyBDAeOPnAI6UqMfWsgB0MG sezi8MPYZwXZ/KzCFvyU71A== X-Received: by 2002:aca:de07:: with SMTP id v7mr12660081oig.8.1624650725834; Fri, 25 Jun 2021 12:52:05 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwksAeBpoAvEUezEdyZ5NcQyipuc4+d8PdYoULnG6dzFZDi28TVoKaNvmx21VMJfDFVEgV/4A== X-Received: by 2002:aca:de07:: with SMTP id v7mr12660075oig.8.1624650725709; Fri, 25 Jun 2021 12:52:05 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:05 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 1/7] fpga-mgr: wrap the write_init() op Date: Fri, 25 Jun 2021 12:51:42 -0700 Message-Id: <20210625195148.837230-3-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager should not be required to provide a write_init() op if there is nothing for it do. So add a wrapper and move the op checking. Default to success. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index ecb4c3c795fa5..c047de8a059b7 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,15 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +static inline int fpga_mgr_write_init(struct fpga_manager *mgr, + struct fpga_image_info *info, + const char *buf, size_t count) +{ + if (mgr->mops->write_init) + return mgr->mops->write_init(mgr, info, buf, count); + return 0; +} + /** * fpga_image_info_alloc - Allocate an FPGA image info struct * @dev: owning device @@ -83,9 +92,9 @@ static int fpga_mgr_write_init_buf(struct fpga_manager *mgr, mgr->state = FPGA_MGR_STATE_WRITE_INIT; if (!mgr->mops->initial_header_size) - ret = mgr->mops->write_init(mgr, info, NULL, 0); + ret = fpga_mgr_write_init(mgr, info, NULL, 0); else - ret = mgr->mops->write_init( + ret = fpga_mgr_write_init( mgr, info, buf, min(mgr->mops->initial_header_size, count)); if (ret) { @@ -569,7 +578,7 @@ struct fpga_manager *fpga_mgr_create(struct device *parent, const char *name, int id, ret; if (!mops || !mops->write_complete || !mops->state || - !mops->write_init || (!mops->write && !mops->write_sg) || + (!mops->write && !mops->write_sg) || (mops->write && mops->write_sg)) { dev_err(parent, "Attempt to register without fpga_manager_ops\n"); return NULL; From patchwork Fri Jun 25 19:51:43 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345791 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7246BC48BC2 for ; Fri, 25 Jun 2021 19:52:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 4E11961976 for ; Fri, 25 Jun 2021 19:52:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229906AbhFYTyd (ORCPT ); Fri, 25 Jun 2021 15:54:33 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:46033 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229944AbhFYTyc (ORCPT ); Fri, 25 Jun 2021 15:54:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650730; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=h3Hx4g23iCqTdbLSgslXxph/KRyl4q03Nb7dWJc/obU=; b=LGCuwVUxAZpegCQyihJgqvC18iN4YbsTGMxahL/jX5gKBb+uEbKPsPCMIX7uNFRHbYj7m8 PRG8CiyUbF/B6YyMg8QPe3I6x33wR/drrOOMsi+Jg1OFoaxVr/lQZdkz8pr7nP58ZGs7Hf hbnJ5C7RUZsgla6iSrSJSfCVzlhe78s= Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-338-3cY_LqrHPVCCw3Esu-RjLA-1; Fri, 25 Jun 2021 15:52:09 -0400 X-MC-Unique: 3cY_LqrHPVCCw3Esu-RjLA-1 Received: by mail-ot1-f70.google.com with SMTP id y6-20020a9d51860000b029046100bd0f34so3876391otg.22 for ; Fri, 25 Jun 2021 12:52:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=h3Hx4g23iCqTdbLSgslXxph/KRyl4q03Nb7dWJc/obU=; b=nKS49PoTcmAjPywinyi8ZnovgzKxs7OjwdbKqcFOLri2qqSx/lCpmwcmgfjU7WpCJn oiPxZ3qtAzT+dVapN2nP9pZof9GAJBd4UXlsaB0lEIFqpq8/aCR+hx4Ak3Xv38CenbbD sgM65jafoQjp9+6+R+78PFteNOHIXwBwQBd7/6R9CpKi7jbiFVRY2MjRM9rAkP5DSVNZ LCayMNcfLKlG0SLnJtiuJWr3C/yjGAPzLOHrfFRNf62aan6s6FXzYUotTUxGylSYsZ1C o8lMTw7KrEnn75XoIwIU/dv3LAG2zDXzK0qBw1DUpGF2aA95xHXrBb5tLHV5I9V4c0jC GEkg== X-Gm-Message-State: AOAM5333DSXkru1xGd6LamGWuPiEXa3uz/KzxB0SvyRcvhZE6T+CMgmG F1fBc5WEQvZrjqJxlRtLF8AVeMjdzJHH/xzmDMSgOQM6/ReieZG6O7gW0YsLPF62Hwsaz4jnmHQ KPCx/nixxzPIH8m/4eY3mfg== X-Received: by 2002:aca:360b:: with SMTP id d11mr9778920oia.108.1624650728370; Fri, 25 Jun 2021 12:52:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzRkUHu9PZy3otLlcnM8UdeRlQ9ClzhhP/XcfbGlosU7eNjGFuxzVDIFpY6HanOFEkjF94u2A== X-Received: by 2002:aca:360b:: with SMTP id d11mr9778907oia.108.1624650728233; Fri, 25 Jun 2021 12:52:08 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:07 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 2/7] fpga-mgr: make write_complete() op optional Date: Fri, 25 Jun 2021 12:51:43 -0700 Message-Id: <20210625195148.837230-4-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager should not be required to provide a write_complete function if there is nothing. Move the op check to the existing wrapper. Default to success. Remove noop function. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 45 +++++++++++++++++++------------------- drivers/fpga/zynqmp-fpga.c | 7 ------ 2 files changed, 23 insertions(+), 29 deletions(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index c047de8a059b7..05a69ab3ecb9e 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,28 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +/* + * After all the FPGA image has been written, do the device specific steps to + * finish and set the FPGA into operating mode. + */ +static inline int fpga_mgr_write_complete(struct fpga_manager *mgr, + struct fpga_image_info *info) +{ + int ret = 0; + + mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE; + if (mgr->mops->write_complete) + ret = mgr->mops->write_complete(mgr, info); + if (ret) { + dev_err(&mgr->dev, "Error after writing image data to FPGA\n"); + mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE_ERR; + return ret; + } + mgr->state = FPGA_MGR_STATE_OPERATING; + + return 0; +} + static inline int fpga_mgr_write_init(struct fpga_manager *mgr, struct fpga_image_info *info, const char *buf, size_t count) @@ -146,27 +168,6 @@ static int fpga_mgr_write_init_sg(struct fpga_manager *mgr, return ret; } -/* - * After all the FPGA image has been written, do the device specific steps to - * finish and set the FPGA into operating mode. - */ -static int fpga_mgr_write_complete(struct fpga_manager *mgr, - struct fpga_image_info *info) -{ - int ret; - - mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE; - ret = mgr->mops->write_complete(mgr, info); - if (ret) { - dev_err(&mgr->dev, "Error after writing image data to FPGA\n"); - mgr->state = FPGA_MGR_STATE_WRITE_COMPLETE_ERR; - return ret; - } - mgr->state = FPGA_MGR_STATE_OPERATING; - - return 0; -} - /** * fpga_mgr_buf_load_sg - load fpga from image in buffer from a scatter list * @mgr: fpga manager @@ -577,7 +578,7 @@ struct fpga_manager *fpga_mgr_create(struct device *parent, const char *name, struct fpga_manager *mgr; int id, ret; - if (!mops || !mops->write_complete || !mops->state || + if (!mops || !mops->state || (!mops->write && !mops->write_sg) || (mops->write && mops->write_sg)) { dev_err(parent, "Attempt to register without fpga_manager_ops\n"); diff --git a/drivers/fpga/zynqmp-fpga.c b/drivers/fpga/zynqmp-fpga.c index 125743c9797ff..9efbd70aa6864 100644 --- a/drivers/fpga/zynqmp-fpga.c +++ b/drivers/fpga/zynqmp-fpga.c @@ -66,12 +66,6 @@ static int zynqmp_fpga_ops_write(struct fpga_manager *mgr, return ret; } -static int zynqmp_fpga_ops_write_complete(struct fpga_manager *mgr, - struct fpga_image_info *info) -{ - return 0; -} - static enum fpga_mgr_states zynqmp_fpga_ops_state(struct fpga_manager *mgr) { u32 status = 0; @@ -87,7 +81,6 @@ static const struct fpga_manager_ops zynqmp_fpga_ops = { .state = zynqmp_fpga_ops_state, .write_init = zynqmp_fpga_ops_write_init, .write = zynqmp_fpga_ops_write, - .write_complete = zynqmp_fpga_ops_write_complete, }; static int zynqmp_fpga_probe(struct platform_device *pdev) From patchwork Fri Jun 25 19:51:44 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345793 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 977DFC2B9F4 for ; Fri, 25 Jun 2021 19:52:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7936361973 for ; Fri, 25 Jun 2021 19:52:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229971AbhFYTyi (ORCPT ); Fri, 25 Jun 2021 15:54:38 -0400 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:23745 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229934AbhFYTye (ORCPT ); Fri, 25 Jun 2021 15:54:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650732; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=zmCqJFhviJpySBAFzJy5r5IMKlvduxQc5V68S9Vd+94=; b=NSgRG3A5OUP4eJmALrEns2w/TMVNvOlEJoWjjEBoN+nthgPV3IOCSWx1jIfxchVbLrHlES 0nSWDzR0VcOQ72xqyii8nkOGsE1U0MbJ19HKY90JKhsVGPnrhf2LhHr6NaC8rajI7eHg8e efLU7kkRPZ92Gr4fouab1brfur5hw14= Received: from mail-oo1-f72.google.com (mail-oo1-f72.google.com [209.85.161.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-180-szrmtHItO-CuDHcBdk0BOA-1; Fri, 25 Jun 2021 15:52:11 -0400 X-MC-Unique: szrmtHItO-CuDHcBdk0BOA-1 Received: by mail-oo1-f72.google.com with SMTP id z1-20020a4ab8810000b029024abe096a35so6422820ooo.12 for ; Fri, 25 Jun 2021 12:52:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=zmCqJFhviJpySBAFzJy5r5IMKlvduxQc5V68S9Vd+94=; b=GPx5Ejck0/3h6HeOWLwo9E2VQoO7kMsyZqllceB+BjElGAmsXkY1rrSpk9ZQwgKn93 q73NGlASLVwAcPhlhdXkU9ZrUkfh81pH97RSWJbGlQcCGf7rnpzlfsqr4doqMK+zjbk2 jQj2tTHJhv/rXav10Tl83ycNSLerTpAMsNw8tUlhgDvd4VAgPflziiVU1NzbVf1eTiZY +m5ErVm5VIAsEKRi7lD9yHc8JEu3S+85zMMSxSUzvNcnVvvaRHa6jS2MiCbms0DSBaYj 90QslAJuOhWIx/d44ER9ZV7bUrpkca00WStBZ94BgDymPNrOrS+kaXwzzTkAsKKhyaAX U8lQ== X-Gm-Message-State: AOAM531WkgPopuzxEX3ScQ9nPkFgUkMFpQsfJGGlE9oMcYdyqyrVgJsr TbsOEkOWDAVBpxE0Zo+8Lkd5EtxGa6FnVz3LAh/koQ6ieU7dwoADRqBEjbpVYfuFTa32a4asShD nEm2F9nWAFPIHB6IsIhvzaw== X-Received: by 2002:a9d:6f10:: with SMTP id n16mr11442605otq.165.1624650730698; Fri, 25 Jun 2021 12:52:10 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyyrgSs3HSrKX/eB4qtz68tFE9zA+wja/zPnCCLulswoCm4r95WfyEGRwhxQDpXEZZe+Gx01A== X-Received: by 2002:a9d:6f10:: with SMTP id n16mr11442598otq.165.1624650730534; Fri, 25 Jun 2021 12:52:10 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:10 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 3/7] fpga-mgr: wrap the write() op Date: Fri, 25 Jun 2021 12:51:44 -0700 Message-Id: <20210625195148.837230-5-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager should not be required to provide a write function. Move the op check to the wrapper. Default to -EOPNOTSUP so its users will fail gracefully. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index 05a69ab3ecb9e..8d5536d748081 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,13 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +static inline int fpga_mgr_write(struct fpga_manager *mgr, const char *buf, size_t count) +{ + if (mgr->mops->write) + return mgr->mops->write(mgr, buf, count); + return -EOPNOTSUPP; +} + /* * After all the FPGA image has been written, do the device specific steps to * finish and set the FPGA into operating mode. @@ -204,7 +211,7 @@ static int fpga_mgr_buf_load_sg(struct fpga_manager *mgr, sg_miter_start(&miter, sgt->sgl, sgt->nents, SG_MITER_FROM_SG); while (sg_miter_next(&miter)) { - ret = mgr->mops->write(mgr, miter.addr, miter.length); + ret = fpga_mgr_write(mgr, miter.addr, miter.length); if (ret) break; } @@ -234,7 +241,7 @@ static int fpga_mgr_buf_load_mapped(struct fpga_manager *mgr, * Write the FPGA image to the FPGA. */ mgr->state = FPGA_MGR_STATE_WRITE; - ret = mgr->mops->write(mgr, buf, count); + ret = fpga_mgr_write(mgr, buf, count); if (ret) { dev_err(&mgr->dev, "Error while writing image data to FPGA\n"); mgr->state = FPGA_MGR_STATE_WRITE_ERR; @@ -578,9 +585,7 @@ struct fpga_manager *fpga_mgr_create(struct device *parent, const char *name, struct fpga_manager *mgr; int id, ret; - if (!mops || !mops->state || - (!mops->write && !mops->write_sg) || - (mops->write && mops->write_sg)) { + if (!mops || !mops->state) { dev_err(parent, "Attempt to register without fpga_manager_ops\n"); return NULL; } From patchwork Fri Jun 25 19:51:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345795 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 884B5C2B9F4 for ; Fri, 25 Jun 2021 19:52:22 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7180B61973 for ; Fri, 25 Jun 2021 19:52:22 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229948AbhFYTyj (ORCPT ); Fri, 25 Jun 2021 15:54:39 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:49651 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229956AbhFYTyg (ORCPT ); Fri, 25 Jun 2021 15:54:36 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650734; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nd5/Ncm9trzPQHKxxw2QIB0gwtpNADHT5q5Ylf5cTos=; b=dDabgF/oW6+BXvN/H/opZQ+o//hs9cwO9glyDFlwTWpgIPTOCHKoxW3mHXisNk/t0v/2/8 hrAe2bwCRldNqcUhtisi1GWSWHrjO2kDTR6yPgiHs+GBHWBla9MfabAt8JHA0Ky/evuX5o j9DK7+MB+AQBgZ6V+6QfPmC0EN5C5hA= Received: from mail-oi1-f199.google.com (mail-oi1-f199.google.com [209.85.167.199]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-441-eW7b5Mr6PLmZjl5VtPJksA-1; Fri, 25 Jun 2021 15:52:13 -0400 X-MC-Unique: eW7b5Mr6PLmZjl5VtPJksA-1 Received: by mail-oi1-f199.google.com with SMTP id r3-20020aca44030000b02902241b7398a8so6511112oia.19 for ; Fri, 25 Jun 2021 12:52:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nd5/Ncm9trzPQHKxxw2QIB0gwtpNADHT5q5Ylf5cTos=; b=AZYsSYh3g2C8Ae+TsBobq1GE13bJN4A8U9k8YbqkpPAvQ8d/0CLij7s744Moxl/RUk +UJb8Wo3Hkd1VnEzyBopzsIbNy8bMYZYG75fjqiqu2X2SWT0CLrHG6JXXTthF63XT3Iv xLPrBgJ+cSjE4PwvC8a/LZghLiXc9aruNSwTPSDQBimM5WIjh33o9W1NRJJz4QCdgk2d 9Eo4M9DvjRjdGmDnxfMdjGzRtTOkgGYwiFyN0Iw5MwAE4WKmM9onmAijFM3ebTVIYLf3 haVzT3tj+Glyty6o7e2ve2EQIyUOf8qDh09cpTxMfHQCnugeak38QVc2qF4IfIgFC7nh q4/A== X-Gm-Message-State: AOAM530AxHMZw5h4yu1Srk+CuJYXM3Ydp6bw/sDN2x2qAz7CRz5WsbCC usYziz5AXm5YxtSlXBiKKikBrO/0WKYb+zF/0efJEduWnNhXJMeoEZi8DCnCAExkTQ7Xe3ptPQm 7kSPpiXD42QhKqAcTqIWG/Q== X-Received: by 2002:a9d:6219:: with SMTP id g25mr11096324otj.262.1624650732932; Fri, 25 Jun 2021 12:52:12 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwOFoWkEHJLZJiCZogum6sza4B5EXPuEPCfHnSXmakawUVjrxJB8y25xvgEdsfFXS38d1e+fQ== X-Received: by 2002:a9d:6219:: with SMTP id g25mr11096313otj.262.1624650732804; Fri, 25 Jun 2021 12:52:12 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:12 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 4/7] fpga-mgr: wrap the status() op Date: Fri, 25 Jun 2021 12:51:45 -0700 Message-Id: <20210625195148.837230-6-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager is not required to provide a status() op. Add a wrapper consistent with the other op wrappers. Move the op check to the wrapper. Default to 0, no errors to report. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index 8d5536d748081..43518b6eed21e 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,13 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +static inline u64 fpga_mgr_status(struct fpga_manager *mgr) +{ + if (mgr->mops->status) + return mgr->mops->status(mgr); + return 0; +} + static inline int fpga_mgr_write(struct fpga_manager *mgr, const char *buf, size_t count) { if (mgr->mops->write) @@ -434,10 +441,7 @@ static ssize_t status_show(struct device *dev, u64 status; int len = 0; - if (!mgr->mops->status) - return -ENOENT; - - status = mgr->mops->status(mgr); + status = fpga_mgr_status(mgr); if (status & FPGA_MGR_STATUS_OPERATION_ERR) len += sprintf(buf + len, "reconfig operation error\n"); From patchwork Fri Jun 25 19:51:46 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345799 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 48A83C49EA7 for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 2BEDA6162E for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229959AbhFYTyo (ORCPT ); Fri, 25 Jun 2021 15:54:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:39625 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229978AbhFYTyj (ORCPT ); Fri, 25 Jun 2021 15:54:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650737; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+BoEiwZWmcnwYp+vuFKo9FHmPBN3oC7TpcdPOM8LN0s=; b=ciAyWIKLinOlVin3Ue5AM08487WidiBIg4g5jvI0beRd9XB8ub6s/DNBJJpFjmTMz8lqyB EjzzwjxfjUWx+zS8pG33bgIyMVfFnCkSokUTqUoFJio6awzzvQCCW2a/tQTDn2IiA+eaa9 58w8bTsJcZGqIrAf+FOPVn/mpkxmYdg= Received: from mail-oo1-f71.google.com (mail-oo1-f71.google.com [209.85.161.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-255-EzHfd-31NleeCEKcq43GUg-1; Fri, 25 Jun 2021 15:52:15 -0400 X-MC-Unique: EzHfd-31NleeCEKcq43GUg-1 Received: by mail-oo1-f71.google.com with SMTP id z1-20020a4ab8810000b029024abe096a35so6422910ooo.12 for ; Fri, 25 Jun 2021 12:52:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+BoEiwZWmcnwYp+vuFKo9FHmPBN3oC7TpcdPOM8LN0s=; b=HpvlLJR3HaYG5zfOzjt8QAyACRyK4iCE3o9Fj7uk8YNp+dNDvmEWwf5xVHnnyu9Djg K8V1zkXTmRFWG2R5ltPVapC/kjU5qYKJCveiS6+7x30Yj4Gq0mnITlbdUoW0BxDbdH8U kaR+RCRFotGNYukzrWw+qUrLKHYmtfP60Rw8DvEh2haynfW4dBxaX9LtaknYWMFZyl3i e0BwTMoa3oan5LpBVyxh4l3TPg9oCh9GNMkOkB5Eun99Nu/ajZldulyIkOrapeE2UgFA Nk0FqytcJbRLks7WcDbzeC0G7dF0CfZv65vlGM4d8H/4oCvZ58NhEbT4O6NJy66CMOTZ b+hA== X-Gm-Message-State: AOAM533KbS1k4D92sr0hrHCHcYFUT4pJBKDcb36edsDaDImVjJlUZjWK xGtLwaCK44VfQEXz4z+SKZehzpj5QQlEW7N6kaWrXooWb40IJMurAU2SBpRRzoJdOH/QQ5kbXEo pZw3RT+kwNQzdcfDZfoM/rw== X-Received: by 2002:a4a:e2d5:: with SMTP id l21mr3723010oot.8.1624650735212; Fri, 25 Jun 2021 12:52:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwkkI3SZznlD6Uem8J6dDkJCRpJZ9IID/gLUHaZnjy+WJWItpPPMuJ7BvNbnRc9MgSQ3n+HUw== X-Received: by 2002:a4a:e2d5:: with SMTP id l21mr3722997oot.8.1624650735048; Fri, 25 Jun 2021 12:52:15 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:14 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 5/7] fpga-mgr: wrap the state() op Date: Fri, 25 Jun 2021 12:51:46 -0700 Message-Id: <20210625195148.837230-7-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager should not be required to provide a state() op. Add a wrapper consistent with the other op wrappers. Move op check to wrapper. Default to FPGA_MGR_STATE_UNKNOWN, what noop state() ops use. Remove unneeded noop state() ops Signed-off-by: Tom Rix --- drivers/fpga/dfl-fme-mgr.c | 6 ------ drivers/fpga/fpga-mgr.c | 11 +++++++++-- drivers/fpga/stratix10-soc.c | 6 ------ drivers/fpga/ts73xx-fpga.c | 6 ------ 4 files changed, 9 insertions(+), 20 deletions(-) diff --git a/drivers/fpga/dfl-fme-mgr.c b/drivers/fpga/dfl-fme-mgr.c index d5861d13b3069..313420405d5e8 100644 --- a/drivers/fpga/dfl-fme-mgr.c +++ b/drivers/fpga/dfl-fme-mgr.c @@ -252,11 +252,6 @@ static int fme_mgr_write_complete(struct fpga_manager *mgr, return 0; } -static enum fpga_mgr_states fme_mgr_state(struct fpga_manager *mgr) -{ - return FPGA_MGR_STATE_UNKNOWN; -} - static u64 fme_mgr_status(struct fpga_manager *mgr) { struct fme_mgr_priv *priv = mgr->priv; @@ -268,7 +263,6 @@ static const struct fpga_manager_ops fme_mgr_ops = { .write_init = fme_mgr_write_init, .write = fme_mgr_write, .write_complete = fme_mgr_write_complete, - .state = fme_mgr_state, .status = fme_mgr_status, }; diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index 43518b6eed21e..b3380ad341d22 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,13 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +static inline enum fpga_mgr_states fpga_mgr_state(struct fpga_manager *mgr) +{ + if (mgr->mops->state) + return mgr->mops->state(mgr); + return FPGA_MGR_STATE_UNKNOWN; +} + static inline u64 fpga_mgr_status(struct fpga_manager *mgr) { if (mgr->mops->status) @@ -589,7 +596,7 @@ struct fpga_manager *fpga_mgr_create(struct device *parent, const char *name, struct fpga_manager *mgr; int id, ret; - if (!mops || !mops->state) { + if (!mops) { dev_err(parent, "Attempt to register without fpga_manager_ops\n"); return NULL; } @@ -707,7 +714,7 @@ int fpga_mgr_register(struct fpga_manager *mgr) * from device. FPGA may be in reset mode or may have been programmed * by bootloader or EEPROM. */ - mgr->state = mgr->mops->state(mgr); + mgr->state = fpga_mgr_state(mgr); ret = device_add(&mgr->dev); if (ret) diff --git a/drivers/fpga/stratix10-soc.c b/drivers/fpga/stratix10-soc.c index a2cea500f7cc6..047fd7f237069 100644 --- a/drivers/fpga/stratix10-soc.c +++ b/drivers/fpga/stratix10-soc.c @@ -388,13 +388,7 @@ static int s10_ops_write_complete(struct fpga_manager *mgr, return ret; } -static enum fpga_mgr_states s10_ops_state(struct fpga_manager *mgr) -{ - return FPGA_MGR_STATE_UNKNOWN; -} - static const struct fpga_manager_ops s10_ops = { - .state = s10_ops_state, .write_init = s10_ops_write_init, .write = s10_ops_write, .write_complete = s10_ops_write_complete, diff --git a/drivers/fpga/ts73xx-fpga.c b/drivers/fpga/ts73xx-fpga.c index 101f016c6ed8c..167abb0b08d40 100644 --- a/drivers/fpga/ts73xx-fpga.c +++ b/drivers/fpga/ts73xx-fpga.c @@ -32,11 +32,6 @@ struct ts73xx_fpga_priv { struct device *dev; }; -static enum fpga_mgr_states ts73xx_fpga_state(struct fpga_manager *mgr) -{ - return FPGA_MGR_STATE_UNKNOWN; -} - static int ts73xx_fpga_write_init(struct fpga_manager *mgr, struct fpga_image_info *info, const char *buf, size_t count) @@ -98,7 +93,6 @@ static int ts73xx_fpga_write_complete(struct fpga_manager *mgr, } static const struct fpga_manager_ops ts73xx_fpga_ops = { - .state = ts73xx_fpga_state, .write_init = ts73xx_fpga_write_init, .write = ts73xx_fpga_write, .write_complete = ts73xx_fpga_write_complete, From patchwork Fri Jun 25 19:51:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345797 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2999CC49EAB for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 152D76195F for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229956AbhFYTyn (ORCPT ); Fri, 25 Jun 2021 15:54:43 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:22473 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229999AbhFYTyk (ORCPT ); Fri, 25 Jun 2021 15:54:40 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650739; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LjAdCEfiqEm9c0Ynsebg4BWNbSDpcr72TwU3P0oRZpc=; b=VSF5jgK+HMRUdpnVfJO8GcCW2SspgeM/uGFcNANNoFl/zGsjkHZanx4ZfGxxgcu2If9p3E olgb3eUcOUl2eI9SHZTr05sfDxR7hQVFY9Z0YmoYIeBlx4nRmIrs/SUq1Rjc8A9bR373nO Pg5XeMdqFj7n4B0Z/ajacxBbSJuN/5M= Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-477-PnmrCepzOiyCvQBgdCDGHQ-1; Fri, 25 Jun 2021 15:52:18 -0400 X-MC-Unique: PnmrCepzOiyCvQBgdCDGHQ-1 Received: by mail-ot1-f71.google.com with SMTP id y6-20020a9d51860000b029046100bd0f34so3876700otg.22 for ; Fri, 25 Jun 2021 12:52:17 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LjAdCEfiqEm9c0Ynsebg4BWNbSDpcr72TwU3P0oRZpc=; b=g+WhGDC56t2uqI17u9Y72x9ki08wTlaGe7tU6OKjKqi0Z86ZRk8T6gozN2vnN75a6Y 4yCdehQLv2sTgDiFX7whjLUc2eMczyTqPk7yIIqvpGQIeTF0avcnJc1gJSygv/7PSdA3 Zsn3ik4XqI6BtPLgNniM2CA8RRul7+vtSIk/cKZj8MRS5J/aIYyIfvVhU1AraQe1/8Li gFkhzGxfN9B2kJaCGOehLshMRIgNpbgMJ8dVZnFuR55X6B4QfrX6WAexhi3qFGLp03lk Tj0Hy7Tg18/ToFrh0H/SjcFszImR4xb5GFLQVH79d5d8+gXwIc1oj45WAKErW2TBCOqH 9vGg== X-Gm-Message-State: AOAM533KeMnCpPrfo7zkWqJ5FLTWVg4yGjKSXYzIc53bGox1k2It9W5f Qz5A11pmB52FJ5gB7WHtV906t2mimtD037hSbID78sgljjRQZAk0jol4n/0m3TLYQynJXLPeBID P7svSYHjdzvktj4jgL7aRag== X-Received: by 2002:aca:e107:: with SMTP id y7mr12990072oig.11.1624650737409; Fri, 25 Jun 2021 12:52:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwF1c4CKnAxDSoTM1uv3ouUh/l8z5JnAQLTGazp+4FQ/B0la7C6C13aQqkvGpjE5+63AdBssw== X-Received: by 2002:aca:e107:: with SMTP id y7mr12990063oig.11.1624650737263; Fri, 25 Jun 2021 12:52:17 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:17 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 6/7] fpga-mgr: wrap the fpga_remove() op Date: Fri, 25 Jun 2021 12:51:47 -0700 Message-Id: <20210625195148.837230-8-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager is not required to provide a fpga_remove() op. Add a wrapper consistent with the other op wrappers. Move op check to wrapper. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index b3380ad341d22..077c0f9edbe4c 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -25,6 +25,12 @@ struct fpga_mgr_devres { struct fpga_manager *mgr; }; +static inline void fpga_mgr_fpga_remove(struct fpga_manager *mgr) +{ + if (mgr->mops->fpga_remove) + mgr->mops->fpga_remove(mgr); +} + static inline enum fpga_mgr_states fpga_mgr_state(struct fpga_manager *mgr) { if (mgr->mops->state) @@ -745,8 +751,7 @@ void fpga_mgr_unregister(struct fpga_manager *mgr) * If the low level driver provides a method for putting fpga into * a desired state upon unregister, do it. */ - if (mgr->mops->fpga_remove) - mgr->mops->fpga_remove(mgr); + fpga_mgr_fpga_remove(mgr); device_unregister(&mgr->dev); } From patchwork Fri Jun 25 19:51:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Rix X-Patchwork-Id: 12345801 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-19.1 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C9AEEC2B9F4 for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B062F6195F for ; Fri, 25 Jun 2021 19:52:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229940AbhFYTyo (ORCPT ); Fri, 25 Jun 2021 15:54:44 -0400 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:57910 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230025AbhFYTyn (ORCPT ); Fri, 25 Jun 2021 15:54:43 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1624650741; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4aYp4hJz/EjjMi3xPniOC0g0VH/UB+PZgaBhiQVtvD8=; b=BqH653PKyq0iNNLLhK9q4nM0xF9m4J+pZScFsx+sTQ6UsbVdiKfqi1NVHjCJNVlls9N27R a9nHW13/tQE94R6jYedKRlz3mcSI2MjvKejU/AvDhFaE7g2rU1jvmNeY8B8kivzCiKa3r9 xKB3fz2kQVaOQGcW/q6sja1Cw1HPfao= Received: from mail-oi1-f197.google.com (mail-oi1-f197.google.com [209.85.167.197]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-179-d-UaBtudMK2QO0Np-0cdWQ-1; Fri, 25 Jun 2021 15:52:20 -0400 X-MC-Unique: d-UaBtudMK2QO0Np-0cdWQ-1 Received: by mail-oi1-f197.google.com with SMTP id t22-20020a0568081596b029023a41b03dc9so5279270oiw.1 for ; Fri, 25 Jun 2021 12:52:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4aYp4hJz/EjjMi3xPniOC0g0VH/UB+PZgaBhiQVtvD8=; b=QRywNO0K8o5zIpKXYCR7H65rL4IRUUaS9mI43DWb64wKRzByCMq/u5JSH1AtZtYdlU 9jDuI2V045nNlkoaU2SDWsOflNgxOlRx42ybiwQ9QC4rWnj62bVClie4BkHe5oKHodMx 06/6LK/voekEgNBx1QIWrB3tB05RX5z8CwYvbn093imcVThULZpoUufXpU9cYURQeonC /Nc+lG3voTEER2zUmVUkHTy+CpYjZGGri9YGOrwh8BXm34DersQzU652Sd2dvGi0Ywv7 iHuKRq+TiHSbiRGUNJwDWwQHqEvqA0fCjEpuq2dlAYU8qjDdhqV6YvOSuWFE/W2RFEyK TyKg== X-Gm-Message-State: AOAM530Rllv4uJ7D1tP0iYQTuCjc25OmN9DPAzaHFXNUNbXyBXsOmz3V lSejXxBmQIjjrkj3GH4sciklxBUa87HpabYQ0Mg9se05iIL0edKfbUi2FlL2FmwqeqvsXvLLWy4 O6NDBPBjrO76896hJ1oaC8w== X-Received: by 2002:a05:6808:bc1:: with SMTP id o1mr12878395oik.176.1624650739896; Fri, 25 Jun 2021 12:52:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJypIr38r6Xwat7SHOutFdWdtMBZB5yIHYyEpbFVr7YNiZOiaRsU1APN36mLAM8st0Os4NeZUA== X-Received: by 2002:a05:6808:bc1:: with SMTP id o1mr12878390oik.176.1624650739792; Fri, 25 Jun 2021 12:52:19 -0700 (PDT) Received: from localhost.localdomain.com (075-142-250-213.res.spectrum.com. [75.142.250.213]) by smtp.gmail.com with ESMTPSA id o25sm1535446ood.20.2021.06.25.12.52.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Jun 2021 12:52:19 -0700 (PDT) From: trix@redhat.com To: hao.wu@intel.com, mdf@kernel.org, michal.simek@xilinx.com Cc: linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Tom Rix Subject: [PATCH v4 7/7] fpga-mgr: wrap the write_sg() op Date: Fri, 25 Jun 2021 12:51:48 -0700 Message-Id: <20210625195148.837230-9-trix@redhat.com> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210625195148.837230-1-trix@redhat.com> References: <20210625195148.837230-1-trix@redhat.com> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-fpga@vger.kernel.org From: Tom Rix An FPGA manager should not be required to provide a write_sg function. Move the op check to the wrapper. Default to -EOPNOTSUP so its users will fail gracefully. Signed-off-by: Tom Rix --- drivers/fpga/fpga-mgr.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/drivers/fpga/fpga-mgr.c b/drivers/fpga/fpga-mgr.c index 077c0f9edbe4c..aa30889e23208 100644 --- a/drivers/fpga/fpga-mgr.c +++ b/drivers/fpga/fpga-mgr.c @@ -83,6 +83,14 @@ static inline int fpga_mgr_write_init(struct fpga_manager *mgr, return 0; } +static inline int fpga_mgr_write_sg(struct fpga_manager *mgr, + struct sg_table *sgt) +{ + if (mgr->mops->write_sg) + return mgr->mops->write_sg(mgr, sgt); + return -EOPNOTSUPP; +} + /** * fpga_image_info_alloc - Allocate an FPGA image info struct * @dev: owning device @@ -225,7 +233,7 @@ static int fpga_mgr_buf_load_sg(struct fpga_manager *mgr, /* Write the FPGA image to the FPGA. */ mgr->state = FPGA_MGR_STATE_WRITE; if (mgr->mops->write_sg) { - ret = mgr->mops->write_sg(mgr, sgt); + ret = fpga_mgr_write_sg(mgr, sgt); } else { struct sg_mapping_iter miter;