From patchwork Fri Jun 9 00:44:40 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kuninori Morimoto X-Patchwork-Id: 9776881 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 01C8C60237 for ; Fri, 9 Jun 2017 00:45:06 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E600A27F93 for ; Fri, 9 Jun 2017 00:45:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D9B4B283D9; Fri, 9 Jun 2017 00:45:05 +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=-1.8 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED, RCVD_IN_DNSWL_NONE, T_DKIM_INVALID autolearn=no version=3.3.1 Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3355C27F93 for ; Fri, 9 Jun 2017 00:45:02 +0000 (UTC) Received: from alsa0.perex.cz (localhost [127.0.0.1]) by alsa0.perex.cz (Postfix) with ESMTP id 17B882674DF; Fri, 9 Jun 2017 02:45:01 +0200 (CEST) X-Original-To: alsa-devel@alsa-project.org Delivered-To: alsa-devel@alsa-project.org Received: by alsa0.perex.cz (Postfix, from userid 1000) id 3C7542674F3; Fri, 9 Jun 2017 02:44:59 +0200 (CEST) Received: from relmlie2.idc.renesas.com (relmlor3.renesas.com [210.160.252.173]) by alsa0.perex.cz (Postfix) with ESMTP id 10C8F2674F6 for ; Fri, 9 Jun 2017 02:44:46 +0200 (CEST) Received: from unknown (HELO relmlir1.idc.renesas.com) ([10.200.68.151]) by relmlie2.idc.renesas.com with ESMTP; 09 Jun 2017 09:44:43 +0900 Received: from relmlii1.idc.renesas.com (relmlii1.idc.renesas.com [10.200.68.65]) by relmlir1.idc.renesas.com (Postfix) with ESMTP id 2ADD853F52; Fri, 9 Jun 2017 09:44:43 +0900 (JST) X-IronPort-AV: E=Sophos;i="5.39,316,1493650800"; d="scan'208";a="245924666" Received: from mail-sg2apc01lp0240.outbound.protection.outlook.com (HELO APC01-SG2-obe.outbound.protection.outlook.com) ([65.55.88.240]) by relmlii1.idc.renesas.com with ESMTP/TLS/AES256-SHA256; 09 Jun 2017 09:44:42 +0900 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=renesasgroup.onmicrosoft.com; s=selector1-renesas-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=P9oqHmZPDwAmb74nKr/tLF95im3Kcfi1LSkSsJ0ot3w=; b=K3IIhNX+xkVes3Ah8WD9NLcMj/O3BZr4OBEfrmrV3924upyfvPvVgvWfpXbQpO9ueutsTQCvWkaKVKmcOgbiuu4t8mk6reRcAuXJuVs/2sZQAqIUzPNh7Gtpqw1KhErS6WQhuA358Dpbya5kns3KYudiiiQ553ep/mUAlN4XrHk= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=renesas.com; Received: from morimoto-PC.renesas.com (211.11.155.144) by SG2PR0601MB1886.apcprd06.prod.outlook.com (2603:1096:3:9::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1143.10; Fri, 9 Jun 2017 00:44:40 +0000 Message-ID: <877f0mouyr.wl%kuninori.morimoto.gx@renesas.com> From: Kuninori Morimoto User-Agent: Wanderlust/2.15.9 Emacs/24.3 Mule/6.0 To: Mark Brown In-Reply-To: <87bmpyov3z.wl%kuninori.morimoto.gx@renesas.com> References: <87bmpyov3z.wl%kuninori.morimoto.gx@renesas.com> MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Date: Fri, 9 Jun 2017 00:44:40 +0000 X-Originating-IP: [211.11.155.144] X-ClientProxiedBy: SG2PR01CA0092.apcprd01.prod.exchangelabs.com (2603:1096:3:15::18) To SG2PR0601MB1886.apcprd06.prod.outlook.com (2603:1096:3:9::19) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SG2PR0601MB1886: X-MS-Office365-Filtering-Correlation-Id: 8060770d-655f-4115-3e18-08d4aed0b6dc X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081)(201703131423075)(201703031133081); SRVR:SG2PR0601MB1886; X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1886; 3:I92WgRQ/750vRFUq3ZO3XIlJQYH/sIe6cQqGJcHqdM+9ZYi03Z88WXl6tvVtHgYy+/5O6IVycWuTED1Z4r2PR2jjhiypOwB2rOiTn5RIsOt6ymv9hvidESDPJnoKm7YtXFghpsQ6rXZcLMHKhJpdIOQ4yyPo+ywOWcp6Jmci9Hm8cvvtX8P7LoHGdgi5/+hdPV4NQ4StxdrDUeKyy5EkcK/OKv4Rwc8CA/lXYu78mPErrYQaOagjevK+moAyQqNbppujVpsDjoLONjyvj6/QsW9fNGi0dcMg0g0qzTHJEN7EtZDbaYpl0Q2iSafi++1IytUxk94F6386Upq9ZrV3koKTRPgicVZeSCiKlkVNtgg=; 25:eNvdco2ueCPPm1oR0WjqD23NkPUoMrTXUNoNjvnq7pg+YPtpuNaI/bdShMvvKP+e7Q9FezEMmzxCSArc3oWu7tleUahJpnJu7V5i86FfVEUx/hz0OPnKBSF59NAHUPqlSHcOHq7WVPAHCOeZNisg0TvQNgqdBotTmJvgFl6zbyndYNqIUZik0MNvk9I+WEnyLwNhom5mJnhy+79N70D6VrSApKQ+1lCTrjTK13SzC9LIbU0DySnuTvSa/8n2ruOrhkyB80ayuQJJJpt9LHvSN1Ww7aMgclFDnzZBWn2A2jrEP9Feeo5aDd+8EKEOhK+RKMT6rb3Hi9M8L0Qop+XEq13Fudn9pE70mobxAD2iC4Q0elchaVkBvRGknmkuo3cXCPk3x+TcgA0GUn2Jx3W5FWaBqGCGv+Ai5tN19g2sbl4b5eax2x5c4Ohn+ND8s8QkumUgl9ADuYzqTcp6PW5eBWSV8MllCOJh9a64lucmJXU= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1886; 31:usAHeFTBV92tAVZ4Teb0tlekNGUaKP96yK4lP/ME1vrFQMHRd3kn1cwpAsNZv6UZt7HQYkGDo1kAPCPO4iWMA1dRn6qxJrEDiUhCk+5ULHC0yuoX310MT3D/Mfj7CqHoRm1ZNj3wfB7xIs2qDTEMsLYzlewmyFq28gGxr1eVtrNEnXVxqYwqm137+X9OEqcjLHO6pcplb6jRehofix4X61HNFRwsvi6j9gJE16LL3fA+cY9VlqJMZ2TNS9Sq136Q; 20:7PWqCcz529d2O5ryesVHMEWW/u/aCBgFiWFqFTBIu9LuQ+2/RpjNxSOADjX/uwVG5jmW+PhHltLIIuCoxuvUjCJZmOsv0hfEp70IzLlheBZQ99LLMzpG6g7Fz6UaBoCYGzIoxpbOzAx05crAIsGDf37Aczylr6QmgrkriMfphymmngDWgkTl25P7SpRAvLLTJS+8AS52EqoRmB7A8t/deofdfFWXQL89NIkqJX0yDKbEr7aAj/IRBp8CgVeyr4b6t9Jn+KndNp+VHP8R1OBKUNJjeV7rHyKkuPqBWmmw2nElTC2+tk2H5dltbE+tbjcjC5Iy+KPRKs4Wn1XX4ub/csSxuYtm0pWLXdtK3RtxoMdluCExFa3rwEjiLEvN/+yaXzkl6xAW69xOXhZPxEognP/D97JaKMueCi2gUldrWTJiHp7tXVF82rXb8pv6rRlXLM/5nEWU6+u9wbtEczp1e+9wrUP3Hv+zLm57NVEJzILfSwc6s9Q8Ag9Pr7FJljZn X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(100000703101)(100105400095)(6055026)(6041248)(20161123555025)(20161123558100)(20161123560025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SG2PR0601MB1886; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SG2PR0601MB1886; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR0601MB1886; 4:zaElKdu8yLju5iZfzEekiXOJG0cgZ/k1frdHhZl2?= =?us-ascii?Q?r9IjTZveTyxOIlaqzRWbO33avPE2vOXxXxOKuhTrFxjC+8NKON+fn1YrkSgV?= =?us-ascii?Q?d3Ni5HoEwj6yfzwWVCAHZPg7zheKjCDc13WxGeCntC7/T8d5vzW/Nf2NMu7A?= =?us-ascii?Q?08v7UNXsAvkcXRyyB74gznUKtD0sEQGu2C/FaHRCQxBZm/RSH8uvRrrIIhOg?= =?us-ascii?Q?l8Xc9dYorl0mSaRJgFkcTA1Ct5yMdeOsnJwQvidIaO4dF6ZDXvPeQGOfG2ve?= =?us-ascii?Q?3aWupsvhiDwsMquCMFUGweN2wv4d02H+f94pLIXzVTpk6HcQg8oPzyT8w/bS?= =?us-ascii?Q?zMAbn6IHb1Z5BN5qXYtUlss5Cu3qf5pyXk32qRtQ4EQzbMY0+vW7lHam3654?= =?us-ascii?Q?u9HWKBOtHnkbiV2OMfy7eJhEQBkh/pPEFGilplefvz+2NMdTQmuuFfbtzqLl?= =?us-ascii?Q?byTS06Pm3NC2UXrJGMjjXEZU/EFICbgzlDvC9KjRygEiPx5kVVwTUNXdvQCb?= =?us-ascii?Q?X6kR1kZNU1vwi5lGZa1Su31UwnUe0oZoFQ4qh8TYh6Gyb84fpJxzcgCTb1pz?= =?us-ascii?Q?ncqZkjdWtoXVIRUeiWyIeUXWnqqnRMW06O3LNPawgd8oAyOW5pRtxa4egxMm?= =?us-ascii?Q?vtKnj7T8xA4mFVZcN9BCLUd5+JsVlftjHjB4t5jQ7NTpWwyof1J4gOZMh1bU?= =?us-ascii?Q?S4713SwmPax5dbzfDSrht679Z03Km9JbWYiieATvorpCmC7E8axVxKCAvli9?= =?us-ascii?Q?L0urUc7SqUmdNo4rKqMa0npTNvRWRC73te+4p2B2DVZSitq72KmeKNiIdlvR?= =?us-ascii?Q?1Va3nqrJHoRliDeDF+zteT4B477IUrXQ85/gy11GPlR+ZuDVTC3zB36GjAWa?= =?us-ascii?Q?KIieBOXDWpuDQ4gvh4BoIEYGtV3jfd1BEVZ6Y78FdAUkQAZqc5xiPukT0sZr?= =?us-ascii?Q?jZNDy4UjZ4glJw106c7h8VlmXDG8POmsN29WnfM9U1hT9X1g0a2WtlOrwbc8?= =?us-ascii?Q?+LRYKLoq/tK0Y4nGKdtxXLp6J5jreyPHWNgVXLiKPMvqYxHMYqifDuSsldoi?= =?us-ascii?Q?Ru87/cRmviVx/zLwf0Ur+MDBrsMmuJtytfcRoQ4vyDSO2GQPeDsJOp/OTt4z?= =?us-ascii?Q?XZ2bltWaO1hoq8+4TdgoWJ00uHYuszRhb2pDeDG4HCC52XaoKRNjVQ=3D=3D?= X-Forefront-PRVS: 03333C607F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(39860400002)(39840400002)(39450400003)(39410400002)(39850400002)(39400400002)(54906002)(33646002)(478600001)(36756003)(6486002)(53936002)(42186005)(110136004)(53416004)(38730400002)(81166006)(8676002)(3846002)(7736002)(305945005)(54356999)(189998001)(23726003)(46406003)(4326008)(230783001)(25786009)(6916009)(2950100002)(76176999)(50986999)(5660300001)(2906002)(66066001)(47776003)(86362001)(16060500001); DIR:OUT; SFP:1102; SCL:1; SRVR:SG2PR0601MB1886; H:morimoto-PC.renesas.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SG2PR0601MB1886; 23:0haCnTlVQtRZxo0vntCEXDbzp4wiZt1tgmj01CB?= =?us-ascii?Q?nFg+5G5xhZwZYX+FGBfjldH9QEqbETrsotVB/ShEJ0FyUv1bZEgZ1AqYO/39?= =?us-ascii?Q?bWmt1NP2mwUNwnosP4+aH5PbN2NDV3y4P8EUkbpvk0kC9fVhVt4MPq9kDDZ7?= =?us-ascii?Q?9ZT+Ohh6WcPOX8IJyHmtFq7wHY2I/8t9ItQl1uZ2f/W5FRKIbMeEsWo4izQk?= =?us-ascii?Q?cgqd8IAWOxBxCSOgvWbz/uraKJytfSrT/hR5ccshl9ngEEJQxlWLw8EyLKGY?= =?us-ascii?Q?DkK4ggdL5Srq+tD29AFKrmtkajisvRc+xU36NhM0iKRiO9dAio5HPK3gpMMH?= =?us-ascii?Q?AvE1fbQY02X6tEvRZ/RnocciMEqYU8VpcUcixPUdysmgDdKiuaDkWcnfyxzt?= =?us-ascii?Q?ZJ5GTTUjp5c202pWEGy12xEebHlkziB+I30797Mp8v8G1ANPm3fXoz+lNjm9?= =?us-ascii?Q?bo2G/JvI3ymzyN/xAIQcahgyZgDJQsmofkcfsxEDqUhfDSvIf4SGKb54TUzg?= =?us-ascii?Q?fXygMAMZnEZ5D2+rwKjUV54+sxEXQGdoUVlcbuUuSXPmK0JkUp9R2g2j5Pb3?= =?us-ascii?Q?hFf9ih1cZvbUfJOG+gfBZQWDcLqe6iTgYY6wwuUASxFEcXwSO8TZrCSuKJMz?= =?us-ascii?Q?1ErPhrmqZLTXPG9ePiJOY2TAvbgsPagb/KgIOV73Os8LBMXVrR2fFcUphGOZ?= =?us-ascii?Q?j/Jy0VlGqAbg3ihImjP9vFwCe1JMORByJtxWrUFtMiP00AwBowaf3np65Gts?= =?us-ascii?Q?0dFkc9O8/dn+JtZ2A7O6nBhjuFgYlOeUaSwSnyagE4LlxcSaV9YjXgVLd9br?= =?us-ascii?Q?YOadp+hAyspUQO72VYaudT5myUijKpRkDP7xJsAaJsxfgEsSyt+eYYNxBi+J?= =?us-ascii?Q?dYHc2A5ptaX/YQUCrsXeUIwdepPN+d+e8iMtP+ItZDebpOVuqPY/81mMXetz?= =?us-ascii?Q?yWrjDGeygLzh9zRrC9vnsVhGJumUkCgygM4gp84VNIpEnveMLg9UYg7TFo8y?= =?us-ascii?Q?VzIshdDDAXRA4sIOmHRje+TrRkOEYAczI27ISzzJ2JnQY8g=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1886; 6:Tk0cw8TGGYEWs31aFj+Hh6ic6wbmoXH9rygqqJ5BrZa/ODfPenkrSl7CYOMZN+YjQeCi/sEMusj4IUhXAOje1zAmxFOknqXDOGp5CGxmggYdNLpWCuQe2A6wHSgllsF63oIDXkn5fyxNPdFUL3M1eBOoykpn1/tfZfOKc8gyMhoSosRNDyqbCJeB0V2R99piFIyJQxq9GG79aMhVnqhyjn3CRuhYpAn/pupf00yGNutUCmtp/tjv0ZyxkgazO8QhNuUEF5HDu41beT8QIG766wGTzLm4rPpOiI+ljRZi3IUSelZvO4ZCmo5cda0r/ayCSm6mqdrB9386cXnWCPJqkTy6X5FK/2wMXr4pGxhfHmc+4MunMVi3eo1ck7Ut1LJldm4M+6sshKQQqhOdnAIJklukw11ivAZpPDr9quAKkjsjncAq+CF6qYXZQavDEz4CLC5FmKGqtAHqDfClgUDC6CQU6tbh0cj2Qp+ExTiaRTvtw0dK4Jtlk9wtdniF+dE75IniIWMqK4gwGvDLfUK51j+p8K+ZpDgeZDqlWJ6EiFc= X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1886; 5:jFTIAY3IcVs6fFqkhlpg4f5kuB1xaNVPkbSwvKXGNTNU2I/gHkYa2bYmFQTHOt5eSO1k5wP731cjiCxsCawE864Eh12w45D0i5giY1MrZD4FjtQACHSa/ioxZj4uez3dKRXPhwg/IGcFjty1bBAu8oJxsPvNjFR4VoltmJ0jbralRi4TRWPANGLdQzalaUlLUCvVRcaqfF7W3dloj8BBz/TXKEYdTIPRkcvNQG8r4kenH+OK1gBBi3fY2yFWaSa1GtZyA3o2P5ozDYSo1vy0eC5sovqgHI2apu6HbW7+KD/WJPGlYYnY/lyPjVpppLPOYFvvuJjqPVMgtDlsvDGFr8Thwe/ITFEZNq8CioYtovBPKzF5ieTEcs7LQgnHz1H6b5SX6s9qEuDcONiG/mEZW7hx2B8tGe/vgEId1exhxI+lepCUGzdL1mUKgyA8cIB0ReHqIZRT8xIRWp2qEIxPEB/4R8aVQsO64Vyr73fJAF3/aHyFIS1xELDkTGszXqiX; 24:HmvlvA1JqXOQblSysC9m1OYTo3HU6T3hSj+x3ChDJU33ctJ86LjJEWyKdX1YIu2CkP/S8yanxjlxy6WyL3fGm7IF4ICQ0IZzlPaTsVB4x1g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; SG2PR0601MB1886; 7:YHdfzSqNlW0j4/7tf1YRnuek9v9a/kS513SFQKNeMWF945wmbWWsHJuc+kJ6ouBS0KJVeaAFGKTrMWNzwFKZVFbBfHnx/k0+bTCzJVnB4wTLCcr1/JBVHDtPizY0acLK5F5G5ewDekWYd0VcTZ/PGasuVfAXJFLnNZ9aKEH3mFfXQKm42LYByYQstL6qmlvMMz8yxzNlk40X+SlctSlZJ/ZKz4bjUaRtaDASCsMSa75eUQ4zqve1BvEK9gDRp6GsXjKANdsNjMAJsTu6S2O1otjgATSJXYc3Jpxpz2flIfhNDkHCTvLDqeEirIhecRbFeZKbSDnviIozd3pTCEbxBA==; 20:QQeZWq6TmxIOPpdEhWp+SUnKy5leZWuzGhjCWY9g/1y0JH9d6f+yclJmdABbYaIx4FRgTgtdI6h5ZdkKWqrFQUFgwh6RY75Zk45wwW1ffckUui49ZZD7A8geAmQ1HaIG0x/TZ2WK+KteA1ag9YPhb0w60YayrPoHVbTWb5iLZwQ= X-OriginatorOrg: renesas.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jun 2017 00:44:40.4931 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SG2PR0601MB1886 Cc: linux-renesas-soc@vger.kernel.org, Linux-ALSA , Simon Subject: [alsa-devel] [PATCH 3/5] ASoC: simple-scu-card: use asoc_simple_card_clk_xxx() X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: alsa-devel-bounces@alsa-project.org Sender: alsa-devel-bounces@alsa-project.org X-Virus-Scanned: ClamAV using ClamSMTP From: Kuninori Morimoto Current simple-card-utils sets asoc_simple_dai::clk via asoc_simple_card_parse_clk(). Current simple card drivers are using it directly for clk_enable/disable. Encapsulation is one of simple card util's purpose. Let's use asoc_simple_card_clk_enable/disable. Signed-off-by: Kuninori Morimoto --- v1 -> v2 - no change sound/soc/generic/simple-scu-card.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sound/soc/generic/simple-scu-card.c b/sound/soc/generic/simple-scu-card.c index 5faf5d6..f203783 100644 --- a/sound/soc/generic/simple-scu-card.c +++ b/sound/soc/generic/simple-scu-card.c @@ -47,7 +47,7 @@ static int asoc_simple_card_startup(struct snd_pcm_substream *substream) struct asoc_simple_dai *dai_props = simple_priv_to_props(priv, rtd->num); - return clk_prepare_enable(dai_props->clk); + return asoc_simple_card_clk_enable(dai_props); } static void asoc_simple_card_shutdown(struct snd_pcm_substream *substream) @@ -57,7 +57,7 @@ static void asoc_simple_card_shutdown(struct snd_pcm_substream *substream) struct asoc_simple_dai *dai_props = simple_priv_to_props(priv, rtd->num); - clk_disable_unprepare(dai_props->clk); + asoc_simple_card_clk_disable(dai_props); } static const struct snd_soc_ops asoc_simple_card_ops = {