Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752625AbdFTT1S (ORCPT ); Tue, 20 Jun 2017 15:27:18 -0400 Received: from mail-he1eur01on0130.outbound.protection.outlook.com ([104.47.0.130]:6492 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752374AbdFTTZa (ORCPT ); Tue, 20 Jun 2017 15:25:30 -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 , 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 07/11] drm: mgag200: remove dead code and pointless local lut storage Date: Tue, 20 Jun 2017 21:25:31 +0200 Message-Id: <1497986735-14418-8-git-send-email-peda@axentia.se> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1497986735-14418-1-git-send-email-peda@axentia.se> References: <1497986735-14418-1-git-send-email-peda@axentia.se> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: DB6PR07CA0081.eurprd07.prod.outlook.com (2603:10a6:6:2b::19) To HE1PR0202MB2556.eurprd02.prod.outlook.com (2603:10a6:3:90::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 49eab684-be50-4571-4304-08d4b8121868 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075);SRVR:HE1PR0202MB2556; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;3:uN7Bn0pwLVrQeaUlhDg8y5WAdSEnz1dBXVKppovVjYnARP7nak8+wmqJQvmzoNNYwrkJXrE+dgNAYJFpxSbHGl0Ua6cVOD8fFAykExc/megfP2OR6ocLe+irwgqcUQaviaDyrBsGAL8gDfPamzinbqxUB8BseQy+gZwJ7/QwFu+5yAwEvI4SZq2K+54yE7nPvVt6zFbpqnq2eFuERuQwHtTWEV1CK/x4iy0jK2XuVYYsTLGqc53HBPAMbW8fXxS9IzYDTsaZ14DJabPnAoubxg5pwmYATK4dDrWr8I7hCqHVb2gDUpK498uhkuRLu2DO;25:8Icl/bXU0oFSIQ1TA9nIXE8Yl6mmgSNUPOzIpbATeYWis7/y0v/2KZ8Hysi+VBLdB2H0jRYKdLGlEESmur8751ITEPvEwFvl+cluEflotECm3MSWpHeKRed3Fd0rSsznXhf7ITHobqZT9vo1R9hVbudWLwofpRsD5tsTPmoC/pjm9Z26lZNzg2EXTf3gXjYKOdvbR9ek8sSmKq9i8ArvobxqGzJP+Uz9vtNnM00jXvHBPo0mBr8C2nwKL1fA3XRzMxT+bgk6NwqmmWTxurFxixpzS6CHCBCb8hq2TU+1xgIca2xU77+elf4zbtXpZyIYDHKqOk1QLxHaEGQCopeguJl9wlvmUOKQy/frvwWOP/gmGNPpOrG3H5B/sV0onAjIhetOf9mZDSDeeXpt0xW/fkh4p+w7lm7kHkqJhhXpKawUEVn1K3ofR/kP+S4gkYzMjlSg+g8YKrFnQSODCJ4JsQvXwUCyRBC60HTXY4XZlFc= X-MS-TrafficTypeDiagnostic: HE1PR0202MB2556: X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;31:ZBUbzavAsHB1PF44B0IOzCwfa0HQef4+drAo68UotjDZjBS0sFCo7S3bb5nUo2sQmTVAz5Cxk3s+1KcZhA378IOKeC1x3rnEw1zeTVOHF+NBLGq04IAC0v31anmQGkcii/PZkdG3kVKxuslyCF3/ouQkB+02NJFycwhZbqfoOUI2Y68MsiWYUOKuKT66SOFT0zs7eqihbI9HKzlFzdAtLuOnkkB+aXaw5dhbtp6uBlA= 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)(5005006)(8121501046)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123555025)(20161123564025)(20161123560025)(20161123562025)(2016111802025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(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:BzDS9biZuCPnfUASYiFuMF4SmGnAlpaU5zQ+DhdR?= =?us-ascii?Q?C4f5gH6wqYM05NH66lmADX9vecVmPpbJ59MiNApM02Ug1T+Li+d1FfvtS6LL?= =?us-ascii?Q?wcZ2BPV7Hv17ynKb0Lp+Seq4cxpfas9TAMfbl56K+Yqv6T8CsCjhHRvc8tsS?= =?us-ascii?Q?ZglPnhy0LWt68oEb2UNc+OIu2ENceZWY/YfPXEIz0Q2ixj1WjiCNI12V5tbs?= =?us-ascii?Q?f/yRAVAGXBwwVwNhnEZnNLd1VCYlVrXnrD2acrMIRN4HcWEYZ6EXaDZiChFC?= =?us-ascii?Q?qglk3ODj57Gp2KZeafxRVWU7/Q6kli4CeQiYBh6+8ug5c4RJNqQJqC2BUKQK?= =?us-ascii?Q?i8twhGOlY8yapmQRXKV0q8B+X60mO92Mh1ReYPz0phCreoNFEBi39dryG1Hr?= =?us-ascii?Q?pAbeZwL5pv+3fI3j74QGoMz0kVqkugsdgxe/r+Ehl+2Jnl5EpjSgMUbMrZzm?= =?us-ascii?Q?czmOtkBgdXltBw4W1GyNOQt6oBVZIt3NJyBS6Tfm6hFYuq7tnxU6gHBfTXWX?= =?us-ascii?Q?pL/az7O4+FmbmjH8GlDv3MCcUuY0UJmRIORG8MWCcvq87Yoi3LlhkhoyqMU8?= =?us-ascii?Q?zkJDCe+0pTeo84ynkEFxZt3l/WP/Xi5BZT/nV0l7OlN4N229obHtmtkpj7kG?= =?us-ascii?Q?TYII35h17D36M/HtmBnnvOSmXZzGL5iZEyhopjcce350BzN4S2X7Lx51Q4vx?= =?us-ascii?Q?fVyVw+KzttsoCe1X/tbmJ2HSiHm11mtRO/Kh6h9opA9a9LJsKmXvlmYj91lO?= =?us-ascii?Q?zvGYR8iq3dhlpqtXqjUnvirHXEfEu+7cRVsKGBYPzauN+UPxn7rPXvlCTI3R?= =?us-ascii?Q?KKiutDja2ITysO2Kwxlaz2jAK9Xzz8e2EnKSXdK3q4ACBw0ykWFwR6S50buv?= =?us-ascii?Q?2lAdLBZ0JSaGjcPE7h44FISTuwFJC9EYVZosNwTi4suRjEtj+ZsOFa4u2Bqc?= =?us-ascii?Q?VZSndD0uSwIe9OQU2ijE9ErANnyuJ5KiAzpfOVNQUfPF0cAiYFDM/rRQPezG?= =?us-ascii?Q?mxdXghCz0ykLho2k1e9KPtcuSBhnOVubQrniVPeqH1iXCj/htoJKIQ08qiEd?= =?us-ascii?Q?hGQwnHQhkodB7W8blZ0Xo5C4nw9Z8spewgkNzosCmCc7zJBGcSt6DE88/oAm?= =?us-ascii?Q?WlXZ6X24VzI0SWgZZQLo7UMDZpR4Y/IplVRCbTkd4OK5cp5zdGzWZ+OEZRTI?= =?us-ascii?Q?NzVq6BmNVrxtVbI=3D?= X-Forefront-PRVS: 03449D5DD1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(979002)(6009001)(39410400002)(39400400002)(39450400003)(39840400002)(478600001)(6506006)(8666007)(53936002)(2906002)(8676002)(7736002)(38730400002)(110136004)(6916009)(2950100002)(6666003)(5003940100001)(74482002)(21086003)(305945005)(81166006)(50226002)(42186005)(76176999)(6116002)(50466002)(50986999)(4326008)(7416002)(25786009)(3846002)(2351001)(2361001)(48376002)(86362001)(54906002)(189998001)(6512007)(5660300001)(6486002)(33646002)(66066001)(36756003)(47776003)(42262002)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0202MB2556;H:orc.lan;FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2556;23:aEdiGSDjFJXGcHiDj13Y6isIvUTm3OsWuSj+k4Y?= =?us-ascii?Q?4UQ0zkNOCVF+nUR4fxXQOq/xMx03fPJKMqIUQvnkc+FT8F/upJEIBLlFti9e?= =?us-ascii?Q?w5mC/Y621QC3d/EOGR1jVsM+9nZ/Ohe3/ZuEaw7At2PHL5SxSJcizvIERmaj?= =?us-ascii?Q?rHTmy5LazD6XbGVwFcijsgj3y3sdsb2LRk037RP753zwIyWQB1I+Ox3l6fGg?= =?us-ascii?Q?5GLiCsB8Zm8huIwptx57vDFvwAYJRdEHT+0h67497lfyw2WMh9cu1HNkixp3?= =?us-ascii?Q?CyLDIbixjTxVWFvULo+TYD7M8xV5+1hqBRf1GMFgjBNRl019W3FwmLg3X/5C?= =?us-ascii?Q?tbt+4PiwV5bj0wP2omqQgXGZkMfiRWVwLoxJigxDpBXN7ItAP0dUcWFhVKss?= =?us-ascii?Q?cpDXuo9YxqxkXp9rqIlAu6Rz7wJUhi3J7nNTpWWRljbmSEKeURAVdw+67Rh2?= =?us-ascii?Q?1F1KKDOj5FJ6jC4sF+VFIoB6j24pTrrCeLTcu4AzqrJBId/gnfcjcUi4rjsT?= =?us-ascii?Q?mBb0gVJXrwKM0NLlYWRRfiNcl77ie3JPbnTBxnyIuXIQHoGi6clFuo/OGpWE?= =?us-ascii?Q?CHkLfFQcw13m2wXWdHHmqVUmr8CqnTceJJFJ0RuVAozQSSjXKxQq51L+ZZwZ?= =?us-ascii?Q?EgZT6GTi4dRXfZq166S+MEjb6dosX4jWDRN1zpKh0oJLrx/PlJpI2pSgiKpr?= =?us-ascii?Q?31qw4I7SR6PwHns9GVUEP3BfQiuarMWiMOpTIRHqVuc+38rV17z6aNvOJoKV?= =?us-ascii?Q?prWHCuC9AH6RN8Ah/J2PiH4VuY8iP+Gl3ENle1M15cKiiULwFZbh8omV3lhH?= =?us-ascii?Q?pPnJcCemKjFhYKJI356Vjvt6w50ZxRt5ScMPdUEy1OIYIvEsjQmKaVv2WOu4?= =?us-ascii?Q?+nWP2GHpE7ETjHNQlch/6A/NKWYdIkfnpkNm9Uum3H4CswCa722hk1iB69D6?= =?us-ascii?Q?MSytQyqmJTbDmuAH5RW5xTEgiTCLtNhrqx3Yv+htnjNhs7CeOWXusABlL/4A?= =?us-ascii?Q?XjRwOqJnAtLUJnp4okvWecrftvNzvv1V0MZVXGd88DXkGYTj1+2fe64+T+tq?= =?us-ascii?Q?qIlrWMoyjTpRk74GOTe5ojelZnKxOVR3o0B+apBNCi661o6ncD7IYIT8gwaP?= =?us-ascii?Q?MTdxihQzcfBH0DrB6GCuLmjCAGuHAmLXmity9MkRV/dmk07lIuGsnp/fMPnf?= =?us-ascii?Q?NK0tzF/n7yGH38Lpyqk82uDGBAGpJ2W86K9SzxQtNO/AEfN/IWvhCUL+OvBr?= =?us-ascii?Q?akB8/jxu9eCb8McPLxGE=3D?= X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR0202MB2556;6:Mr1/SGHkkWp7tKylCThnbn1SRjF366f4XB9Nw3ci?= =?us-ascii?Q?/uArq7DjPS5/0mXVGXVGnbzT2/gIPye1qGV+p1C+ZhCa1rlqSmotc0cVtIQb?= =?us-ascii?Q?YDaDIi3xj8F4USReVXywX/Vv9vsLEt67u/RDgubS4Mq8VdalSGxvtYYO8UdY?= =?us-ascii?Q?KnyTdaBVHPUyqpQslhfNkBm0Z1gHx9m2ZxaguFwAyw/aUV/z9btxkS70rJ5Q?= =?us-ascii?Q?I69xATKH/U+I6QSRpe9bL8wL0jE/ITmDVRB7Ab/dhuTyagIVcQNV5s3Gy0kl?= =?us-ascii?Q?cQ17rv1t2iDFyWzbxNwErM+BU0+uWWQYEH9HxCVLVAZTYEUIuKL+T8dPQRmv?= =?us-ascii?Q?Ln2U224nXWYPMJ/OIQt1avZGenp6SipNgTptqtpBwedRvsh/sCFEJgMmZM2+?= =?us-ascii?Q?YAni2d7jUndZnHsZo96FidCQekW3diOXeYhMaL3AaMuPqpq8fbCOGXY/9sr8?= =?us-ascii?Q?BacQHEBXjgXmWU61UM9XuwOxqMo1z1bXRqfBVM1nVz5yooZ6DNM5exqIMJz1?= =?us-ascii?Q?7Uvjxfmq5Uhss4Yf3zyhMTnFPzN8v83KczXzFRX9Aphisn42ZL9CIIJ88FOf?= =?us-ascii?Q?RDB2BQlQrYMr8KhV+ZiSSFS7u2DBoM785g7jURYRBHEIm7pQXNd3XhptzA1g?= =?us-ascii?Q?7EjfEv0UwUEak05eujEa9Mc6SZI00nw2F6mtmZQg7VyukVoroVZO3c/WmA/C?= =?us-ascii?Q?kKo69VyxQSQVK4qAisjfGyJupep0Z6CdePz7DgoORHjPLoWO9bc9D1PXM4GQ?= =?us-ascii?Q?RmbOwe+JrsDURhH0rZFpZ7sMahG1ZXFzZRrsmG49bOPcPwAWkOHNcPDHjJ43?= =?us-ascii?Q?2U3K1ht3OtY4B+AvBV2iJj+9Do5VBpjYLt9MI+GdJAvshLewcdFoD3m5/w1A?= =?us-ascii?Q?Gsl3lBr5FsVXvM4DRfhKEaBxw23CEkOz5G5ioODEH85PlhtLr8ABDht8Kxku?= =?us-ascii?Q?v4RabdHsbLpSlMnpQRv+Z0Iyu8u7mQvZ2L3rmWZSktzNTiQRMxc3zn2GFLFg?= =?us-ascii?Q?y2g=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;5:ILuqI6GmdkW5o7m1Mz7x1/eCrFQZ4d7Y2fNUZVzI1NPnFgh4ivGpEVR0dsqp3yoMYQFJKGyhTsPT+VuqZPPQp7C+i17IzMcHEHurMxEy57FSpr+R9FfHiO2ZxvCfAxMTDaltG2GF1qGuz35z+HEOlcRrbK6NWpfEEZl6q9g2OF17WnJtHl7DFar8lSdvbiN3JwhT9/jxLqvdjY81/QOz5wBn2l2SxXFTI8SAzqnZ+EV8ljRlzls3Dnr2XyN7JqUO/YpS+aOxSYtiXgcGI2yNXRIMiZHStqQWzGok2tB6h0wD5e9YtujMqRqE+j0X/36CTOqi79rPnaEgCUneuRtRzYUPlsFLOFI5FRy0wRwsG6L4q0YF9o/Wjk4mDtxm2q/GobzuVVzNZlb3mk2w+WyDHsba9d/86vYhmNyuZZg8DaH/0luTrVBtqMesXoe2702ZyVYOTVN6/1gUvt3j/Y0ZwP1/Y74SnWLGd0qKI9TiWkiA2E7Ftii+wEWg0m+54CBe;24:eQWQGYVL8Fy5Lxhxyr3mqU9pAt7tJGEgTnVpn0iXay60bqSLCtoYCu3/kO9SksZ/LgClfKv4LDt7XvV0JN02Emd3kSArhv7aCd2+mIUNd0A= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0202MB2556;7:l0aVmBQXQTAkz7WSa+7QhE6+P1e/toevcoY4YZHE41S9HhzOK8uJbRxTu7Y7Jdq/g9IhLc0TNGlVkJNKv8s0nfXpYBlgbQFF/4E3iUWmplPfHsgrpziSqPBTe/aepgme/DQwdj4h6GrNkQ7ToJeIK+ipKiJrCbWbowpTazS9tCyweqT//KFyaa0+ZOrbnHXuAAmc5ygeD1PiLRBoEaJ36p1Ov6DG7FEHcHBcUXHBsWYw/JLlc/EjcWq3hZu+svkB6QV3Fb7csS7LUp5Uu3sAcMKSFXszA6RyovewCZjmzgTVolgyIKoX8OSXqZwJd7yIMMe9tdbD5NIpQ8Xlq0v5Tf5k14HcO40j66EkeVceaDsWyEUO5TMGd6u7egU/Sowpoxhx2TmzZ7jSI7OJRb0EYqw82JLXQAJfjdOa1oSyHf1XhQR4ayjCQUbW75cQfYJ+JbpfLNuoTb3aIaTyKuRA29P0fx4YkgCPyJiQ/Gtikkb565wafRfG0HP3ZFvtot2zsgB9l1PjbKDsIZfG9+Vpfy//yMVW2vTn1zxXMCuNBNbfAZIP8HQsPwKLUuHha1Q5yOZ6R2Ls1nBKYx3lEmUQOMQtfSg0SMMkmsoBliA7zPa/0AJ95oFSXnsRliXP9QqrSyz9/6IOhy+kQSvso8RlWrGBvtUoXT2PjtblmYV2Vesua4cUT/MQSrhWK02H/5kppGapAXhxhoZcpfAX9mf8fvzbN8PEcXUpP2ymsh0SaRFws3SPD6aWApob4TkP3uGc8q0bXVjSd/uJqYZQXcPcoU7HNzOiFOaM9rGI36ljJ20= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2017 19:25:19.3084 (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 Content-Length: 5501 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 adb411a..117bec3 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); } } @@ -1396,14 +1402,6 @@ static int mga_crtc_gamma_set(struct drm_crtc *crtc, u16 *red, u16 *green, u16 *blue, uint32_t size, struct drm_modeset_acquire_ctx *ctx) { - 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; @@ -1452,14 +1450,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 *)), @@ -1473,37 +1469,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