From patchwork Tue Jan 12 19:28:28 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 361247 Delivered-To: patch@linaro.org Received: by 2002:a17:906:fb05:0:0:0:0 with SMTP id lz5csp492010ejb; Tue, 12 Jan 2021 11:30:43 -0800 (PST) X-Google-Smtp-Source: ABdhPJzKJl4SPJxeCrQd6nKcdlDGSQ3pr+wThU0Anc1Xc7Yg/FZHVymjjDSMjWbRcBC0I0HGGUku X-Received: by 2002:a05:6402:1c04:: with SMTP id ck4mr546420edb.320.1610479843414; Tue, 12 Jan 2021 11:30:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1610479843; cv=none; d=google.com; s=arc-20160816; b=p3GW23qdNcEZQcnoRnO9eDdaUgmPPcDxrWeAf04YOVqLvDCQBS4hst+YLMHkOB4Pa2 4FxYtP95+zjGEqzM89pboVnFhjcscbMctmNbTmhNQR1tENS5yKCva2xhYF2cnh+f7k2e M7QNau+7B1hdj7x2Kzd3sDFVG9FNDN2SZzU8K0tFItjvHCvT83VrtSvdDegFdH27JgS7 EVUjU+5mRGQuVFLd7Xwt1doEuPKcy1eKu9jB4A3AiM1ruXiwBIQcHG8l36BJ8H55N3uG dwtxSnzb7v5rLpqruyvBFybv8cS4eTr4z9Ioe+ztPmc6u7qXQnzXJKt3Iq6xdkyzWk3I MLbA== 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=WS2t2dYkOxQeqH2FrrwhMC8cEELSmhw2cThFD9NQP7k/a4q7nRlJ5AHvrTzWsxim+E C4m9BbNeU5rJVuI826Gc1tM3bqZV7LeAvL3ehMSLQ83Ynnr7PittGQAYsuKILGvYIHHY dQ1Qhvn+rv/h34JDs3xzVvx+zPFICf+Ic++uTLhpnKFe7DcbugTmztgaumxMUMl9y6WG PY0xib91jCPbVnY2LbHvOB2Oov64kzA3AZ6uhh1nSKFy3DAq9gH/mTtT2NrIeTu4f/eP xc018/EdvLDPwdDPrquMi5iHhGYRm3C3eO36IzkJEBlzE2dD1UppfC3mfC98QGX/wtm0 Q8OQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="BHlRAH/f"; 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 m26si1913752edp.592.2021.01.12.11.30.43; Tue, 12 Jan 2021 11:30:43 -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="BHlRAH/f"; 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 S2436607AbhALT3l (ORCPT + 6 others); Tue, 12 Jan 2021 14:29:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2436882AbhALT3S (ORCPT ); Tue, 12 Jan 2021 14:29:18 -0500 Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A63BEC06179F for ; Tue, 12 Jan 2021 11:28:37 -0800 (PST) Received: by mail-io1-xd2d.google.com with SMTP id y19so6528127iov.2 for ; Tue, 12 Jan 2021 11:28:37 -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=BHlRAH/fd21fCgfBtnXm4/QcW8KWv4Hq9Mb5J2PTWLlw4GTe7WIltI1m/QvSX3NRjf uxy2m71TuKmd3prmc0+7ZsOampjzv3R6VQe/TSAPabYUag5vAZ9Si5dE/ruPpOzRY6aH YHIy1ylp83pzvy7pAvoOLKwldL3h5I3dwK0YLd1KRbUWRW3BgN6eoOI/jrG1vHP9jbTf 7JtbzkHCYtv3E4723QvdlEONmv3AQ9Yo6cAele4Kocr3a1vD/SbKS2HEZn7gNjxqpTSE amPsHZHp1hI76P18oE7luladlwCWRfJ4wmhKRaho78oeYRNxVeZOE4LKCNm/FAWVcHqt hXNg== 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=d8SqzTTIzIN6hxocVGtdYjKK7ka3GBfH4mbEIF+FitzYmVLLKSGwZmTbC+uFMRc4ex cwcmPDARNRcvUOJJHEjcebn6tOYFc3efoH0waHxtTpiZuoyPopntBqOhw8ykhnhA4+bG UbL0mpSWm6wBRBAlfEvr9At0uFOzyxZY8hsHxJqZRVUTXzUvQCPXrDWCoMnciQ1dndN0 qkTuFaztCbyuniEPjycGywWKo26sh7Q1QtCDL79rj4zAuLfvUEvC5/ykf4MycofHIk70 CY7tB83PxHdoO8VO6icwAOw8yMXfxFruXKZDa2NdsDFOK4GDydzfIidLvl2pbyYkXFtA vkPA== X-Gm-Message-State: AOAM530VNJyfaHSbvQyinQv1KQfZ6tKw7dT2EjxA/+3yWvwFhOGziJsX iWjo9GOqtbqqLktYIIwAbsV98o6gwrtVMg== X-Received: by 2002:a05:6e02:1c05:: with SMTP id l5mr635272ilh.6.1610479717107; Tue, 12 Jan 2021 11:28:37 -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 q5sm3191892ilg.62.2021.01.12.11.28.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 12 Jan 2021 11:28:36 -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 net-next 1/4] net: ipa: remove a remoteproc dependency Date: Tue, 12 Jan 2021 13:28:28 -0600 Message-Id: <20210112192831.686-2-elder@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210112192831.686-1-elder@linaro.org> References: <20210112192831.686-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; }