From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753184AbdGMQ0X (ORCPT ); Thu, 13 Jul 2017 12:26:23 -0400 Received: from mail-db5eur01on0108.outbound.protection.outlook.com ([104.47.2.108]:5888 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752909AbdGMQZD (ORCPT ); Thu, 13 Jul 2017 12:25:03 -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 , Ben Skeggs , David Airlie , Daniel Vetter , dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, Daniel Vetter , Jani Nikula , Sean Paul , Lionel Landwerlin , Boris Brezillon Subject: [PATCH v5 11/14] drm: nouveau: remove dead code and pointless local lut storage Date: Thu, 13 Jul 2017 18:25:35 +0200 Message-Id: <20170713162538.22788-12-peda@axentia.se> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20170713162538.22788-1-peda@axentia.se> References: <20170713162538.22788-1-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.168.30] X-ClientProxiedBy: HE1PR09CA0048.eurprd09.prod.outlook.com (2603:10a6:7:3c::16) To HE1PR0202MB2556.eurprd02.prod.outlook.com (2603:10a6:3:90::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a9b05f69-5d46-4807-8e23-08d4ca0ba7f4 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(201703131423075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:HE1PR0202MB2556; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;3:eF86gd4Pt8bIhvpASJi5z9QCTnWYKvf7NZhSi3rjL7CKpqvObZ3jB0iNs5t+3UsedtY5SkUZpFxlzj96ZCtMPFIiNI2OlNIosRYnLUrwHORhrc+t8wZFZmYRm7cOhsHsAmdJyTAGcA3UgFwX0C11YJdG3V7XIE0QTTO/WemHkfjWWI+UO/uXR7kmk//q7n4/kGCKocBcjRorNWFFhUiKa6/2hz+Y5cOgJJcr8pRHpj/YzoIKV1LspM4E6wa+2c4yTn7o6GQ2NSwAYwvGGisbc1vR/RJrCRwq8IxLsBHsxOw7DFRyHDpXlWeI7aZOaRxMA0wHSXAS2Dih3asuYte4B9OxHKQF8Zm9ADF1wdtXUDU039zufQ7L/6AnjNkiXWW8CyjmAEsjhwpWwjlaC41JN/ruWoLdLH3CK6vHQ/iRwg7iKHsT+yz4DAndBc9g7iFfvqvEFbcGDhN3tUw8CQ4thCTByo7Tum3dVUiXCNcz7o5wu/lyckOUmKkZNuy4kMg0HuUTHl7yRX10Bq4sd1IpZcqbqfpKIJaw1guSC23SANSmaKcBZoDmTul8PClC+c4bf0zC+9m0gTiK+lZ8f4cStBK8nnPnFIm24dW5viYRuDmUx3Co1Pn6j+KyDafnuAxUFlMQzVBs/YeLWpxcJdJDgGcPPGBVFNKa+4jpH9LFicTYfc8IklPX9RhNviaBWTVhDTklo2N+s2hhIY+S6Dn6hQ== X-MS-TrafficTypeDiagnostic: HE1PR0202MB2556: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;25:mskwVq8Qntjo1CQ30isMYUiWGlFif0tJSvRvQuh5T2xQkm6ky/RCoTdAsGIrO9Qv34ZWOEVqdZ9NU5Ky9TdWb8mDu+9cPxEGGNM1NXUlftI0m+Vi02vk751nhLS36N0pkKVKX5NGo4S/cUy/eeGfhPPfrRSlsJ2utwv15PCIDhRMZpN/IMEHs2/icv55/nrvlSrZOR2/GbyNGufLieN6C3QGSEJaxIxSrEHVi4ZNcKrO/TDQZhbQAy8VTVQ6HMLBgv+bXX8/MEnx46Ye7PLZrdTjOeeRUjj203Bcyhr0t0AQSWwoca/X9KYqNKsBqx5Kfez27xnHNOz6scwWX07cc1IZz/FVpwZP0OGmBOba+iTB+uZdyx/DvP7TZZ4J9H8ay+AcALkVt665xU4d1ocMbsSrbRhnAnItCfcr4ihEgdnAOobtG83FmgwKDMLeQL7w6rECNwig6aJVc8QaeIFQ2+JB3Z4FrwjNI9/DZWXVq/vXb62pVY9Rcx21bxdfZNKp8uuWnGM37U152WABITTjHgXsNsd2BVpoIEQxc2AgIysQqIm4e4RqC1fR8jk91NoEmYQJeLFQvAfs5kO2KR74Qk94HsOj4uIzNExjeRmrV1XVKAo92cPvCP+VRV3tJSXa7RA5j7SP8ZFDbJP77oGAZCoTKF9xoPGcKzWmEJeooKjIMNsLwal4dutNu+PDL4qjebvEp+lthxyAXBbF5UoIwNEJ1oTuLD3BNkaLVekUtj8hS/lgztYInuRuHrA2NGmP+fHh1eBc8KgS8Jnhcl0LtbT6yJ2GWZ0WEbFAl4Rdl7GMV//4QVyyXbWAy5Wsliq6PbYMHEnXJ4QxW/P8cxccJCD7ZD1JxSaySQ7ibxeBTUDyMN2a2X3hCRPzRe3R28z6qGL/Y65sq1abwE4SbWKdEsMP1CB1e7+ohzbpC0bwG8w= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;31:TAhuiofgBRps6hg79PFCJ73N5zaEOn1KcY2+phJUW/6ERrnW3FPAp9q/CyQb/sO4Ma2d/dSwn9DGY1SICQoQdzYspUDbGs4Qq9lDkEn6o0QEnF/bYmUeZWZzjlXsP/pfANx3medM9SWcWm0jQAeOcSEVFwCk5LRrseVyJrMOvg8fKZ6JSG/EYnjKTPtYGD/5TF93B7HYYbUaFl8JBWfJ+gQvF8Be+OFXRTmOcv8Rn+FmPcNtPyM7UoOtVJD7sHGysVlpM9pmLuswkuQlYZAyz3AIfOPviH5nSXjCwJfkh8v7oyN6kpAF+7NZpRiJNj1XCj2Me9T2zvQonpIegvsFyueUbkctwvyGn5aBFyXQbinj3aVfK8h9CifxBRWn2i17RnNuzoJnYac7/MpcBXY3y+c2kxFUx1Lk6unvBaTBYKvx80MQjmyLAsGykWOgfhXQN+xafY6k4eN9EQiHD4bjqmCjeSzlZvVEQmsUsLQh/b+ISBKm3w1dNEhy5Q6NQynhRDzhPFNRHVG2NH7SiHIOHf56rBKxajc3ofRI042NB+0WBcT58FjcisfMs4xuGwXAbTT/B8lyiETNh89PqCXX9QGCJ6A1w4iWy9tcoCo+EZwiNCP3DDFnRUCjSZWunv/tTNLX+plZD7/cvUoTXO1B8hcjgk/1KM8iLRnRyYNM2ec= X-Exchange-Antispam-Report-Test: UriScan:(236129657087228); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(2017060910075)(5005006)(8121501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(10201501046)(6041248)(20161123560025)(20161123558100)(20161123555025)(20161123564025)(2016111802025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(6043046)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0202MB2556;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0202MB2556; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2556;4:JUDFzJTvBNItc+0xc7EYJ9IBZDd3sQLfiOWirloC?= =?us-ascii?Q?yDaRDVbUYGLgqbr3kBQkrhOBD+y/cW1pnFt051DTxw48zxB5xt1U0GtGrPi5?= =?us-ascii?Q?p5zzdWUtz34QECiu2RDXRXYHU7+AUqH5HXt047BJiTs0ed3rsNxczippWeqm?= =?us-ascii?Q?KnKleRZEMNCPhzOJjsdQlxIwt0USbjvmM6voH5bEQsVGPpFNd2QxobvrNh2Y?= =?us-ascii?Q?eyfn/xitE5cVqHla3jOuYd/3JD3/c1P53F0sNsncSOf+uVlFgbJcdqDy26bE?= =?us-ascii?Q?neW/NzVDL1OK6wj+JRQ5K5j5sVwnqD0B3zoh9ljkPPmUyYvxVxscKD3sdxXy?= =?us-ascii?Q?Pa8ec3DSzhRLqfOsnaXxERspOpcOLcDVDJnJAi6AxyXjxypwBs/KgNu6gAOl?= =?us-ascii?Q?ZmmZPJppYB9T0g1p6PJF/6bNyosa+lRNpMHXAs75PPRFhT0K3ltMHY0Hkwn9?= =?us-ascii?Q?CLrM/AH0oErEwvS1n0TpeHg+lMgw06UaYERvUppZjWo+s/QVtCdk6LutEEq6?= =?us-ascii?Q?rJP6hpC5o7YrOkTjxbraBPqkEcDbneBdFeDOKgb3A3nhEkyYP7R3PdpwflKL?= =?us-ascii?Q?65R7XYK8QXl0O3I6MNI79+wdWwjztrTSIUx+VX72D40pK0MMmiOmj0J2Ipug?= =?us-ascii?Q?1jCVwieWQsiG05Jqm4JZpMd6Za6+nwX1j+1bdi/81HGh6R8hMWAB8yXpDQGO?= =?us-ascii?Q?T9RWrSV2bkvfgUGKS9CVgRHLEWuDfYPaOerm9l6PcTWWxiIJx1yPs/t+aDJ/?= =?us-ascii?Q?bk8TMw9e4B9pxjSqLo57V+P6fxXQN3mw0sQEcgCr31fYqrGX+jSAwfrvAlDR?= =?us-ascii?Q?3Dt8yPGJvtFJR8QL0tlu9AR85reSRb/cowEarDy1+mo313hxvgckaVT48pfN?= =?us-ascii?Q?OFRvPC7SzNMzbXkHytHG7BWPzmS90TZUqX73kKv0GrAH0rk1jokS57gysdg8?= =?us-ascii?Q?WnzQcYxTLaRmr9+ojjgh0ImrKdZZECIS7jHR7HiWrCMj7jP7bv09179oneb9?= =?us-ascii?Q?2lb+YnHaQTFKTd65RyN10K2aK2mTI3YwYkdm0o31fWm/9GRuVmQ2NLSy3Ud0?= =?us-ascii?Q?9WGHQfjnC/Y9UIZTkr8Y1C9iyWQgpBtjul6l4ogK950b+RhgnhOKNNHVHEED?= =?us-ascii?Q?1zqQcBtFm6HJBCjX0Rb/HpIyuUQxpBdUg+aAswPhL5hDXOEOQHOdi2MNFfyl?= =?us-ascii?Q?uwoyBNqLdg/mwuAFnMRLKWoPfqGUwKcxP65RqXlXR0ECMdyNDk9PEL/mpgZT?= =?us-ascii?Q?vdZzX7/lmVnt0ts+NTv3SclH+fegbg6TkBgMThzS?= X-Forefront-PRVS: 0367A50BB1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(7370300001)(4630300001)(6009001)(39840400002)(39400400002)(39410400002)(39450400003)(54906002)(8676002)(81166006)(5003940100001)(50226002)(6512007)(6506006)(38730400002)(110136004)(7350300001)(53936002)(6486002)(7736002)(189998001)(5660300001)(305945005)(4326008)(25786009)(2361001)(2351001)(33646002)(3846002)(6116002)(7416002)(74482002)(48376002)(50466002)(36756003)(575784001)(86362001)(76176999)(50986999)(1076002)(42186005)(2950100002)(6916009)(478600001)(66066001)(47776003)(2906002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2556;H:orc.pedanet;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2556;23:R386FdtHjuOup1ZSAe/llqA5+H8YNw6jovq9Qkk?= =?us-ascii?Q?bvx3kJkWuqNlxSJkomqtLBl5vmg0WsH8Btxvs64r40KiUo7sV+Cc/04gd3tn?= =?us-ascii?Q?YI5gzgHyN4V5m007rq5lHzOOGMmJa2mgavRRk38D4feNt9rrJzBAwVICUH14?= =?us-ascii?Q?8Zpa2i5h6dlUske/MVgBKG+tXM75QyeB89Xp/BZQv6t1EeZdFmmQ9fHDhukC?= =?us-ascii?Q?NEtCl3KWWpdIbkw0g7GS4yT8/xarzY5rq6b3RfpXXCkLbeqpXpcfUZaJKIdr?= =?us-ascii?Q?cf7JDnuxs0K6M7HStkNLr9x+aQuDPRs6rEYJ2c6Bj8/3IA31k6lzO6x0LoTn?= =?us-ascii?Q?FdpxiezfVScxedp0sOR/H+F7bpq4xw5m5/bXnGlWORtmLBHqQJvv884zqzvQ?= =?us-ascii?Q?p70QuYLIyUvlyyPtR7LirPm29r7RgzZVlGp6v/9v1+Y2tXquFPlt3kbOM2d1?= =?us-ascii?Q?jbOAi8hsWncwDro0eCfvBNqihM3A15pX/gdoZIl7bvPjutUSZaZU3c/RRXfT?= =?us-ascii?Q?u0e9sL3EneO5v+rchiHOto1GBnJ/461/ED9AtYfFkq0svstzAJqS4MaPZX3b?= =?us-ascii?Q?QV/UxffJhZl4J+88+Q/4vsrWCG7VC5rpLd9K6ec2dx3+UfFf7V3ZS7xbex3m?= =?us-ascii?Q?g2hQBrvvxDjttTICg9sZRroWzplq0hTKMs/2Z0E0ZMIzyeN+Th7lCNRezW7u?= =?us-ascii?Q?AQfaGbiA8zRcqIjF+IyTADz/1fxR506mOT7C2OE+g6zAa/0nagTOgAd89A2k?= =?us-ascii?Q?yVMgc8Cd1SLLO3mbOVlnkFDyMrVcCTN3EEqUFRz52VZ9fDfGOD0wVTYTDWej?= =?us-ascii?Q?JxsJt85zAIhonJKfei/4Ql393OeRh66KbLT9P1V1WO7vm5V7LAy2eNhEwA3M?= =?us-ascii?Q?tICdf4apFdaiKykZj1pkmjLqH8iEGFpimKxK0xk4M0XqUKbhUQ+LCRW5XYWh?= =?us-ascii?Q?abuSHVfA5WtWLCDqNFyVwGM7PuoX9KdyoVoPkIDchDm5IVg2Zbf90lRbGe1N?= =?us-ascii?Q?XxM1CL4uo+sOD6g9Vl2WQmljrNB3PCmkLuExfVzYcJg9/u7tpmc8mdBU5pd/?= =?us-ascii?Q?x4kylzKtfbwocf3nhcf55GOP2mOUScMEZonEcZyEAnJYmNALB0bVbwEs4syH?= =?us-ascii?Q?FAQ1tjMFxClmSxa8jhhNchSVyhffS8gYnB6ULAHJreI147MNv8S4/dP6yglf?= =?us-ascii?Q?mO+ZtPcZcuSkAWXmhOafvWwAEkkxXP8shifFq?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2556;6:mva4VeazWbluYR4oY80pQobHIYdZhIPedINMPTix?= =?us-ascii?Q?kiFybk3Kuq6lrVvQZd/sX9WTdnbPlQVGtTL3yPoFk97cPZxhJsBR6QTIpmDJ?= =?us-ascii?Q?Nda5wozWoaR+L5brE1KC/GP/yo6CG6lHR9k45wpdjGp2FOE1Y14/H4k8N/iC?= =?us-ascii?Q?8BJLl36Xm5HIqmoWPLwTUyt1RpqJlDDcHOjZU26FhBgs9oOkWAo6MiQIhnZY?= =?us-ascii?Q?ZNdo0RME7/cxOGuEPHVpnKc01LJMwkLm/hJ5dnPIna1EAKQrfzwrmHcCfRDM?= =?us-ascii?Q?RpVhRqvVNWaSJ3/NOsjqHe/DqVo50qWFVZDuyIHG4RYXfxTInYBKHVm0u6Uq?= =?us-ascii?Q?Txv7PBao0hM8ypagphW9mXRT3EVKg/sFFcY6eKPNDAHeaAVQyEyFEmceIhMd?= =?us-ascii?Q?AE7nfXIoesl4FCuf0WDyEc8X7o4YvTP97wUm9EZy2MFoTILl9OarTzX40fFB?= =?us-ascii?Q?fgah6l6rK4lwYeYMl+xkUOOKe5uwktEOokp8ztvJEF9ewc3YVcoWoShIU5oY?= =?us-ascii?Q?g9Uavl7s0U8oOlFe5gnnjJN3ps+P1SFzeEizYoq6kuQ11U51o6Mvk498qWLi?= =?us-ascii?Q?JGnQ/CY3ye+WFXSt7AJnvKLsTeQvi0eIR0JwyAwg9nVskVUbMz2dvjhLyNYf?= =?us-ascii?Q?fQm9G5TjBACMVVp09Q5W/DJd9sw6YMoImsv1h+Qc6S2n/FkDkAgJghT3f0yq?= =?us-ascii?Q?Jrsp/enhS2Dz0m5WX2e0JW5MzD5W+9fztGc5hdyp1Sice2GU7USf0YJVMGKI?= =?us-ascii?Q?OrvO3LJJ3CoIdGyttTz9SnxYO8tzI13B7qJEFfCfbDjlykhMomWZr/nf+bbQ?= =?us-ascii?Q?lN2DRBTZfCfSfnK5oz8aVfhVKtyunDVHgUwd5SGajIvdkVXd7EzJACc4iXRH?= =?us-ascii?Q?r0rnsJhlDsAdFBSD0q4+Te8izmy04s/rL35k1Q/BL2eDGjndHCO/t6o2N8NO?= =?us-ascii?Q?RN5HBeQ1k41Uc2ntfdyByFVpBq0KU/ZRtEwbcGak7KO4R4epW3xUMT9k/YqC?= =?us-ascii?Q?5pY=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;5:tlRw5Fh2L2LTXpz3tzFBqWwenQKcr3DyfexFOeH6iVWOAdHIWQLQboY/AGShoAlrBsndVCyE/+BCJL++npdBtkMe9XQz1S/j5iBdeoTta3pGSLKdWTv7bVQsh1a6F3jvjYapRO9BjvdO2ukTle0vCBT+RyoYjxjGPSbvZLnLHRkQuDkGA1uVcSgJUo5DaQdIAEzd+zawpWJN8yrMBViPtAL//u+5clW+prpOhezzZQx0UXNTpWloIqxovNxuTrBGpxC1F5wDIgNSn8EPtuezxsuo8kY4G5dIWJwN+RbF+lls/rfNnMIdumasykwh4HsJYqXxtnzMPzOEGNoyjhN6An6VkWnbjTPDpX3aoZLjY+Tr3pgYFvmtrLBqZW5ydp5DoQlhNdmV22WxOEJeFhlDhK05q8icBl0+IdiRUtUhsl8oUgdYoOK3mqUseC3RCxuKgSJFL1emrF5LSLXeChF0wfN5vpNvTKfnhvQAXpCbPpFuTFfJYa5moqbQdOYAgoRF;24:4TWp/a+mXUTy0gaxhc2lUtOcpfgoII0EEm0de0hAfRlr0TyqpuDG2iDqr8kGxuBtqiOCYHe8U/dU/pzi5jm6WRKY3th6Cbp9tdx+sdUxCMk= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;7:FXUgE5apkbCegrdP5Y/8nGK0oTVV29z4WT2k4fSuBMR9gv3WfswQK4BBhgerObvIgkZVpfvtsR+LjkM+ZeC7hLaPTMuofSnGdwlR/yqtRVzTBZDrcI6eF9qkrpylZNRkPmZr3xATMccQeXpEc4u0rnNCqUr5qIaNrasbw1Pp5kWISZva3W7+ZyUxXEFT4/5A3dJzsQ04e7/X6OCRHTktOIEBEVV6RTQ7WyTN8WOR5D+IDNrUZM8s2jGxgexxNDO4LrCapaQTySmO0vI5V2V60XqlX4mAW46fjk5dkEg8Mbr+K+1yUi06+pMBOfUOMf7WH4WZ6LaBiH3xSz1WnqQFLwUhscDu+Fv8Cqhlk0cVYRvjyEnagUIjG/W0UryewvgOg0JOFOm5i/W8VdB1V3C4fjGgnQijXZ+3q71idacPxeT2pzxS3qJn29PMkNWVxy26Mkm3KcKuyeZitbmr+jQ+HAYW7Rz4idv+pFvhqUyXlQH4KjbNPmnvOGyxeXlulj9C78RIEWAIrbLv86Cn1IJwIG9qZVvRwzeyrj9wCzaRvEZOi7TgGm2MWAjGZWR8yGbtmlJIV0B36TArRYOKXPZKF1evQEe08Wn36Qbl8CyWrgmboPxJRXsiL3TSKw0DvdVD5u40L9rQDbeldgdlmMHlJzbDOiVU5zBWMPiWAbb1CjjVXF2/ZuSellhjwy3fT1/tCBjr8Scjg4FPCg+I97qTaWqUBrkNYR8ASC7kt7nlm90br3XhncTtykO26abTgyPatU/dyP7ZRsleBp041cXzu0X2SWUZdmlt9KtptQToaqs= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jul 2017 16:24:36.9230 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2556 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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. Acked-by: Daniel Vetter Signed-off-by: Peter Rosin --- drivers/gpu/drm/nouveau/dispnv04/crtc.c | 26 ++++++++------------- drivers/gpu/drm/nouveau/nouveau_crtc.h | 3 --- drivers/gpu/drm/nouveau/nouveau_fbcon.c | 22 ------------------ drivers/gpu/drm/nouveau/nv50_display.c | 40 +++++++++++---------------------- 4 files changed, 22 insertions(+), 69 deletions(-) diff --git a/drivers/gpu/drm/nouveau/dispnv04/crtc.c b/drivers/gpu/drm/nouveau/dispnv04/crtc.c index 4b4b0b496262..8f689f1f6122 100644 --- a/drivers/gpu/drm/nouveau/dispnv04/crtc.c +++ b/drivers/gpu/drm/nouveau/dispnv04/crtc.c @@ -764,13 +764,18 @@ nv_crtc_gamma_load(struct drm_crtc *crtc) struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); struct drm_device *dev = nv_crtc->base.dev; struct rgb { uint8_t r, g, b; } __attribute__((packed)) *rgbs; + u16 *r, *g, *b; int i; rgbs = (struct rgb *)nv04_display(dev)->mode_reg.crtc_reg[nv_crtc->index].DAC; + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; + for (i = 0; i < 256; i++) { - rgbs[i].r = nv_crtc->lut.r[i] >> 8; - rgbs[i].g = nv_crtc->lut.g[i] >> 8; - rgbs[i].b = nv_crtc->lut.b[i] >> 8; + rgbs[i].r = *r++ >> 8; + rgbs[i].g = *g++ >> 8; + rgbs[i].b = *b++ >> 8; } nouveau_hw_load_state_palette(dev, nv_crtc->index, &nv04_display(dev)->mode_reg); @@ -792,13 +797,6 @@ nv_crtc_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, struct drm_modeset_acquire_ctx *ctx) { struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - int i; - - for (i = 0; i < size; i++) { - nv_crtc->lut.r[i] = r[i]; - nv_crtc->lut.g[i] = g[i]; - nv_crtc->lut.b[i] = b[i]; - } /* We need to know the depth before we upload, but it's possible to * get called before a framebuffer is bound. If this is the case, @@ -1095,7 +1093,6 @@ static const struct drm_crtc_helper_funcs nv04_crtc_helper_funcs = { .mode_set = nv_crtc_mode_set, .mode_set_base = nv04_crtc_mode_set_base, .mode_set_base_atomic = nv04_crtc_mode_set_base_atomic, - .load_lut = nv_crtc_gamma_load, .disable = nv_crtc_disable, }; @@ -1103,17 +1100,12 @@ int nv04_crtc_create(struct drm_device *dev, int crtc_num) { struct nouveau_crtc *nv_crtc; - int ret, i; + int ret; nv_crtc = kzalloc(sizeof(*nv_crtc), GFP_KERNEL); if (!nv_crtc) return -ENOMEM; - for (i = 0; i < 256; i++) { - nv_crtc->lut.r[i] = i << 8; - nv_crtc->lut.g[i] = i << 8; - nv_crtc->lut.b[i] = i << 8; - } nv_crtc->lut.depth = 0; nv_crtc->index = crtc_num; diff --git a/drivers/gpu/drm/nouveau/nouveau_crtc.h b/drivers/gpu/drm/nouveau/nouveau_crtc.h index 050fcf30a0d2..b7a18fbee6dc 100644 --- a/drivers/gpu/drm/nouveau/nouveau_crtc.h +++ b/drivers/gpu/drm/nouveau/nouveau_crtc.h @@ -61,9 +61,6 @@ struct nouveau_crtc { struct { struct nouveau_bo *nvbo; - uint16_t r[256]; - uint16_t g[256]; - uint16_t b[256]; int depth; } lut; diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 2665a078b6da..f7707849bb53 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c @@ -278,26 +278,6 @@ nouveau_fbcon_accel_init(struct drm_device *dev) info->fbops = &nouveau_fbcon_ops; } -static void nouveau_fbcon_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, - u16 blue, int regno) -{ - struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - - nv_crtc->lut.r[regno] = red; - nv_crtc->lut.g[regno] = green; - nv_crtc->lut.b[regno] = blue; -} - -static void nouveau_fbcon_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, - u16 *blue, int regno) -{ - struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - - *red = nv_crtc->lut.r[regno]; - *green = nv_crtc->lut.g[regno]; - *blue = nv_crtc->lut.b[regno]; -} - static void nouveau_fbcon_zfill(struct drm_device *dev, struct nouveau_fbdev *fbcon) { @@ -467,8 +447,6 @@ void nouveau_fbcon_gpu_lockup(struct fb_info *info) } static const struct drm_fb_helper_funcs nouveau_fbcon_helper_funcs = { - .gamma_set = nouveau_fbcon_gamma_set, - .gamma_get = nouveau_fbcon_gamma_get, .fb_probe = nouveau_fbcon_create, }; diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c index 42a85c14aea0..2ef03ed82baa 100644 --- a/drivers/gpu/drm/nouveau/nv50_display.c +++ b/drivers/gpu/drm/nouveau/nv50_display.c @@ -2204,28 +2204,29 @@ nv50_head_lut_load(struct drm_crtc *crtc) struct nv50_disp *disp = nv50_disp(crtc->dev); struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); void __iomem *lut = nvbo_kmap_obj_iovirtual(nv_crtc->lut.nvbo); + u16 *r, *g, *b; int i; - for (i = 0; i < 256; i++) { - u16 r = nv_crtc->lut.r[i] >> 2; - u16 g = nv_crtc->lut.g[i] >> 2; - u16 b = nv_crtc->lut.b[i] >> 2; + r = crtc->gamma_store; + g = r + crtc->gamma_size; + b = g + crtc->gamma_size; + for (i = 0; i < 256; i++) { if (disp->disp->oclass < GF110_DISP) { - writew(r + 0x0000, lut + (i * 0x08) + 0); - writew(g + 0x0000, lut + (i * 0x08) + 2); - writew(b + 0x0000, lut + (i * 0x08) + 4); + writew((*r++ >> 2) + 0x0000, lut + (i * 0x08) + 0); + writew((*g++ >> 2) + 0x0000, lut + (i * 0x08) + 2); + writew((*b++ >> 2) + 0x0000, lut + (i * 0x08) + 4); } else { - writew(r + 0x6000, lut + (i * 0x20) + 0); - writew(g + 0x6000, lut + (i * 0x20) + 2); - writew(b + 0x6000, lut + (i * 0x20) + 4); + /* 0x6000 interferes with the 14-bit color??? */ + writew((*r++ >> 2) + 0x6000, lut + (i * 0x20) + 0); + writew((*g++ >> 2) + 0x6000, lut + (i * 0x20) + 2); + writew((*b++ >> 2) + 0x6000, lut + (i * 0x20) + 4); } } } static const struct drm_crtc_helper_funcs nv50_head_help = { - .load_lut = nv50_head_lut_load, .atomic_check = nv50_head_atomic_check, }; @@ -2234,15 +2235,6 @@ nv50_head_gamma_set(struct drm_crtc *crtc, u16 *r, u16 *g, u16 *b, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); - u32 i; - - for (i = 0; i < size; i++) { - nv_crtc->lut.r[i] = r[i]; - nv_crtc->lut.g[i] = g[i]; - nv_crtc->lut.b[i] = b[i]; - } - nv50_head_lut_load(crtc); return 0; } @@ -2340,19 +2332,13 @@ nv50_head_create(struct drm_device *dev, int index) struct nv50_base *base; struct nv50_curs *curs; struct drm_crtc *crtc; - int ret, i; + int ret; head = kzalloc(sizeof(*head), GFP_KERNEL); if (!head) return -ENOMEM; head->base.index = index; - for (i = 0; i < 256; i++) { - head->base.lut.r[i] = i << 8; - head->base.lut.g[i] = i << 8; - head->base.lut.b[i] = i << 8; - } - ret = nv50_base_new(drm, head, &base); if (ret == 0) ret = nv50_curs_new(drm, head, &curs); -- 2.11.0