From patchwork Fri Jan 15 12:28:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 363571 Delivered-To: patch@linaro.org Received: by 2002:a17:906:fb05:0:0:0:0 with SMTP id lz5csp467045ejb; Fri, 15 Jan 2021 04:30:10 -0800 (PST) X-Google-Smtp-Source: ABdhPJy3GY5BGcP3kfbu1oHHwsBgIBuE0esvbRf9gFlQpPmNWB+BQT1AVbzQ48/5dlkWpwCq8gos X-Received: by 2002:a17:906:578e:: with SMTP id k14mr8782095ejq.90.1610713810874; Fri, 15 Jan 2021 04:30:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610713810; cv=none; d=google.com; s=arc-20160816; b=jsXiPDo9x87iCjqcgTxuhf5dVX0Z5RyIXT8dXXhwZDYXgx/2gAYP8PMt4waZCaM8n2 5HRXBl9wMg4cgeKw7hdkogCAAVIUkSUr5PZyEg2zPVBcTvn+gVOrOR1bZQ8Vp2L/Xv1j OIRFm34jWUIJF++Jya51wbw6fBbSjzsyNAQektnGNz+++Vd17uNEOQfPUVYWYuqreqhm 5i2bSZsSM5ehF3gLg4+hTj/MRVKHHJ/d/kaPnl1JLJZBIOUnqjUzhso+2m5myExQSgRE 1fZ3XqOqecG2OUCR0uULyMK8DLw93WoRr4SieIno/UgZtDIq5fSX1Frkq6GJ7jrEvq4K /2UQ== 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 :dkim-signature; bh=jwWDVbn6E+W4cppTUQVOsz/FlYXh0zmRkUkc7xXhirw=; b=miGSJ3nWVNiHAUMuXlAk2lKO6eEPyT4NbQeu0Y3VTd5fF0O57U8QYDiGxt4dBc3bgD bKdeSd86iCYiAgxDJNuOWIfOL05xF1DrZcn6to/975FQVKm3cQnlO9mU9bnk9/ivnTKE FOKf957epTszao+Oct6TOVRw8plFWFwhrvorDYc4SqzR6mUPdjMAY9uLCzTdKovDE1IK OsRVo0161cNChPcP9HajZTFOndyDMvla2K1MxtXpLo138jbwHwC1W4jFfMq3FLrvJEaG i2ittaZCfYBeVyuJ9CKKFc1VwkNRaZxA8BiCvfKjrushFoZSnvUnfpTvSeF58zrD/XhY poyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uUa50cxx; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id t14si3984345edw.119.2021.01.15.04.30.10; Fri, 15 Jan 2021 04:30:10 -0800 (PST) Received-SPF: pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=uUa50cxx; spf=pass (google.com: domain of devicetree-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=devicetree-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729310AbhAOM3n (ORCPT + 6 others); Fri, 15 Jan 2021 07:29:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728439AbhAOM3m (ORCPT ); Fri, 15 Jan 2021 07:29:42 -0500 Received: from mail-io1-xd31.google.com (mail-io1-xd31.google.com [IPv6:2607:f8b0:4864:20::d31]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CE9A9C061795 for ; Fri, 15 Jan 2021 04:29:01 -0800 (PST) Received: by mail-io1-xd31.google.com with SMTP id q1so17702293ion.8 for ; Fri, 15 Jan 2021 04:29:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jwWDVbn6E+W4cppTUQVOsz/FlYXh0zmRkUkc7xXhirw=; b=uUa50cxxdkAT4+YajHkWcJZs4ZB09eqs7lIWjWlrYCSUWZltlvFwsgiDafDMYTlAEZ 5SifFOqkEOUWvOEKbjhjpMoAkaKio6lC0br+owkdI4eVIZHGIrhWZBPTVdBWxU4Kz846 f99caiqQorZL7I2QmHeLDLZ6n5iisdcb+7iVlaOpjcNkUto4zb4cOV1OlPnCEZKnBKzV c8zu2/kD3K9KAdFChp3x87oPLe25Uxu3fM2TKMJxaZqEeWWZXuvrcY3xstvERo+EEIbi JVtHXguistiKTcyAHxM5VTx93ucDYU+2sDAHz4KSexIPcjLTOizmluymRd362ZKFUwm9 sGQA== 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=jwWDVbn6E+W4cppTUQVOsz/FlYXh0zmRkUkc7xXhirw=; b=Qzl3s++nr40+vOW6YZPnqCidG5b9hGyRdnfY2oT7AS+W2d62ctOTXFPybCNnBDLOEC r0BgwteH6o1D8zwM6Ptf7OaNhRxEWmOUpquArHTEwS7zz/CttgFBalIQqcncpJVODMDc YCq8uEk6ddqKJiXG0rj/2HbYgri0fXabcUbP7b3gRnO+4SlLIfc6wJt33oKOKNVMo+VW taKjbMg6QyNJQ5mkvV1k/MRD1J43zYpVgSvscpoG0vXn3HOPSF975QIGkj/8gc7Vcd2O U2y1sPnf9p3p9ZYWwKtdR9ayNPzgORKdDg+QCSs5819Fc24N2sOQp/7YfPWDllSRnLwn z6zQ== X-Gm-Message-State: AOAM531QawxaWlZ8vEh9Z49A00FflscHWYfkwn5803pbW/AOp4jox1nh ezAXPipivwj7mBUlaFcL1dF2sw== X-Received: by 2002:a05:6638:14d5:: with SMTP id l21mr10076836jak.54.1610713741247; Fri, 15 Jan 2021 04:29:01 -0800 (PST) Received: from beast.localdomain (c-73-185-129-58.hsd1.mn.comcast.net. [73.185.129.58]) by smtp.gmail.com with ESMTPSA id a9sm3828509ion.53.2021.01.15.04.29.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 Jan 2021 04:29:00 -0800 (PST) From: Alex Elder To: davem@davemloft.net, kuba@kernel.org Cc: evgreen@chromium.org, bjorn.andersson@linaro.org, cpratapa@codeaurora.org, subashab@codeaurora.org, robh+dt@kernel.org, rdunlap@infradead.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v2 net-next 1/4] net: ipa: remove a remoteproc dependency Date: Fri, 15 Jan 2021 06:28:52 -0600 Message-Id: <20210115122855.19928-2-elder@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210115122855.19928-1-elder@linaro.org> References: <20210115122855.19928-1-elder@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org The IPA driver currently requires a DT property to be defined whose value is the phandle for the modem subsystem. This was needed to look up a remoteproc structure pointer used when registering for notifications in the original IPA notification mechanism. Remoteproc provides a more generic SSR notifier system, and the IPA driver switched over to it last summer, but this remoteproc phandle dependency was not removed at that time. Get rid of the IPA remoteproc pointer and stop requiring the phandle be specified. This avoids a link error (rproc_put() not defined) for certain configurations. Reported-by: Randy Dunlap Fixes: 30eb3fbee3da7 ("net: ipa: new notification infrastructure") Signed-off-by: Alex Elder --- drivers/net/ipa/ipa.h | 2 -- drivers/net/ipa/ipa_main.c | 38 ++------------------------------------ 2 files changed, 2 insertions(+), 38 deletions(-) -- 2.20.1 diff --git a/drivers/net/ipa/ipa.h b/drivers/net/ipa/ipa.h index 6c2371084c55a..c6c6a7f6909c1 100644 --- a/drivers/net/ipa/ipa.h +++ b/drivers/net/ipa/ipa.h @@ -43,7 +43,6 @@ enum ipa_flag { * @flags: Boolean state flags * @version: IPA hardware version * @pdev: Platform device - * @modem_rproc: Remoteproc handle for modem subsystem * @smp2p: SMP2P information * @clock: IPA clocking information * @table_addr: DMA address of filter/route table content @@ -83,7 +82,6 @@ struct ipa { DECLARE_BITMAP(flags, IPA_FLAG_COUNT); enum ipa_version version; struct platform_device *pdev; - struct rproc *modem_rproc; struct notifier_block nb; void *notifier; struct ipa_smp2p *smp2p; diff --git a/drivers/net/ipa/ipa_main.c b/drivers/net/ipa/ipa_main.c index 84bb8ae927252..ab0fd5cb49277 100644 --- a/drivers/net/ipa/ipa_main.c +++ b/drivers/net/ipa/ipa_main.c @@ -15,7 +15,6 @@ #include #include #include -#include #include #include @@ -729,19 +728,6 @@ static const struct of_device_id ipa_match[] = { }; MODULE_DEVICE_TABLE(of, ipa_match); -static phandle of_property_read_phandle(const struct device_node *np, - const char *name) -{ - struct property *prop; - int len = 0; - - prop = of_find_property(np, name, &len); - if (!prop || len != sizeof(__be32)) - return 0; - - return be32_to_cpup(prop->value); -} - /* Check things that can be validated at build time. This just * groups these things BUILD_BUG_ON() calls don't clutter the rest * of the code. @@ -807,10 +793,8 @@ static int ipa_probe(struct platform_device *pdev) struct device *dev = &pdev->dev; const struct ipa_data *data; struct ipa_clock *clock; - struct rproc *rproc; bool modem_init; struct ipa *ipa; - phandle ph; int ret; ipa_validate_build(); @@ -829,25 +813,12 @@ static int ipa_probe(struct platform_device *pdev) if (!qcom_scm_is_available()) return -EPROBE_DEFER; - /* We rely on remoteproc to tell us about modem state changes */ - ph = of_property_read_phandle(dev->of_node, "modem-remoteproc"); - if (!ph) { - dev_err(dev, "DT missing \"modem-remoteproc\" property\n"); - return -EINVAL; - } - - rproc = rproc_get_by_phandle(ph); - if (!rproc) - return -EPROBE_DEFER; - /* The clock and interconnects might not be ready when we're * probed, so might return -EPROBE_DEFER. */ clock = ipa_clock_init(dev, data->clock_data); - if (IS_ERR(clock)) { - ret = PTR_ERR(clock); - goto err_rproc_put; - } + if (IS_ERR(clock)) + return PTR_ERR(clock); /* No more EPROBE_DEFER. Allocate and initialize the IPA structure */ ipa = kzalloc(sizeof(*ipa), GFP_KERNEL); @@ -858,7 +829,6 @@ static int ipa_probe(struct platform_device *pdev) ipa->pdev = pdev; dev_set_drvdata(dev, ipa); - ipa->modem_rproc = rproc; ipa->clock = clock; ipa->version = data->version; @@ -935,8 +905,6 @@ static int ipa_probe(struct platform_device *pdev) kfree(ipa); err_clock_exit: ipa_clock_exit(clock); -err_rproc_put: - rproc_put(rproc); return ret; } @@ -944,7 +912,6 @@ static int ipa_probe(struct platform_device *pdev) static int ipa_remove(struct platform_device *pdev) { struct ipa *ipa = dev_get_drvdata(&pdev->dev); - struct rproc *rproc = ipa->modem_rproc; struct ipa_clock *clock = ipa->clock; int ret; @@ -970,7 +937,6 @@ static int ipa_remove(struct platform_device *pdev) ipa_reg_exit(ipa); kfree(ipa); ipa_clock_exit(clock); - rproc_put(rproc); return 0; }