From patchwork Tue Aug 13 14:53:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Georgi Djakov X-Patchwork-Id: 171198 Delivered-To: patch@linaro.org Received: by 2002:a92:d204:0:0:0:0:0 with SMTP id y4csp1009583ily; Tue, 13 Aug 2019 07:53:49 -0700 (PDT) X-Google-Smtp-Source: APXvYqxaPs/mqVpWoCjXG8CVRDXvJD2z0wmI3bwEBUkuoLOf+RK1IzteXOO9LgTv5wj5dvQ7F/cM X-Received: by 2002:a17:90a:a013:: with SMTP id q19mr2578872pjp.64.1565708029386; Tue, 13 Aug 2019 07:53:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1565708029; cv=none; d=google.com; s=arc-20160816; b=tuYd6usc+MGXARtIGHnDOPjU6CExCZULjMUAZVHAKfJ+Sy5ytXCywUKOUBM7BAKhM5 rWYNsxS6SIdOIEY9vVuZgKeFhjWKvgz8xTC2QotoebVBmHy3+vDKD2ESYZl6LRRyvqNq hDaqKFzX5ROrJ3UQ4eHFCZrr9RzWLq2NwhRFrpLukxY261DKqScmGIf1SofzRefhade2 cIekUxWpHF3RX3AUE8mYQM669FVIP6a6Zo0Z0FQq7Bijz9SQNfUwWLNbyjItwm8o8TOg uXeh2TR3/+s8Ovz/SEFlFZiWUpbI1JCEDmH59nMASAufqeXJ1JoG9oNn5VwtJP4tX99S vWwg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=ebrdQpGbryAbE+PVSjTFqlvSSqkSS1ZgUmlnEvCria0=; b=FNve6wRgUp1yaYBkkE3OmtsoHUx1xsJDHjas0HOQyWpAsPYTzas2IkVsM9JF0a6kQ3 md5k1t1po6mkeyrGZ2VuX4sNdc3c1PabkXvZDeazeit5YFBn85BbKRAa4r5V7RaflF3o 8ocaddTZPog/yhE+5nwUWe+x1vIEwcTR23uLUEYCAn0tMXt/GJEjnGxfb++Z/8SISMiw 0AMj7zXLtQ5F8plMFo5YcYuh8vmEmWnXp2lfHYnYGHHgMCv2Lt8Y88kdy3w+m+9rTjZO 3OrLAXxFyZqEips2OHNtfYRXDgwzfeGKdC42C7JgghhSo/ekLpUNoc2bN/hWzoE0ieWV THdQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ePZ0JHbr; spf=pass (google.com: best guess record for domain of linux-arm-msm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-arm-msm-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 m22si64924343pgh.190.2019.08.13.07.53.48; Tue, 13 Aug 2019 07:53:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-arm-msm-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=ePZ0JHbr; spf=pass (google.com: best guess record for domain of linux-arm-msm-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-arm-msm-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 S1729670AbfHMOxs (ORCPT + 16 others); Tue, 13 Aug 2019 10:53:48 -0400 Received: from mail-lf1-f68.google.com ([209.85.167.68]:42315 "EHLO mail-lf1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729495AbfHMOxs (ORCPT ); Tue, 13 Aug 2019 10:53:48 -0400 Received: by mail-lf1-f68.google.com with SMTP id s19so14288463lfb.9 for ; Tue, 13 Aug 2019 07:53:46 -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:mime-version :content-transfer-encoding; bh=ebrdQpGbryAbE+PVSjTFqlvSSqkSS1ZgUmlnEvCria0=; b=ePZ0JHbra+U1kuq1bS8PxUS1CRnF7QVaKlFGUIrgNjPDCu4+CCfrMg478Kb1CtUJH5 vwdSrpBbXu81gGSt/pIg2vEHaMMOkhg+qpcLnEPCeBtgzNkT5Sw77IW4fkugaERdtQ6k gBW79xeVntMdVPqPn+LET9tGnch6A4FieJNKmotqtgIaWkiqCiktVaIjlgkJbLXo3Am1 UeuWkhbrgOeNuAdaSume6zhNLlQ5n3/wgIU52bR+GtcKp6Bi40tqRsggtqc1+JbrP/gn O0bBpACubGme787uuCgKQbTv0V7zSZcmi1+d2rw/QseVTywbyZcdZFKF9mEVvWQK+zHU eGoQ== 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=ebrdQpGbryAbE+PVSjTFqlvSSqkSS1ZgUmlnEvCria0=; b=uABvMLdV2VW9v1u7RLBo3OGCK+AdCUqFhjsdXYGdZ4EzIVp0jf2KklWFScniUG/B9i ENwlbJCTglGfVaohW6uMduOhLf8cgkIPOtBu/Worp1ajf5Lgsxc3YMm1XqXrpq2snCmX 8YbLp7/FiEAokGELOjOIV6eg6IFj3O+9LctyQrnyO8TtASqcvPPohJ+a/x8+LvfsAAvY V76y/eT/t9B88PJhw4P2iaPYaKQVsAJ4b22JZW/Gn5L8cDecIMDXNJZZRoTANrYslQXN jv513St+Wd86qlDcbkAE4d5rVPUrR+/F4Z2ydv8beJN10hmYxB0JOdsC5siecdmHVEqj j+pg== X-Gm-Message-State: APjAAAW81qCgdpOTW3wxng4ccE0xtAUyuAh51dgAoRnDObA7kprPok7x E1xnamdPAKmceN1kjENEPSsevw== X-Received: by 2002:ac2:550c:: with SMTP id j12mr18293687lfk.171.1565708026123; Tue, 13 Aug 2019 07:53:46 -0700 (PDT) Received: from localhost.localdomain ([212.45.67.2]) by smtp.googlemail.com with ESMTPSA id r68sm19628100lff.52.2019.08.13.07.53.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 13 Aug 2019 07:53:45 -0700 (PDT) From: Georgi Djakov To: linux-pm@vger.kernel.org, evgreen@chromium.org Cc: daidavid1@codeaurora.org, vincent.guittot@linaro.org, bjorn.andersson@linaro.org, amit.kucheria@linaro.org, dianders@chromium.org, seansw@qti.qualcomm.com, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, georgi.djakov@linaro.org Subject: [PATCH v4 0/3] interconnect: Add path tagging support Date: Tue, 13 Aug 2019 17:53:38 +0300 Message-Id: <20190813145341.28530-1-georgi.djakov@linaro.org> X-Mailer: git-send-email 2.22.0 MIME-Version: 1.0 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org SoCs that have multiple coexisting CPUs and DSPs, may have shared interconnect buses between them. In such cases, each CPU/DSP may have different bandwidth needs, depending on whether it is active or sleeping. This means that we have to keep different bandwidth configurations for the CPU (active/sleep). In such systems, usually there is a way to communicate and synchronize this information with some firmware or pass it to another processor responsible for monitoring and switching the interconnect configurations based on the state of each CPU/DSP. The above problem can be solved by introducing the path tagging concept, that allows consumers to optionally attach a tag to each path they use. This tag is used to differentiate between the aggregated bandwidth values for each state. The tag is generic and how it's handled is up to the platform specific interconnect provider drivers. v4: - Picked Reviewed-by tags (Thanks Evan!) - Addressed comments on patch 3. v3: https://lore.kernel.org/lkml/20190809121325.8138-1-georgi.djakov@linaro.org/ - New patch to add a pre_aggregate() callback. v2: https://lore.kernel.org/lkml/20190618091724.28232-1-georgi.djakov@linaro.org/ - Store tag with the request. (Evan) - Reorganize the code to save bandwidth values into buckets and use the tag as a bitfield. (Evan) - Clear the aggregated values after icc_set(). v1: https://lore.kernel.org/lkml/20190208172152.1807-1-georgi.djakov@linaro.org/ David Dai (1): interconnect: qcom: Add tagging and wake/sleep support for sdm845 Georgi Djakov (2): interconnect: Add support for path tags interconnect: Add pre_aggregate() callback drivers/interconnect/core.c | 27 ++++- drivers/interconnect/qcom/sdm845.c | 141 ++++++++++++++++++++------ include/linux/interconnect-provider.h | 7 +- include/linux/interconnect.h | 5 + 4 files changed, 145 insertions(+), 35 deletions(-)