From patchwork Fri Nov 27 10:24:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345959 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E941AC2D0E4 for ; Fri, 27 Nov 2020 10:25:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 760A8206F4 for ; Fri, 27 Nov 2020 10:25:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="BaVPoe3X" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728888AbgK0KZO (ORCPT ); Fri, 27 Nov 2020 05:25:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52008 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728014AbgK0KZM (ORCPT ); Fri, 27 Nov 2020 05:25:12 -0500 Received: from mail-wm1-x342.google.com (mail-wm1-x342.google.com [IPv6:2a00:1450:4864:20::342]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E106FC0613D4 for ; Fri, 27 Nov 2020 02:25:11 -0800 (PST) Received: by mail-wm1-x342.google.com with SMTP id g25so2133144wmh.1 for ; Fri, 27 Nov 2020 02:25:11 -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=vrxeOOjDCIprrnDpDsRoG4Zke9Q0VN/X0WIR5/LQh/o=; b=BaVPoe3XTAR1940YgwoOaek33VCoGTVt0+cQEejxUjnYglXOcOeAPaKjPn3wzG30mC Qtmr+wbFHvw8ByZMmu0mdLHqcorA+nNnteSdWTJ4iVzJf7XgnrHSAlIauKFPOBv3UaDh 5r7EBpCCnpNMNGH8DPQ8iNZz11xEURpvvontNFIYDmTs3+dfC8D8blEbUcwlm1olHxKv f/QrW8BClTSO5ro+jhTL3aqM/iqqpRCokS40ycuPielk+Nz5OQkJZgZ9nRmzu1jj+oc2 2EjPgZ3QUqCUR6ZHerdw4zZBiNGmLIVrFPDfhUj14F05QgiBfqsD2vxHV/7+BMo+el8z 8A6Q== 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=vrxeOOjDCIprrnDpDsRoG4Zke9Q0VN/X0WIR5/LQh/o=; b=uCw2F/RskXp6u3D08ncvgX7D+e89T7Q0lyrrxd0blTqUhT0zlkCOwHBXWwU6g0K7ny 6rVel/AfNwv8eJQd3+r5muV20hhiA4ZBVKpqsR0xDPePMfh7AFwXBY8bZTpLVOq9ASaR ihtRCIXO+rbxxTIBUjR8fWB8zYSMVAQE4nPIHAh55HUnLLwCyEmJRrhM5zuULOSrcZfV L1iYULiCDQAnWz+vDVwy0JanyROZlt+doo9CxWr6Qqy0o1FaWiP5IN733YTvDEHg4pjC AaCE5Li73mlnSICJWAzhQzSaaG4954bGz4tpV6mQ2gIhs9zvCGb/q+8vbL6A3S0pP2OM FIxA== X-Gm-Message-State: AOAM532rkdtb3zl55FlxQsIg5SKWiP84LTZXeLm1DryU0lZe51Ai51US VXswjL4Swj/JktRuCTTMmk2c5w== X-Google-Smtp-Source: ABdhPJwLSw/MtEGshVoF6YcGyZW4o/WiuQpZWvZy9wLslgTzthmoYpeI4ALOu9WilJe1y6zYbs0Xbw== X-Received: by 2002:a1c:2c2:: with SMTP id 185mr8201087wmc.103.1606472710601; Fri, 27 Nov 2020 02:25:10 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:09 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Srinivas Kandagatla Subject: [PATCH 1/7] slimbus: fix a kernel-doc markup Date: Fri, 27 Nov 2020 10:24:45 +0000 Message-Id: <20201127102451.17114-2-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Mauro Carvalho Chehab Fix the name of the enum on its kernel-doc markup: enum slim_ch_aux_fmt -> enum slim_ch_aux_bit_fmt Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/slimbus.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/slimbus/slimbus.h b/drivers/slimbus/slimbus.h index c73035915f1d..00a7f112574b 100644 --- a/drivers/slimbus/slimbus.h +++ b/drivers/slimbus/slimbus.h @@ -244,7 +244,7 @@ enum slim_ch_data_fmt { }; /** - * enum slim_ch_aux_fmt: SLIMbus channel Aux Field format IDs according to + * enum slim_ch_aux_bit_fmt: SLIMbus channel Aux Field format IDs according to * Table 63 of SLIMbus Spec 2.0 * @SLIM_CH_AUX_FMT_NOT_APPLICABLE: Undefined * @SLIM_CH_AUX_FMT_ZCUV_TUNNEL_IEC60958: ZCUV for tunneling IEC60958 From patchwork Fri Nov 27 10:24:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345960 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33557C64E75 for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id B60202075E for ; Fri, 27 Nov 2020 10:25:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="YstC06mi" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728983AbgK0KZP (ORCPT ); Fri, 27 Nov 2020 05:25:15 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52010 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728014AbgK0KZO (ORCPT ); Fri, 27 Nov 2020 05:25:14 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01BC8C0617A7 for ; Fri, 27 Nov 2020 02:25:13 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id r3so5038347wrt.2 for ; Fri, 27 Nov 2020 02:25:12 -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=Q9x+pZSTU0zGm8ir1yf0ufNI+zfqSbLQaoIoIGyHUGs=; b=YstC06miUXS6OW6gNsjVnX8Ngl7o8dOqr1vUz5DB8F4ya/ad3PUOzwX4fgMQ1oRtz+ rgBmWLA79pqmWbfw3ZjL7Tq4WiW7CTLBf+9LbGsXdmi25bdsm+4BHa2WPIJKytp2KRAb Xn/PUaKoAyGVl7amk5HYhgZw03RAqIUTrCVxquiuLDJbXLu3BlHUYmUscCZQ0A6Y4OaD 2N+wbU8LXzdRrMVbAps4ZvSVUlcUNUxnQlBx2ZlQv4jyb/QVtQxODpFgUmo65ZRZ/uVP qgfboTw5iVaieV6dvKlS/+3rV8OkT60hk//Jp4J/ErPbPfYwm8AV7Hc5zofT2E5Muqa9 eG6w== 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=Q9x+pZSTU0zGm8ir1yf0ufNI+zfqSbLQaoIoIGyHUGs=; b=HxzCALp2gnJWZq7UPjnjn8kajokT6STs/ybvrbRpFr51zcbruiYjHxVUTOQvrPU1lH R1em6ra6G9DTVvdTh7l0Ngy15kBD7YkZyUxojgjeXe+xyFitOsVxusi27ZlmHLoBl6cI bjo/OvvKrJ1zF4qE4Mi6/zIseZLmQO1wkUSq7xSdjPWcXYf/U1K43cE6Yh2RKhTvvdba ZNY2X5BXue5ntIDwYOA+F3uT+MdTDkqd6ErJf3hXVH71Q7Fdjbcj8yp3xDWcRf/UlWHW 5vMIXFjvUS7w9Fie1gNB4PdWoPXh7Sw7DE1Tla4QaaRTETYrhkKiZxfeJozS7/4EbITB woog== X-Gm-Message-State: AOAM533Vg9WkTYTY32ZhcXFLoCiNQKHGmkK8L4QPyVEgWk6I5DSv8Lch EvFvFU+vPrnMVH3UzETxblAu3A== X-Google-Smtp-Source: ABdhPJxZYZptdbecVhJPslznfPBQ1pRtz0M0N9r6XpPiJgw4A9AmPRsveE2/wlTLh8QHnUJVazLQtQ== X-Received: by 2002:a5d:4585:: with SMTP id p5mr9486516wrq.65.1606472711745; Fri, 27 Nov 2020 02:25:11 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:11 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH 2/7] slimbus: qcom-ngd-ctrl: add Sub System Restart support Date: Fri, 27 Nov 2020 10:24:46 +0000 Message-Id: <20201127102451.17114-3-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds SSR(SubSystem Restart) support which includes, synchronisation between SSR and QMI server notifications. Also with this patch now NGD is taken down by SSR instead of QMI server down notification. NGD up path now relies on both SSR and QMI notifications and particularly sequence of SSR up followed by QMI server up notification. Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/Kconfig | 3 +- drivers/slimbus/qcom-ngd-ctrl.c | 97 +++++++++++++++++++++++++++++++-- 2 files changed, 95 insertions(+), 5 deletions(-) diff --git a/drivers/slimbus/Kconfig b/drivers/slimbus/Kconfig index 8cd595148d17..02534ce86e46 100644 --- a/drivers/slimbus/Kconfig +++ b/drivers/slimbus/Kconfig @@ -22,9 +22,10 @@ config SLIM_QCOM_CTRL config SLIM_QCOM_NGD_CTRL tristate "Qualcomm SLIMbus Satellite Non-Generic Device Component" - depends on HAS_IOMEM && DMA_ENGINE && NET + depends on HAS_IOMEM && DMA_ENGINE && NET && REMOTEPROC depends on ARCH_QCOM || COMPILE_TEST select QCOM_QMI_HELPERS + select QCOM_RPROC_COMMON help Select driver if Qualcomm's SLIMbus Satellite Non-Generic Device Component is programmed using Linux kernel. diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index 218aefc3531c..d32e6b37514d 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -13,6 +13,9 @@ #include #include #include +#include +#include +#include #include #include #include @@ -155,8 +158,14 @@ struct qcom_slim_ngd_ctrl { struct qcom_slim_ngd_dma_desc txdesc[QCOM_SLIM_NGD_DESC_NUM]; struct completion reconf; struct work_struct m_work; + struct work_struct ngd_up_work; struct workqueue_struct *mwq; + struct completion qmi_up; spinlock_t tx_buf_lock; + struct mutex tx_lock; + struct mutex ssr_lock; + struct notifier_block nb; + void *notifier; enum qcom_slim_ngd_state state; dma_addr_t rx_phys_base; dma_addr_t tx_phys_base; @@ -868,14 +877,18 @@ static int qcom_slim_ngd_xfer_msg(struct slim_controller *sctrl, if (txn->msg && txn->msg->wbuf) memcpy(puc, txn->msg->wbuf, txn->msg->num_bytes); + mutex_lock(&ctrl->tx_lock); ret = qcom_slim_ngd_tx_msg_post(ctrl, pbuf, txn->rl); - if (ret) + if (ret) { + mutex_unlock(&ctrl->tx_lock); return ret; + } timeout = wait_for_completion_timeout(&tx_sent, HZ); if (!timeout) { dev_err(sctrl->dev, "TX timed out:MC:0x%x,mt:0x%x", txn->mc, txn->mt); + mutex_unlock(&ctrl->tx_lock); return -ETIMEDOUT; } @@ -884,10 +897,12 @@ static int qcom_slim_ngd_xfer_msg(struct slim_controller *sctrl, if (!timeout) { dev_err(sctrl->dev, "TX timed out:MC:0x%x,mt:0x%x", txn->mc, txn->mt); + mutex_unlock(&ctrl->tx_lock); return -ETIMEDOUT; } } + mutex_unlock(&ctrl->tx_lock); return 0; } @@ -1200,6 +1215,13 @@ static void qcom_slim_ngd_master_worker(struct work_struct *work) } } +static int qcom_slim_ngd_update_device_status(struct device *dev, void *null) +{ + slim_report_absent(to_slim_device(dev)); + + return 0; +} + static int qcom_slim_ngd_runtime_resume(struct device *dev) { struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev); @@ -1267,7 +1289,7 @@ static int qcom_slim_ngd_qmi_new_server(struct qmi_handle *hdl, qmi->svc_info.sq_node = service->node; qmi->svc_info.sq_port = service->port; - qcom_slim_ngd_enable(ctrl, true); + complete(&ctrl->qmi_up); return 0; } @@ -1280,10 +1302,9 @@ static void qcom_slim_ngd_qmi_del_server(struct qmi_handle *hdl, struct qcom_slim_ngd_ctrl *ctrl = container_of(qmi, struct qcom_slim_ngd_ctrl, qmi); + reinit_completion(&ctrl->qmi_up); qmi->svc_info.sq_node = 0; qmi->svc_info.sq_port = 0; - - qcom_slim_ngd_enable(ctrl, false); } static struct qmi_ops qcom_slim_ngd_qmi_svc_event_ops = { @@ -1333,6 +1354,64 @@ static const struct of_device_id qcom_slim_ngd_dt_match[] = { MODULE_DEVICE_TABLE(of, qcom_slim_ngd_dt_match); +static void qcom_slim_ngd_down(struct qcom_slim_ngd_ctrl *ctrl) +{ + mutex_lock(&ctrl->ssr_lock); + device_for_each_child(ctrl->ctrl.dev, NULL, + qcom_slim_ngd_update_device_status); + qcom_slim_ngd_enable(ctrl, false); + mutex_unlock(&ctrl->ssr_lock); +} + +static void qcom_slim_ngd_up_worker(struct work_struct *work) +{ + struct qcom_slim_ngd_ctrl *ctrl; + + ctrl = container_of(work, struct qcom_slim_ngd_ctrl, ngd_up_work); + + /* Make sure qmi service is up before continuing */ + wait_for_completion_interruptible(&ctrl->qmi_up); + + mutex_lock(&ctrl->ssr_lock); + qcom_slim_ngd_enable(ctrl, true); + mutex_unlock(&ctrl->ssr_lock); +} + +static int qcom_slim_ngd_ssr_pdr_notify(struct qcom_slim_ngd_ctrl *ctrl, + unsigned long action) +{ + switch (action) { + case QCOM_SSR_BEFORE_SHUTDOWN: + /* Make sure the last dma xfer is finished */ + mutex_lock(&ctrl->tx_lock); + if (ctrl->state != QCOM_SLIM_NGD_CTRL_DOWN) { + pm_runtime_get_noresume(ctrl->dev); + ctrl->state = QCOM_SLIM_NGD_CTRL_DOWN; + qcom_slim_ngd_down(ctrl); + qcom_slim_ngd_exit_dma(ctrl); + } + mutex_unlock(&ctrl->tx_lock); + break; + case QCOM_SSR_AFTER_POWERUP: + schedule_work(&ctrl->ngd_up_work); + break; + default: + break; + } + + return NOTIFY_OK; +} + +static int qcom_slim_ngd_ssr_notify(struct notifier_block *nb, + unsigned long action, + void *data) +{ + struct qcom_slim_ngd_ctrl *ctrl = container_of(nb, + struct qcom_slim_ngd_ctrl, nb); + + return qcom_slim_ngd_ssr_pdr_notify(ctrl, action); +} + static int of_qcom_slim_ngd_register(struct device *parent, struct qcom_slim_ngd_ctrl *ctrl) { @@ -1397,6 +1476,7 @@ static int qcom_slim_ngd_probe(struct platform_device *pdev) } INIT_WORK(&ctrl->m_work, qcom_slim_ngd_master_worker); + INIT_WORK(&ctrl->ngd_up_work, qcom_slim_ngd_up_worker); ctrl->mwq = create_singlethread_workqueue("ngd_master"); if (!ctrl->mwq) { dev_err(&pdev->dev, "Failed to start master worker\n"); @@ -1444,6 +1524,11 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev) return ret; } + ctrl->nb.notifier_call = qcom_slim_ngd_ssr_notify; + ctrl->notifier = qcom_register_ssr_notifier("lpass", &ctrl->nb); + if (IS_ERR(ctrl->notifier)) + return PTR_ERR(ctrl->notifier); + ctrl->dev = dev; ctrl->framer.rootfreq = SLIM_ROOT_FREQ >> 3; ctrl->framer.superfreq = @@ -1457,9 +1542,12 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev) ctrl->ctrl.wakeup = NULL; ctrl->state = QCOM_SLIM_NGD_CTRL_DOWN; + mutex_init(&ctrl->tx_lock); + mutex_init(&ctrl->ssr_lock); spin_lock_init(&ctrl->tx_buf_lock); init_completion(&ctrl->reconf); init_completion(&ctrl->qmi.qmi_comp); + init_completion(&ctrl->qmi_up); platform_driver_register(&qcom_slim_ngd_driver); return of_qcom_slim_ngd_register(dev, ctrl); @@ -1477,6 +1565,7 @@ static int qcom_slim_ngd_remove(struct platform_device *pdev) struct qcom_slim_ngd_ctrl *ctrl = platform_get_drvdata(pdev); pm_runtime_disable(&pdev->dev); + qcom_unregister_ssr_notifier(ctrl->notifier, &ctrl->nb); qcom_slim_ngd_enable(ctrl, false); qcom_slim_ngd_exit_dma(ctrl); qcom_slim_ngd_qmi_svc_event_deinit(&ctrl->qmi); From patchwork Fri Nov 27 10:24:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345962 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 54C74C63777 for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 016CC20795 for ; Fri, 27 Nov 2020 10:25:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="imzt/KVy" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729059AbgK0KZQ (ORCPT ); Fri, 27 Nov 2020 05:25:16 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52016 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728315AbgK0KZO (ORCPT ); Fri, 27 Nov 2020 05:25:14 -0500 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E96FBC0613D1 for ; Fri, 27 Nov 2020 02:25:13 -0800 (PST) Received: by mail-wr1-x442.google.com with SMTP id l1so5004731wrb.9 for ; Fri, 27 Nov 2020 02:25:13 -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=JUU5D1MegB2iwczB9PRYaPxcUosO5rt/7hKyRUCQOqY=; b=imzt/KVy4KaI1cnJwr/tIwecUjzIv5aFVezIlce6VESlPlpeSgZbwpg3sYhDwTQg5/ XGwMFYVfHle7pZ+geMfoRR5vtsXu57A9Lb10h8zNldv5aCP7T2rlY/25/ok5U8yiGo5A 0tDGxIipE5mvjjUlYzuvRc0xxH49NKPFu4w5kxzGZCGVWE+qAEwJ+09XJQ+F3P3Ukal9 RkU+8I749vczIjzVwpqXNIWDX4S5tGtfXwtqiVEH8eu+jQ9CdM35Gx/nEdiGZJ3AaQ19 F2llaTOqJmSjV6srl5Nk1x37NDcWZV1c/5D7raSHHyGISKCwrxnfwYQr4Yk/W0l/lp6j Hdlw== 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=JUU5D1MegB2iwczB9PRYaPxcUosO5rt/7hKyRUCQOqY=; b=dXPYreY9OSuEryI51P8h9OJ8DGSm7vhu46wj+wlZtkWjfFyIcj1chaHoxm4/nm0hnO N6niaoQjGDyN81u6VsOr6y2nLW56TlNmXCn/wngpN4pBkhVCIg6EACRMYhHsRlXLE/tK GI888l79fS3BfBvWxIR0tGQMg3E89j27DM8nsnqE0zZTmH9S4RkxAItWGKzYDdJbS6lo fa0IBA5VwCjKjbK4Gfjl2mmxBY3trLQ2UPbxdrPdwTJLQ8uEpjfx2S2DEVEJVjf5NMS/ XHVnzIfw1g3bgkaX1xfgUkspXsb+SyPxfAgXPajyoiBOgpfgD5dmBEp4sBEwhvYD4dWz Z+kg== X-Gm-Message-State: AOAM5316yJwMwPbYeoXaasaRG03IN/J/Sw8bSpO17TEpASmc/Qyx5Sw7 +8ZoqmkEQpA22M6VN6TLpsfJ3A== X-Google-Smtp-Source: ABdhPJwtjK1K7uwo8fzE4rRVQ4b/vBgwmTk9Tez9ci74wJyHLh+Cwl89kz6YPX1KDbKotTPQz1bbXA== X-Received: by 2002:a5d:570d:: with SMTP id a13mr9285414wrv.193.1606472712737; Fri, 27 Nov 2020 02:25:12 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:12 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH 3/7] slimbus: qcom-ngd-ctrl: add Protection Domain Restart Support Date: Fri, 27 Nov 2020 10:24:47 +0000 Message-Id: <20201127102451.17114-4-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Add support to protection domain restart. Protection domain restart would also restart the service just like SSR. Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/Kconfig | 1 + drivers/slimbus/qcom-ngd-ctrl.c | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/drivers/slimbus/Kconfig b/drivers/slimbus/Kconfig index 02534ce86e46..7d59956b5dfb 100644 --- a/drivers/slimbus/Kconfig +++ b/drivers/slimbus/Kconfig @@ -26,6 +26,7 @@ config SLIM_QCOM_NGD_CTRL depends on ARCH_QCOM || COMPILE_TEST select QCOM_QMI_HELPERS select QCOM_RPROC_COMMON + select QCOM_PDR_HELPERS help Select driver if Qualcomm's SLIMbus Satellite Non-Generic Device Component is programmed using Linux kernel. diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index d32e6b37514d..943d55a0bc59 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include "slimbus.h" @@ -166,6 +167,7 @@ struct qcom_slim_ngd_ctrl { struct mutex ssr_lock; struct notifier_block nb; void *notifier; + struct pdr_handle *pdr; enum qcom_slim_ngd_state state; dma_addr_t rx_phys_base; dma_addr_t tx_phys_base; @@ -1382,6 +1384,7 @@ static int qcom_slim_ngd_ssr_pdr_notify(struct qcom_slim_ngd_ctrl *ctrl, { switch (action) { case QCOM_SSR_BEFORE_SHUTDOWN: + case SERVREG_SERVICE_STATE_DOWN: /* Make sure the last dma xfer is finished */ mutex_lock(&ctrl->tx_lock); if (ctrl->state != QCOM_SLIM_NGD_CTRL_DOWN) { @@ -1393,6 +1396,7 @@ static int qcom_slim_ngd_ssr_pdr_notify(struct qcom_slim_ngd_ctrl *ctrl, mutex_unlock(&ctrl->tx_lock); break; case QCOM_SSR_AFTER_POWERUP: + case SERVREG_SERVICE_STATE_UP: schedule_work(&ctrl->ngd_up_work); break; default: @@ -1412,6 +1416,12 @@ static int qcom_slim_ngd_ssr_notify(struct notifier_block *nb, return qcom_slim_ngd_ssr_pdr_notify(ctrl, action); } +static void slim_pd_status(int state, char *svc_path, void *priv) +{ + struct qcom_slim_ngd_ctrl *ctrl = (struct qcom_slim_ngd_ctrl *)priv; + + qcom_slim_ngd_ssr_pdr_notify(ctrl, state); +} static int of_qcom_slim_ngd_register(struct device *parent, struct qcom_slim_ngd_ctrl *ctrl) { @@ -1499,6 +1509,7 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev) struct qcom_slim_ngd_ctrl *ctrl; struct resource *res; int ret; + struct pdr_service *pds; ctrl = devm_kzalloc(dev, sizeof(*ctrl), GFP_KERNEL); if (!ctrl) @@ -1549,6 +1560,18 @@ static int qcom_slim_ngd_ctrl_probe(struct platform_device *pdev) init_completion(&ctrl->qmi.qmi_comp); init_completion(&ctrl->qmi_up); + ctrl->pdr = pdr_handle_alloc(slim_pd_status, ctrl); + if (IS_ERR(ctrl->pdr)) { + dev_err(dev, "Failed to init PDR handle\n"); + return PTR_ERR(ctrl->pdr); + } + + pds = pdr_add_lookup(ctrl->pdr, "avs/audio", "msm/adsp/audio_pd"); + if (IS_ERR(pds) && PTR_ERR(pds) != -EALREADY) { + dev_err(dev, "pdr add lookup failed: %d\n", ret); + return PTR_ERR(pds); + } + platform_driver_register(&qcom_slim_ngd_driver); return of_qcom_slim_ngd_register(dev, ctrl); } @@ -1565,6 +1588,7 @@ static int qcom_slim_ngd_remove(struct platform_device *pdev) struct qcom_slim_ngd_ctrl *ctrl = platform_get_drvdata(pdev); pm_runtime_disable(&pdev->dev); + pdr_handle_release(ctrl->pdr); qcom_unregister_ssr_notifier(ctrl->notifier, &ctrl->nb); qcom_slim_ngd_enable(ctrl, false); qcom_slim_ngd_exit_dma(ctrl); From patchwork Fri Nov 27 10:24:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345961 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88A67C64E7A for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 39EFA206F4 for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="DMWdgDoN" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729123AbgK0KZS (ORCPT ); Fri, 27 Nov 2020 05:25:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52024 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728998AbgK0KZP (ORCPT ); Fri, 27 Nov 2020 05:25:15 -0500 Received: from mail-wr1-x441.google.com (mail-wr1-x441.google.com [IPv6:2a00:1450:4864:20::441]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32D2EC0613D1 for ; Fri, 27 Nov 2020 02:25:15 -0800 (PST) Received: by mail-wr1-x441.google.com with SMTP id s8so4999425wrw.10 for ; Fri, 27 Nov 2020 02:25:15 -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=cGtVve4ECktdJJ4Hs060Y8wRF6wOE98zlISK3O9yfv4=; b=DMWdgDoN/ZBEUcYGhUOci25uNASQTzV3kGC0REr7qkmtUY/gBR9gJljFIUFJ8OPNQE R3KXqVc1nHhAfUysHfk4Z8Cc6RE33rW15rWWSMIrKVRApGYa9J44gmpP9gl2tx0Z0zct OH7vgHKOtHXa0uJuKBWZ0eZJBlvdh8wDmCjUwW1jIIWdS53E8s7N+9bm2QtQHS5F8hMc UIfO9VEggd5e7ipb+rVJi50CL4Z1uPQbryTDGpzF7peMdKrekgrmf4xCYTKR33vo+Sqe Z1OJGN7LYTQgcGI7AWTgDNTt7b0FLeAF63Cq1htXk2LfaLgX6sgF4dfq3kiiQAW/+L1g Q5cg== 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=cGtVve4ECktdJJ4Hs060Y8wRF6wOE98zlISK3O9yfv4=; b=W1x3PuaRZFpiladUmhMS1RgYGqjFembO5flznVF+0yDW8E3n86KOmH0dKr5rWiqg1N +7CHfaaMMlScmwBeV3eDxG1/LGUeD1CwQdUscMQZrSj/FfY4+GAdwikHtoAlUYY0ETUl y/3IWv+KCp2ZH0Ewa+VQNb+FCw8MvT+YVRDXGUMGXBqxpwTdSBSHs3MiUEsf5aQrue/H FTnqmuuB8d6BUeSiAVFX/B6iqZN9QQyA+5nQERmfgBDgwikUjh8zfJ1vRWMnDhythrWE MMUGbwULOPlFSOpCMygf7sFAxM5ZaKwKbN8OsSxZ3TxTRo7S2zIXv5FmiREgU5dEc7TC 2ygQ== X-Gm-Message-State: AOAM533NoAn5Q4bvYTFIw772UmHOqLwCvqbsGr04mfnHH3v0SWMzFh1W sG6Y3UytN5EYIltxcsXxXexVIg== X-Google-Smtp-Source: ABdhPJzCrdF4iy9rUT1S7o1T66eWdVPq0X/GDbNC9j5f+pEK47fcPO5HxBmFFF5zJn8YUJJSW5PaIg== X-Received: by 2002:adf:bb05:: with SMTP id r5mr9568322wrg.295.1606472713991; Fri, 27 Nov 2020 02:25:13 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:13 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, "Gustavo A. R. Silva" , Srinivas Kandagatla Subject: [PATCH 4/7] slimbus: messaging: Fix fall-through warnings for Clang Date: Fri, 27 Nov 2020 10:24:48 +0000 Message-Id: <20201127102451.17114-5-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: "Gustavo A. R. Silva" In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning by explicitly adding a break statement instead of letting the code fall through to the next case. Link: https://github.com/KSPP/linux/issues/115 Signed-off-by: Gustavo A. R. Silva Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/messaging.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/slimbus/messaging.c b/drivers/slimbus/messaging.c index d5879142dbef..f2b5d347d227 100644 --- a/drivers/slimbus/messaging.c +++ b/drivers/slimbus/messaging.c @@ -258,6 +258,7 @@ int slim_xfer_msg(struct slim_device *sbdev, struct slim_val_inf *msg, case SLIM_MSG_MC_REQUEST_CLEAR_INFORMATION: case SLIM_MSG_MC_CLEAR_INFORMATION: txn->rl += msg->num_bytes; + break; default: break; } From patchwork Fri Nov 27 10:24:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345965 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 44928C64E7D for ; Fri, 27 Nov 2020 10:25:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id E9A592075E for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="FXm6FSh2" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729257AbgK0KZZ (ORCPT ); Fri, 27 Nov 2020 05:25:25 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728315AbgK0KZQ (ORCPT ); Fri, 27 Nov 2020 05:25:16 -0500 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B87FC0613D1 for ; Fri, 27 Nov 2020 02:25:16 -0800 (PST) Received: by mail-wr1-x442.google.com with SMTP id k14so5038842wrn.1 for ; Fri, 27 Nov 2020 02:25:16 -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=+KnpcRHkt95glkiCkXoDV311JoYmIzTmdq90mVMfg1o=; b=FXm6FSh2o9ee18ODc/mlUVroTL853sVCi4MHeIqhaHSUkuslFIY4OqiGRwVvbKfBMz 25oQBUG+F4dKR9gJNtlBU9n2pdayEkxCgxXSCM7dO5ZJGGW+YmNdhamOueZB22q32tKN HPaaD+lGOg/FGN8Bh4PgnMKkG214dWCDekwtZyvA/XyfemTxtLPb91Udj3+SJbbeFAv9 YiGl6nw/kozP+er+WaWFdVYuQpZesATueOJaAmWkW4YWUcaycXtoSMLumzni4UCvk6hy Ujq4C0Kl6Z/0HXstu9iFOBMSoxl5AAcbbeaSqXkrH9tN8e4n1UQ7X1Uc9NkiY70Qw/VM 0bEQ== 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=+KnpcRHkt95glkiCkXoDV311JoYmIzTmdq90mVMfg1o=; b=jbS8ejYpuP8KiKE/To9y5oLUxMRSI8i9Mi84LhbBRWASL31obG6aTz8NsyBua2NYBr J2Y5VZluxn8CM8ls9PG4Mz2h5BbSE8TnyImgWbyGumdtvD1qTb8ULN7VfwNeY0Uw+SdG uwpkaOlQSMLLXMfYzTHrCobpP1Qry/wCPmOCL6u07X3d6Llljl0n9nQWQu4KjkdwipDv raPopKmAOa+EoIC9rxHX4mPVcayGUpcZW3JZ1XI+27YwfjAtkvynJQpZuc0v6DNKlcpO y38YE4Vo3IUQfZ1WhmOX5wJKVX7BVsKAItSHn7pJrUlpVRvFtL1IJNOGnu9IVl3LSByh d0Sw== X-Gm-Message-State: AOAM532JkGElt2FHRWPxRWxUz9WN87J8a55YZNevOLKPbS+TAQM2vXnM Y3NknWRFAQCybbTeJcmGc1VQUg== X-Google-Smtp-Source: ABdhPJzG5Hx+n2Zj5vyEwKfTOF4PSeLLkOjn5Ak7x+wFgvrAfqC0KLLnqLqh29CvAlB82h7d+7ubIQ== X-Received: by 2002:adf:d0c6:: with SMTP id z6mr9726925wrh.10.1606472715187; Fri, 27 Nov 2020 02:25:15 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:14 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Rikard Falkeborn , Srinivas Kandagatla Subject: [PATCH 5/7] slimbus: qcom-ngd-ctrl: Constify static structs Date: Fri, 27 Nov 2020 10:24:49 +0000 Message-Id: <20201127102451.17114-6-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Rikard Falkeborn qcom_slim_qmi_msg_handlers[] and qcom_slim_ngd_qmi_svc_event_ops are only used as input arguments to qmi_handle_init() which accepts const pointers to both qmi_ops and qmi_msg_handler. Make them const to allow the compiler to put them in read-only memory. Signed-off-by: Rikard Falkeborn Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/qcom-ngd-ctrl.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index 943d55a0bc59..172ddcc2a241 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -434,7 +434,7 @@ static int qcom_slim_qmi_send_power_request(struct qcom_slim_ngd_ctrl *ctrl, return 0; } -static struct qmi_msg_handler qcom_slim_qmi_msg_handlers[] = { +static const struct qmi_msg_handler qcom_slim_qmi_msg_handlers[] = { { .type = QMI_RESPONSE, .msg_id = SLIMBUS_QMI_POWER_RESP_V01, @@ -1309,7 +1309,7 @@ static void qcom_slim_ngd_qmi_del_server(struct qmi_handle *hdl, qmi->svc_info.sq_port = 0; } -static struct qmi_ops qcom_slim_ngd_qmi_svc_event_ops = { +static const struct qmi_ops qcom_slim_ngd_qmi_svc_event_ops = { .new_server = qcom_slim_ngd_qmi_new_server, .del_server = qcom_slim_ngd_qmi_del_server, }; From patchwork Fri Nov 27 10:24:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345963 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF991C64E7C for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 742112075E for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="IDM3R9fB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729178AbgK0KZT (ORCPT ); Fri, 27 Nov 2020 05:25:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52032 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729107AbgK0KZS (ORCPT ); Fri, 27 Nov 2020 05:25:18 -0500 Received: from mail-wm1-x343.google.com (mail-wm1-x343.google.com [IPv6:2a00:1450:4864:20::343]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9EEBC0613D4 for ; Fri, 27 Nov 2020 02:25:17 -0800 (PST) Received: by mail-wm1-x343.google.com with SMTP id 3so2297576wmg.4 for ; Fri, 27 Nov 2020 02:25:17 -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=4MW0obv0vN7m9now4s6iWiYdYIuGZvm2HGZntQs84WA=; b=IDM3R9fBzpZ+Cigblf6iKQ+7b1VX5dxzeU1WiVQmoXhRihoTQeCnBWCfeRTRQcGuLS 5GLM8P25hkIPK2XdwkTv8IbsCpA2WAXUVjYocY6Io+AXJwshbJ66WsWqLsMgAY7KxOqm A+GPRbTy2kneisFfKUsgk9R0igFsoXr0viZcjM/RCzKF0EX8YN7dfUmvkqUsxcW4NdmL 2jriDwUUEqphM4+V9KdsCO5v8SallPxMBXSGUcInw3zF82XtZLGGlhNAsaj4s+ZmWM38 YDlrBZRR4Lv/7S1lZ1ko48TRzRNWDQmVH+4UnV41CZVsURBtWT/sPjCkYVYW6spmJNN3 M7ag== 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=4MW0obv0vN7m9now4s6iWiYdYIuGZvm2HGZntQs84WA=; b=A3jwIhBUFRBsL2aD+GBZGS5UlqsuQN+DoAlt1p/dx1GfbZLabRwmRYgNbX0xYFQSh7 lUhsC9ex+om9OZsEEkNcY7lXZ0sm18HO/ZgjSObNs5DmI2z2hTTtDiYZYdqxlmY1fdVu mTYwEfaXhUZPIGCmpVzFK7mpddVzA9Y+fU1bGaWJbEaT90vvTbLsBGoonZ7wZvNCzDp9 AYsUsZjXqNPfc2ZwufWt04j5AHVo5qfeJxI3AxnlmlJ8x9J9hYab2BLv4r5wPnAFNvlF k606JrRCQ7N3lqL2jGWxIa4CZCAlYnj/TYquttcZXGvSklRTmB/f1aXmNYm1Zte2X4+2 S4HQ== X-Gm-Message-State: AOAM533yzV/uKW5Lj+et6foi3PmbApPwO25Y0RP4qNAdYxTTCBBb9cJa eb/wJfJ++YqnHqLxQ3D5ZprIxQ== X-Google-Smtp-Source: ABdhPJyQieLqsws1YL6I6yXH1wZkUfn1BlylG4YzYATCt22LD6mNVS0ldWE35hBha1q2VEBov6zZZA== X-Received: by 2002:a1c:96cb:: with SMTP id y194mr8078835wmd.62.1606472716540; Fri, 27 Nov 2020 02:25:16 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:15 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Bjorn Andersson , Srinivas Kandagatla Subject: [PATCH 6/7] slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI Date: Fri, 27 Nov 2020 10:24:50 +0000 Message-Id: <20201127102451.17114-7-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Bjorn Andersson Attempting to send a power request during PM operations, when the QMI handle isn't initialized results in a NULL pointer dereference. So check if the QMI handle has been initialized before attempting to post the power requests. Fixes: 917809e2280b ("slimbus: ngd: Add qcom SLIMBus NGD driver") Signed-off-by: Bjorn Andersson Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/qcom-ngd-ctrl.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index 172ddcc2a241..82dad7490588 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -1229,6 +1229,9 @@ static int qcom_slim_ngd_runtime_resume(struct device *dev) struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev); int ret = 0; + if (!ctrl->qmi.handle) + return 0; + if (ctrl->state >= QCOM_SLIM_NGD_CTRL_ASLEEP) ret = qcom_slim_ngd_power_up(ctrl); if (ret) { @@ -1616,6 +1619,9 @@ static int __maybe_unused qcom_slim_ngd_runtime_suspend(struct device *dev) struct qcom_slim_ngd_ctrl *ctrl = dev_get_drvdata(dev); int ret = 0; + if (!ctrl->qmi.handle) + return 0; + ret = qcom_slim_qmi_power_request(ctrl, false); if (ret && ret != -EBUSY) dev_info(ctrl->dev, "slim resource not idle:%d\n", ret); From patchwork Fri Nov 27 10:24:51 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 1345964 Return-Path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 175BEC64E7B for ; Fri, 27 Nov 2020 10:25:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id AF1C9206F4 for ; Fri, 27 Nov 2020 10:25:37 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="lVdaEYYx" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729240AbgK0KZU (ORCPT ); Fri, 27 Nov 2020 05:25:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52036 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729164AbgK0KZT (ORCPT ); Fri, 27 Nov 2020 05:25:19 -0500 Received: from mail-wm1-x341.google.com (mail-wm1-x341.google.com [IPv6:2a00:1450:4864:20::341]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D93FEC0613D1 for ; Fri, 27 Nov 2020 02:25:18 -0800 (PST) Received: by mail-wm1-x341.google.com with SMTP id z5so518319wmf.1 for ; Fri, 27 Nov 2020 02:25:18 -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=0efWPHptGDOCPLwQ0ASym8qAND+GCtsojOlG99y4xBw=; b=lVdaEYYxYPGdAI1bLdrb68hXukBC6PEvtHSGmt+7hYhpSg1QYPOQ4gmUOkA9LDVRC0 GEEK3ocdZNbouz/ziRZIiy8FgJydVUTs9sVGPW04QBHrUXnK0Mg7xZrR5A0J96/0mYTf i0XfGbLXkXAMd48a1hIi6fQhKg/C4zEKmUwLfwAcJEXLUINKa1JlNpqXM4RdOemthWTF UOef7PE05uNjzM9L0HlQ2V54d2VdGCo+CVM4hquEa0A4i4jL0hcjZo/OGFQCtanO5/UT 2WAS3774lv8QVO9cRUbiRYLJamTXKn4480/20YPRe/AWPHs4ePoVT79M7LsXSJW1uS8M NqRQ== 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=0efWPHptGDOCPLwQ0ASym8qAND+GCtsojOlG99y4xBw=; b=G4cRI2ym+/Y9BKQuuwvHvnXWrwPWbxZczh58yDpFLQXEA9y8y8pyWXmBqUfTN6uxiF 48avTLiS5sgodUppn3gL6Sj52M9ciOCmSa/xxwUWPX1NJZkyE3mk/b4VYTnAf6nO+eQs gubAZqgYzDwv5p3dRx6m7aLJNwVU77a3ctq+XvS5IPpA3bYIyNpp2PtdLWdeBjPKRELU Mb3So538JlzsmFv8hh4TTE1WIh6e/lIh9+KRWbbHi847JxIsl+un3RehwIc48x56oVL+ 0LAojcJHKb4fKYXhwkik4T8KZ821DZ90Z9V7KSd8vRKn95z4VO2fdL44bacuiTlhjczz fazg== X-Gm-Message-State: AOAM5319MqhIqdOtfuisfVyAWsfwvCEmO/UEE7QUB/DwYRAgkNJHPUU7 ktW/nmQ1YmL5kQuyKrtSfP5fe8lfiGs4HxXH X-Google-Smtp-Source: ABdhPJwLR1LbrHiWVnqilqH3D956Phon2yQ94r4I40IxAyJli5PmDdanOF7Nts+2dB/r12VgXDRDSA== X-Received: by 2002:a1c:2dc8:: with SMTP id t191mr8202006wmt.73.1606472717596; Fri, 27 Nov 2020 02:25:17 -0800 (PST) Received: from srini-hackbox.lan (cpc86377-aztw32-2-0-cust226.18-1.cable.virginm.net. [92.233.226.227]) by smtp.gmail.com with ESMTPSA id x4sm13942024wrv.81.2020.11.27.02.25.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Nov 2020 02:25:16 -0800 (PST) From: Srinivas Kandagatla To: gregkh@linuxfoundation.org Cc: linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH 7/7] slimbus: qcom-ngd-ctrl: remove redundant out of memory messages Date: Fri, 27 Nov 2020 10:24:51 +0000 Message-Id: <20201127102451.17114-8-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> References: <20201127102451.17114-1-srinivas.kandagatla@linaro.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Failure of dma_alloc_coherent will already throw a error message, so addition message is really redundant here. Remove it! Signed-off-by: Srinivas Kandagatla --- drivers/slimbus/qcom-ngd-ctrl.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/slimbus/qcom-ngd-ctrl.c b/drivers/slimbus/qcom-ngd-ctrl.c index 82dad7490588..c054e83ab636 100644 --- a/drivers/slimbus/qcom-ngd-ctrl.c +++ b/drivers/slimbus/qcom-ngd-ctrl.c @@ -689,7 +689,6 @@ static int qcom_slim_ngd_init_rx_msgq(struct qcom_slim_ngd_ctrl *ctrl) ctrl->rx_base = dma_alloc_coherent(dev, size, &ctrl->rx_phys_base, GFP_KERNEL); if (!ctrl->rx_base) { - dev_err(dev, "dma_alloc_coherent failed\n"); ret = -ENOMEM; goto rel_rx; } @@ -728,7 +727,6 @@ static int qcom_slim_ngd_init_tx_msgq(struct qcom_slim_ngd_ctrl *ctrl) ctrl->tx_base = dma_alloc_coherent(dev, size, &ctrl->tx_phys_base, GFP_KERNEL); if (!ctrl->tx_base) { - dev_err(dev, "dma_alloc_coherent failed\n"); ret = -EINVAL; goto rel_tx; }