Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752864AbdFVGG6 (ORCPT ); Thu, 22 Jun 2017 02:06:58 -0400 Received: from mail-eopbgr10124.outbound.protection.outlook.com ([40.107.1.124]:31552 "EHLO EUR02-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752794AbdFVGGz (ORCPT ); Thu, 22 Jun 2017 02:06:55 -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 11/14] drm: nouveau: remove dead code and pointless local lut storage Date: Thu, 22 Jun 2017 08:06:34 +0200 Message-Id: <1498111597-10714-12-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: 9552c125-b6c2-4497-b490-08d4b934d6a4 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:bDJkMkwJnldzOQgZUVH5C44SmxqUch8K42ej8JgyhuMTb1ZfNYg4rk/CEQ+ovI3W1Cdfk/9uAjopQBDt9aO0MTSOU4Qths8JKIJf9xlfC/2qxt69WFrWt5Db4Ln6hyis5B4pJ82GeLUZLLoIxGp/ALNSdmpxy0dzjPLkIZKV0f+vbOKBGy4XzIsxuYoQvgizfu2N2IwTz0tyQe8xnod+QnTHyCenodFTqi8aUhxJw5+UG1fz7xVaTfC/rZCCRjOQUluC/d31F32aQoHZltu8sFOHrkCzD2eZIQdvyjVV0avOSNfZ6sWUmzbgwUhYg80TTqxYsUoU4DO43lk0SWbha5uj17WeGbv8iPUuS8jHMuH8LE5TI7mKDrxFOYKoK7RHeUevyNJksRltgQFEYy+2h3cG9fUgynPP3kt0rUvncIK6lYvSQuh+v/sQF3n/BVXRZ44/6xlpIzx+x0h4FflXeVyTQCrHJJTZZ0cv8aPrhAewM2MyeDocMYXEPTq5pbxIZLmf4nj9AzJGdw74zi67P4TkJtcg2g5qNtWek1aUm0WP+yX4/9vHiC0n16ec8wm9XTkt6R+JF7y6Ny+eYyxLIsmlKE2k1Crdiyrv5yDhYx7sX5Sl7uPqAUIbDlpEhGdTl2jJUEFnynOgIB9ZwdgRxw== X-MS-TrafficTypeDiagnostic: HE1PR0202MB2553: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;25:GUp7gU/phDvFbzjtDrZeboqv7fzZ8yJ7fzm2iYRM6KcQp6n0oXSChLoaMPoVtor8ALUoJSIx/K4MDd1HPRR1fDgFCv5VpiglrUaJ6Imze4L8ekt3XubzM7ayRG+to7tmtVMaeZJgWVmzS2VJUCsdPQG4S9git5if/rU7MP/eOkBNnEUejJNUhC3TAp8OfFVBqiwjKyi/Qp0Jo2QgpQYWs7fDV0Ml3FMJaM3QSEhdAif4uCMXVr/cBEYHkn89KEhrVIVDd7YTidJqFxZcyTzemMGB2QlKDpnqaIVBHvwjx7U5XHY/GVzlTaJfgg+BFC6t/hSQ4U0m+ZCW5RvR8H+zNweOp2euyJw9T+THJCfnSpUSzEB8VGLK7x5SjsjzhEyTnbhn6+LRmddocJ1OxLZDYtRI3cwzY0aAL9fsZoXiETIx0EfQQDaFjiivpkxUuSFO8t7kxzd5xh8PdB9KQfzMTiMzOK55B6GhpVdmAkrfNl+Hg7eTazP+79+orAV40cYdLxJ9ux/mh9zABUcVwfcEbk3F7HPUYq2MLShV2zeI8RloZRuo4PGUkZ+ZSIDkLFkgLoO9BGNonZSSw31Wjt7dkkVFu5hCjle1ZUKOUXUsDu+1Ecm/Xgpai4LtDxK+fXD35JwcUFy83fPjPULLebmQPWANK+f/yYeFajn8eRnwg7mOIPWtK0+VW9mdaxeGPoLYSxVx+DUioAYxw23xB5mpnTmNmdPY6K3BTgrpBS0lHzLkSWowrT1h+EyNDK8uNQU5IH5pU588mnDC2m+TLEkmG7IzskFDmb9+K+2osjNo7ysBdgJPiSuGfkZvTGR4+tabgMN4mJjaYLgg5K8B2Y7oFqXPWesm5hMDgi2nIk1p07F4HPMekUsTpMzQXD+Yn+96BQyE6Aex0rPDU/lIhqNKafac/pufZGFwRRgXGNWa188= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;31:rMAR8vSUusM7q6bMWc36DOH4Nw7JAcrl6U6DPKVD99g8y7Sy52EL9lvfz5HmpNtPTFQCl+mkerFER8lgWtDN6cCk9RhdDlT3P8FfC9D99ivjD9RAI8lmIFe/31u6ym8MCfxy385ynbzvyz6ZfVppzB5uTOZAvNLk8/WNggdS6exc0NciR/hcjYqEu5gbGxqbE1b+aIMjaS0IydKuSuZs4lcbouJN+w3Kzdt5CA24A/NSI3gKflL8aahjDVX6dSWi8RKjOA3uBXjJyxZBMVO6Fz9ByOzZa7XvLBLFKvgUTvTpubPl6ODO2R8S70GFQewmEGZedb9vvpHpxzGadcBo58Y13uYiz7Z71/PrwIiAc6LSTn3OAKSxIyGPrpf53DMoL2U7vQWImZoRi420Sv7mCngd0meUL2OGctxw/uTqKchjjZ3G3pTFtUjtTks/RYqaSz+0ESshpwMRg4cq6kCAAkDbalaKO9E2N0D7VX4SnGAj2Fg5weSofm8ztJw/sFMds52ZrFuABrsVJamKYZsZXH8Dop4kD2GvwlbZJH/Dm+/rAo8hDZB45q6yOWlflQsrx6Q5Y4cwchU2Wg6WPtC+fc4f9GjCmXjhhmhZaOU2sDPo03BpyBc9xhZdHtoLT9U0E7OnT3qTc4uSmI0jy91wNZCwk8pTaBp1ifnM4ugvNrM= 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:R586I5MpQPn4PswWJCul16yGrUEy52NDwqdpIX5S?= =?us-ascii?Q?A3uiROUsEAEVA7QHxcmipYPDAivvlZDw9NjR+IAikO8ZANhpqdBHn3drE31R?= =?us-ascii?Q?aVl2A5vbXshDzcg483m3cF22735ZRdzr/2qAiW0LV0fG1FfXXSZdQirOFax0?= =?us-ascii?Q?4AQkf4Ix+nOHzQkKP4vX5lgMbOMdmW+YvuWnnBSf6kP+ct52fXZl+s+nLuHk?= =?us-ascii?Q?PqLYBUAm4RCx9VCuet/wemkuBAiy0uXzLvmAi0BacG6/ekut4bHXPs2wMACP?= =?us-ascii?Q?IF+jvUvYQSspVBOJ7xJPfHL+GeIZkNqbADyNT3a8RGG9ovA/w+wVxQS5y39Z?= =?us-ascii?Q?CwX0gyvGpBhLmMNISiJbcDbindQXe/JNcNDXv3gBhCdmsGSqISS9czAU4olC?= =?us-ascii?Q?UAqL8MTLfqazLZVaG0pyy7XQDDhQ/tzz6NvOwiSiiXeAEzLRUogaEmn5XaP7?= =?us-ascii?Q?ZPlzPMye4ecTlb0R+jdB6aCMsLOGwpkIfCcKxiB+qkikTvhE4M0XsMDy5lIN?= =?us-ascii?Q?y94rt1doSIQ3VS7+dhDWG4GJIvoEeiHH73eoENvKsvUSKpnUuQPvWUY+GCwj?= =?us-ascii?Q?mFQbZUAH1IE+f+p/5AVJsnO3l1Sknvp781t0ihRTjUPBUIsni+Gk03F/jI4P?= =?us-ascii?Q?spLuPVsY04V2qbesheaAe2eeYVeJdB7a09k1YLoQjl2pfWbZPRWZ92rKTnql?= =?us-ascii?Q?uFI2PVZ9WLa0RPRMbJcH4Vdhx2oK8ZrT+OZzhQ5tDoC2MLAYTmwV3LFIQzI8?= =?us-ascii?Q?NWCPWfOTwE4AWdelyB3ySoWI/TOq53SG6wwthl948h5LSG+ighPFJ5hI2KIH?= =?us-ascii?Q?0rJrv9tvLiCNwVtpO/Ds5o4jWWRIwgFNdIF8xqaBIj0HXdEuNPEve+diNFT9?= =?us-ascii?Q?6I5xuymJ2rKwkEoklQaxbrKFF8N+FlFZz2F4zzAd0/AytXafLaRPJBGo7uWP?= =?us-ascii?Q?IjAhVIN0G6CBJdV+5gaZTbDBcG/ujLQ4WwcenchOQnF0wXQGkN61jGwosE/v?= =?us-ascii?Q?MtwdMfm58UvbwGYdml9gB1XYITlDJbj5bG8DxaHbYGO/z/KBse31BUnOQXgx?= =?us-ascii?Q?04ra86b4Z+7iDp1NkdAInoHrn1NyQfSr/Lb9RzIrQRw7wtMdLzONzX3GUhQc?= =?us-ascii?Q?99AQafx6laqU0FSMjb53l+4bbcVYPOAGRN1YFKwmwersbP5j5NwkpECmPB2w?= =?us-ascii?Q?1IvmhqRJD8FvYzBgdgmoUzBMygGi7wNm3n1p?= 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)(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:o0CwOSoGNmXHECyi6YMvholG22WdaogOB4Oar+g?= =?us-ascii?Q?JP6moZcO81yqK7+FfgCq3BkmI7swCK6IS7l5oh+C9YLIQ8768Qc9kiM67L5P?= =?us-ascii?Q?FGJFcZBbohGYYnt8i0+uBhZI+OJBj+kH+2mV/zZ7QKDm4VoGNRSI5iU+aU+X?= =?us-ascii?Q?dG4dw9MBGL5VMzjrRof6AyUqHXaCWfmo9u0RPZNSzsy7yiNaCEkDC74iPtog?= =?us-ascii?Q?bfbPG+VxXlgIAmDP+txRX2RsGWWOHN7v8wABG7kaM+HUil8QroCF9DuxYuSR?= =?us-ascii?Q?E4f+px168MMXR85o0OCLMX3PoPPwH7vZOJ0cUbyD+Kf3eDICaTePAwQ+suEB?= =?us-ascii?Q?k2Uk4MI7L54LOoAu/SO4XkI+Jr0anTVSf5sPT2XZrQM16eSKVn45CouOhjY2?= =?us-ascii?Q?Rl0MU0twWLDwkFEfUIGoE79RO/QbrRwdaqTm6EUBD5puGwGx0+X6kvPxur2j?= =?us-ascii?Q?2X+iAQGoBEwGjiSDowQjpALIQtU43Yk0CtTdoIeBR1kq+N/CrmTKlwCe7+Da?= =?us-ascii?Q?Sj5p2QiRZeL3Gbeo+IQ0XA85dql/kWF414sL7uf1Fo/C9/mkTjh5J1r/6X2E?= =?us-ascii?Q?7g/k5f+e0wiFw4tmxyRsXgjdHFvDmk+3mODd7xYDuSZnAO9PfFfrX0C52rRc?= =?us-ascii?Q?Hl3Ra6sLgyq4SMaeFRROqtKuAjWJIbGbsUIPxOkyJovP+GgpwbRPhf2kvume?= =?us-ascii?Q?PKl2Fgl8G9kSlfRO4qLJNFGFKK/ZwLl8hD+6KPIa6wLiBHhDuR/NJkXraJdM?= =?us-ascii?Q?rD0/wqUZa5nDUWCgNOLQBJSm2Prj4L8PJGnChTDhrrsueQN46t6HYJ7/zifh?= =?us-ascii?Q?7QhKECwGdGke9zXjtksqpuV4FgeXdyzuVxzCZWpcODTdLIK1vfxKBOT03/nX?= =?us-ascii?Q?BeFuqdyqCSCIFn+fhsFoGyouQwHU5gC/xwA8TvIh2hQEzL+8yEjnowFGPGfb?= =?us-ascii?Q?eZpFairgRi3i2AztHDE/Mq8Zi4FmC/FylWWzAbjVwZJt5VBLU07qUc7AllSd?= =?us-ascii?Q?wU6iPJvz6LrllK2Y7tzMQai0gQ+e7wApirjUaSyymoBlttuhjMgd0f74kL9E?= =?us-ascii?Q?6t/8p5/85YT7HLzE7z4zHVtrjO5LYGTUENsIpc8cajRXlMp+UqG/qNDCoEIY?= =?us-ascii?Q?ojk/I2g+kRqeCDa1D4Et0o9aQ3qJ5UGgu?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2553;6:ldmDKxZ38++EGMaJVS+U+vjHw7HVAUZ2XbdEuyFq?= =?us-ascii?Q?Aa9rf2iV3ZrVaMppTls3JmN1fnx1Hz6ort0315Uekt+cj71S3es7IABNGVQS?= =?us-ascii?Q?3UwCHT0ToO0x1upoywXUhygPvqbDL+yIjby7tulZxq0UG8rN1R4o0FTOOfIz?= =?us-ascii?Q?c7EqKVuQOukBb7wwHK1LnN7uD2C+C3ZGx47vfqiwG+dfLHaqQR77dIUtOPSf?= =?us-ascii?Q?HjZlOnDwbcyUCJYtFq3NaPqvGJLIiXr9+WUwpvdKTHDIaCdnLHcL0eLcyx2Q?= =?us-ascii?Q?vX/EG/T/Jv47T1NoVGSR7Vi+YTAFueDRarjLf9WRSmpqa9Or+xTsoftytQCc?= =?us-ascii?Q?zfN5gGLLP19W/Rx5JPoDleI9CGIWEFU9pwUtx0GL/1t57gVY7MbFosQLnzxT?= =?us-ascii?Q?Tz9UMQtep58u+IxTJstsmkil3C8NXz5eqwm/uWnVnGEw0kyB0okYVtpB0t0Z?= =?us-ascii?Q?8JBGxZEAqTaeJwbPAfGq7vIAUo4ODPz7tQtFO9xPG7kia1rMSjoWRG89DK03?= =?us-ascii?Q?JZj1Iz2aeeqECnJvf4S0fNAE82UkmhffGCnq0Bl2glL7W2s2ZVe8EAHCQ1cS?= =?us-ascii?Q?Lxu9nPiPbqTI4BLtW1ZmDDG3dsV0JNaeuYE4v2G7qEtmUGV7Yi6SOdXt/PGl?= =?us-ascii?Q?ZKBrULSoxGaow+w7UaDlRJk6W/oIBWOgg3NqFuRaIIdU32Bkf19ErPvmwuix?= =?us-ascii?Q?tb/vdnlfOjWVmKzaVGkVtYRw+kqvLJEk7+zFMKX6DWOjP+edIIU9TguffU5s?= =?us-ascii?Q?r+w+PONtGA/MkwUQ/uIpbpNn2dyvK+07q4wiSJhaTgIwJwfYwaRcyVMVbv1V?= =?us-ascii?Q?+YpuK8n3QjN7ctOYp7r+nM+O5nVWLf1YNgfCW0N8s5Mc8iiLpfXXvLHjwJlQ?= =?us-ascii?Q?JVllYLLZo2rj8Qxu7izQpYfJceb9BvVttzlK0EwNElH+Fn0DND0AM+GW4ctY?= =?us-ascii?Q?3ZMIWR6sjWJiDkHk7Wzxoz1dbboAIG06ouxSUGZ7EwYUniP5ZIwsYfFbIF+r?= =?us-ascii?Q?mFo=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;5:A7dU/bY3v/F2uBMM7kc5Z/UDycw6Rv66DZjPViVO0pqsoNuvtv5Q59dlv3GNiEB9OWwXJnftZk1d7ZXdvHDR/KM2xGsC13J8eZWHrE/mN/eLT/Bq+PL03f99cC/B99mrqgRYlzs3IMrJum4dyrwGltrTwsTwnWr+bppgBiIfzXiX5dFjbyO8POu+Q3tUbFsQgStpaac8XnCwK8Edu7DQrLAdO7RIp1UPWb4dDkjw3wQavXFtO2cKgxtKGMUuC+7citbuLCbDW1jX1JZf7hd5RAB27J1bUTuO/0iZcpeGTEMrJNVaccreQIw2fM8E04Xw2sVjnXc2qPd4nqO2+9vbLUzPTMMiNRj/qQd0s8B93dSj0Geq20MNQIrLVa0x0h6een2Wi8MI/BClXB9DgPkx+aROFNf1/1RKYLd15a+UfLwlAyFbWpLsYcWlCgJpMlfIKgYAlctdoibjqyne7OiQ7LOb2Mri9A/TNHy3hlZKfCm5OGfbhCpfRhXtavH/ZahR;24:IgSiJsAkKKjixFW2J8/hWGH0pfsQg1OoLeqoeCCf7kibmMF9A9um1elDaLfL5k7JE3I25y8ha3jG1D+WTVn1cJy4DAvl8O7PbEHfo8tiqi4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2553;7:cICYPEjU+PLL2V76rpqeCrxxRQadXuhBnxgB/9c8AiyLcmol+JN3h4eBPDEnF6fLb/9jNqQUuNf8PrGCBdEb6W3v/WW53nj3ipGoOGioFVDKAyFJMt4t20f1V8w2DIsUtI7kkwC6/KFhM3oxa24d7gnNE6vzO5lDMTApitoagEUWbafkSavHE6FsU+2LX0oqYuuP4S4DgMSBKCAvQnYu8lsDxUEk6daRgqAh7J+QVxb+Z5i5jzShec0DPmNzbhzk7RnxqOfRo/fgQfcBJewwAuYBUnwPVq6qCRUqErJUy23F+u/pskiBWh5/VQyLqVsDbgoJBCJdQTJ3R8sS9EBpepXWEdIt7UWnrORM7wU/+Oh7m5chZ5tOzJK79P1ybkdR1jN8lgJCTemGQJZNZbFwbDXCf2cV5TZWrOG20hlg1fdHd+PLDG+RC2cR8sKbw4wcr4JwHPDbuhWuNTBPjTYS2X5l3wTxrIWSQIXbJ3RKMdMTp1Yng1MrBfNwPDc+d41scFkilNlp/Dj/QBXchQeE+jJjnwJW2pC/Hj7UEFu+TtqXd7cfZh1RjGF30pzn+IKmQ6G7ZyBWOFZZdw50sL5/h4CEMzsJRdP2DZ97yiEYlPmZhdaNqqtIUAT0r0SBsvK202lZX2hIYs0OcDJIaYAmv9MH0FAe/H4eT4mjAFv3Cy7MnuJ/TZpumbLSlm6iQiWpr7pdPeFXrlhRevAM65Rjiox6JJBo7JCENEmrHwf0M+7p2WauMTYdIXDSjPonydNob7yiHnr/52FQ4CUE4w0TsN+tekFo0DCtIyUxWDE3gIA= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Jun 2017 06:06:32.3440 (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: 6840 Lines: 218 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/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 4b4b0b4..8f689f1 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 050fcf3..b7a18fb 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 2665a07..f770784 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 e3132a2..0d57d61 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.1.4