Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp2303079imm; Wed, 16 May 2018 10:46:05 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo8ni1dab+0QQ2D7/L0ZrqsMtoAON1Y7W6UqL4gpIgmRBzQ0YQV4SAgNGvsgaCbiioDywbu X-Received: by 2002:a63:b25b:: with SMTP id t27-v6mr1471466pgo.174.1526492765521; Wed, 16 May 2018 10:46:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1526492765; cv=none; d=google.com; s=arc-20160816; b=jsXIjiHELl7QecurKR08N+bY7S5U3WGWbiFmRS9zl+RfAJSLSnsXFrE97Z/u1DtQWg 323h2JceZ0AFJXf7j7bmSkb16m1O8IbVd3Yz4PCH/leD9B+5NUeT7NpuBrAr85kjI50x ZzIn1Oyzi1lbv4+LsPvPWa4G57dLK06O7cg9BOq0F3JeKBrsnpYSRmCeKxl1bvp85EUc FV8/EDkt4Dpap8+82bGTU0e5cbLwthZHsFAySLsucm65c2fnnJEN2Wm32QC0Z/59V8pK byWjhe2XkaNQ8kXzyDTx2hAhLe+w0VNn84T/1F7H0CRnTjfzyUWPKw76wQOXGQSr1moy 4iRQ== 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 :dmarc-filter:dkim-signature:dkim-signature :arc-authentication-results; bh=6B0Pz76CNE6SQ0NCo4YyG/LmbC4+KuvkGXE1W6LLzlY=; b=TYJg4tvanokJrIMsFALdTciqRMMOCyTSY2Z3AiKwyWk8AtDFG80EcV4EOvUKDSRjoq MtBfrRQdZ+WTO04goenHfKWhOIWTYf8fgZWYs8N+AmY4El8co5MMeFq4nc5NFBOKoLT0 7fh1fcarXNgYoQiWGVBtMjoy2hms2w2oWc/kRq6VW+6jtQzxprDH5puD8eA7PZrxKNEv nPp0GoK6IxtQ2uvhaZ3oEXQLug6XG7eko0YM7ZlU0Pqgo82AOryjZR0ppNmkn5AWgDj7 SYBhrkyTE6ukXKu608EH4iT+tfIHssifCKBC7cuWIYYFh6ftDYFAUFhsbf8ywzYQYbfW ChnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@codeaurora.org header.s=default header.b=Emqz1bzc; dkim=pass header.i=@codeaurora.org header.s=default header.b=Emqz1bzc; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z2-v6si2463278pgp.234.2018.05.16.10.45.51; Wed, 16 May 2018 10:46:05 -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=@codeaurora.org header.s=default header.b=Emqz1bzc; dkim=pass header.i=@codeaurora.org header.s=default header.b=Emqz1bzc; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751478AbeEPRn5 (ORCPT + 99 others); Wed, 16 May 2018 13:43:57 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:36100 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750858AbeEPRnz (ORCPT ); Wed, 16 May 2018 13:43:55 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id C88D260B23; Wed, 16 May 2018 17:43:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1526492634; bh=bxKJu2Gn7bv56uzAZueNi6oWScEI4Mmh7bprjnO0hoI=; h=From:To:Cc:Subject:Date:From; b=Emqz1bzctrEDgJKh38EGixSD4HosWStUakb0Hj/H3mO5Qpai8N+pQKCBdAL22l43/ H3DP8YzGC8ZWJ94aJHMIn8JkMqd6aK81ilHo0tBm3WG7VxtPKUH6WTZV+j9mWDdXtt xNvuvl+GdtjeCqGq7pirQYzPE3eepc1ng5NljoE4= X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on pdx-caf-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,T_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0 Received: from rishabhb-linux.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) (Authenticated sender: rishabhb@smtp.codeaurora.org) by smtp.codeaurora.org (Postfix) with ESMTPSA id 126756055C; Wed, 16 May 2018 17:43:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1526492634; bh=bxKJu2Gn7bv56uzAZueNi6oWScEI4Mmh7bprjnO0hoI=; h=From:To:Cc:Subject:Date:From; b=Emqz1bzctrEDgJKh38EGixSD4HosWStUakb0Hj/H3mO5Qpai8N+pQKCBdAL22l43/ H3DP8YzGC8ZWJ94aJHMIn8JkMqd6aK81ilHo0tBm3WG7VxtPKUH6WTZV+j9mWDdXtt xNvuvl+GdtjeCqGq7pirQYzPE3eepc1ng5NljoE4= DMARC-Filter: OpenDMARC Filter v1.3.2 smtp.codeaurora.org 126756055C Authentication-Results: pdx-caf-mail.web.codeaurora.org; dmarc=none (p=none dis=none) header.from=codeaurora.org Authentication-Results: pdx-caf-mail.web.codeaurora.org; spf=none smtp.mailfrom=rishabhb@codeaurora.org From: Rishabh Bhatnagar To: linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org, linux-arm@lists.infradead.org, tsoni@codeaurora.org, ckadabi@codeaurora.org, evgreen@chromium.org, robh@kernel.org, Rishabh Bhatnagar Subject: [PATCH v7 0/2] SDM845 System Cache Driver Date: Wed, 16 May 2018 10:43:41 -0700 Message-Id: <1526492623-20527-1-git-send-email-rishabhb@codeaurora.org> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This series implements system cache or LLCC(Last Level Cache Controller) driver for SDM845 SOC. The purpose of the driver is to partition the system cache and program the settings such as priortiy, lines to probe while doing a look up in the system cache, low power related settings etc. The partitions are called cache slices. Each cache slice is associated with size and SCID(System Cache ID). The driver also provides API for clients to query the cache slice details,activate and deactivate them. The driver can be broadly classified into: * SOC specific driver: llcc-sdm845.c: Cache partitioning and cache slice properties for usecases on sdm845 that need to use system cache. * API : llcc-slice.c: Exports APIs to clients to query cache slice details, activate and deactivate cache slices. Changes since v6: * Remove the max-slices property from DT. * Make client's slice_ids as macros. * Unlock mutex while returning from function in case of error. Changes since v5: * Remove client information from DT. * Make the llcc driver data as global. * Check return value of llcc_update_act_ctrl function * Change error returned from -EFAULT to -EINVAL Changes since v4: * Remove null pointer checks as per comments. * Remove extra blank lines. Changes since v3: * Use the regmap_read_poll_timeout function * Check for regmap read/write errors. * Remove memory barrier after regmap write * Derive memory bank offsets using stride macro variable * Remove debug statements from code * Remove the qcom_llcc_remove function * Use if IS_ENABLED in place of ifdef for built-in module * Change EXPORT_SYMBOL to EXPORT_SYMBOL_GPL * Remove unnecessary free functions * Change the variable names as per review comments Changes since v2: * Corrected the Makefile to fix compilation. Changes since v1: * Added Makefile and Kconfig. Changes since v0: * Removed the syscon and simple-mfd approach * Updated the device tree nodes to mention LLCC as a single HW block * Moved llcc bank offsets from device tree and handled the offset in the driver. ckadabi@codeaurora.org (2): dt-bindings: Documentation for qcom, llcc drivers: soc: Add LLCC driver .../devicetree/bindings/arm/msm/qcom,llcc.txt | 26 ++ drivers/soc/qcom/Kconfig | 17 ++ drivers/soc/qcom/Makefile | 2 + drivers/soc/qcom/llcc-sdm845.c | 106 +++++++ drivers/soc/qcom/llcc-slice.c | 337 +++++++++++++++++++++ include/linux/soc/qcom/llcc-qcom.h | 180 +++++++++++ 6 files changed, 668 insertions(+) create mode 100644 Documentation/devicetree/bindings/arm/msm/qcom,llcc.txt create mode 100644 drivers/soc/qcom/llcc-sdm845.c create mode 100644 drivers/soc/qcom/llcc-slice.c create mode 100644 include/linux/soc/qcom/llcc-qcom.h -- The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project