Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752790AbdGFMXs (ORCPT ); Thu, 6 Jul 2017 08:23:48 -0400 Received: from mail-db5eur01on0124.outbound.protection.outlook.com ([104.47.2.124]:58096 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751994AbdGFMTz (ORCPT ); Thu, 6 Jul 2017 08:19: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 , amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, Daniel Vetter , Jani Nikula , Sean Paul , Boris Brezillon Subject: [PATCH v4 04/14] drm: amd: remove dead code and pointless local lut storage Date: Thu, 6 Jul 2017 14:20:38 +0200 Message-Id: <1499343648-29695-5-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1499343648-29695-1-git-send-email-peda@axentia.se> References: <1499343648-29695-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: VI1PR0801CA0084.eurprd08.prod.outlook.com (2603:10a6:800:7d::28) To AM5PR0202MB2548.eurprd02.prod.outlook.com (2603:10a6:203:6d::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 4c059375-7dd5-45bd-d1bd-08d4c4694b42 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:AM5PR0202MB2548; X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2548;3:u2eyHmAeF1slo5CFLH++tXoMifY7rZIC7qqpvs/cLT2HOq5TaWspPyCDvpYgXfUpDHSlu6Yze1TRpcNRm6h9MWeKj1zcyb5KeX1rTRz8XJ5QyEeuu0NGPqnn6zPXNw2efrTPAl2Bl2+Eddpm+pj4WfqftrOGmfreQvEm5L01nWeuKUmWjw2igXea+dIr5HukDdCidrCLhooVtxS+zuVyCRgbjQizjMZE+rza8HnkaanwTlJD7RymnE0zTPO8efZ5z0jGmFB8vnq0+I7FhkYI56G8GM3FM+f4+uYSLYgdIyO8nDhQO6SiP5QOi1wtPxeBpViFOPdh1+J+oTu5BTDSL20s5pOeXd74np+pi1V76EqE8ctJswGMAfjKj2T9Co8pttYZtZlPsFYVcSbDoXCFQKCtpVysaYAQPYHGa2a+C01MZrEJsUtOw6z092NzeYEpIXR206tQU+OQSEssDKLzuTAQPJnqnE7MIBxSVazVKjACmNYasHNk0qIVkHAF8aAphrpza0Akidr8WqBVUlgsvQA1E/ZGMOMgVDLEg7sc+q7ppQwPg++B90TiYZBGnpeehmXCvDQuE/Uo4CDY9oXqK+JhOzUMzCvkBl+xpYRtg5riFVk8+cv49NBVzH3TL/VS2+lfcCqKT/2ifmfyF7cCG5Hp96S7K2qG15mJj2Pmtn2S8CDWXcosggIHfWmeAI7a/dmW9W3xPMRcrwNwkHeFow== X-MS-TrafficTypeDiagnostic: AM5PR0202MB2548: X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2548;25:Unc5Ipv29/5Qr5DGtBp3cgeaWe0OUWX/FjLC3RNuSyNCNxKrqFcCO8CsNOl31ZTYVLODHZ0JRC/v3HxQj8Qh0/SZ8n7VwjMTZteX4bqVyyfs5d8sORQqXXs/I0xqesj/BGp3srV+Dx7Q2u3xWV+7aBQZ8z3BZtuLJmuNwZhlIQFIlBS9haQRM7A4ceJ84T9Wn0TSs490km6+JU84aJsWLISPowZxf+EVrqRIOYqcYJ81dKpgpwLGIh5CZKS+3sUwbmGLg3Ld/ekseJNv1PUFXSJ+9TCOnsbWF8lt2y95biR0+anZGaL4TLf4s999OwxUtLq26tIBwSswmOoXkODqTnXXZzl8/RgmTNuVqL2LpalrVVFKo6jILQCQ6Vuj3vBgWzibrICS7IAyfGYFKgCfqgwQ0NKJEFr8V0ZEfYNjPuGzwMLoklG12eiSnSR4vYuQA+F+rnpCte8wUCdi9OvhvUIFV+hk5yUOWgceTh4Z8sLusCOwaXLe/eZYHJ1JhN7cCw5sRUJ7Q7OWhqDCuGqA9A2RFiWumq8puLOASk4aIZ6oakysPZHTgYpyCT0SYQlDwP5OFiIk4gUjJWalov57myNBinsug+a4fa309OE8u1d4KR2+/XzcO5N7wzvqYSE90g+ktHdsf1fsW4Fm5TifPWLFxGERdcj0a3/lIwPUWrXuwbS1h2/Xml32QfocC9uoHfqJZa/SGNdMacA7Jpc2lBznYwPEaeZm91PzaI5PkkUbxIqp460ZHMcVAq57eLr9XpmqMR00RcCYqYHrPVwc9p30/j9jKCeZ9J7AQCQ/JMFcHuE1rmTPcC9kFUTaRLnrEniwK7O0NQIGc6kxjQnien7YDXTQ00Iw1+c0r70Bfrrqp3gtFXUt6miysXYYTwbIvyFSqsG84c9x3McnHaZAgutYfgnpd0sJH4MjAtEbtGM= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2548;31:GIgqPFTNBLee6zDwuLCcVFouTQAO6y1BM1jcdmlFgjZTfQoBfJ1pixwRNfioPzd15PTuXo1IeldXdMN21JGURSIP7auArlmFC5/A9qxgDo7TD8Jl6kDMAXbsGV3e9GH9x9fc84NbDSLSQqgijgkzlv1GdD+KQQpDviFozq2A69Y/26QFg/Jl2TmkaE7F5K8OabOdONK+Pa6hi3+/iZEKCIiW3g0rRh8jjvXyXD3NO14IZfRv33W5uN00YSVYqArLN9tICJAUV5tvECbViVSSO7DSUAypTpRsoDCd7//o1F6fsAEXZCxhK/aXAWeKJeL26usyBvF1pHbNBHBgcIuCot+s/hySvMNq+BBQ6ua+GsYnEdCHGlADdQMNwKxU3RIzZrtgbKboFffdchUgQgyf1F3YyncoZWdv8uxLIjOAHKRndXZ5pnfbfZ9MsikOpemA/P48i92a2F2c/5Jyjwe5h865lPkSsz109hWYGOG3jn6UkOPIFOog/nkRZ19V8wdUU2KA4GeQOKH+26g10DGSLJs5LzaKqqO8Fty3K0U4tjGfT50LMEhf3Tunl4ffm+iuzDEOIqYb3+qeYiCC7H8MxVyxD7iH/qqVFZaks8TyPlvcu2JW6spwGSAdCokGpt4LGlxoXlBIaDfuXmd9lFIsXa1zH7EGwF8OiXgblLTEtCA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236129657087228); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(2017060910047)(93006095)(93001095)(3002001)(10201501046)(100000703101)(100105400095)(6041248)(20161123564025)(20161123560025)(20161123562025)(20161123558100)(2016111802025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(6043046)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM5PR0202MB2548;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM5PR0202MB2548; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0202MB2548;4:ILm4/0miXtUWUQqCNer2Kv1JwogPAcedVxCOBcOo?= =?us-ascii?Q?jdoODKWKXiU3/d07PGheto80RezQ9dDQ+QBxjI/m04fu5zpwxGrkZJlVTIxS?= =?us-ascii?Q?/8aIMlkH5jqaq4QsJGH5W/v6wpls0lkkrxjhZVD+2GotiDqQ4pZHq6lCSYyh?= =?us-ascii?Q?aI5e4HtQ3lOr95INVvqL6Eh9hJUucw9/No7kMWSo9y9ua1EwmDqlV3zQ+iwV?= =?us-ascii?Q?GMHtCYz+9zcYX6Dc+AxdmzkYFJRgbHTeDpUdcQGeJr+sSnZZZNtachOIA1G2?= =?us-ascii?Q?AIR7FqQc6D56JApH58ag/8UlOw+yviZyQTS8B6Dhbn5n9/lgBqgRa28m9zgr?= =?us-ascii?Q?jA7swTDMmiSIVVrWYDcZDKKkKkfnN8G6w4bnax06lDLIvHUrJ8W26EjZ4Hgx?= =?us-ascii?Q?z1smw9/rf1fSKhSDPNGjmM22a2o54D6ZX6hdUfuMJeTn/OUMW37raxSS9yKm?= =?us-ascii?Q?mnY4Hxtn360l40Ngcb/bmrqdXZWrI1GqFOYAYq7lOeKEuQMqwQoxC/rekVS7?= =?us-ascii?Q?1TpKCCyu2h81uwZUtF0pAoNzsCf4uMRdNb3e4z709Cj2KZTZEwxvGHsADsjk?= =?us-ascii?Q?hkbvekxEIG6HMJx3JrMcIc61fl8evjBtrrSx1zm3fduOISfI3OQqLX+MWWlE?= =?us-ascii?Q?qVR6Oi0whd4sxrFGVTz8MZXHWqzb3GbHcGu9Je6eWJJrzkB/LpbtqGWu1Uk7?= =?us-ascii?Q?Uv7SdlWw/MGIlAB/MA42xb65l/x3GAupZJ0Qouss89eeQtyWJKAZncPHU3Th?= =?us-ascii?Q?9YtzMWGQXaGi7dXeih0E/bdwZAxdYv0TNGywhbrXDPi4DCqak17lqKKpxm/2?= =?us-ascii?Q?+D0Z+BariOl+tkzaDHcsVzQBXHIiNwI/2BcLZK2CFYS4Ms012Mkqodm47V2g?= =?us-ascii?Q?ysJEWfrLnPhiYu/GGHaHGzSj/CFU4iFL0XffiwcgJXfFZ+iKYMHmOclplBlO?= =?us-ascii?Q?2JPATo1HjCY7AIv44WoSI3lYEDlWwxi9RwXvMAwjNaXDx0XHcaHFAL3soAqM?= =?us-ascii?Q?SesbMqqHb9OLsg5R8zFWLoh6KmYF/rLe6YhjKaPyhWbJZon1mSciZa1n+8V+?= =?us-ascii?Q?RyEO6+B+yGEKaLHpsqIFKyGFf8OYHH+WPkDiYqaf9TAmCllORlPpCM1vu0wH?= =?us-ascii?Q?+dmsX9jruexi/tOrcLXji11bcRWAFlyHKwtUxtAREmzK0mFoB9/FnuB7KuKO?= =?us-ascii?Q?8YU2hgPnHxvQEk4pYDRz1REsV+hmYP591H0HyJXP8YZ1LsgA6PTCXtEnoT9m?= =?us-ascii?Q?0DnLLXf4QHb+J/bS9EUJwD2GqVhP6stJJJNAcbS4?= X-Forefront-PRVS: 03607C04F0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39410400002)(39400400002)(39830400002)(39450400003)(6512007)(66066001)(7416002)(33646002)(5660300001)(2361001)(6916009)(2351001)(478600001)(2950100002)(6666003)(54906002)(5003940100001)(38730400002)(42186005)(50226002)(47776003)(110136004)(6486002)(305945005)(50466002)(189998001)(81166006)(3846002)(76176999)(8676002)(6116002)(575784001)(2906002)(48376002)(50986999)(36756003)(4326008)(7736002)(53936002)(8666007)(86362001)(6506006)(74482002)(25786009)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM5PR0202MB2548;H:orc.lan;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0202MB2548;23:eKQbQlLoZm6R9Y3A9gdVjZ7yFK04O7WA0wh0xhU?= =?us-ascii?Q?1OApaov93D81cMhMpxNNMqAQcpRnSNSaYZ/sUQt4WPf1bXc71Y1faB4742vZ?= =?us-ascii?Q?vWCV1qhu+x/MkHA/ZkCabAShm14Y9qrOzAvm8ZwhNxjl0gJi7HRu07yJUwas?= =?us-ascii?Q?YyL96Q7O0Du1Re0kL4+Qg/GMwuXQhnujh4xtJQR2AAUTqlekWHO5G42dlFhS?= =?us-ascii?Q?RkMQAZ1UYfDWo7QgGEGfkTKr0806NY5CbCwUGhnOceMNBnQEb80QXIcrSBzk?= =?us-ascii?Q?bsGTduOyYf5mbyJ5ZF8afK47GlpNBrNnj8kAzGw32u+waa0vfNWhHV4QLBIM?= =?us-ascii?Q?8Y9e1OyuUbj1uyDVlG2xleX57L6fdSDWwh18yRoBgeuqWifWKEHOz6FDB7MY?= =?us-ascii?Q?pfniZLA152+xezUb/xt/c1g2tYGfI5KeXGmrnVdudoNnqqz7qVvTfQFkI5K0?= =?us-ascii?Q?R0Ns5s5gK4Hq+gIbHnJonHrtMmvOAEloBQEbQnpjQUTgsCGw7R1XEQffkFKb?= =?us-ascii?Q?gMsof31NrWVMm2REd1EMdnYfZdRQEDAEeEpmPE8ggF2KoSYbL4NSyfJWbGg1?= =?us-ascii?Q?o1WG7g+GJCuXeAruDw/d58QbyaKXYbqm7YcyVuAWmQWCoSAfMcAVPsq4VYLW?= =?us-ascii?Q?La6P59FJ/Tjgs0IZOFhErtIgcLoQsDt7Fr/VD1WsFywXSax9JfOGsHIfmwRH?= =?us-ascii?Q?ZR1G7Cku1Hd8+ByffhbGMr9YTJX9AHiwyjcdNp9sZ+YUeqhePHx4jbXpLHwQ?= =?us-ascii?Q?Ow3rfwaTIDfscQ34nskxDf5lqM7d/RbUi5dxwBlSZd/euOpKaKsAqn8x6dWu?= =?us-ascii?Q?JDxAqHq9sDCNZQP7TfEyyB0pWXj29YYlFI55GKlFh2VUm33Uh9drv3crpv4h?= =?us-ascii?Q?X9x5iN/GqmoDwIdNuN3lYTyIwi4DbmFiceVjeeZfHlMU3z/4epALxVxMDsns?= =?us-ascii?Q?Ppm0c2dKwD9QGabp2Lb5RX2WCsl5iJnOf1MY+8tZZ2F4mO6li42UgCDH3Rj0?= =?us-ascii?Q?IlNb/0W3u7/keIhkNcEQZd+MhA2QFORjUAdrn6xN8iBFZ4Nzi8Pi9PzcMPfW?= =?us-ascii?Q?kTxiUFv09OD73n4Cf2HPRTuhzqC3R+pNRxDAcSXD8SXuIQk0Hgc2NBf8ziDs?= =?us-ascii?Q?Byd+YGv3SqDMMd+QUHpwdg/ZxDJ6sUtqAc7ARH4bikwh3W9a1X6zEGw=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM5PR0202MB2548;6:4dAYexlehhMKuDIhfhHhIqVIlewxqtHcSGseD9u4?= =?us-ascii?Q?0J3wv6b1Z6GgITflxLD+H0LEyS1iEKYYdLZPuoCl9cy0l90wbv7rcB2jBuzt?= =?us-ascii?Q?wI4ulVUY5c4kU+G/Xnq/v0mQDR/BqaoUDQx1BLMb4HXXU3qQDHYEH1LUYmz6?= =?us-ascii?Q?Hj9HfcmtrNZsjTAbQNyAz6Lp8EvTC3Zws6Tv//nQFLotMiA8MW8DNh0JTcs0?= =?us-ascii?Q?DMU/sIwGfiJr5hW1omV0o5FjEVUczyBzqD+v0TujLhz3OMY3fIjGeG6ok3xr?= =?us-ascii?Q?8jSCEA8ZvOtxiassAly9Lg69U5y+wwTCNkXGjHxhuxHCY6PdSZAyWJ3PUE4j?= =?us-ascii?Q?qUMsBszPh/13hTWZf4REtdFXebSXh6dkELN4osrhfgLj5K6dnxlzLcQfcKWd?= =?us-ascii?Q?XEAzKbshYJas4e4bfrQL63o9qDd1JggqENLDHvV/BGx/cQj7IQWWzuXBF0Yc?= =?us-ascii?Q?8A92T186bjGBfaJt1wGBrYlghlZZG+SlMmeFtdCGIGK49r23Fte6l8Zl3z+X?= =?us-ascii?Q?w9T1BXVfhnTt5i54dkI/cJUFE9qCzjjFTMHx/ye7Juw1yfcKy33qX9DQojGG?= =?us-ascii?Q?f6dybwZAYpAn2jKoqsvRopzYEjI4Nrzza4R4uE+dETOmbN982DOZ3lcp0SQj?= =?us-ascii?Q?PQEOpwW+CtD/KyaAeGXuh4xKpK9IzKv7tSN6WODQj3smqPqGSPibPgVrMdKy?= =?us-ascii?Q?3iuazhQlRxM13YH/SVCg2qLXnI1ciEjOkeS/LAVWMW20Du4WJdrdbLHRFOku?= =?us-ascii?Q?DVSVYPrVjXVH0WC/6pIhyEBA4U2RCD+tt8F5a32M6tpBPkpz5AosLPycVarn?= =?us-ascii?Q?84pIRCFajO6CaMsZEzA1jVY3a68pigGYoLkwkZojlqS6xR7LIwIX3iMPL/Sj?= =?us-ascii?Q?nEQvPzb3HiO9HXEfY0SnaIVR3wHPK4PDml2RenE3zjZ2x0qJjLAmT77CyFvw?= =?us-ascii?Q?wW+6JX/CJZXQ7b/uHQxaqv4w0UtE63hzKrgFYYmYBhptd0Hx1+QWi9RrikYK?= =?us-ascii?Q?h+Q=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2548;5:d4jHzjgcDKC8dbbj0t8l0LqY9XbwW59Zay9SuMaYiRfbE3UvZOan2ipDKFSj2woHADVS4o430TymwT6F393i5VLCZW1BGLZ2dNLUYoLHlBkgg0u48wQobZ0ZONosMo0hjvk8Own10K3y2Jz9MehEcBMmcdehhT+0aNio0A5qoT6iR1hdoCCr/d//w07SGgauxHOOkFBMtOItOpbuCvtiL9xYSXE9hxpmaXUBz3sN5R6uh97CW1r7zLLN5GmzNljmucgfjgON+dSYRmANrRRbVNRzAcitnGUWN8D8+UDymuQv/F1wF06JVVxEAm3xy3qu8WRUmBpFZPd9HRsrGAnygiLUKhKl/8kCgKUEtneV0sNU+5zic53suamRueBMIqiH+G+yBU809dkk5ZfyzJIxoujqkpY3Xgf+VUhUfpFcAZi8wV23RwZvh94QUrkLWYN4+PSZ5wSDGWwpZrvyDyoRfWWsIJsroRRieVYVZ1pRqJoH5jJbaEhdTHDEyMkUlexj;24:NkPU7ncwNwKE/5Qvdmiv3ELTX+KCtHg6msxqVznI5QtuyxQd86YQdZEYvLuA78Cx2ZE2KQFc2bRmLAf5eSH5JAKbYDPy22c7OBch9qJEvoE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM5PR0202MB2548;7:7S6EJXOoO+6hHvjaH6ZxMNPFgY5UEtqzQxK4vGFX5gSqK43xI1HVjw3/u+TJoEQ3dWh+trgEDuVrPaHY89qsRTJq5oE6405zFQtGNif+rv7lLiBpUMD2JDqgBDTOzi3rtGfQTeCG3Hd0YQS7oJ5T0Zfo8MLZKbyn9+oNtZBxfw2dAFaIlS5N+ar3jE1zQZ8tg0jzTLTc7uB9/YOsvXggg3j9nOSVQAT+Qy0Gn5fYTZF7YcY5ijgufWnmclDo/Q3PN9MKiaIRnw6Nw22i7JNDkt+E3/fkWP7cYYRFR4QACSuWy3lcFuzLip4e6tEZ0414fmkcx2WLGleXqgq7SQYTPjqDV6bU6qt+13K7QgWFjQ2kp9a10+wug2r4R5P8IvZpk+XD5HLhgXum7Sr3BWDebBPu1rKm3z8kz6PIQ/lLGCEIjmhwthNP47IzqKSGW/ygN1YT5wB+LXchBa8RG7irPwhkwTPqGwTbU3hAfZWqJDsp+zijEjarWsqISyNuuOM5gO42vjWc1x4S/+Ph8m6oDgnd1IJ0hFdmveWZlvf3yPHTRmcWzMnGIBVYr0wPGwNGsaUR6d5E2B1Lo/U3WOKx3dDxWRlUTl5kO51hoL97gi9PYJxwUig6o3RWagIF5AD7aqQ565TWHV9nObdIzOd03cptAAvnSV+NOGd1bDoC/d+ZP0Jze9XyVlEVKlKdecmwFxioEl6rCbw5d/whGHsZDpDBnTWLUGNHNA+IpB/A51aOeo7iI7WgEA6BqPCkyd4Fn1uQMJmh1XPBedhMH5YhTekWK8lP7HI4tHXWTLd4lCs= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Jul 2017 12:19:46.5612 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0202MB2548 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