From patchwork Mon Nov 7 17:30:48 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 9415471 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 B471460585 for ; Mon, 7 Nov 2016 16:33:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A6CD728B29 for ; Mon, 7 Nov 2016 16:33:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9B85328CCE; Mon, 7 Nov 2016 16:33:01 +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=-4.1 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_MED, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 291A328B29 for ; Mon, 7 Nov 2016 16:33:01 +0000 (UTC) Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.85_2 #1 (Red Hat Linux)) id 1c3mpM-0004bH-ME; Mon, 07 Nov 2016 16:31:20 +0000 Received: from mail-db5eur01on0063.outbound.protection.outlook.com ([104.47.2.63] helo=EUR01-DB5-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1c3mpF-0004NA-Ki for linux-arm-kernel@lists.infradead.org; Mon, 07 Nov 2016 16:31:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=fMnvxRbip1eI0GYCuEkCjNbrGagidYgMFsm36TiTmaY=; b=Kwl3pl5zRUecwZhsmf3NWZC+PplPCK/QvTggYMN4eZxRyptJlHHQo1EAOFLKUcnyxvHnITQAhl9sCgEgcfkz5JSDUd/qPqhzgNbA/P/99kKIARvtAx3XQNpYe6GZYEDhmm8iKz+WRQAopuDWz6d/aQ2BlCoFkgTY+x1UcoPp228= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=frank.li@nxp.com; Received: from lizhi-Precision-Tower-5810.am.freescale.net (192.88.168.1) by DB4PR04MB267.eurprd04.prod.outlook.com (10.242.231.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.707.6; Mon, 7 Nov 2016 16:30:42 +0000 From: Frank Li To: , Subject: [PATCH V3 1/2] ARM: imx: mmdc perf function support i.MX6QP Date: Mon, 7 Nov 2016 11:30:48 -0600 Message-ID: <1478539849-10834-1-git-send-email-Frank.Li@nxp.com> X-Mailer: git-send-email 2.5.2 MIME-Version: 1.0 X-Originating-IP: [192.88.168.1] X-ClientProxiedBy: CY4PR21CA0015.namprd21.prod.outlook.com (10.172.122.153) To DB4PR04MB267.eurprd04.prod.outlook.com (10.242.231.22) X-MS-Office365-Filtering-Correlation-Id: ff609dfd-ac50-44ba-b6d5-08d4072b6eef X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 2:LDQ993g1xKh3IUNlWH2wjiVoY34PbV6BfQC5pz0Gtr7/HEbUIjjxGJLdDleEN3ybotJD5/eiUvVan7MIXI2eNBaSPNzT5a6gzRJKMsQAD/Q9xQmIhk7mdx/N2pIz2oSVuh02Bz81oH3UXN/Xxdibsqfzy7BGN+sBimPF64FyCGpVuphiS7vAPSTLs1Uc3RUUdSjSSxka4hLtSthTBsTAZg==; 3:m6gltQ2CIU9oCxQAG/hCt9Z932dsGTTtb0CxG0hJfL6k+1wyChqe55Ju7P3BF7qzykzVL7IKj8JXSCrcqjyka4u4dwfEqu/UDnnhOYXkpSp3xee2LTHQGoQyGdrHWKXHnxx/HcZgcLRItuNTb1V2cQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB4PR04MB267; X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 25:VDbreEvgHP094D8mpMunoKg7whyvuIb30gwwbK7OH3dhSmn/Kfg/H3COFn1gWuRD93rYc8LtHd5onGWl6iXmjzC1daJ4jHvcNUEcHc4rAlMIHyg1cVnPCV9wtFLA2Dz9iI4kc8ZFgXrVTJS5nHYJOVaVwpcQHqdgmHqXh0tfEfISbE5Qbz5KjTpj6ZX/teqyskIUTM/ILTwj0J9aOra4QrzYSLD1ue4eBeqXQtOihmrsc5XtSbh/SwRSNPUhXukGJVSy8aBffxMQXz+oTS9noD7QFo0XFL8MskVLN3pMnIg3qq7RW6gcAuLowEcURrXvLGrpq06gq4IRdiYHUibOM4RtMP2nv7TPsZjqqz4YZqmLZwFmwZeGN/9pmjmaUIuFzuMh8HAS0pHqKnHaeZe764ZgMMVvs/npoD77dIiVMxsE8HapLHTBkQsh1pGZmkhKDokAS1rMRxT6R3/Q38ZTT0q00wETOuucYfQ66csuXNJvCG25LkooXwD/HnvwJaWBxgw/YYYCtnJQo3pPTlaIiEduA1JKjPhsdsICKval8BTfijR0G9+JHQuHqz2D7DzCQ3KtzF+KduqsZN4W2cSFzFnN57FdSXt4y95nBos0Lhgrc9Bw7x93nUxq49suu+l8N4HgVMQAXZreMzvb/gtppxCqBCmpDnVjv6v1nCwL0+UAK9y7V0MdqYZCSnp/Eq6fErGqSTLPgQnTW/zh3Bwab3wHZxBOb65QZtXZrcb4Plc= X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 31:EoxdYYeP0pbsd+IqWJsGvXgRO5ZAYUHfZR8F1G85x9xIaL8J+JsfTckf7vBLAyCuvKuFf0MjQlTb3PulJEsPfgCWWhrjgt01X9vsY0I5srFusBn5xmmHKTil64eGX4eJGRwTqJVuebuyNHxaJEDop4IQSz106zYqrh6d4Kw5pkspzuBLqVCfCNUQjljT3yBt/TjgeckWX4qnIt+l6m4VsfsPVFDCMsuP3smE3+Qq37iukS+1wC1SxjDK/DsSgm5i; 20:v3DVWc5OR4qgnGUKUe8IXg8TkgPxhcU7XyzGZf3j4cgAGWBOtCPbLukRucXGmpI4ma8W4jLqIfSdwVqFEOOWHpXsrxIypMX38iWbK54z6UlhMkL4rjRM6/BYesamn4IJz87LCA4VPMEejV+MkpDY8TuYfcnk8r5kqIc2mJe58taAB5EFGMDM4ONlfHQV8NPWdu/O+CSoFlSMIEr9EYDlIyt0uSOjzBn/GI9/O5xs+i9+OCm4CtS9arxeAe2riJhWPujFd4Vja4q1IpsA9rkOY66AqNvVGjMtVCKmFfZ21og2nEqQuzU2NUE2tq08KMRhfMwyNZuo3n9bHX0a/nqPIMpNKV8yg9ghZFmReOBJv2tdmiv65b9pgPPvYVlYz+qDNFfVEBuv8diZI3+oWFT5Ro6+P15LaGLmm35G7Y6+h1Qi7AcqXIpKWi31HTrFcwav0HgYLlWAeJgxPILZtKW1cohXkIm4XIcJdJdR635Fw2f9HwrwIdgkYlGJvqZ8kpfK X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6045074)(6060229)(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6061226)(6046074); SRVR:DB4PR04MB267; BCL:0; PCL:0; RULEID:; SRVR:DB4PR04MB267; X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 4:yjBR+JQ8/6b6tA/tEMtW4lUtYZ85ZDM04ftAPiXrmcsYWO3oDh11iyK3cHEZp/FaDpgrtQg6D6E2OIzpoFWWhuYE2Rkn8ZZ9lnaueWneur/adYxqrtAjpG79mQZIArLHjuCb/tp74VfXLtvskFkWy+TPOirpJClFlp15V5gjlg/U5gBp1ZX3qLPrAalcjijcf8bHY+Rp1hW0nqxtoa6aX23fAhpZL062bTXHcG5cD6xaNVAywYAL8rlD8dYS1Ux/4yDTmqxKRcTCOeMZ3qyR8Ed9EeNezh/Ox0nADGTgaprJcCF7KPtBg7nL6Nnq+4M7vxKWaS/LqDRfCRy5L9xuPTIftdw2K4okvmVFDCgHyJm+O8oJJ/3iMytb5HIXCbo2hwCIFUucPsDfTX98QIcXEcTuQJ9SHAps9l7joJcKeqBBtjzVcX4ScBkqHa60czH17cWg8AGgs77M2xetUqYkwyaQkCaQvVtURzS5FVme6jEUiIdBobYMqQ+qTmtqXLW51XhnMJQEKXOFDjSb0XzEy1EO5J/N5ZV3u5pISJGhfdg= X-Forefront-PRVS: 0119DC3B5E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(189002)(199003)(8676002)(68736007)(305945005)(5660300001)(6116002)(586003)(3846002)(50226002)(50466002)(36756003)(77096005)(5001770100001)(7736002)(97736004)(81156014)(81166006)(92566002)(189998001)(48376002)(66066001)(101416001)(47776003)(5003940100001)(7846002)(50986999)(19580395003)(4326007)(2906002)(86362001)(105586002)(229853001)(19580405001)(42186005)(106356001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR04MB267; H:lizhi-Precision-Tower-5810.am.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB4PR04MB267; 23:EOCTZc778DQhOZMKIFkgWBzX2NOUkXLI7edFN+z7P8?= =?us-ascii?Q?fGf93stmgd2qB+gp+UOAR7Z2ZXeUWzN27TgZkipZ+2w9EfpHHY6mjkI0AcHn?= =?us-ascii?Q?Cpsq+ksJDapL/DYwZsNi313z2Qy720r0OsTIjJOJ90z72QA6qSPXjnMRsYQr?= =?us-ascii?Q?VNEU+5P9r6+p4syciCrv1aFyvRqGldlmkuDC+vB/WigZ1Lwm+ygA4fkBo/3t?= =?us-ascii?Q?TjvRnEYqq3YDPZTFba9gSqGqHIVU693xCSyxA1ha8yo5LwjkPJEdYI9YYVPZ?= =?us-ascii?Q?ghd9xqeXxoUYQFIT+sakoX5rsTsTF8smYfnEOC8yhfyGcMLncI7p0xs1m1kr?= =?us-ascii?Q?zuz6a+K7TtNWYukamNHc86hTBKVQ9z2gp/73IyiVNG/AoqBus7HDMpgqsEbA?= =?us-ascii?Q?3SUC4Oosq3XIaEujjt05UnBeH/8UpaT6Bhv247hPbdzUTLnA2MunKGgbx4Kb?= =?us-ascii?Q?+hMVCnLzk9sZP9vVl6JRwJjQ//Ih6zoTBKtM/WfJY8XoOEop1nMf2iypC794?= =?us-ascii?Q?Qe8AE3MHr+Lmw3NIuuobM5jyJvRjX/0dKgoko600S/JCCxETh4TaFLWZbkGS?= =?us-ascii?Q?RsnBvDsvPbSD1w9lpR67dOV1bqvOUaX+8XabZOwsK4fgMKJNYZQb9BAcld/h?= =?us-ascii?Q?Cs0cR3PLqnbIcbik9+k9zzlrFkEu4BG/GSOvQYhqwbl5Ma2v7svDv5QHnL0/?= =?us-ascii?Q?ZI93P15ymy7ib6JCqGdd37bkvHQS4ZN782/Pc5nZUBTmMafHqWJASYLvxvsj?= =?us-ascii?Q?wh0PlwxQzCWpJhrgaKX9QuGFSDITE24KO4rbPtOqYabCtf+nSrzJrDq+90Nu?= =?us-ascii?Q?mgsWyb41NBYI81XlKsrRXElRQ+AS9hFe2ag0nYHHuiMyCeIA7kPSxTaLeilc?= =?us-ascii?Q?clOwU6TEoZTFjH3CFRjm2kWiG/AqFC5zwKxO26oEKkaAGcYHLK6dq1j0xrpi?= =?us-ascii?Q?Gr1pAWFLlBYQTW2FB1wfcIQUTpa5L6s1y+q1VcupgS+Pct/nOEYtTpDAcsg3?= =?us-ascii?Q?K5rYBfjtwzHwk3LR/UzQhM?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 6:LSQo+dTKCxZ6HzRXomlVDUBk78A/2pQ17D71XGtxElMJoyLVAXc8gneYGM9ITyLUjJyPlMta8YHnhSdsRPX/LXaTZPYj2K+1DuZRF2toY16F97DPMYrr03HOU+spM7WEksUKYPQB7yQ8Bov7JWplBPo6w8jd7QZC2aze8ltvr1Y5mZeDGWUjx7ESUOM5JGmvRqO2E/LDcJ0mJ9iLREE2Juf95n6FE2xO5KzU/m/iHjTL4pKphBLDqdBmPNz97xvNonlSX/+pMW1OJVds9O/gsiEg9PbOpgMVgem7jIpu4bUoGX0yJHN72JE1QcjjgS54QdJ/HtB3ivH7mw48RJxH1tqqhhANdCiYhhAu+ISt6/YK0jSLFIaGvnxKmelMwIZA; 5:WnZOskSiuuguFbD3AMXgwEKg/sutVOYhRhGQ7ZWcT3r2fKPaWYSiQZ+kjDqQELb2ZknxlXtXH85WO91m7IDIqiA8xwmdGT0K9tKyFAttfzyB/RX4rBv1oEyFHwN5hFdgN2H3QEG0z9zwx4/Fdp+mDg==; 24:tEZvNonmQPBho89q7FAPt79P51I0vTX5kNv0zhDOBFyy/xkcJHf8jUkzIOXPJhV1ouZ1X73bbd3CosBMKr/VJNEQDEiC4kvj1x3nN/yJjQE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB267; 7:PJOB/WkaPuYm6nN6aoep8tgW0Zb3O2AC4p8i9h+1ftKYXh2eAGj5ZjO9I+oJePyEM30uwUgHJ55QS1FA6z5HVQW8+ltfI821oVOgyTZNZm6Eqv4anbwkv43ZwDhdjrNmUhAOGl1YI/3QIBgW3KXwlZ7xPgVpnvtRES/rE1l19WqCheOZrnDbRGL2do8zB4UgI6kp3lsnjESWBqV2SAgnLLGI/H1qfoNh24MS5cE95ghDZOODInfVpRoqKoYWroImQRPwWX4v6iIztD82vREwtsghMyj/ZGjuAL7+iQ1uP/BkTn2iYyMDO1BXAywN2wQjT1FzSa2I6fapBIPp7acyr5fg2uJldqXnpudaMEK3PUU= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2016 16:30:42.2968 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR04MB267 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161107_083114_106141_DA48239B X-CRM114-Status: GOOD ( 11.65 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: mark.rutland@arm.com, peterz@infradead.org, Frank Li , linux-kernel@vger.kernel.org, acme@kernel.org, alexander.shishkin@linux.intel.com, mingo@redhat.com, lznuaa@gmail.com, linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP i.MX6QP added new register bit PROFILE_SEL in MADPCR0. need set it at perf start. Signed-off-by: Frank Li --- Change from V2 - V3 - Use MMDC_FLAG_PROFILE_SEL - Use flags instead of driver_data - fix commit message typo - add const - use u32 val. Change from V1 - V2 - remove fsl_mmdc_devtype arch/arm/mach-imx/mmdc.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index d82d14c..ba96bf9 100644 --- a/arch/arm/mach-imx/mmdc.c +++ b/arch/arm/mach-imx/mmdc.c @@ -44,6 +44,7 @@ #define DBG_RST 0x2 #define PRF_FRZ 0x4 #define CYC_OVF 0x8 +#define PROFILE_SEL 0x10 #define MMDC_MADPCR0 0x410 #define MMDC_MADPSR0 0x418 @@ -55,10 +56,29 @@ #define MMDC_NUM_COUNTERS 6 +#define MMDC_FLAG_PROFILE_SEL 0x1 + #define to_mmdc_pmu(p) container_of(p, struct mmdc_pmu, pmu) static int ddr_type; +struct fsl_mmdc_devtype_data { + unsigned int flags; +}; + +static const struct fsl_mmdc_devtype_data imx6q_data = { +}; + +static const struct fsl_mmdc_devtype_data imx6qp_data = { + .flags = MMDC_FLAG_PROFILE_SEL, +}; + +static const struct of_device_id imx_mmdc_dt_ids[] = { + { .compatible = "fsl,imx6q-mmdc", .data = (void *)&imx6q_data}, + { .compatible = "fsl,imx6qp-mmdc", .data = (void *)&imx6qp_data}, + { /* sentinel */ } +}; + #ifdef CONFIG_PERF_EVENTS static DEFINE_IDA(mmdc_ida); @@ -83,6 +103,7 @@ struct mmdc_pmu { struct device *dev; struct perf_event *mmdc_events[MMDC_NUM_COUNTERS]; struct hlist_node node; + struct fsl_mmdc_devtype_data *devtype_data; }; /* @@ -307,6 +328,7 @@ static void mmdc_pmu_event_start(struct perf_event *event, int flags) struct mmdc_pmu *pmu_mmdc = to_mmdc_pmu(event->pmu); struct hw_perf_event *hwc = &event->hw; void __iomem *mmdc_base, *reg; + u32 val; mmdc_base = pmu_mmdc->mmdc_base; reg = mmdc_base + MMDC_MADPCR0; @@ -321,7 +343,12 @@ static void mmdc_pmu_event_start(struct perf_event *event, int flags) local64_set(&hwc->prev_count, 0); writel(DBG_RST, reg); - writel(DBG_EN, reg); + + val = DBG_EN; + if (pmu_mmdc->devtype_data->flags & MMDC_FLAG_PROFILE_SEL) + val |= PROFILE_SEL; + + writel(val, reg); } static int mmdc_pmu_event_add(struct perf_event *event, int flags) @@ -436,6 +463,8 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b char *name; int mmdc_num; int ret; + const struct of_device_id *of_id = + of_match_device(imx_mmdc_dt_ids, &pdev->dev); pmu_mmdc = kzalloc(sizeof(*pmu_mmdc), GFP_KERNEL); if (!pmu_mmdc) { @@ -450,6 +479,8 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b name = devm_kasprintf(&pdev->dev, GFP_KERNEL, "mmdc%d", mmdc_num); + pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data; + hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL); pmu_mmdc->hrtimer.function = mmdc_pmu_timer_handler; @@ -524,11 +555,6 @@ int imx_mmdc_get_ddr_type(void) return ddr_type; } -static const struct of_device_id imx_mmdc_dt_ids[] = { - { .compatible = "fsl,imx6q-mmdc", }, - { /* sentinel */ } -}; - static struct platform_driver imx_mmdc_driver = { .driver = { .name = "imx-mmdc",