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: 10465949 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 B7DAA603B4 for ; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A38D728D48 for ; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 981B128D4C; 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 419AB28D48 for ; Fri, 15 Jun 2018 09:59:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934900AbeFOJ7r (ORCPT ); Fri, 15 Jun 2018 05:59:47 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:46547 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S936211AbeFOJ7p (ORCPT ); Fri, 15 Jun 2018 05:59:45 -0400 Received: by mail-wr0-f195.google.com with SMTP id v13-v6so9298134wrp.13 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=TCk9Frs7tEyQ6VBxgsqOPr5+wGSpTS8l57BT4jse8jpu2M49LHpenMOhYP4lNi7bdV QzvKGKxKQ9OzOHlKTl5pLCp7HnBta9Smc9Xx9a6yFZosYK93kWnLc0seno61GkWwEGn0 61pu1+yFrXcLbQarxPJIe7ku54JmvowAB2yGcb/YOWYRNfHpTnQOmCDtj+LD4RLzbt+6 WJ5Mz2v+xRjI8FiK5HCcRs5XDpYQCeuNtMbmh7bRDsGQRn48u9WVw+d0iRxPla2oaOcr lHtGyucr+xYsF0e3jVfRhgTJx6PjXMixaRifGtQ1uc3B4/Az5C0lV0bPiBO8Oyj4snoO kCiQ== X-Gm-Message-State: APt69E1WUEZV8fPJi4NkXQ9PW1oiv+COQUm+xbuy9INximBwgAW0qv1C Zvjrvm7OeiQ22o50+dqhkpSE42B8Kkk= 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-remoteproc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-remoteproc@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);