From patchwork Fri Jun 15 09:59:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Srinivas Kandagatla X-Patchwork-Id: 10465951 X-Patchwork-Delegate: agross@codeaurora.org Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 0D05360532 for ; Fri, 15 Jun 2018 09:59:49 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id EC2EA28D48 for ; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E05DC28D49; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 90CF928D4B for ; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S936212AbeFOJ7r (ORCPT ); Fri, 15 Jun 2018 05:59:47 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:41841 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934900AbeFOJ7p (ORCPT ); Fri, 15 Jun 2018 05:59:45 -0400 Received: by mail-wr0-f196.google.com with SMTP id h10-v6so9302340wrq.8 for ; Fri, 15 Jun 2018 02:59:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=u9uuGzmf4enrIny/JvPD087s+CCtQ/fCgWXfahiRIa4=; b=dX/5FjoEXsJtbIDxwy4OI5yHoJmNSg2JPyuU3kOvx3LdrqFSSZB3mUhhWWGM7JG8FD 9KZ06YL3nKTvvVd8A6NfqOl1DnkbhNkUtThNGBii3wTIx1i8BPdEbng5x6w3avDFzeyl 5qtVigcWmWe+tqfFsaPpY+rKg9zlip141vMRY= 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; bh=u9uuGzmf4enrIny/JvPD087s+CCtQ/fCgWXfahiRIa4=; b=gco/k8NDWPz3aF/YZoObOvJxSzhq0oRXblGkNOEYTRrVUBDv6nrW5qvOZV+fjjcTvs nPGKTcUQm2M+bsC0qjJKOL90XU654t5O42CDtcJGfQ4fGT8jKKaF35U1Sk6EsEwMrxXj 7dS13youJKW/o+xFW0PY2uOisJThO5LVbSLoDXFatcY4BnA91Pg6V6Zggw9/5HZCXh0m sFjFCrgB6zUVm39MRiPAYyvcCVYDDn3TZb2r9z2mHugIdfuc9oE2DQniiWVEjZRuoRzd dvlMAG3P/HoUhwTYChp+uuBVu9YpCGP8MIdnyYWRLfx/A1BTIEjF3hDx+dHPyjkZsvU8 sXJw== X-Gm-Message-State: APt69E0rVTZfzXUnbLJwTrCPwmIvb0sMHrXAun/QNvzgzgKnzk8Mo4Bp djNMd0xtwp+5lDB7n7h7WGccmQ== X-Google-Smtp-Source: ADUXVKILCJh9n4VR1JljnHmyobvTCLOOFSEPl97A4ET+wKEcabN8YTzW9mNZ1ZxxD3EFDGEQf4inBA== X-Received: by 2002:adf:fd88:: with SMTP id d8-v6mr981113wrr.276.1529056784183; Fri, 15 Jun 2018 02:59:44 -0700 (PDT) Received: from localhost.localdomain (cpc90716-aztw32-2-0-cust92.18-1.cable.virginm.net. [86.26.100.93]) by smtp.gmail.com with ESMTPSA id p3-v6sm7502812wrn.31.2018.06.15.02.59.43 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 15 Jun 2018 02:59:43 -0700 (PDT) From: Srinivas Kandagatla To: ohad@wizery.com, bjorn.andersson@linaro.org Cc: linux-remoteproc@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: [PATCH] rpmsg: core: add support to power domains for devices Date: Fri, 15 Jun 2018 10:59:39 +0100 Message-Id: <20180615095939.1331-1-srinivas.kandagatla@linaro.org> X-Mailer: git-send-email 2.16.2 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Some of the rpmsg devices need to switch on power domains to communicate with remote processor. For example on Qualcomm DB820c platform LPASS power domain needs to switched on for any kind of audio services. This patch adds the missing power domain support in rpmsg core. Without this patch attempting to play audio via QDSP on DB820c would reboot the system. Signed-off-by: Srinivas Kandagatla --- drivers/rpmsg/rpmsg_core.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/rpmsg/rpmsg_core.c b/drivers/rpmsg/rpmsg_core.c index b714a543a91d..8122807db380 100644 --- a/drivers/rpmsg/rpmsg_core.c +++ b/drivers/rpmsg/rpmsg_core.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include "rpmsg_internal.h" @@ -449,6 +450,10 @@ static int rpmsg_dev_probe(struct device *dev) struct rpmsg_endpoint *ept = NULL; int err; + err = dev_pm_domain_attach(dev, true); + if (err) + goto out; + if (rpdrv->callback) { strncpy(chinfo.name, rpdev->id.name, RPMSG_NAME_SIZE); chinfo.src = rpdev->src; @@ -490,6 +495,8 @@ static int rpmsg_dev_remove(struct device *dev) rpdrv->remove(rpdev); + dev_pm_domain_detach(dev, true); + if (rpdev->ept) rpmsg_destroy_ept(rpdev->ept);