Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752506AbdGDKgp (ORCPT ); Tue, 4 Jul 2017 06:36:45 -0400 Received: from mail-he1eur01on0125.outbound.protection.outlook.com ([104.47.0.125]:18689 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752192AbdGDKgl (ORCPT ); Tue, 4 Jul 2017 06:36:41 -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 v3 06/16] drm: amd: remove dead code and pointless local lut storage Date: Tue, 4 Jul 2017 12:37:02 +0200 Message-Id: <1499164632-5582-7-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1499164632-5582-1-git-send-email-peda@axentia.se> References: <1499164632-5582-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: AM5PR0201CA0002.eurprd02.prod.outlook.com (2603:10a6:203:3d::12) To HE1PR0202MB2555.eurprd02.prod.outlook.com (2603:10a6:3:90::8) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: be459daf-c813-4922-f546-08d4c2c884e9 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:HE1PR0202MB2555; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;3:9dDBjOmjc3bz9EZ/ys/c4rghyOkhWblPh4ADYhIi8xO7f40YPA6MU95k8Le26tSEH7w57PEQ1RyNSaNZ1ODvyYjwA9N+y70sX1064DukkeWAsxxRuLXZcav0iB/3CvxjSxWUwBEwAwvCCceK7/VUTVKSh+rYg9NEHIzvbky8OBN+bTd5hbuek8Vxi9ve4+mXFNef8YA7ExjroOB6sSpl4ualYY3+s5ZtgeQgb0qMtGGpBT7665zx4nQapFgOScaSP5rnO2b8L7rGlSkwGOc333nldlJ4aLxgrKE1KHuDzeETBQj30tZU3jFcSvL/jC3KfNRnhhDGjy3x6bifr1i1jbKlAmlF5P8CMDQBRKziWxXGkH8McGXrg7Ls4H1jyvsQ64mhNQlX7gntwGa2WyQWe5FJ18MugLfovQRT0OXIISBZqwX+vGRDte3Em7iJiTlk6F6OXs5S9eoK5U5tSl5sNrXPYs20Fxlwwt42H8ao2L+ymmgdHl3pgoFseyQd+xi49O0h/+9QOllILYr4qk4Sf8BKlfXndBUKlQ2fhmgEOPYuoCndVWIgc6Hq3Pf9BIFrj0b3Fg2AagtrAGxdCkIEpf5s2cJl60BHd3kVVArCHGkjN+KdplQqtnR5pgZrBx6IxYaXcN52BP5c5G+5wUmtGagHmNrnKoeO2Pn1WsU21S93HCYr16grGrUkLHlxjYB0qozAFhfcNffv7NAWOZ0yyQ== X-MS-TrafficTypeDiagnostic: HE1PR0202MB2555: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;25:leVycDtIXz/pU2oIZCF0hp/1kPW4awC/ZUF/82JUTM4ceN9HEZdfxxo11xzzbhEGzelH3lSHJVvozmmjy7wYUkJKCbvaxGSf4pR1zqQO+qTuIFz3D3MESqFBWpXyFIwSD9WyAP+gC4k0V7AUJu9FbwHjh52n6bVdZO1iKVPVs5JfGi886GB3DDHFqY0zSVEfXj//7792OCF+MeZTQB7j8+DiMbllQzCt5EelPxbexRLxZyxPBRkpprmHGsZsJHV8QsVswMEQVoUkg593Rar6Arj6W2WUaaAFuVXw9rYm9wf9EcCNFg9kHzUHZIL9ROLr8YQ8OWia+Okt0cjjY9uIxqZ4hjoe8pkwjoKikLinWzDMtiNA+hWTco8GYH0Xsb5AhcgQUyv3+IwcpEoWFFhMyHleXuUlHa1riwngBte8YaZikjV8FqIbedUE8esixzArS5Fwkzc9EGK3602z2PGRKbYbqYqs6/Pfe56XTEtvjT8OtJ4q1EI7TvPUVk8Dxb95W3QhrAbKBp7oZiuDAyq8bVz0eOnnDkIUKSIXpNzH7EjXM7Rxl/xXQcFedzD92iBYj3LW0diBOC6VELTXZ9KgQkBReoBJtn4B89g0lzl1h0sj8vQ+C7R3kK8TmFmnN0JZp5/s/GABXwaPHeSx9pHLdwGxNMAPiBTzTeupG9NBLZKXzV/yQk7VzVzyM8d9RdarGaWioBjFlKbgvy8QZ11Wt6MWHpO0CMgCtyxXjB0nGld6w8SYuR5YsVExB9tMPi6k9YsHewZ+UoFhl59/qKdM6qsrpt1fbtp4Gt2c+EQGX0ct7q3T4atGPS9DN0z6JlCeQJeOHkgl3FeNRyfOpytCZRNXGs+5+57ZvekZ8m50a6z5fUqZASUXemCoIRFFmcOGemGFrbEcVX0j9lwoHFpjukRu1lGcgGWEn7ZqlyiNawU= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;31:H+AkAanNq0tatjs7j4a6qOwCDJNHetyypDn4DYt8fh7ae+0IWU7ZjL2XdFdAUi96n9Fo9cm3ltE14c8K1qG4Qu5CmscCTSsJn9TPjVM2C1AYyFyVybJR1k3Fz2ogyNqBeH2bfNtENHWQUz8y/yClf1k4I8d3SEW6Ir4oojgA3AAVV7AKrKALCbR9xEkGjvkVj6WosNTYUFDttZaXX/VXQITCJQt5FXYT8kkZIlV2/zhMW0TkGzMH8QrY8lYBi3URuDUUkWs2ifbxZvnwWOUdMcJ/Da+Tk5FMQnm/0lWHCYiDoe+Ze8qzRRKD9xtz0zj4rWfzDIALr7JLtIBK2wQpRh1STnfV6qrw/2bZTAHt37WzkZVVmaVKNT6YypetbyLHgfUDAZS3khVHowUD19+IAW+XJrUnJVZv3TlT1pvejlNZn4Svxl1W6mc8T98Kyf2DwkjvSGHGDAYcySV1NCfTmqdeL2t/Kf5+Q6d7W67R8dBpgFeYraxmNvoeVtNelQsxgWSIQ/ate1sa28joRX5C299QQjy1El/PCvN2Q27EhgJF2Swy12RG49FCAW0hXZpo23W14faF/TeoHPhQu72wYNjzpykbal2xzWsB3e0EZD4Y9ZM4YCEidYO/k5cDpL7eMsgUMvQsRD/g5by8vzX93m92/DGKCZMK43O3FOWfotU= 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)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6041248)(2016111802025)(20161123558100)(20161123562025)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6043046)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:HE1PR0202MB2555;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:HE1PR0202MB2555; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2555;4:EQXduXiQHqTgilfd1tRlbdnidI6SVWiyhJ7vDhOk?= =?us-ascii?Q?+eMn5GdYqS4H29ZztARpkyO5dqiuM3FjnUxvviEN/fLnDVQTJYuf2yOn8Er5?= =?us-ascii?Q?MzhYe2rs85+Q9hjRK+yUGPZxosz8nML2/Acl5lW7Vm7RQRiPdtb65X93xxm7?= =?us-ascii?Q?aRL317lapxKUzQq7elGVuiUx1vOORo+hOy/aWm/xbajTsqRHJKNtlZIcpgGa?= =?us-ascii?Q?weEpJ4QsE5gJPX5FSZI4hlUGWbXJHWg9CoDYygusTyeNSrW1eeotayaoNBpQ?= =?us-ascii?Q?50YBdkcE0DTpw7Ep6/ZwqUczR4IP8p74hlYCeot3xOBTIiLsncNSyDFhJoaY?= =?us-ascii?Q?I8idumq3+BbF4lDgJet3ZYWZwSj/QAXzXxUrMEuEUiuw64oVb1kFFA6QaWvM?= =?us-ascii?Q?OXHzB3S4rTlN5F/IO8sZvolf6R3PWbQYOOZTTxfUbDElI4jVhoq/+mTa3diH?= =?us-ascii?Q?CpCJghIjcr5QWFwdldeWyqNhLqm/JRlwk4FYFqK/2wVTBpCM0Dj2XOLzl2Ay?= =?us-ascii?Q?MrUNdd1NYxXlqQDXBLoO7RbqnS/mwH+NoAh/63PH0nRCYHa7n55bjnxBJvxc?= =?us-ascii?Q?SpcQfUlEMZineZFB/o2zCOuH9t+9v6AYDo5TmMLKSF/jEpS4w7zfXjJLrIWC?= =?us-ascii?Q?Gc4gO4JfrjdcABOqGuE04NPeczg7L9t9busw/+LTIanoRurvYvZdRzMcIb7a?= =?us-ascii?Q?BCxsCinkixav5af7algH9tYE35tS1Boiei6EmtZ3EWq5mF2YxaByYsspGPLY?= =?us-ascii?Q?rdl8pYZXhfNm/oAKYrmSWc5MIrhorM8FXUPOAZsom6Khxn5uPvG/e29qtGSo?= =?us-ascii?Q?RR9Ys3YAudPiFvbgOjDh5xXrXxYoL9yyrYwT9Vsg8jUp8uvDbssu4BypPCNd?= =?us-ascii?Q?outaVOUMkANpvpS1KAvc2MGAL6X9L13lCtzyAAB5lrtuRpzr91lyqFDn5/eZ?= =?us-ascii?Q?q9RkLamM0dbCcb9mnmcFToqq1bRsVTrAg3p6+DhJTYCGNDptXikdEdIHC3D3?= =?us-ascii?Q?gYhHECXO/QOWXCf0S9vQ2OSTPH0oCTzwHUEEbvyGPMmoszEI5WqzbvIrjXBO?= =?us-ascii?Q?YoGflZqmMi3r/XVFHxjrH4v/80fg6qRJeBOW5O70TmeIP55xvJV7dguRdXE6?= =?us-ascii?Q?EyeYcqW7gbl0pEVN4Nq0b++iyLxncI3Y6kuv6pWSFjD90ry31Bf4kWNMtqdy?= =?us-ascii?Q?t7xgE6hhdgajQ4cWCjM5ao+YyVs/OlxqiqCo94TpcryLLErj0e4bxWVqbvmx?= =?us-ascii?Q?8/1EOpeVzlejZS42Y7g=3D?= X-Forefront-PRVS: 0358535363 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(39840400002)(39400400002)(39410400002)(39450400003)(8676002)(81166006)(7736002)(47776003)(189998001)(3846002)(36756003)(305945005)(50466002)(6116002)(50226002)(53936002)(86362001)(575784001)(33646002)(66066001)(2906002)(478600001)(42186005)(2361001)(74482002)(2351001)(38730400002)(110136004)(4326008)(25786009)(6506006)(8666007)(6512007)(54906002)(5003940100001)(7416002)(6486002)(6916009)(5660300001)(6666003)(2950100002)(50986999)(76176999)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2555;H:orc.lan;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2555;23:X6ES2hfYUOwL1BWomT0BvMC4ASh2+WUszGhslQD?= =?us-ascii?Q?GE6zVSYTJ9BPZRu2rPBt/1YEZd0Re+g8+BSCxawp0vqIrySFiA4+UH+dWuNa?= =?us-ascii?Q?Yk9uskl9XZjUzlHureqUpZCsqZZ9HNtRvWfXT2ujgS0/LroalZhD2jivCRB4?= =?us-ascii?Q?GZhLEP+79RCYzAhdNk8wNLDW9gLDplJ9rN9PQng48fKGp3ljgGzbwpzwvSva?= =?us-ascii?Q?vfxUiwLcA7uUI5uZFJmm3dRpX3+pw+wjZEmiyMP6GPynse3QnP0AkKB8ZJKC?= =?us-ascii?Q?wBGCnwg1oXapgdfs2I39yEUuKsMC3Bf3hhwdreFZE7lfISbQuhLegtp+tVcI?= =?us-ascii?Q?ylgSO+jW1GhV2V1cgsHU9hsTdlJijHp15wH8f8lDilpVYONfINWKgvDmVYML?= =?us-ascii?Q?2xBWOIjcn10vtTuYR0Ay8oTCr06q94liJvalizCT4DDGNSGSCDEE8m/WzuP5?= =?us-ascii?Q?joVTqtAERIHtwOpNNs3Y/qvRJtiSo+dQ3U3hyLraOh4hI7CvPNoQW6d0MyqS?= =?us-ascii?Q?ecroy/xt2S07CzqLt0Qf2KjReGyznYn7yyuB4uHPxvXq94tpQIzCL4Fb9/OM?= =?us-ascii?Q?t/yhs5uYKrrbrfVzEDBpSARjpqraBmR8mmGEHBqh4YcHaMhBIVUSxBmpUJF8?= =?us-ascii?Q?cFMG1eF6xaLTkDJQaS2MViUfrx4+dhFXQOMxb/qiv7lpiM4keHxdPl9XZkTI?= =?us-ascii?Q?kBCz3STPn4+nF8gTXSRXUNnutR8QJvWHAUzS+AI4tsj4DYj9IrSEmplmItk2?= =?us-ascii?Q?c4PHsuTudE+rRyo+GNRuTeAauHI7pX3NRMaNr1vqVuA3mVvNgvc/Q+kdioac?= =?us-ascii?Q?1NPk7jv4gPDfPHaa32e2RSa0ZPhBkX9zzQNNkyMdatCJ1GG1Upx25GsOtcu4?= =?us-ascii?Q?RfjdGq124yajpTneHUcylBPShmmrrYTsMZihJfwzW9i0KJ7nAhp8LyPe+6Q/?= =?us-ascii?Q?bOwHhBouEWa/1YGEd98o2oyW7WxLwjIYLS0/w8sPOSk5vdQ0ZK1qCgFfEKJy?= =?us-ascii?Q?oBYWp/QaHjxbbY3FF9V7Ncnock66STUtXwKQ6ZJyP/xiMIwnGqLKaHXoWk2R?= =?us-ascii?Q?kUFbQ4k47D45p9cXudxvTHiroNcn6P9/lGvuNnczG2qbk0TsUrvlyA3FbYDE?= =?us-ascii?Q?e6OURLYnswQ6tsJcfkJB5hzhHNEUrd91P?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2555;6:3wLha0nIagxMTCeoOhCcRoPRCQJFNSxUXJqlpWVK?= =?us-ascii?Q?gsrofYi9XLKE3KXC4U93hSMpBscm296pCGWxcHlz4/r0s3TOEx2h4k/cXc97?= =?us-ascii?Q?aReLu7Ep9giAlKKAbTxIHrNALSQYuzaqsixxDlTRfe4HGq3l1/kq/r8ShV0e?= =?us-ascii?Q?NPgMSNhfe68UA0M7f6Am81XuOM5N7bo2xmyXxKmw6hpwkCMxbWTHGXXbII03?= =?us-ascii?Q?iUP3wFUBzmDTF3ZiDTjfggfC1yCYMDlEnYtBQsNeTC4HwcoBu33pelWXf4pS?= =?us-ascii?Q?Yy6Bu8gK9ggzF+zy6OlusSujje1BG8S7/NSMS+1WgcDL/cigO7m0IsSk4lhP?= =?us-ascii?Q?pzKlNwazCuV6FqJydSbSZqzvUTMgwehbaxRA1R9EPa5rYdbsNpo8rEdFm7RJ?= =?us-ascii?Q?nmZLr95Nb1SbYp1+Kp0JLoghu2nse950EnadOnTd0lP0nOmK3p4Q4IIpN97o?= =?us-ascii?Q?mQA5lkD9w1cTyu9I6657bxoMfjqFruunMk8/ozSZORv74UidvozRzoPtn889?= =?us-ascii?Q?0ibUt5XyY4sfG2B7+ljdbz1JmoF+bkRNYoskznE8Ejxf4kuyTCi4uoCuYHWx?= =?us-ascii?Q?fNT66XakTdj2Bbf80wt0esiOSeXOCYXmNUfPNqX8dFVJ0fTEd0pp8Rr4L1TO?= =?us-ascii?Q?g12ryyZV4f2ovSp7a7zpz2zpVoxL3P+INmonMu4NjrSIJlnz7v/kV1HqYSOI?= =?us-ascii?Q?E/pgQOoKZnqm19lEuLPjZt/x7WpD7oGL73RZieNyI6RAUZFYjc3Pt0c8Hbk1?= =?us-ascii?Q?bsqL76qrWIJTPqsN4vfubXK1Z1g3jM7Q0bWfZS6LIZnkReVsw6akJUql8aDv?= =?us-ascii?Q?YMO2JWaNg/kDjZ2kfExWPWo5QWtsZRDwfdIygpFCi0XlvKVmTo5QtIo9/Mcc?= =?us-ascii?Q?11LMgD6RAJyD/EJgTOQkb8SDstFGHH9WjuOR8U6h1dF3Rl5Zu5yavYCxTeNF?= =?us-ascii?Q?r0uSwVDAq+xYi8sWk15t8mpAk5m841sGDgMQc6bTp/tGSH9w6YU5ILXXlZsV?= =?us-ascii?Q?fww=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;5:JpmYFyvezeMHfTF9610haMQWUrEshne7wqIm2Wfdd8GC1U6LJPV3ixk8/MT9TOyL+dVcVnSFGu3T3rjmajHeJMVlVB6Cb0Al8SzYaG5fhKwpykc+tgs8ZhWHbqp/WHFvH5BKrsnSrrXbEGjuDmAjHtIMlCJMdaLyXSiDR6DqdyG7QlMxB7GNveuxI0+kyztco0Al/Vi9AXqMwK6lPmXio2BW37xWw6guEPojht66agmyNmnxTJ8vRDFhW8easNY7Cus7J1OX4fgS6/Wg1tq3h4XSPkuDIwqDfkHRTI4oZ7tDczCJ8SbaI/dxawW3WTAPHwOCFWwuhkN89dgR/SAUfZUauK8vLAtiZc9kfKw6zIp9y80XQJFEPe36XMiyZ3H1P5k0uN4hbn0zB8ktZi+lEFf9W7+V9Mff33rgU4HXQS3rcHbQ3h8GXAqsn87qjcP/DXZHtWA2hN5EtZ///8DMyv3Xsb2ikbcG17todBnHtLa3ch25BKOfK3b6zMQU+mSl;24:2tLvhsuQ8QIcTKmKNFacdcBuRhVJa6q6hceJAGArqZXpTXZ92sUGUd5MtWc+MGgFktaqCcTBASv/h5dpjJYi9zUUVTxdsy3ZMvNyb2m8vZ8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;7:VsoopCPIb7quSSWIMLF0ln9VOmeUAuLcdAG8Tnep5uSvh5mrvjueiuk9jPJKk60UuRgbY3TmS58qnmWPz+Z5wH6JU05ixyifz8gYRxFUxdyrwkI3S3CtlMQpd0vF5bw5TjMFJagVUvjV6Fn3sodPlLCXF7cKWCPATEJyC0hMQ9FhOPn56P6QcnACjR17bVoe+wOwyBduwKsDov/XlVmb/oifOEyQsT8A+uMwtBUur2VT79VIH7UE1m1lDdhfY2nNsWDEpr+p4cTh4NWChHh2XYMXGK/0E37tYrTaXJEfMfIJ8LZhSOVChPAhg5kiiMazeSTSBKkuBwbHXOnDE9YPCXIJGcGMwRTqRXRJCXTfW9M0i943AbGoVUA5bU8FdMgZcI0TJUhx5G73Qg/WTqAkcjnazmkFlod+/kokIgfKJRZc7ZzJOVo1rPZ212D6y8Th17grrwxu8ym9QM1Knh4F/giZgeTTkCwIjZZiamdcTJu2PW9duG1o4IKs09b/Uk2JyttjuCu6xwofiAUulxwwo91z16uPgzYZs6TRYZ48ggP9QIWYTFVXjyPpJNxqjgy9fAZVvKCNG9fyhfgunEypcGAGqwjXiTnUq6IWEm4ajtD9xnNg0AgAQfXSBTv4pNRGJDJsqG+YQNujuf4qwOCD3flUBzqhKzzXK15Mg9KGhVwRdi0qv0Zh/dLvjvepLRxBulrnECsxVzAjnFshnYUdzzainfSyTCPhm/tl2uRUGh9Y7G3OrfMnw0h24Z5d2hHRDbAdA4/5dpopvUzwRIKZOOG2phqtEpX6McC40SW3i4U= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 10:36:23.1505 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0202MB2555 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 15277 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 31c977b..717be5f 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_crtc_state *state) { - 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 cf42640..b554465 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_crtc_state *state) { - 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 045014d..e1c9906 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_crtc_state *state) { - 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 ee9389f..7fedabc 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_crtc_state *state) { - 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 f194dfc..db65dec 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_crtc_state *state) { - 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