From patchwork Fri May 18 10:31:21 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ulf Hansson X-Patchwork-Id: 136278 Delivered-To: patches@linaro.org Received: by 2002:a2e:9706:0:0:0:0:0 with SMTP id r6-v6csp1056494lji; Fri, 18 May 2018 03:31:47 -0700 (PDT) X-Received: by 2002:a19:a591:: with SMTP id o139-v6mr21216001lfe.146.1526639507376; Fri, 18 May 2018 03:31:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526639507; cv=none; d=google.com; s=arc-20160816; b=szgAjPdKc6wjehs/c0lvZQd0kA/vQezYp+zMP0XzJz+pMLw7f3WNehHjj12KHlC/Sz kWLOgN02Nt+4gg4zLD4ZI1bV6DSWHdm9JNxCB5Gwstu/6KdzgKq+dfLybloQPChwIU+6 eTPMmPc8hiZR+V6I8Tflvrw13aHC8EWzwoX62qEqTdHMZyox/KrhEnir5ydBurdtbxs8 opO6JSTO11LpNt4xrxgDpLyqCMVJBWiC507cFyTXBByWQI3zcxfwnI5pflY+boLAwUdr HDcgqc5V4whuuMD5xU6aWxEE+Su/9t/BWr9RhIMILo/T+q9Tv9Z4KX8h3KWLdSxs7tDD W5nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:dkim-signature:arc-authentication-results; bh=FOwPx8WUPVPqHgAeNB/0QN6Y3eokiOLqlpz3at8zk58=; b=SfNktXZM4rh6wCo7nu7OuYBnxCI7r1kVO+g4+UXA5I0T5gIKWFDOphc36i1uiZE9Hc GWz8Fzk8h6L/fVT6oa6ZCnwYqExABs81fJaVMxkNKUtpCe5CgnabjLzEBRJXmcTK40nu FKT8UxvGkaxKiAt70uA/zV0HvOr7RKzMy4Kw/koLUxn6zO4Rzt2VQvTA4qbxiRnnxMCT IdrgGfr1hz2MWkyPYrrxNhkcECH3ER2cRdJZ688P/s3lnC7GXKU92pItxb0LDCfx1RTN TBJ0QM2e87hZEN162imAent06wJGW/ViFul09F7OH7rUlIvMoLcGIKnCTtpNsrtuCi0r Wxeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jlRHQp/h; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from mail-sor-f65.google.com (mail-sor-f65.google.com. [209.85.220.65]) by mx.google.com with SMTPS id g18-v6sor1761897ljj.1.2018.05.18.03.31.47 for (Google Transport Security); Fri, 18 May 2018 03:31:47 -0700 (PDT) Received-SPF: pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) client-ip=209.85.220.65; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=jlRHQp/h; spf=pass (google.com: domain of ulf.hansson@linaro.org designates 209.85.220.65 as permitted sender) smtp.mailfrom=ulf.hansson@linaro.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=FOwPx8WUPVPqHgAeNB/0QN6Y3eokiOLqlpz3at8zk58=; b=jlRHQp/hPQaVvLlxsydcWP44BEJ645rwxAU1GMydvFFi2JchsYRGz9YTfiJnRvM2IE iSuwKoHyC9TsU01pPdiiGyUABzWFU3WvVVvJ7O3ArrIiJ4TPvaFJ+x7xFDmouEKgXusB DFzC1HRQk/dMqDdqW4wHxAAeSt5IoshGPpSjU= 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:mime-version :content-transfer-encoding; bh=FOwPx8WUPVPqHgAeNB/0QN6Y3eokiOLqlpz3at8zk58=; b=jZClfz/OB/Qon4IS3ithw1Kd/tcr0Nqc4wDIsqSwqV7QTSGgfGlVcnhHmSn8RUjosn PUvCBR/HzUsAGqZ7ZFjSTjlzLKqzi/1s0J9EA3GgivpGDCelV92jXYieFlLUkCm3kwUz ALPasmec3VHZfdmqj/0O8565ae8ws5rLAlDKnGY+rdyYJtEceWPIKz9Gd9/TFW6TAUzL TDbrt4A0XEkpY7idpfbnZaJczxlTTJpCOJ+rNZLtsKh8sfq6+iKa6nxPXM0ve7cYUnjp DiAIzZ714sWSnaRXqNI4AVMxa5GkxmVO2zLWrE7144H8btLIDuWgza3eJBMmWcQm2DYp veOw== X-Gm-Message-State: ALKqPwfb8C1hgPZAaEo/8kkPaiMZ9P7Geg3gWzAKHIffNcC+AwfbIv5f qXez950RpbSXstrpFZDq76ZLElZJ X-Google-Smtp-Source: AB8JxZpyRdmtYbBZW7mSgVcT7te2KR1Q0mfItucUJl3i5RdYMnbWrg8VRLAPluv8spJu31UVLy3z/w== X-Received: by 2002:a2e:6a07:: with SMTP id f7-v6mr5279807ljc.145.1526639507105; Fri, 18 May 2018 03:31:47 -0700 (PDT) Return-Path: Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id u14-v6sm393447lfk.55.2018.05.18.03.31.45 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 May 2018 03:31:46 -0700 (PDT) From: Ulf Hansson To: "Rafael J . Wysocki" , linux-pm@vger.kernel.org Cc: Ulf Hansson , Greg Kroah-Hartman , Jon Hunter , Geert Uytterhoeven , Todor Tomov , Rajendra Nayak , Viresh Kumar , Vincent Guittot , Kevin Hilman , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-tegra@vger.kernel.org Subject: [PATCH 0/9] PM / Domains: Add support for multi PM domains per device Date: Fri, 18 May 2018 12:31:21 +0200 Message-Id: <1526639490-12167-1-git-send-email-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 There are devices that are partitioned across multiple PM domains. Currently these can't be supported well by the available PM infrastructures we have in the kernel. This series is an attempt to address this. The interesting parts happens from patch 5 an onwards, including a minor DT update to the existing power-domain bindings, the 4 earlier are just trivial clean-ups of some related code in genpd, which I happened to stumble over. Some additional background: One existing case where devices are partitioned across multiple PM domains, is the Nvida Tegra 124/210 X-USB subsystem. A while ago Jon Hunter (Nvidia) sent a series, trying to address these issues, however this is a new approach, while it re-uses the same concepts from DT point of view. The Tegra 124/210 X-USB subsystem contains of a host controller and a device controller. Each controller have its own independent PM domain, but are being partitioned across another shared PM domain for the USB super-speed logic. Currently to make the drivers work, either the related PM domains needs to stay powered on always or the PM domain topology needs to be in-correctly modelled through sub-domains. In both cases PM domains may be powered on while they don't need to be, so in the end this means - wasting power -. As stated above, this series intends to address these problem from a PM infrastructure point of view. More details are available in each changelog. It should be noted that this series has been tested on HW, however only by using a home-cooked test PM domain driver for genpd and together with a test driver. This allowed me to play with PM domain (genpd), runtime PM and device links. Any further deployment for real use cases are greatly appreciated. I am happy to to help, if needed! Kind regards Ulf Hansson Ulf Hansson (9): PM / Domains: Drop extern declarations of functions in pm_domain.h PM / Domains: Drop __pm_genpd_add_device() PM / Domains: Drop genpd as in-param for pm_genpd_remove_device() PM / Domains: Drop unused parameter in genpd_allocate_dev_data() PM / Domains: dt: Allow power-domain property to be a list of phandles PM / Domains: Don't attach devices in genpd with multi PM domains PM / Domains: Split genpd_dev_pm_attach() PM / Domains: Add support for multi PM domains per device to genpd PM / Domains: Add dev_pm_domain_attach_by_id() to manage multi PM domains .../devicetree/bindings/power/power_domain.txt | 18 ++- drivers/base/power/common.c | 33 ++++- drivers/base/power/domain.c | 154 ++++++++++++++++----- drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c | 2 +- include/linux/pm_domain.h | 79 +++++------ 5 files changed, 208 insertions(+), 78 deletions(-) -- 2.7.4