From patchwork Tue Oct 25 21:26:56 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Frank Li X-Patchwork-Id: 686700 Return-Path: X-Original-To: incoming-imx@patchwork.ozlabs.org Delivered-To: patchwork-incoming-imx@bilbo.ozlabs.org Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2001:1868:205::9]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3t3PrS0mJgz9s8x for ; Wed, 26 Oct 2016 07:29:12 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b=Gk11b1oj; dkim-atps=neutral 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 1bz8Jh-0004Qw-KC; Tue, 25 Oct 2016 20:27:25 +0000 Received: from mail-eopbgr20081.outbound.protection.outlook.com ([40.107.2.81] helo=EUR02-VE1-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1bz8Jc-0004JT-MZ for linux-arm-kernel@lists.infradead.org; Tue, 25 Oct 2016 20:27:22 +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=d7zXV5vA2vM3BTRL6ZGDf1DewqYKD1XMq/R5nraP7x8=; b=Gk11b1ojPg7IDC1wcqB3qEQOOAKkv6/DvpvITSpkvQ8TPvfHLiujWw2cCnLN41veWmAR6SxrAU+dntR9PXSZ3yGfXC9PU59WtgJd8KoVk4docp8NgmgB2xMtG992dMMfqQmOU10+w2GRJHrWckuivkdNXWHCqX7u/CVR0A4p5Wo= 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.49) by AMSPR04MB263.eurprd04.prod.outlook.com (10.242.227.151) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.669.16; Tue, 25 Oct 2016 20:26:49 +0000 From: Frank Li To: , Subject: [PATCH 1/2] ARM: imx: mmdc perf function support i.MX6QP Date: Tue, 25 Oct 2016 16:26:56 -0500 Message-ID: <1477430817-20381-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.49] X-ClientProxiedBy: DM5PR09CA0048.namprd09.prod.outlook.com (10.172.184.162) To AMSPR04MB263.eurprd04.prod.outlook.com (10.242.227.151) X-MS-Office365-Filtering-Correlation-Id: aa7361ae-8f9a-4e28-4941-08d3fd15438c X-Microsoft-Exchange-Diagnostics: 1; AMSPR04MB263; 2:pSHQl0hBXHs4b+Wd4ppFS3+NnHfrSI7zJ0NGAgoboqDO4rX1LXS8fzAlzkmKFtaQCsUl2FIS34+7YR1PBBRdtn4Oe/L0IR49vMAOeQtZT5uh/DHdqWNWkvCDUCZo6pKyesgEXQjEG3a+BN+4gaUhnxzPaIaAvrUJFZF3fz9VmuLb54OuEN9qh6zSNS1+3aAdqexZyh4/x6JOJK6YDbr/XA==; 3:lcF+9mRPSBuHrICp2jSCcVdo2aJquiwJnyJp7780nf45NoWmDHLnyX9VCdOK+MvSitVO04RfB/oieIF+bg3KP8PafFlJ9DE3sRx2u/x72fc9EY3UNr8sRSWbikneVsmQng46Qc8ICwWB9HhE+GmNAw==; 25:9W2E0KLNcrbB4jajPN85PYpBIgSZ7jCXh+rfNV4srvmN4A7/P4AMrC39gOqtYex9pm97unlfd7ihGP0OgS0B8kdaJRweoW5rxJq+x4Ce4KivZaqXSxmj9qvqfwUVjsapKgPyAZVF/qnTb2km7EyG1R5bpQEw+YeIvcuAR00UybM+L00V9DJmU/2YdjReGiAfIUQmD8wq5rIGVGZlqD2ap6nQs1Rf78ldDqMsK+NRnSJFc5n3s1LJqty0Xqoqa7t+MfQnOAZfYDrMzZB4PGVzXzMbNRRp6zZchElQ/Fo7IyPVyP5MvYC+xEGxz0GbTEOtUvVxo0NtAVHiKDzDlZwY59qR+t6ns0O2GWGq6vcAyRIieXpYb9YEXPUa+B2TJB4MR3F8SNx5Q/SGKInfTqgn0k3qZxLaVtTdysKi2GIx+jhWEqMm9wQydijSgtjvUg1G X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AMSPR04MB263; X-Microsoft-Exchange-Diagnostics: 1; AMSPR04MB263; 31:qK/l+mnwYviBUKiaqZWgc8St5atOB0PifpxZhmCqQPgBCNkxdwoKCl7zTJwn54QB97+LMb3Q5dkFjd0SB/QqxwKKpz94dRkKmPtM/NSKkA9YzUQ3XxFHXxE9PzRaWmUuHlRyKpOuPWVq5rewLYL0wdL7Z0G4LV1afrD9masAxWJK8tJLcr5y53ciT4IhtFu/rPv/rKhXaW7v4N6txlWx1SMxGJmqHiJUSZWiHbV2Aj6yNsdbbV+Nf/lnDi9VFChs4GKZQrW4kYtmUgJUDmVaLw==; 20:oS2Jc/aeHcFLq9ZRYzYboZIz+/Cx5UqJZoBEBVkgHb96yvQeyY9k8G5wBTOBP0Zh3dxywqkEzmrR6aNHdJWEAIoEm5QCdQJv8rU9Y9a82M0cm3kCTTN9rZpjlGHszdlTmg5VXS8aoyn/e/1pfOeLWw+DMsw5ORA7MhOOZxFrWK/LfLzkW0XvAlh0S69IV0Wx9EhZheVDE7Nb3HzSfRsXD3LvtBYnNtpu+u/uoQCOMh/l3TJmWXri7oEO62YvrKqOlOZoPOkvPWUBOaFLh7W5idFePA7C601xiOUvNamipL5SdYMqlIiPNqkEGn1ZdK9/AGzcdbGbkiX/1PYsKHmvJj2se4U35Tlo/EgGcvQSeXS4JunFdD8DgqC3PlX69zOvabCuHh3/98rMMyAU2UaWcq3GdFJBpY6lEieOw/oVzsuyEfwNLWnBBK21wQ3fxgXCswVYbyhh5tc7gINWj0tjd+XGTnbtMR1zaSYk7A5Y9CT4sWHZYSKr8f1paSKhpVJv X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6045058)(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026)(6046058)(6072064); SRVR:AMSPR04MB263; BCL:0; PCL:0; RULEID:; SRVR:AMSPR04MB263; X-Microsoft-Exchange-Diagnostics: 1; AMSPR04MB263; 4:AruALJOJFCUrbOp3PcpNH3fhGFjtyHLmiIFy4wurT663au4Lt76szS86cKm9HMi8fK4oBtdvmRcGfof6kBJiCos20uhd2Loh6upTqSa12Srh0QYxf4C7AiJQEOlOqrzrkpNq4Nv+ZdQo80vSP0/Mhj2NWzwo/M1h2jC32dz1cYFI+oEFDVR627u16+Tc2FAYo1xempB6+1mfQY113xCr3tdZCdicqgv0UEsCPNh5yc+tVNecKeIeHbscf8k7LOKRZ3xpASLTLmRI7uJjALDvlsYYeJICETrwtK6rfMB6bFSefMD3SKqPzwMFBRo40A7ETsIhH0lgrp9DHYIg6TCSWeO1h4A6z9/xAbLRNulzV7RmWRjeLpVeJ+bR2erxy3lp5JqZs94NYFNL+LWLdeXXYsxHbptZqZWE0mdRNod06C1g+PQsve0/nYYWJOD+F32ONnBF5If4bLMtJyh4EJgwVE4P0Miax0XBqm93t8+xmVQOm29F6elS69pYreXJ/Ievai5Oy1Wed+s4OaPEs+7QjQ== X-Forefront-PRVS: 01068D0A20 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(199003)(189002)(19580405001)(92566002)(105586002)(19580395003)(7736002)(97736004)(47776003)(106356001)(305945005)(229853001)(6666003)(36756003)(5001770100001)(5660300001)(189998001)(77096005)(66066001)(2906002)(50466002)(6116002)(3846002)(81156014)(81166006)(68736007)(86362001)(5003940100001)(586003)(48376002)(8676002)(4326007)(50226002)(50986999)(7846002)(42186005)(101416001); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR04MB263; H:lizhi-Precision-Tower-5810.am.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; AMSPR04MB263; 23:X1wFgdkx+r2Q+cEJASqpcsa88/CHnQtwKs7j5NHjmX?= =?us-ascii?Q?O/dgfCjahq3GAJ84XrHZK3bmplpG0cF2TKP0ASP98Qpek+fefDpyampEVCLb?= =?us-ascii?Q?h0zGaI8HOL2iSDoSQXzc3ynptWxoCoVPSYTvrRY282ALfx9JYHMUl40fdJQS?= =?us-ascii?Q?G4bzCrG8WMeIHu6v5Gv8e1uRF9jZqsY3BLbqZ8zv7mgz9cNDoR2nf6e3SjdY?= =?us-ascii?Q?KxFuAI80+KVDi5pk2p5FcWMbqu9ydfhxpvqQOGAv1sNBwhUweyfCdiwnCeKG?= =?us-ascii?Q?9jqoFWIMUaSVrZ8negfAZK5Rj8iNXKg0/ZjCxydSOLHX9kZowIbn0ik5+1bF?= =?us-ascii?Q?tn7IQBP8KDfch89GKQOagRo2asvcOR8K07BsK5GJEVCUfBh80VGCrmsSMd+m?= =?us-ascii?Q?iEjmQ4n4TCZJleW8ofPorg33nu3xd1DwkRwmhlJEjLB/8iXbcYfJuj1UJ6Gz?= =?us-ascii?Q?StBAAPK63MVT8qvTxqTmhvep/1jlfnF99UnKN3Rfw1ME4qoS+JzayxVK81Au?= =?us-ascii?Q?nuAZdJE82am0a85EvXkr84G/jbFeeQM3Ld6821ba9WdFlCaAbLOXdFBqmKi4?= =?us-ascii?Q?lqEJolpivAMkLXGN8DESwOBsscKfayzyEiit9/rrR181yOZ+eRGr5YIHl/lm?= =?us-ascii?Q?UZm7ZPtKnm/pLCU330v7Sye9DjzsUj2qgy70T1LhfBDVt0PNNl1zd2Ydoy+J?= =?us-ascii?Q?EglYv/ykYlOJkqYOzScPSbp/v/cwVI6PMt/caNDgWpiZmHMZgoCDgb44CHvY?= =?us-ascii?Q?fwLelixFupz5sukWJAsCAA8N5DYTC1ldalM2923A7e8K1bZSwXwMIXo6LEM5?= =?us-ascii?Q?Jih5ofZes+Yu259zeEPBKyTY//SRjMWo1OH0GUaaRfRJH6zwfUZ4oZqL5ZmR?= =?us-ascii?Q?Plpqh3xND69rlc1Lfv8o2gQoTcVnW9lWaJhlaGUN5weDwltgwvY2P4aeWlYy?= =?us-ascii?Q?GENCiqW9X6irppLANkFFeKNWdaFp94psMaL9melVmUXd7FVUtdouWxnE9xgc?= =?us-ascii?Q?LVegK+n0GLPmCGQByOQtnSmHy8zba9W3Ek3y3KpSwXJQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR04MB263; 6:mcSu2N83ATYlrlnQz3S4kBmXNUfVI2QX9JUt1lCZ9Z6ObYtWxd8phIEXH974HRAAgGVgKlCH7OpfJ8TqYS1A2f4k1YFeHY9XvgoOdt9jc07MA0e+Tb8DV4ub5EQ+M1VUBewWpSH3kpGF92ZUecs14WH0pXXGOY+np/teCqwdKRL2sC8xvPnByxyWAQmUXqO6C5R1cCRf2VSMb4IeTnsEkU/hQmXR3s1gxqOWVYm3ChBG9uMdKJcKx/iXkHN6zi28sk6e2Jz1YSYmD6eb3amFKNvKuuz9sKUlNcd6aIQchKUkVmucmEaPlzLlBLiOjUZ5dVogQhM3M5Mj4YvnAyAsFmNT9NQQiU68XJMRQK4jusI=; 5:CLKMKk2+buJQI7fJzkfleEyWhnVX5xjnzwthQ15vuUplpa9MZlK3iqwcfTcWeLXohiU/C/jeEuZPB4GGcouilIfwWankmBVG9o+/wdjkX7nPuyQo1MAVm2sw7nqCYykuWgiz6V3/j7i98yeqmcQPGg==; 24:AXHJl8aV/HAuBZd9n9pObsStTdAZtJNWkGV1EeSyNcPpvwLZ1XAE84kH+nDMkh2b/g4ZzQ1yGyin8VmdWJf7m+T+0dGzLeeMOBJUfLMFsRM= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AMSPR04MB263; 7:wgF39guUC5V1b8B44928eVP32xEtYcBXxF97LMjUiDCD3ixbHKOAb92xiVl5KAj5zz7gUhTPSZcbmdpeVRzfQ0MiUvgd6yMD9TVdD4flYWSgtGfICfdt+q4bxbU0Ysgtk0y0kK8LVfWOyJ+0zcekfpvpdPgQXJ+tRMke7R/zDPRlk/ztjrZ9ygiJmENiEd77y5KFg4uluUrpSsirCUVmXzO8aV0DzObZvmY8sd3waHUHUPpSBmbA9pYWX8vSf4DJH1H0D5f5kVZ8SW58PBxuYl7FdgggFaJ93AcLvjpeSAoBhE/SafNdU3LUwdYW1wAQtBuzHRK68B/U4EP2GZYnNLFmRNEcepxHZTEqW02x1Lc= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Oct 2016 20:26:49.0835 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR04MB263 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20161025_132721_232478_B17F010A X-CRM114-Status: GOOD ( 11.74 ) X-Spam-Score: -2.0 (--) X-Spam-Report: SpamAssassin version 3.4.0 on bombadil.infradead.org summary: Content analysis details: (-2.0 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [40.107.2.81 listed in list.dnswl.org] -0.0 RCVD_IN_MSPIKE_H3 RBL: Good reputation (+3) [40.107.2.81 listed in wl.mailspike.net] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.0 RCVD_IN_MSPIKE_WL Mailspike good senders X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.20 Precedence: list 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+incoming-imx=patchwork.ozlabs.org@lists.infradead.org List-Id: linux-imx-kernel.lists.patchwork.ozlabs.org i.MX6QP added new reigster bit PROFILE_SEL in MADPCR0. need set it at perf start. Signed-off-by: Frank Li --- arch/arm/mach-imx/mmdc.c | 45 +++++++++++++++++++++++++++++++++++++++------ 1 file changed, 39 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-imx/mmdc.c b/arch/arm/mach-imx/mmdc.c index d82d14c..d833b87 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,36 @@ #define MMDC_NUM_COUNTERS 6 +#define FSL_MMDC_QUIRK_PROFILE_SEL 0x1 + #define to_mmdc_pmu(p) container_of(p, struct mmdc_pmu, pmu) static int ddr_type; +enum fsl_mmdc_devtype { + FSL_MMDC_IMX6Q, + FSL_MMDC_IMX6QP, +}; + +struct fsl_mmdc_devtype_data { + enum fsl_mmdc_devtype devtype; + int driver_data; +}; + +static struct fsl_mmdc_devtype_data imx6q_data = { + .devtype = FSL_MMDC_IMX6Q, +}; + +static struct fsl_mmdc_devtype_data imx6qp_data = { + .driver_data = FSL_MMDC_QUIRK_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 +110,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 +335,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; + int val; mmdc_base = pmu_mmdc->mmdc_base; reg = mmdc_base + MMDC_MADPCR0; @@ -321,7 +350,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->driver_data & FSL_MMDC_QUIRK_PROFILE_SEL) + val |= PROFILE_SEL; + + writel(val, reg); } static int mmdc_pmu_event_add(struct perf_event *event, int flags) @@ -436,6 +470,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 +486,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 +562,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",