Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752693AbdGDKhz (ORCPT ); Tue, 4 Jul 2017 06:37:55 -0400 Received: from mail-db5eur01on0101.outbound.protection.outlook.com ([104.47.2.101]:8384 "EHLO EUR01-DB5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752560AbdGDKg4 (ORCPT ); Tue, 4 Jul 2017 06:36:56 -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 , Dave Airlie , David Airlie , dri-devel@lists.freedesktop.org, Daniel Vetter , Jani Nikula , Sean Paul , Boris Brezillon Subject: [PATCH v3 12/16] drm: mgag200: remove dead code and pointless local lut storage Date: Tue, 4 Jul 2017 12:37:08 +0200 Message-Id: <1499164632-5582-13-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: 587ad812-bd98-425d-664d-08d4c2c88a8c 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:s8BieUqfW/w/tbRIKysnxPDCna74+E2aRm3BRNW4QNlEcEkpBbmsftgbuTq7OD77nxeYZK89LsSkOAWLiPwiNZOId8kF6X5Eg8cNKa/sC3YmzrL/gPpsEZSPPu7r2WNTjaam9DuIaFL0CZrNIFudFVA6rSWkhMP3TWqUe9UnanV8LoW7lReH3qJO02NGYzL7v5vFeYJffzJahIdPKjeOc99gpoOCGLdykAALk9C/+dTeEJFmmEbU2lc0As0o3WSjVPFfRGW0qvgE8MmlVir2ppY/aEMkiM+CQ0oKRHyyCp/hZI9AgL32HEAhHLDjfJuSRKMOfVtYLsN8jQFjQfBBj35D04m0fO9SfUjHuUNxktRTVXvbMZbz17YjpeP97/227qgqO8q7VY6gAj8IRWHFp9FKmGwI25C2KuCcyHg+y3sgWcNHMdJsNKasAswoB6WOB6MjsDxJJhnvulLpUUAAQbh3xKdKAT9FUDTf7uEcXHQTk0gqGQNYz9J9UPMwWxWzgQHmy+yv8c4rVqzWNgz8+8ob5AbJxujEffAF3hOHzZ1cbvkOPvLo9iFPHWTUywExAPPl4FI278KuDVUtpMRAn/NrODaPmwmx+yzBif+8XzcmgVvmgnOpl3jd99R5yvcFnXp//5zGFMiCm9cI9q/mS7jdibNofzHutNxw/LWv6PORnQ4uH2DmWtyD++ZjXefM31oO+amGIRNkk4f7sZnS8Q== X-MS-TrafficTypeDiagnostic: HE1PR0202MB2555: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;25:kqjXKEdDG++n7wCp5fXDlv7TSul3bXqFa8RDX2ktv3FQnqRk1bf5hcZKiqw2SAWfYGuV+t3fEKv61hbGkOyFA5rWm0zhfYdFuRPeu95HJTjVHscAm+ldNkcYE980r6s3RUlKGNIgA+tAyBFGFjqwzuWmKTDTMucAyFcN/ja7MFuRRBcN/5dKs1VKy5yXzg0Ulkk8hUXEFA+utoYzg326cAjhsOQmSKo374N8o3R9WL7Ysql9fJYcj3vuHQCmr3brbj93bKJdIYOc1fwkM/jAr65XShJsCyID7nerkHhT4BS7fMH/L4KkNFTcUe44orAhzdWGZh7+4nc1kF0MvkE1wvCJGQrwS6uKAtk+5YtCU0gfzhZdO4vBWe0+ZjOpaEtQBCYvI7uiWDtu1MNXlwa4l3AhnrLsqMKSlZ0MXFF/fUfwiEgDDFJFbb0dPRaboU/kzalT1iiluWULT2dsS88glM8AzLpSBUlY+sHcZGh1tza0iLyi7Cpo5PJyLilVxaPADIv1VamBmYSMWekiGaX5C0WTbQty8KZ1HW59o531ttAcsMGzjJ43zakw9j6NcyvRLMfo+YLOV/pJqIBxwvvZO7EYOlb8z1qqLfNGOT9JV6m16mZ6bop5XEWst7O9R8KLHzvqDs9qphyrTXifZYie1v6UY/InsaKuHcSQmDAMeBp43nsWrZqKc6VFxVvHeUl3CSBDTJ6fAa8eW2TcelcoguabE5NitmsUjT86MDHKlqJsiZ7/cR5GwBOo9IogzpHH/FLKAjNevep1FxhD+rZ4ITREbuZssVUEd6UvNei2AINSAJiyYrjguL2XWNwDDgym4PppQwCRdCz8jNYFxWLE3SXwwbQvasKR5nrh6wAZPHjAvcQmdd2HYkqA3wMYeEVChrG1RUytdL6R8Rooqmgcn66PSiTLkQ7tgoGOErLwlCw= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;31:YxR28uil71TnAHt7x4LdelQ0y2UjBFROjPSarF/j8FORxZ5W2F1JvphCtE+8UoRyIMJ8scFkfnVV+0PHKWximi7Ir9A9BHQGs2LakXAmvjuSVrt7y85KTByaB9TKun/7h93Kqh/uM4XIX/Hi4dWKLiuDkaUkxuYAcl52NgWg4V9P0/JMUkcAhjELR8BzGADhdHxFa+8iH6AYmbgx9huQQpxtiHdn/0WLK4RIFMsSMuFKd99iweJwpRaMjCRHps0CgIR5L3tD2EVSxGBELPn2Yo7Tg6r6z1cunztcKtcBBLsACtec6unAuzszVdbp3DDJy0UpgYb0DyTSODeh949Xck4SeZuJCfk5EcA4VLxS3sPEdi1lS6Ms5stTGScResFFPmz+u6viI/4rmvoXxABjjiIIKwayPmlcVgWEqTIXSCC3LhhsBoXRzOBltVpMVlV5JiUqfFN3xawGtU0Sfk60uo03EDfwvjXtlR9V2FtUoIJPNFxAGP3KP0XvJznPG6kiUb91+XpuHbKNrB4nzF+BeLpt7ewkR/vZhmqXYf4DnhlKawmnKNBOW3mkfxf3CzbiKGp0bZA4HjmqUV4ZdEDQ2g2juwDOSn0xdJs0fjX4D6c6Pg2i0c1dnWDxlyCdZGhoq0aMZ6PxbkbbCBJE2AgpArIOhhn6XEeY5AC0FxRchAo= 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:qVlA3WGHfqkFmS1eX+Bs0jJRNcVWnbLNyku/Spie?= =?us-ascii?Q?7mWQn6eiO8lYPKTWMpAUBeDG5QNg9hxYV+Fct84ojZB4r2JdE78QOOl64OuH?= =?us-ascii?Q?4FRYgOuNMdD1YU0l/RdavCJNBaJWnUHfnsFqpYFsy4+Mf/s1umXc7oooH5vS?= =?us-ascii?Q?R6MZ203iI/LrgzdvtwbvjlXov2LZBPPRbWfucDd6jdKojj5dNpR/PsWzEXBU?= =?us-ascii?Q?aMlqIlcwJLgbO1+xBD31rBj2gjobm2cA9dSYcojcVa+9YiHZ9Rt/1fC+kbhc?= =?us-ascii?Q?pIsnQmmqQa7Nw6qLO19DaCEVS4OtHi+YO0ocbt6xa8LsFTsTQqfeE6qOgz7Z?= =?us-ascii?Q?A314QEcUw+fqSRCsqjGR6cWwhWMJBw0JzkzDVC+DQJ5uzb3pdxYju+jOJses?= =?us-ascii?Q?zTtEy/QqTru8mgLGEJXU0s9AUntDrGpJlMlNJQOBDo0dU8A66U7eflm9lmSu?= =?us-ascii?Q?CYo7ywno9EQvy9ReEJ5dEsMh6g63xRT10HCsnWPWR5rFfVpnBaYciDpdDblH?= =?us-ascii?Q?4JDxhD5lOCVT7RQ7/M3czb0Mx30jCccgfKqcpdhgml+n8ha6knnTd6ZOBlot?= =?us-ascii?Q?bBxiN1OB42oif0XqYZLZz5oVnow7/IeLMmdQcMaU5AVFVSjBlgoRD9XL5PmZ?= =?us-ascii?Q?Z1PG1Ajni84fleug+ktj+Siv3sDVrQW0Js9240QzY7CrzD8/9+68eLX8qTgj?= =?us-ascii?Q?5dFjknDkZg71yHysaCWrLmgEU0dHlfbcGjIFvIwDl011zdbszW3nIzFM06kj?= =?us-ascii?Q?QLK/EMiLKB2jxGIKyhxAsP93SCWjHVKEpkR726eMaTOkg2yifZ6ENQuHWq5h?= =?us-ascii?Q?RqxYnjJvFKhcIglL8BhMmNCa4A4wnRxgnT5W1ulgC/s59GmMD31+3JXZxZY7?= =?us-ascii?Q?1QjWwsCY7K2ln9QSGce4NmELzG44h8JjfnE2KbUREzB51+aWI8DRAw2G1DZT?= =?us-ascii?Q?vJxsa9MTeGXPE77qwo0rjWS47jEBzurnYhfEHCzGyOlkLyhzqZz83ajgIMrL?= =?us-ascii?Q?a8pgDVo+03j/R5YUP/tGWsh6mmeVjCDriCjPQXUfkWiKSPvg/doqLcrk8oTw?= =?us-ascii?Q?aRqQTzn9nVs4K8y369dVGv8xISKzkhKO2aNr/Ue07Kwa+wbXu+xRs1Db7xAn?= =?us-ascii?Q?JukJx0V6ooJC9ihpmFNZ3samE/hQCLIxVqYKkE1yx4V5lDAF/g13i8OCSWNk?= =?us-ascii?Q?z94JZuZISoPbbOEgkNXrvwUJnuCbrCekSR+7pK6QoZksn6O89K4qhBedMWGT?= =?us-ascii?Q?mV3Evp+2JD5FzI5UgIc=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)(33646002)(66066001)(2906002)(478600001)(42186005)(2361001)(74482002)(2351001)(38730400002)(110136004)(4326008)(25786009)(6506006)(6512007)(54906002)(5003940100001)(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:NgDplA6xKlbB27TD3PMz6QnzVV9QOFJvlHHW2jc?= =?us-ascii?Q?skBPmPPU8ipBQEeQaqgt2qsat676oIB6yKwHddyyy74Fq5JQAoHBPRcmZdl6?= =?us-ascii?Q?+jSm6gYjKXMHnem0Ul4zuGvFPMmUt79NiAW8Nmrllir7/AsAXpRL8slT7SKF?= =?us-ascii?Q?+/Av+TB08dAUQzKb8LaMAMKEiJc0/mN0xHn9mSdBfnnkD66SBmUGd6J4K49E?= =?us-ascii?Q?W8dpo3h8hLR6pAogUIL0sRK13NlovXUaKcx1mh9GkKpEhJBddBAx1F0m31W3?= =?us-ascii?Q?MBKkj7bB1j4+MBbABrUD54aIT3MMuTJe4qXAxntaMxk/Q+yLOBd61oan3vs6?= =?us-ascii?Q?/UrlI31Aj2hqzNKUVeup9oFBPrR9GvxPGdtq8aiFdQZ881+QKuJ+2AQUPVz1?= =?us-ascii?Q?LKtLoiCsqJ4kWvVQ9WzcqBki8s5CTXnrc8K7Hu7RV8gWB+0dZP6AEv5T9blL?= =?us-ascii?Q?hEUR8qlDq8ygnC2nqsrBfACvjG1dl0KwcpzjLzao617L4L+TM3tqYv+rZH7c?= =?us-ascii?Q?jXNi92K7L0pH7jBeu2gYTCcGpTWZyAuFGrCHoBNM6td20YNJsNW1aJ3FWbP4?= =?us-ascii?Q?tE5hVK+mMPhrTkwuCsl871JpmajzN+F2DR+uipFPQSQHj7TQuU8i4w2XCDe3?= =?us-ascii?Q?GQBc5GnfJqhVDC+mrRne8lugWoU4MJSbGtkddxILU4d0CHtA1RjD34lKKcoY?= =?us-ascii?Q?Kpw+muUa8661TgKfrNJunb7gtwH39qb+m+C3lR0UYCRVDq24L9s2oOw0Ol5M?= =?us-ascii?Q?wtzsL2Jh7/pxqotTLVKtsLAFRmlBe9OOWXL/EzzWjGGyI2pEqpX5yIndFr7w?= =?us-ascii?Q?q7wz7K5A/eH/2ggIuuUJpaJArxrhc3DeRtL4VY5gAOXRv+uRf2XRcJGc2Ssm?= =?us-ascii?Q?knMLpQ8AhKN95XKgP/6jAyiKfY6qMJAAxAO2x4qYSMJZBdh+x9lOz+Q7bWw4?= =?us-ascii?Q?Np0a2L0yZSHgP39pb41l6U3r9km/9Xdd/ptVrKSiszfCEkqbsg+U+mppc0OE?= =?us-ascii?Q?YYefJl/DSDHtL6h4vXYH5ZMvVBERo+sxP/Twa2Fgr13InhZrICVrl8eWleVT?= =?us-ascii?Q?1jFgtdEQeCMYFNzwITXaDkNbGxR2X?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2555;6:WPGkm8NledyVwzONa1wQSlTwrbwCljywpaHlch8X?= =?us-ascii?Q?P0UtwYXMCpAipEum4XX51MJXTGL22+ufVV/I4JBkpZtXiiVjIXs1m6ycGf5s?= =?us-ascii?Q?mmsYReXGaLWfVmZ4RIXeOCrQa4EWT3kSJ/DAhdwKvjjsuulQOKHBRK61xJjk?= =?us-ascii?Q?wvjJSvbAxByDGj03m2UmVqpWJeLuXSmfDF12wu+P9jFednxID+5dXiMCdxk5?= =?us-ascii?Q?cQSmRhzxauBYC+2BJ8VXOfVOeiVFSqbRI8WbyR2qK3EjhIyRLvD5+zk2bh74?= =?us-ascii?Q?qBtonlBRPcKmFLnIGhbqpUdYXTLP+LYxbuDmA23ulKFL3OjUu2/0N44wHu/v?= =?us-ascii?Q?Fl94xwneyWS0LdcyWGZOn1cbkwVcqXv6isXgf38U/eYFsvo8w77WUD6vU4he?= =?us-ascii?Q?RzrxqKm1JRSEjzYro2GW0Q2TbTrWSCXvsJ2VbzoYqZDtV8mu9FgQB5K8HlDw?= =?us-ascii?Q?pCH34r13OAJZWiCme9lrd2s70pLO4hHfs7V5PEuRW0IqftD99M4VPE6A3QoB?= =?us-ascii?Q?GupUEuPBZU+16eopuzbjPhR+JzR4gr6rwa+ZxAAsRf1RHebGt3EKCbinrDxK?= =?us-ascii?Q?O4xkzSxDerdqHhVuJi163VbJAqmdqWAWWK88njmpuSY7GQ8DN7XDGppXMNMh?= =?us-ascii?Q?5ereYjf8q0cdmtHTzMdKWnSbIWtaDyz/ijx7IW2t+Nc71EZTPtFS8KLogRLz?= =?us-ascii?Q?2J1lOx6RH6ZhdLz6EzmgKofv3BcKLuyvp/uk6kx+oOZL6JHM7raemQ2Qn7dV?= =?us-ascii?Q?GENNGBoRqkhjI6CJMwBe9/W+OhfhRsIqdqszj4f5HbYZ5+RW1DX8K4/YGFTk?= =?us-ascii?Q?QHsMm9m5b6Xwwv9r5skkEg5tg69esVcZrl9+MhbogeAHAklCvTAFowHbOrub?= =?us-ascii?Q?dK/2eq3Fod1DscywziqCKm8GO9ZOXiQ3m4wDJs+9pemOe+mrM9GhCcSnhTIp?= =?us-ascii?Q?C0vdtkvYdigxuOMYnu9j02IyJCku62Fybpd7ONoPCWDRwKECYRFG+xYsRJzH?= =?us-ascii?Q?Enc=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;5:nIzJYrqZ4bohIyxy+eueMTN2RPylW1DF74k4rJLaqrlnVU5KqxVzrS1HaDXcdnLU8tokErEoljikb28BZAEwsaVDWLFGy3MsLneqPTwf6MYPtmVYSvVI/64j/xxiO7d9pYyM9F01QUyz911N+VPRFYZ/1+L6JyBpI5p3CVlJyjWL6/bzFQF2lkGAPGQrst4RNU0ahYiI395D3YQCZmVqJxL/E8w4RmqRHSDCkxJfE/H+sJ//RYGGIGfzsYVCWeP4weUxkLiPMrc95r2Mkl5FyW6UBhK4Kv/fnx/AOszC1otORYhTnmDPgMyXg4y2sxkeDfFLXK+Udt4SYI2Oxuww5CSrXq7YVsxrTKAdoIFoA8dUUfsmAh01BXIn0E7kiIbioQRa5XF/rt3m4jxW5QudkSy/ZKnGr0KX8/sWM4flZFMy2vokoeN19MBiNZQBaMkjWODQd+xfpo+KWnU/HCrYmBUS9TBs+M63pOhuIF/66EStFKAg9lvK0SMcw+mzT2MM;24:oJuHMkFoXGPnHG0SWA+QasXj5n9KY/y0R5lgsNXbLASzV9yAZo2sGJaWyp9i9mDBdKk0k/4SSQX6k4yLPYcWywClfozEiVNkqc3P1ndSicY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2555;7:nfUz0XMFPLH2ujZE7QRpnVD3SvgcYwUkhePjuAK7i2NuTePI8QW11q4qdEKiI+Atdb6/kx5I2azpEPH8jBqs/fO5YOIhdvztV+d2qtfi2NDSQtg4OaUHJqOW+LXZUBLxl2UAHl/SYZZ9NDwt7o/+GXWX40XfTHwtaWaQHlq2TMAQh38bcXg3dRfFLGtD8bmxXajkfaGOKzcMRx0YGFe4Qg1+uF3sjs6k5BOfyXPfdwByCA26r0hcosuiWKHHRG+ddP2+VNzL3LrDCuY5AcmuTqp2+aw24kwx1UpNWyyH7GmfLm1766t3I0KibSMWw/OVltcncmOiwd4Qp4i2+otWZnzUAwFE79tHf9/HtPYvz1s/3a5yz7k9rr9S5zrIb4fVwsBssvg1ZueXeSkpUTvIM/hQ+F+v30mguZLMutzNgjHw1Dvwey44YFb61ynCszozrLRRbIwURpisIYKAg5clmvJq8MgyzPhoDdrYxb3JVpvoz5u92VkEaCfXgNkR1CRSl/qcljGbhPUOesqge3LbXFpKCHw7dPWLAVC3PK9jKXnWIm1YBHJ96j3WjTkCKRpI3SsdunzmXhIt9qhQbEpe1VyC4Cxksl4zzDQXQr+DhlsYWYW+SjwhPCABWY+rf4P0YAnTg6UMTp11928rrw7Zr2+cMqyKO4kTy5JPMowlDaTJHB8kIe+zUiQ9BGW1TMTfZWb7SS+kJGQpFSPRRfzLeAN816Wo2ACRta4CwFd7t4fMam+vHCh2xY+VwETDb7Z+MksesFHOo/Dmnm0w+RyqIXMNNGiRuj84xSmr3Fr3STQ= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Jul 2017 10:36:32.6974 (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: 5494 Lines: 172 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/mgag200/mgag200_drv.h | 5 --- drivers/gpu/drm/mgag200/mgag200_fb.c | 2 -- drivers/gpu/drm/mgag200/mgag200_mode.c | 62 ++++++++-------------------------- 3 files changed, 15 insertions(+), 54 deletions(-) diff --git a/drivers/gpu/drm/mgag200/mgag200_drv.h b/drivers/gpu/drm/mgag200/mgag200_drv.h index c88b6ec..04f1dfb 100644 --- a/drivers/gpu/drm/mgag200/mgag200_drv.h +++ b/drivers/gpu/drm/mgag200/mgag200_drv.h @@ -237,11 +237,6 @@ mgag200_bo(struct ttm_buffer_object *bo) { return container_of(bo, struct mgag200_bo, bo); } - /* mgag200_crtc.c */ -void mga_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, - u16 blue, int regno); -void mga_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, - u16 *blue, int regno); /* mgag200_mode.c */ int mgag200_modeset_init(struct mga_device *mdev); diff --git a/drivers/gpu/drm/mgag200/mgag200_fb.c b/drivers/gpu/drm/mgag200/mgag200_fb.c index 5d3b1fa..5cf980a 100644 --- a/drivers/gpu/drm/mgag200/mgag200_fb.c +++ b/drivers/gpu/drm/mgag200/mgag200_fb.c @@ -258,8 +258,6 @@ static int mga_fbdev_destroy(struct drm_device *dev, } static const struct drm_fb_helper_funcs mga_fb_helper_funcs = { - .gamma_set = mga_crtc_fb_gamma_set, - .gamma_get = mga_crtc_fb_gamma_get, .fb_probe = mgag200fb_create, }; diff --git a/drivers/gpu/drm/mgag200/mgag200_mode.c b/drivers/gpu/drm/mgag200/mgag200_mode.c index 2141796..dc500ef 100644 --- a/drivers/gpu/drm/mgag200/mgag200_mode.c +++ b/drivers/gpu/drm/mgag200/mgag200_mode.c @@ -27,15 +27,19 @@ static void mga_crtc_load_lut(struct drm_crtc *crtc) { - struct mga_crtc *mga_crtc = to_mga_crtc(crtc); struct drm_device *dev = crtc->dev; struct mga_device *mdev = dev->dev_private; struct drm_framebuffer *fb = crtc->primary->fb; + u16 *r_ptr, *g_ptr, *b_ptr; int i; if (!crtc->enabled) return; + r_ptr = crtc->gamma_store; + g_ptr = r_ptr + crtc->gamma_size; + b_ptr = g_ptr + crtc->gamma_size; + WREG8(DAC_INDEX + MGA1064_INDEX, 0); if (fb && fb->format->cpp[0] * 8 == 16) { @@ -46,25 +50,27 @@ static void mga_crtc_load_lut(struct drm_crtc *crtc) if (i > (MGAG200_LUT_SIZE >> 1)) { r = b = 0; } else { - r = mga_crtc->lut_r[i << 1]; - b = mga_crtc->lut_b[i << 1]; + r = *r_ptr++ >> 8; + b = *b_ptr++ >> 8; + r_ptr++; + b_ptr++; } } else { - r = mga_crtc->lut_r[i]; - b = mga_crtc->lut_b[i]; + r = *r_ptr++ >> 8; + b = *b_ptr++ >> 8; } /* VGA registers */ WREG8(DAC_INDEX + MGA1064_COL_PAL, r); - WREG8(DAC_INDEX + MGA1064_COL_PAL, mga_crtc->lut_g[i]); + WREG8(DAC_INDEX + MGA1064_COL_PAL, *g_ptr++ >> 8); WREG8(DAC_INDEX + MGA1064_COL_PAL, b); } return; } for (i = 0; i < MGAG200_LUT_SIZE; i++) { /* VGA registers */ - WREG8(DAC_INDEX + MGA1064_COL_PAL, mga_crtc->lut_r[i]); - WREG8(DAC_INDEX + MGA1064_COL_PAL, mga_crtc->lut_g[i]); - WREG8(DAC_INDEX + MGA1064_COL_PAL, mga_crtc->lut_b[i]); + WREG8(DAC_INDEX + MGA1064_COL_PAL, *r_ptr++ >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, *g_ptr++ >> 8); + WREG8(DAC_INDEX + MGA1064_COL_PAL, *b_ptr++ >> 8); } } @@ -1399,14 +1405,6 @@ static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_crtc_state *state) { - struct mga_crtc *mga_crtc = to_mga_crtc(crtc); - int i; - - for (i = 0; i < size; i++) { - mga_crtc->lut_r[i] = red[i] >> 8; - mga_crtc->lut_g[i] = green[i] >> 8; - mga_crtc->lut_b[i] = blue[i] >> 8; - } mga_crtc_load_lut(crtc); return 0; @@ -1455,14 +1453,12 @@ static const struct drm_crtc_helper_funcs mga_helper_funcs = { .mode_set_base = mga_crtc_mode_set_base, .prepare = mga_crtc_prepare, .commit = mga_crtc_commit, - .load_lut = mga_crtc_load_lut, }; /* CRTC setup */ static void mga_crtc_init(struct mga_device *mdev) { struct mga_crtc *mga_crtc; - int i; mga_crtc = kzalloc(sizeof(struct mga_crtc) + (MGAG200FB_CONN_LIMIT * sizeof(struct drm_connector *)), @@ -1476,37 +1472,9 @@ static void mga_crtc_init(struct mga_device *mdev) drm_mode_crtc_set_gamma_size(&mga_crtc->base, MGAG200_LUT_SIZE); mdev->mode_info.crtc = mga_crtc; - for (i = 0; i < MGAG200_LUT_SIZE; i++) { - mga_crtc->lut_r[i] = i; - mga_crtc->lut_g[i] = i; - mga_crtc->lut_b[i] = i; - } - drm_crtc_helper_add(&mga_crtc->base, &mga_helper_funcs); } -/** Sets the color ramps on behalf of fbcon */ -void mga_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, - u16 blue, int regno) -{ - struct mga_crtc *mga_crtc = to_mga_crtc(crtc); - - mga_crtc->lut_r[regno] = red >> 8; - mga_crtc->lut_g[regno] = green >> 8; - mga_crtc->lut_b[regno] = blue >> 8; -} - -/** Gets the color ramps on behalf of fbcon */ -void mga_crtc_fb_gamma_get(struct drm_crtc *crtc, u16 *red, u16 *green, - u16 *blue, int regno) -{ - struct mga_crtc *mga_crtc = to_mga_crtc(crtc); - - *red = (u16)mga_crtc->lut_r[regno] << 8; - *green = (u16)mga_crtc->lut_g[regno] << 8; - *blue = (u16)mga_crtc->lut_b[regno] << 8; -} - /* * The encoder comes after the CRTC in the output pipeline, but before * the connector. It's responsible for ensuring that the digital -- 2.1.4