Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752919AbdFVGJY (ORCPT ); Thu, 22 Jun 2017 02:09:24 -0400 Received: from mail-ve1eur01on0120.outbound.protection.outlook.com ([104.47.1.120]:6880 "EHLO EUR01-VE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752574AbdFVGGM (ORCPT ); Thu, 22 Jun 2017 02:06:12 -0400 Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=none action=none header.from=axentia.se; From: Peter Rosin To: linux-kernel@vger.kernel.org Cc: Peter Rosin , Alex Deucher , =?UTF-8?q?Christian=20K=C3=B6nig?= , David Airlie , Russell King , Dave Airlie , Gerd Hoffmann , Daniel Vetter , Jani Nikula , Sean Paul , Patrik Jakobsson , Ben Skeggs , Yannick Fertre , Philippe Cornu , Benjamin Gaignard , Vincent Abriou , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, virtualization@lists.linux-foundation.org, intel-gfx@lists.freedesktop.org, nouveau@lists.freedesktop.org, Boris Brezillon Subject: [PATCH v2 04/14] drm: amd: remove dead code and pointless local lut storage Date: Thu, 22 Jun 2017 08:06:27 +0200 Message-Id: <1498111597-10714-5-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1498111597-10714-1-git-send-email-peda@axentia.se> References: <1498111597-10714-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: DB6P193CA0003.EURP193.PROD.OUTLOOK.COM (2603:10a6:6:29::13) To HE1PR0202MB2553.eurprd02.prod.outlook.com (2603:10a6:3:8f::23) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b2d84952-4886-46ab-9724-08d4b934c70d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500055)(300135000095)(300000501055)(300135300095)(22001)(300000502055)(300135100095)(300000503055)(300135400095)(201703131423075)(300000504055)(300135200095)(300000505055)(300135600095);SRVR:HE1PR0202MB2553; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;3:yx7h8IcPd63e3IOEwj0CMXWwgWsk73R5h1AFFDJ19S5ggYlzOUEgYAzpi+OeGrSxsd3JgdH6fv02aq+NIavLbAEp946gA6djIpGxtlKh9No1VNiBLC+Bwg7iOngW9+9GjenLVaxf5NJH/wkpF3JxblqjbJRrWJQ7sFOojCHGh5MksNeMSxjFI+1UeQnCBFKjbx+q7MpGCKnWW5sfbmfWuHvOpwgoffRZK/D5kp6jhE534bDRPMbN1nXWgwTx4tgF/91PYjBoH99A29+egtb+/9OzxySVmsoP+YUxirft+keWt4fJdZY58JWJaE/8zIWNqma2VqAFs0x0I8tRDNTjdgbcOBic1zp6kMklHM+OCmxcZcgINpCE6oyCOMJAzDU0UUhPZEcH0GMxE5XmP5WDxFFCFMUo/CzvIPEpkSY4z68PuI7sZPsQ/GdNJHRSkKVOHEk8ZrHknQpwmzJsy3PgacqcG6hLlmSP42e3dbjOj1VgieDl2kXRAG7Yn1syjQ211Hf5TUASgEykF+nlK11SvPe5b1bRvbxNSI36xxzE7q3wEZV+ynvJ9Yn33CN+xJTSaOgyGMkXutTX8hN8AbCNzSvyBf2+uDPbOFN4snDT2rFiWQRpM+kIj4yPU6cAc1wNEE5kK/1vk29QHDmvReGmyA== X-MS-TrafficTypeDiagnostic: HE1PR0202MB2553: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;25:xVyg8RUf3gGMkaiBN33nFbWxRVig3nOhzs4xUOSS404SObEl9LAZeVoW+ZnxS58y8cfCszXvIPRkmES3cz3RAw3MnMLdAe/um2TmLqgLEh9eO7fnnq4cHDn1B7Hn0h39yegO66ZgurKJiibDGYzx5TCBJU9gp9gWw1kL71eszUQCz6OvL/i+pf3cDFk4aettHdvnbpvIDraIbJUDos4iowid4pNuGjbhpsswpBTceSXhTqtB3I5QNFMx0duwlFD7382Kumw4Q7tpZ7TvMJW/pdMIdkY6KEqYnxrOxoJFWSs14p5l1+XiOWBAZtkid5feguoRNdVWsBhfTVT9NyWywCRlRoo4vx1a2BG4/4hJfRH1ymRdrC28qz4jTQslBU3+WLRoaS8B8CjTvDaEcrdpji3ybp6zQSiJrW3URxgkRXeXC2fRKaWE52VoUHVOtx+pZ0ryCqn3xkIWXKbWOi21GFHK6IXq+FE+T7bIE1DMseWvC0gTBs8711pKlDE3E+Kqsmclv/E2xGzRa9kSzTAmZvUwV8i2sAOOZQ/Wtbjd0skOP+NaGiJ1j22yHsrNvEgQMtWTVNyr5HI6eiaORvRMmTlRI08+ziOfQvixLV4qO0boQr6N5DkfCGeZ58+x3qotA1pnLEyYwFxuj3oIigUwLX8PoS9TmZ0R5Ukx75C/L31qIPFAnGXyFr2jjVznU7itWIBZ6Izj5h0dLnbyqBHB9qoqJt/hlN/8sZ4pua2SARazFTMFiy4Gg1r+HsSkHLHpUUBaRCfv4f7S+Xka6kY+OJFZ3C8A9+Jflnkh5kv/TQhWEW6XSlLs6JYmI/UJ0aO5WjiXjczbYYunYaTHuio5ZKfA0K2udN4LTzN+UkCct0fnygmiQAQ0nkJWm0p11yLPxmNDDXik6kIg4PMPAkJjSg== X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;31:a8c54ZWVDU66vz2Tl8lJAJmidViBzfMzEzgIW07fOe/f6jS9yE1Od3B5p3mPTcImeAW+m3sNKYTilF+Elf+7x5thNmSrCPYU0+zpx1fgeGSkQouf+R4OtWetjJWY1n1f14NzfkFn1OQtbf0YmU+AeHzMTGI8PalngCUewSR1cX9zEXHAN4s0EfekPB/MpBY40plVlAZe5dXdJS8zdFEpMPavWFWVlAUsDQf8Yz2tkDcYI4DD5GTARFcKybppKFvpsTD2x5crNRPMsVnZkYH5xD7t5fplNJZFzPrEd166Af4gIacvxQja2pCDsrEFymkRb5fxW9pFhrR8KYQadfyAi23gZPIuYT75cLVMT4QSZiSuA5StbXQdjF2g3tiz/Ylwlr1wvWiu2dC0Oi77li7G/o6M+sNDXoqcW1mnbqFIvCmWG5UXWpd6X+EK2+KCWYUDN1CD+Z+9fzzg6hl2EgVlyjMit54Ee9vCeOc5NcuP41he/f60nITLbGEM15rlniU+PrgslqWGiMsAasTzHrIDfGBZjJnwHDQHNpspikpmVsSaigvd4FqGesBut+nzHU9cNcQX2ttu86VVqvsIcdLzyz/z8VQuQaqE1eAj7SKyB+38IBRxzkZqyUZrbnNQB7TO42Bb5owCYanyKk8qe0lfFjqyI87EGgBzWs5+Aowlubo= 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)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(2016111802025)(20161123560025)(20161123555025)(6043046)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0202MB2553;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0202MB2553; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;4:dG+4TumgNX4NKssPbnpJj+sfg09bh0WmJkgqtTa4?= =?us-ascii?Q?zXsJEML+nh4WLh3FG0IxKG38RqDyUtOSgNLMtVZOe9W/UHCvhI4Tte7JHoSv?= =?us-ascii?Q?eHZNXvDdvtnuBWlfzAbPa/sTFZ+wTh9xLxiNADZjZZiAA0hmmzz1izBf4b2h?= =?us-ascii?Q?M+vnqKhFE81O3voFBZf7jd6yVKe4QjxhpOohAjpoVjWlqnzg42d3JilqF1mQ?= =?us-ascii?Q?H400Ph8sHXnjM8lDCaiflWwaypCCfqK1n3mAbyuyTfvtG4FIxI/FEy+/it7q?= =?us-ascii?Q?DysXcI8PSJCa3Uuckb2dJbt425ZsX8FILsNTME9r/jSp6feov0rQ/xCfl7uC?= =?us-ascii?Q?dWPNB9Bw3qI3cG7NSFWWnU2mwyGfBolF8xYGknnYdw8RoR2/9egheT9Fp19b?= =?us-ascii?Q?3CwzpUkvW8vDvnpouCzC+qXWYP2VnNnJ4FoRTII3Ur4tPgHqW60Cn7JyrQrk?= =?us-ascii?Q?ZL70Om+CgYuzjSXvTIS4hUhzLuHsDuzQlK032xE85/eadnQSgseSJ6M9oxgT?= =?us-ascii?Q?/JiiZIFHFWNXzA1KYmkQ30/OZHRHuHDxvHb8AHq5X0uM/Gf7Tdi09CaVy1pK?= =?us-ascii?Q?sb+5Df60JW8F8cGbZMebHkUjrPDFhzU+R0+xr7SOhzFEdHd8pEo+IE2uWVpr?= =?us-ascii?Q?emz7PcedvhWzGpXjgfsHjHYMg9XSknn2x371gfOip1REXQQJauXOvawOatuy?= =?us-ascii?Q?kwQCAgMLfD+egMqz0smSxfF0qMRLHb0Wy5d4q2yRVHyQ9NzLJeFlyN8+Km/8?= =?us-ascii?Q?DVIvtfplYmTAwDKHML6UqiD6ymmIS8iFECJkkVRUTTF1iMR8oA6/FJ+gFZSY?= =?us-ascii?Q?2WHDkoGAC5fb1Kw88hHIEGiDiZmvKy/LZsxE2LCWZXFNAt0Y9uPtlAGYrsbx?= =?us-ascii?Q?RCrLcdgWhsA2uQIJE4Lhgwwlzqfhujym1bsFZJKa1XWlL8Q7QOq5XnxDc4ZJ?= =?us-ascii?Q?WJ0Bn91+mhE6f9r3daY9thVl3z1ukQrtYAFWayEqNTG6uQB7Kf9GL+pYc5es?= =?us-ascii?Q?eO/aM/SMLn5WWBx91wE6tloittbvt4jRDc1/W8spwb3f2gtjHpZHdSPoZsmO?= =?us-ascii?Q?iNoAqWIe9yoIwCaCRbH2vDJpA37ZobJJ8G07esZPYyOd3qwiH0cu8fsSWHrM?= =?us-ascii?Q?WDQBP5CfLFdvJJmjKmIrvum28qdUJ5Uaddo6Rj0mBLt0xhzWOXyUdp88GnfJ?= =?us-ascii?Q?a9kFZwrjXuj8/3Q=3D?= X-Forefront-PRVS: 03468CBA43 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39400400002)(39410400002)(39450400003)(39840400002)(7416002)(6486002)(5660300001)(3846002)(6116002)(76176999)(36756003)(305945005)(50986999)(2906002)(50466002)(25786009)(478600001)(66066001)(42186005)(33646002)(50226002)(48376002)(2351001)(2361001)(6512007)(54906002)(53936002)(8666007)(6666003)(81166006)(6916009)(2950100002)(47776003)(6506006)(38730400002)(5003940100001)(110136004)(8676002)(575784001)(86362001)(74482002)(7736002)(189998001)(4326008)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2553;H:orc.lan;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;23:b/XjkoqL1453/qbCPhmtLpNX1zcrPX76XfjHr0L?= =?us-ascii?Q?SaBU7yfa5A/UxItUZj++4TEoTusfKcUDQx/oE/HH/HBvHJOJ5nSkVJ+pwEgq?= =?us-ascii?Q?OkuQpcuwIa02tGDayalzKGQ55ZTAJlGiaOhQwi0gRWP7OkIvkX/vBr+G4tXg?= =?us-ascii?Q?zvmwEt+65vO0Ul7rTRyYFHeNapN6EPb7CDEtWuGHDzQaHVidGDofPNNjnjGz?= =?us-ascii?Q?4UaR682qHVAbZ/E6JfuhB7SZrUfzEvMnWYmqRdpk3+4iMZQymxVROC6uZ9q0?= =?us-ascii?Q?5FOop83wL2PYf7WnPfgOgrcZQV45Cc2YzYJwrD2DeQKy2xeXcJndJy4woj1R?= =?us-ascii?Q?wB4AdNSxARGEBDzSogiAF22SG3AjQR8pWijVSTyxc5wfxL5DOVqfDKuT+hgj?= =?us-ascii?Q?wUKDuUy1vVEnQoPJWEK8JSUjm5aKDLuwMh2oWpaHXh0l+0M5Pf8VbO2o7pdx?= =?us-ascii?Q?dFTQtM3nmZn/ikFMqn9/bg40gYV0iAmkDZfYvfz5lks878p16ZYLINx/chLd?= =?us-ascii?Q?ppO0fExslT5StzcNEMkbuzZPjQ09TudlOt6TS65Vh4tCX9yAVvAn5ZszbJ8a?= =?us-ascii?Q?FVWzcUOaUzNYabJl0qjumZuz490RgG+uH7xaIiDUtzjZBID1oSW/IDf9PS5c?= =?us-ascii?Q?Jb/M3vIYSB5Al0WxTPCOG5w7s/O1anXVyjxDZkbZQ/+ESIlw2SmW5Qbd4l8g?= =?us-ascii?Q?Fs9/4rAAGpY9iymgj08zkeAxYFq6E0ZmZOotF+UF+kVQg9RqrxDEOcEymBoH?= =?us-ascii?Q?US3bI+5tH0NbhXE8SCMvEpkQ9JH++uZOxFaC1aJuvPZzdtvo+wBJN0riBA+V?= =?us-ascii?Q?5+hGaftHeU3cl2wSCVCuzrP+dE/vnhYaWGrf1JKwCVR8ZF00UQFYVaPoTYpx?= =?us-ascii?Q?fwrq6ekGhubFBUCOv4fWB0R94flh6iy0StrfqcTCHto5HbY1gHNt5R1N11cZ?= =?us-ascii?Q?0OD5X2CCvu33x4zAM+m2icSBCgMb+FytR6ZTAdyvT1izryzThmV4xqH7QNFt?= =?us-ascii?Q?vysQ1T7pzf+aQK/lIxagwnT+SjBxEhzws6hTlGFwmCpEo7hVG19FKEzxWzfX?= =?us-ascii?Q?1bAMHmD/skL1f8mbj+v4zYo8m2Ek6e2k6s0HKaKGrhHREgroAmjQjBKH7EoL?= =?us-ascii?Q?FC/wm7XuUfGZe3zzV96iGmxOt3yY/GPB6/zsSOSku8bRUy7KCUM9zPA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;6:hvrAbH1J42Prb+cd12KdyYJryNk371U8whd6xr9Y?= =?us-ascii?Q?2NYnW0MHF7mIsos5qq5N3Nxieu1rdiL1Y/GUsojj+4f/Txnw90881L9KLI2z?= =?us-ascii?Q?KAyhE6wS08KY9FXVWK2NhsfR3VvRW9epACLqWP2r+yLfjZ/+Vy6mK1QoE12z?= =?us-ascii?Q?zugAur7Vhb2jBlmJiwZm9aTmHj4TujjgPZVVU5lsMe1Vkn7xPJSFkE167jMS?= =?us-ascii?Q?LzFZMGEYuTlIXueRwbIDBUhh+uXmgCbaDkRm+XowVceSOo9mzJoSR+yVneFu?= =?us-ascii?Q?E0BGg8kYrQBDKWRmODlJ+acKvlEa2HdX8DKaqilumYfLjPECCUpitIHUpOJW?= =?us-ascii?Q?b2/OuOU9ymYR7SGY7eXovRZy8hCNRx1bUEKWTWMdBC/Es9CqWgr9w1C24Btr?= =?us-ascii?Q?ij7s1DN4Nw94zC+5lB8JDWcw+pb+oJgU3CaRPQbjsvYDbXaJRKo9mocNeY9x?= =?us-ascii?Q?tpXu+R8fv9M01D2G6EEeaOZ5xNDIL9plzZg/jLnNOxratwn95C8GWela2GEn?= =?us-ascii?Q?UB5mBpkTkN34DbX+hdAYk2ySAnHcevL84AqNCa6NGOk6wi5vL6QbQUA0Iktw?= =?us-ascii?Q?yVjvLt6ReNdDO7RConzYlLI/dh0U/vMZYlMESFysBnxM+a3PBn7ssSZwd6Rv?= =?us-ascii?Q?gdAPPSD7RMwK5PIU25HHbsHPlv/ZE5ZnQF3Pib1ouWeWLYLPL76GwwuEviYP?= =?us-ascii?Q?vvgruJBOphKyj5EJwXJ93FC/zPEVARES9Q7kJVCak48tsNFR+4UumUFItXno?= =?us-ascii?Q?KCVWAYJ5nT6Oy6/t96bmbobIsfmkr/L9ItOdnWMCHRpEeY8UcA9BhJjQCc/c?= =?us-ascii?Q?mUxWDsmNmyEVWRfQFxRCkOQGWnHhW/fB+0fAf3vmCT5zcT/Nm0ikoRRmgUTw?= =?us-ascii?Q?6eT8efi9xf8spDjLtkITY/YfOda5y2LNh5GHZuOWjlxrLmXn2hT4FcPzhnD6?= =?us-ascii?Q?NlE07FQKgI+xsngf8ywxaQUst/59ZfSkEZvXq+v8eQmrclhxgsBX+4Ah+/0a?= =?us-ascii?Q?+v4=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;5:jSifaLNmjnRFdiTeXxl8aCfZ80N9+lAkXvFGtj1udaJZhS4wIqASWfJTH8pZJhIi7Rj8/Q3C7Anc8lfEOJuHHAjZwJfo9nGcq8N79Uxfjgb9FjM7zMgPliMV/fhEzVN0f2XKYrRGVh64M8ytPYZAfcEQJJFUD3IEjiReF3MgVf2dEGXciqUai7SXlnEPMAylGp66ttweo52CNo1hfk2NkbI9gh9K18bfnaqulWoM/u1orB5FfrwanB+FRcj0Resl/fiz5rysvp3Cl6fTD5wg1kv62pgDNAFYSeDbLyyh/4wF7ZBwPr3QRUnfHaJk/m8KKEJfa5GRIW4K0rT7e+QsyIfeT9KVGwviJnl3ftT9TSehLAb2id7OUeOZ5Ll8Tb3C6KYfrLfVe0Bn4jwPY+BIcUI+1JjMcSHCF0L/8bRfxVMDhRIbQHHLxo80/mWfRrPnJLHczcMk/psnmKk9+SoGSzB50CVj77XVcO2X672PUI5nn0yM+t7389lmCl87DvTo;24:7e5YLyH7fC9S91tnO+dpyaokVHmJiknsgD6Pn3XCbL92komIZ4ZKd3x+bePQeNwCtQt6inB8jYudlw/y02/0bmPsHBAlY6yaRNT1mvTImIs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;7:KmIgnWHXTDme+HzKj/oCz1FClhpLRamL3ESc9wyK2Rt2y2i3E2xbYKGG1b3ElKlUwia1cQ1FP8NNxZTNMG6ZIajRk+pLwjMJGJgEYhEFs+1Vjl6lHgQpVzywldqlzRVaWO3kOSkR9Q7RJGf4ergmjMwN1Pb5uzppAgQndXh4A20DxlPlKdqcjrhJ4iju/SjpPPlZruQmbkhhS3LyE8f+xbnY7hBVW8lnNwtejv1eCmXuzE6e+RE/vhQUO9IHvmT7W9RemZgwL+5CnNeyBWKbhtFWQGEovL1XqErYunjgBpGLwkk7YsqB/1xAkcmQYAA7b/5fd/W6IXS3+oz/iWEGroZrJAAx/L/spPymEGJBeXBXYeV6irIeN/qLuUJBurrcvbzjusYpXfiud+7oosGZEJICzhK+/+JquRgxYptPMVP+b0r2jGOPPqUZ/LfHRUmp8GWJww5plQFn1E7J0DPkBZ4idDskMZFM/Z17R5A56ZM+qmyNR1TPFbRn2lz1KmOYXQsfJQMZqk3Pl6jsr+q9Zlb6rWL6XYcG4cM2L4T9QUX2ZDfsN2PxV6esNqCbh+hm2q9bGo3B0OGrZc8w32fM1lYJBljQSSZsqE2148xLE3cIKyCa338FRiZFtrKKIBAFu0/muYwB3IXKcCn+TtT7IGySqYbmI44w5QROBXqKj78FxAYUbNiyFf/LjSOLjdnaMl0Itpgm4fwffcTiQRhCKKuOh7QJyYZVUYn5ALhvtArdNXlEaNrUeLFiiR8cOm4MiJighI8hDj2oowz9cEAzvPw4I5TN48icLm3+UFd/OY8= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2017 06:06:06.1098 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2553 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 15312 Lines: 423 The redundant fb helpers .load_lut, .gamma_set and .gamma_get are no longer used. Remove the dead code and hook up the crtc .gamma_set to use the crtc gamma_store directly instead of duplicating that info locally. Signed-off-by: Peter Rosin --- drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 24 ------------------------ drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h | 1 - drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 27 +++++++-------------------- drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 27 +++++++-------------------- drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 27 +++++++-------------------- drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 27 +++++++-------------------- drivers/gpu/drm/amd/amdgpu/dce_virtual.c | 23 ----------------------- 7 files changed, 28 insertions(+), 128 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c index c0d8c6f..7dc3780 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c @@ -312,31 +312,7 @@ static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfb return 0; } -/** Sets the color ramps on behalf of fbcon */ -static void amdgpu_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, - u16 blue, int regno) -{ - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - - amdgpu_crtc->lut_r[regno] = red >> 6; - amdgpu_crtc->lut_g[regno] = green >> 6; - amdgpu_crtc->lut_b[regno] = blue >> 6; -} - -/** Gets the color ramps on behalf of fbcon */ -static void amdgpu_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, - u16 *blue, int regno) -{ - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - - *red = amdgpu_crtc->lut_r[regno] << 6; - *green = amdgpu_crtc->lut_g[regno] << 6; - *blue = amdgpu_crtc->lut_b[regno] << 6; -} - static const struct drm_fb_helper_funcs amdgpu_fb_helper_funcs = { - .gamma_set = amdgpu_crtc_fb_gamma_set, - .gamma_get = amdgpu_crtc_fb_gamma_get, .fb_probe = amdgpufb_create, }; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h index 43a9d3a..39f7eda 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mode.h @@ -369,7 +369,6 @@ struct amdgpu_atom_ss { struct amdgpu_crtc { struct drm_crtc base; int crtc_id; - u16 lut_r[256], lut_g[256], lut_b[256]; bool enabled; bool can_tile; uint32_t crtc_offset; diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c index 9f78c03..c958023 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c @@ -2267,6 +2267,7 @@ static void dce_v10_0_crtc_load_lut(struct drm_crtc *crtc) struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); struct drm_device *dev = crtc->dev; struct amdgpu_device *adev = dev->dev_private; + u16 *r, *g, *b; int i; u32 tmp; @@ -2304,11 +2305,14 @@ static void dce_v10_0_crtc_load_lut(struct drm_crtc *crtc) WREG32(mmDC_LUT_WRITE_EN_MASK + amdgpu_crtc->crtc_offset, 0x00000007); WREG32(mmDC_LUT_RW_INDEX + amdgpu_crtc->crtc_offset, 0); + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; for (i = 0; i < 256; i++) { WREG32(mmDC_LUT_30_COLOR + amdgpu_crtc->crtc_offset, - (amdgpu_crtc->lut_r[i] << 20) | - (amdgpu_crtc->lut_g[i] << 10) | - (amdgpu_crtc->lut_b[i] << 0)); + ((*r++ & 0xffc0) << 14) | + ((*g++ & 0xffc0) << 4) | + (*b++ >> 6)); } tmp = RREG32(mmDEGAMMA_CONTROL + amdgpu_crtc->crtc_offset); @@ -2624,15 +2628,6 @@ static int dce_v10_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - int i; - - /* userspace palettes are always correct as is */ - for (i = 0; i < size; i++) { - amdgpu_crtc->lut_r[i] = red[i] >> 6; - amdgpu_crtc->lut_g[i] = green[i] >> 6; - amdgpu_crtc->lut_b[i] = blue[i] >> 6; - } dce_v10_0_crtc_load_lut(crtc); return 0; @@ -2844,14 +2839,12 @@ static const struct drm_crtc_helper_funcs dce_v10_0_crtc_helper_funcs = { .mode_set_base_atomic = dce_v10_0_crtc_set_base_atomic, .prepare = dce_v10_0_crtc_prepare, .commit = dce_v10_0_crtc_commit, - .load_lut = dce_v10_0_crtc_load_lut, .disable = dce_v10_0_crtc_disable, }; static int dce_v10_0_crtc_init(struct amdgpu_device *adev, int index) { struct amdgpu_crtc *amdgpu_crtc; - int i; amdgpu_crtc = kzalloc(sizeof(struct amdgpu_crtc) + (AMDGPUFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL); @@ -2869,12 +2862,6 @@ static int dce_v10_0_crtc_init(struct amdgpu_device *adev, int index) adev->ddev->mode_config.cursor_width = amdgpu_crtc->max_cursor_width; adev->ddev->mode_config.cursor_height = amdgpu_crtc->max_cursor_height; - for (i = 0; i < 256; i++) { - amdgpu_crtc->lut_r[i] = i << 2; - amdgpu_crtc->lut_g[i] = i << 2; - amdgpu_crtc->lut_b[i] = i << 2; - } - switch (amdgpu_crtc->crtc_id) { case 0: default: diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c index 4bcf01d..7e14f53 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c @@ -2251,6 +2251,7 @@ static void dce_v11_0_crtc_load_lut(struct drm_crtc *crtc) struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); struct drm_device *dev = crtc->dev; struct amdgpu_device *adev = dev->dev_private; + u16 *r, *g, *b; int i; u32 tmp; @@ -2282,11 +2283,14 @@ static void dce_v11_0_crtc_load_lut(struct drm_crtc *crtc) WREG32(mmDC_LUT_WRITE_EN_MASK + amdgpu_crtc->crtc_offset, 0x00000007); WREG32(mmDC_LUT_RW_INDEX + amdgpu_crtc->crtc_offset, 0); + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; for (i = 0; i < 256; i++) { WREG32(mmDC_LUT_30_COLOR + amdgpu_crtc->crtc_offset, - (amdgpu_crtc->lut_r[i] << 20) | - (amdgpu_crtc->lut_g[i] << 10) | - (amdgpu_crtc->lut_b[i] << 0)); + ((*r++ & 0xffc0) << 14) | + ((*g++ & 0xffc0) << 4) | + (*b++ >> 6)); } tmp = RREG32(mmDEGAMMA_CONTROL + amdgpu_crtc->crtc_offset); @@ -2644,15 +2648,6 @@ static int dce_v11_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - int i; - - /* userspace palettes are always correct as is */ - for (i = 0; i < size; i++) { - amdgpu_crtc->lut_r[i] = red[i] >> 6; - amdgpu_crtc->lut_g[i] = green[i] >> 6; - amdgpu_crtc->lut_b[i] = blue[i] >> 6; - } dce_v11_0_crtc_load_lut(crtc); return 0; @@ -2892,14 +2887,12 @@ static const struct drm_crtc_helper_funcs dce_v11_0_crtc_helper_funcs = { .mode_set_base_atomic = dce_v11_0_crtc_set_base_atomic, .prepare = dce_v11_0_crtc_prepare, .commit = dce_v11_0_crtc_commit, - .load_lut = dce_v11_0_crtc_load_lut, .disable = dce_v11_0_crtc_disable, }; static int dce_v11_0_crtc_init(struct amdgpu_device *adev, int index) { struct amdgpu_crtc *amdgpu_crtc; - int i; amdgpu_crtc = kzalloc(sizeof(struct amdgpu_crtc) + (AMDGPUFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL); @@ -2917,12 +2910,6 @@ static int dce_v11_0_crtc_init(struct amdgpu_device *adev, int index) adev->ddev->mode_config.cursor_width = amdgpu_crtc->max_cursor_width; adev->ddev->mode_config.cursor_height = amdgpu_crtc->max_cursor_height; - for (i = 0; i < 256; i++) { - amdgpu_crtc->lut_r[i] = i << 2; - amdgpu_crtc->lut_g[i] = i << 2; - amdgpu_crtc->lut_b[i] = i << 2; - } - switch (amdgpu_crtc->crtc_id) { case 0: default: diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c index fd134a4..d773b50 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c @@ -2182,6 +2182,7 @@ static void dce_v6_0_crtc_load_lut(struct drm_crtc *crtc) struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); struct drm_device *dev = crtc->dev; struct amdgpu_device *adev = dev->dev_private; + u16 *r, *g, *b; int i; DRM_DEBUG_KMS("%d\n", amdgpu_crtc->crtc_id); @@ -2211,11 +2212,14 @@ static void dce_v6_0_crtc_load_lut(struct drm_crtc *crtc) WREG32(mmDC_LUT_WRITE_EN_MASK + amdgpu_crtc->crtc_offset, 0x00000007); WREG32(mmDC_LUT_RW_INDEX + amdgpu_crtc->crtc_offset, 0); + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; for (i = 0; i < 256; i++) { WREG32(mmDC_LUT_30_COLOR + amdgpu_crtc->crtc_offset, - (amdgpu_crtc->lut_r[i] << 20) | - (amdgpu_crtc->lut_g[i] << 10) | - (amdgpu_crtc->lut_b[i] << 0)); + ((*r++ & 0xffc0) << 14) | + ((*g++ & 0xffc0) << 4) | + (*b++ >> 6)); } WREG32(mmDEGAMMA_CONTROL + amdgpu_crtc->crtc_offset, @@ -2496,15 +2500,6 @@ static int dce_v6_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - int i; - - /* userspace palettes are always correct as is */ - for (i = 0; i < size; i++) { - amdgpu_crtc->lut_r[i] = red[i] >> 6; - amdgpu_crtc->lut_g[i] = green[i] >> 6; - amdgpu_crtc->lut_b[i] = blue[i] >> 6; - } dce_v6_0_crtc_load_lut(crtc); return 0; @@ -2712,14 +2707,12 @@ static const struct drm_crtc_helper_funcs dce_v6_0_crtc_helper_funcs = { .mode_set_base_atomic = dce_v6_0_crtc_set_base_atomic, .prepare = dce_v6_0_crtc_prepare, .commit = dce_v6_0_crtc_commit, - .load_lut = dce_v6_0_crtc_load_lut, .disable = dce_v6_0_crtc_disable, }; static int dce_v6_0_crtc_init(struct amdgpu_device *adev, int index) { struct amdgpu_crtc *amdgpu_crtc; - int i; amdgpu_crtc = kzalloc(sizeof(struct amdgpu_crtc) + (AMDGPUFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL); @@ -2737,12 +2730,6 @@ static int dce_v6_0_crtc_init(struct amdgpu_device *adev, int index) adev->ddev->mode_config.cursor_width = amdgpu_crtc->max_cursor_width; adev->ddev->mode_config.cursor_height = amdgpu_crtc->max_cursor_height; - for (i = 0; i < 256; i++) { - amdgpu_crtc->lut_r[i] = i << 2; - amdgpu_crtc->lut_g[i] = i << 2; - amdgpu_crtc->lut_b[i] = i << 2; - } - amdgpu_crtc->crtc_offset = crtc_offsets[amdgpu_crtc->crtc_id]; amdgpu_crtc->pll_id = ATOM_PPLL_INVALID; diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c index a9e8695..4eb63f6 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c @@ -2124,6 +2124,7 @@ static void dce_v8_0_crtc_load_lut(struct drm_crtc *crtc) struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); struct drm_device *dev = crtc->dev; struct amdgpu_device *adev = dev->dev_private; + u16 *r, *g, *b; int i; DRM_DEBUG_KMS("%d\n", amdgpu_crtc->crtc_id); @@ -2153,11 +2154,14 @@ static void dce_v8_0_crtc_load_lut(struct drm_crtc *crtc) WREG32(mmDC_LUT_WRITE_EN_MASK + amdgpu_crtc->crtc_offset, 0x00000007); WREG32(mmDC_LUT_RW_INDEX + amdgpu_crtc->crtc_offset, 0); + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; for (i = 0; i < 256; i++) { WREG32(mmDC_LUT_30_COLOR + amdgpu_crtc->crtc_offset, - (amdgpu_crtc->lut_r[i] << 20) | - (amdgpu_crtc->lut_g[i] << 10) | - (amdgpu_crtc->lut_b[i] << 0)); + ((*r++ & 0xffc0) << 14) | + ((*g++ & 0xffc0) << 4) | + (*b++ >> 6)); } WREG32(mmDEGAMMA_CONTROL + amdgpu_crtc->crtc_offset, @@ -2475,15 +2479,6 @@ static int dce_v8_0_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - int i; - - /* userspace palettes are always correct as is */ - for (i = 0; i < size; i++) { - amdgpu_crtc->lut_r[i] = red[i] >> 6; - amdgpu_crtc->lut_g[i] = green[i] >> 6; - amdgpu_crtc->lut_b[i] = blue[i] >> 6; - } dce_v8_0_crtc_load_lut(crtc); return 0; @@ -2702,14 +2697,12 @@ static const struct drm_crtc_helper_funcs dce_v8_0_crtc_helper_funcs = { .mode_set_base_atomic = dce_v8_0_crtc_set_base_atomic, .prepare = dce_v8_0_crtc_prepare, .commit = dce_v8_0_crtc_commit, - .load_lut = dce_v8_0_crtc_load_lut, .disable = dce_v8_0_crtc_disable, }; static int dce_v8_0_crtc_init(struct amdgpu_device *adev, int index) { struct amdgpu_crtc *amdgpu_crtc; - int i; amdgpu_crtc = kzalloc(sizeof(struct amdgpu_crtc) + (AMDGPUFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL); @@ -2727,12 +2720,6 @@ static int dce_v8_0_crtc_init(struct amdgpu_device *adev, int index) adev->ddev->mode_config.cursor_width = amdgpu_crtc->max_cursor_width; adev->ddev->mode_config.cursor_height = amdgpu_crtc->max_cursor_height; - for (i = 0; i < 256; i++) { - amdgpu_crtc->lut_r[i] = i << 2; - amdgpu_crtc->lut_g[i] = i << 2; - amdgpu_crtc->lut_b[i] = i << 2; - } - amdgpu_crtc->crtc_offset = crtc_offsets[amdgpu_crtc->crtc_id]; amdgpu_crtc->pll_id = ATOM_PPLL_INVALID; diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c index 90bb083..ecf34bc 100644 --- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c +++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c @@ -168,16 +168,6 @@ static int dce_virtual_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct amdgpu_crtc *amdgpu_crtc = to_amdgpu_crtc(crtc); - int i; - - /* userspace palettes are always correct as is */ - for (i = 0; i < size; i++) { - amdgpu_crtc->lut_r[i] = red[i] >> 6; - amdgpu_crtc->lut_g[i] = green[i] >> 6; - amdgpu_crtc->lut_b[i] = blue[i] >> 6; - } - return 0; } @@ -289,11 +279,6 @@ static int dce_virtual_crtc_set_base(struct drm_crtc *crtc, int x, int y, return 0; } -static void dce_virtual_crtc_load_lut(struct drm_crtc *crtc) -{ - return; -} - static int dce_virtual_crtc_set_base_atomic(struct drm_crtc *crtc, struct drm_framebuffer *fb, int x, int y, enum mode_set_atomic state) @@ -309,14 +294,12 @@ static const struct drm_crtc_helper_funcs dce_virtual_crtc_helper_funcs = { .mode_set_base_atomic = dce_virtual_crtc_set_base_atomic, .prepare = dce_virtual_crtc_prepare, .commit = dce_virtual_crtc_commit, - .load_lut = dce_virtual_crtc_load_lut, .disable = dce_virtual_crtc_disable, }; static int dce_virtual_crtc_init(struct amdgpu_device *adev, int index) { struct amdgpu_crtc *amdgpu_crtc; - int i; amdgpu_crtc = kzalloc(sizeof(struct amdgpu_crtc) + (AMDGPUFB_CONN_LIMIT * sizeof(struct drm_connector *)), GFP_KERNEL); @@ -329,12 +312,6 @@ static int dce_virtual_crtc_init(struct amdgpu_device *adev, int index) amdgpu_crtc->crtc_id = index; adev->mode_info.crtcs[index] = amdgpu_crtc; - for (i = 0; i < 256; i++) { - amdgpu_crtc->lut_r[i] = i << 2; - amdgpu_crtc->lut_g[i] = i << 2; - amdgpu_crtc->lut_b[i] = i << 2; - } - amdgpu_crtc->pll_id = ATOM_PPLL_INVALID; amdgpu_crtc->encoder = NULL; amdgpu_crtc->connector = NULL; -- 2.1.4