Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp471651imm; Thu, 31 May 2018 04:03:08 -0700 (PDT) X-Google-Smtp-Source: ADUXVKKiA2MYq4dEieZG9Nr/Y6iPo+aLJfvfoMUISIcRxGEoNrKV+aTvtb2cziogfga4DvIi5k+n X-Received: by 2002:a63:711c:: with SMTP id m28-v6mr5155042pgc.66.1527764588773; Thu, 31 May 2018 04:03:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527764588; cv=none; d=google.com; s=arc-20160816; b=Jcz7besyWfWCabVGLoJoonPFXNzBy7v9NqHvBUTrzngRuYhbqpytq3YAH/V8EtyShO 5JnggrT1LQrvy9fJ4Fc6pAu97Prqw3YdzHKFV2W5eYtyucp6O8V/hIvXoa/4iiK5eujx zcZMv7lsQ2pyNruCXRrgBpYB2QfyJruQXmk+CisHcUWiuvEoKgfanUhTYGnbEy+DsGS2 8W4Gj9F36UghX6pPOOlVNg3sdufjOSzoml2tZf7GErKKrhknOdtwpVZRMGEHF6RxZuFW yebbodMcyIaqOWFkACF+cLGzqBoHNlgTwbspDcPcuvuvQ4qhBBDT7L3roXARcyxnfOeY /wYA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=vz+XXG5tw6+v5s0pqnBJYXJCGVokR+uNo49T5ce8ELM=; b=y7pbI5ROPU5tp3pGCsjPVQpH1uSPX6T4wMW9G7bRkKnXWfxUU3h81V/RfBE/ZJT874 EVOMRM9Wlmb0WeOjsMeiLTOEyv6D63fK3becqDaqjz2FVNKD7vMzPDqafUslx0/BtB7u EywxzjHkqlnpWaDeuTI3sjtQA22z8/xgY1K3A6ZX+tiP28D9yzauTb+JkgpYxxsio6JO kapFts8xR56mH6yAvCP9wmmAiRXovHViyXTf4JVxcwMfm8g4lMfjWnydcXPVUqXSm9aT rRLPJf4MrILAJo5kdyXU6MCYidJk7QQw1neVGWl54GSensZwdzyOCPO8WeeEa5vODgaS v/9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RBpaDNtH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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. [209.132.180.67]) by mx.google.com with ESMTP id z141-v6si4013304pfc.95.2018.05.31.04.02.54; Thu, 31 May 2018 04:03:08 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=RBpaDNtH; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-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 S1754553AbeEaLAJ (ORCPT + 99 others); Thu, 31 May 2018 07:00:09 -0400 Received: from mail-lf0-f65.google.com ([209.85.215.65]:44267 "EHLO mail-lf0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754455AbeEaLAH (ORCPT ); Thu, 31 May 2018 07:00:07 -0400 Received: by mail-lf0-f65.google.com with SMTP id 36-v6so7161381lfr.11 for ; Thu, 31 May 2018 04:00:06 -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=vz+XXG5tw6+v5s0pqnBJYXJCGVokR+uNo49T5ce8ELM=; b=RBpaDNtHb8y92Dy/uzkxcQUUOKQsKE/7vni1aZI0YfbrX0hQiM2/ooYpoNBAYzZbgS WplJZXgkArL++h4kqR5qudaL0msuHSuGVgTV0ObrxLZ0F0q3IZNV6f7ZRQehN0pTnnOf iPRoWfrRms1Ybv6tl863zd3orWa8SfzeIOHek= 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=vz+XXG5tw6+v5s0pqnBJYXJCGVokR+uNo49T5ce8ELM=; b=K48I258guYniUBT2+0HDYcEvMAZJxsW2VkIRIOOCU7FR3pBH1eKzQhKq9sUMvh20DG HQ7gCOkq4VFoCLGpYW2I1X8hrWt58mK+0tYnQcCciq0OyU2nDfDwpnm19nBec/BN7uOW YzjOHNJdqtSLYg0qg3lp5rKh9CInv+heHKBTg5cDkogZ0J7ZN9HxH7JL8uhthFVIsemO aTX87sZoumZ4loNXY448OW+DM4eDJh9Js7aUrABBwi4QdE4/dm2v1cOfNDJQftErioaQ azLV2Wa28hQAmaQP794f6RbDguTJVXGzYMhiRmYCXdFRNSKgfpnueU/5rZT7RpNCvX03 DqPA== X-Gm-Message-State: ALKqPwf51U/71gWGGNoqtL9dFArAE2gIR83/ECmi8cZrkmTrFtE7Bz5g OjcNrQiq+E3YeRv9E/5XQio0Hg== X-Received: by 2002:a2e:8595:: with SMTP id b21-v6mr4687365lji.131.1527764405853; Thu, 31 May 2018 04:00:05 -0700 (PDT) Received: from localhost.localdomain (h-158-174-22-210.NA.cust.bahnhof.se. [158.174.22.210]) by smtp.gmail.com with ESMTPSA id b20-v6sm7454383ljf.51.2018.05.31.04.00.04 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 31 May 2018 04:00:04 -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 v3 0/5] PM / Domains: Add support for multi PM domains per device Date: Thu, 31 May 2018 12:59:54 +0200 Message-Id: <20180531105959.14843-1-ulf.hansson@linaro.org> X-Mailer: git-send-email 2.17.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Changes in v3: - Drop patch 1->4 as they have already been applied. - Collected tags, for tests and reviews. - Minor update to function descriptions in patch 4 (earlier 8) and 5 (earlier9). - Note, because of the minor changes, no history is provided per patch. Changes in v2: - Addressed comments from Geert around DT doc. - Addressed comments from Jon around clarification of how to use this and changes to returned error codes. - Fixed build error in case CONFIG_PM was unset. 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. 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. Kind regards Ulf Hansson Ulf Hansson (5): PM / Domains: dt: Allow power-domain property to be a list of specifiers 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 .../bindings/power/power_domain.txt | 19 ++- drivers/base/power/common.c | 43 +++++- drivers/base/power/domain.c | 134 +++++++++++++++--- include/linux/pm_domain.h | 15 ++ 4 files changed, 183 insertions(+), 28 deletions(-) -- 2.17.0