Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3014743pxv; Mon, 12 Jul 2021 07:20:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzqCYdB5NvNVl+0FRL4zEVPmWUpwwWeFmnFm/hPL69SZED9WbHdfxUbDBLOECp19Tfe68ky X-Received: by 2002:a6b:187:: with SMTP id 129mr33138348iob.188.1626099640305; Mon, 12 Jul 2021 07:20:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626099640; cv=none; d=google.com; s=arc-20160816; b=E3RJeXkPFThMmczZnV3h3xSumsO3Cj1wcQxM9deDXXnn3ueUCeCzZFX/AfmWSSvjqf B0VJ7OtOzqWvUodZTBGTJvOnllY+bfzjb/p8QNd1syRj605N7+jP4Arvr7oiO5tJllxH GMSmIyWtEGN0t83lqgHxc55SRbJUiMgdeTtiOlBJCjeyWm5AQengZUhqMi+9U2y+rYx3 c0Oz7Xf0VFSviKWbjQ9Sx7dNz2CPz6h8LXKw8cnKZTody4zp7AIPg+FkjJ+sbblRRS3T TD3vQqUDQK56azrkjdUH/Xqo4JQ4hHC+k3El3CYhBqgcv7wDofx9SgyKfXJ2iaCnu+MV y4qA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:message-id:date:subject :cc:to:from; bh=WH02CKGpXI2fIkZXi+mBGhIATWC/xfzZl1sFfVSVmdQ=; b=a2TEdJTK//6Q4fW2xWzWY6voX9Fth5UcUEOQvl12XPRgUGLTGM2JSuF6ilDDjVObV+ wDwspt7PDYgH4mVF+yXphLkzuj4awOfkwb73ePMXQ/9ZqiNQxqgYbqMeNY61ihF+xmlR LOq8bcyNu1o5EpfNUvHCduk/4OAr1h5lt7yjUp+whbco1dgg0PO5Tc5LEwwAvy3aN3YK Tj0sDKGQAe8BzOIWmR5r5z5L2xnAx5oUKYBHc2auxhpO44lqdofQ8G/K5DQyfceVT9Rw P0ylaxq3KMG8waYHR654FTkT/oBdad1HpRyPaSrYY0I8n8u32NOMEhATb9EbAeen7xcI nOTA== 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h16si18628816ilc.129.2021.07.12.07.20.28; Mon, 12 Jul 2021 07:20:40 -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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235048AbhGLOWU (ORCPT + 99 others); Mon, 12 Jul 2021 10:22:20 -0400 Received: from foss.arm.com ([217.140.110.172]:56014 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235006AbhGLOWS (ORCPT ); Mon, 12 Jul 2021 10:22:18 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D625B31B; Mon, 12 Jul 2021 07:19:29 -0700 (PDT) Received: from e120937-lin.home (unknown [172.31.20.19]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6F5FA3F774; Mon, 12 Jul 2021 07:19:26 -0700 (PDT) From: Cristian Marussi To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, virtualization@lists.linux-foundation.org, virtio-dev@lists.oasis-open.org Cc: sudeep.holla@arm.com, james.quinlan@broadcom.com, Jonathan.Cameron@Huawei.com, f.fainelli@gmail.com, etienne.carriere@linaro.org, vincent.guittot@linaro.org, souvik.chakravarty@arm.com, cristian.marussi@arm.com, igor.skalkin@opensynergy.com, peter.hilber@opensynergy.com, alex.bennee@linaro.org, jean-philippe@linaro.org, mikhail.golubev@opensynergy.com, anton.yakovlev@opensynergy.com, Vasyl.Vavrychuk@opensynergy.com, Andriy.Tryshnivskyy@opensynergy.com Subject: [PATCH v6 09/17] firmware: arm_scmi: Make .clear_channel optional Date: Mon, 12 Jul 2021 15:18:25 +0100 Message-Id: <20210712141833.6628-10-cristian.marussi@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210712141833.6628-1-cristian.marussi@arm.com> References: <20210712141833.6628-1-cristian.marussi@arm.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Make transport operation .clear_channel optional since some transports do not need it and so avoid to have them implement dummy callbacks. Signed-off-by: Cristian Marussi --- drivers/firmware/arm_scmi/driver.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c index dc14bc63cb43..a952b6527b8a 100644 --- a/drivers/firmware/arm_scmi/driver.c +++ b/drivers/firmware/arm_scmi/driver.c @@ -593,6 +593,13 @@ static inline void scmi_xfer_state_update(struct scmi_xfer *xfer) } } +static inline void scmi_clear_channel(struct scmi_info *info, + struct scmi_chan_info *cinfo) +{ + if (info->desc->ops->clear_channel) + info->desc->ops->clear_channel(cinfo); +} + static void scmi_handle_notification(struct scmi_chan_info *cinfo, u32 msg_hdr, void *priv) { @@ -607,7 +614,7 @@ static void scmi_handle_notification(struct scmi_chan_info *cinfo, if (IS_ERR(xfer)) { dev_err(dev, "failed to get free message slot (%ld)\n", PTR_ERR(xfer)); - info->desc->ops->clear_channel(cinfo); + scmi_clear_channel(info, cinfo); return; } @@ -625,7 +632,7 @@ static void scmi_handle_notification(struct scmi_chan_info *cinfo, __scmi_xfer_put(minfo, xfer); - info->desc->ops->clear_channel(cinfo); + scmi_clear_channel(info, cinfo); } static void scmi_handle_response(struct scmi_chan_info *cinfo, @@ -636,7 +643,7 @@ static void scmi_handle_response(struct scmi_chan_info *cinfo, xfer = scmi_xfer_command_acquire(cinfo, msg_hdr); if (IS_ERR(xfer)) { - info->desc->ops->clear_channel(cinfo); + scmi_clear_channel(info, cinfo); return; } @@ -655,7 +662,7 @@ static void scmi_handle_response(struct scmi_chan_info *cinfo, xfer->hdr.type); if (xfer->hdr.type == MSG_TYPE_DELAYED_RESP) { - info->desc->ops->clear_channel(cinfo); + scmi_clear_channel(info, cinfo); complete(xfer->async_done); } else { complete(&xfer->done); -- 2.17.1