Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752392AbdFTJzc (ORCPT ); Tue, 20 Jun 2017 05:55:32 -0400 Received: from mail-he1eur01on0090.outbound.protection.outlook.com ([104.47.0.90]:56149 "EHLO EUR01-HE1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750993AbdFTJzL (ORCPT ); Tue, 20 Jun 2017 05:55:11 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=peda@axentia.se; Subject: Re: [RFC PATCH v2 1/3] drm: atmel-hlcdc: add support for 8-bit color lookup table mode To: linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Daniel Vetter References: <1497721684-3002-1-git-send-email-peda@axentia.se> <1497721684-3002-2-git-send-email-peda@axentia.se> <20170620094019.jphcch3sd7xj4tec@phenom.ffwll.local> From: Peter Rosin Organization: Axentia Technologies AB Message-ID: <89eb3329-29f3-fdb1-db9a-cbd1ed27c8a6@axentia.se> Date: Tue, 20 Jun 2017 11:55:01 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1 MIME-Version: 1.0 In-Reply-To: <20170620094019.jphcch3sd7xj4tec@phenom.ffwll.local> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [81.224.171.159] X-ClientProxiedBy: DB6PR07CA0162.eurprd07.prod.outlook.com (2603:10a6:6:43::16) To DB6PR0202MB2551.eurprd02.prod.outlook.com (2603:10a6:4:1b::9) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 016be918-2273-48cd-d874-08d4b7c26dff X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075);SRVR:DB6PR0202MB2551; X-Microsoft-Exchange-Diagnostics: 1;DB6PR0202MB2551;3:V5pBog70WpbPLJ2dA+17e5wQz0LIGQeXk2u88GjQaWY8yTps5JCligp9FRYJG/JKuoYyrF3R1BaKHDGReVmqKYgmT24vp1XC6w5MoGDAm3zsB88wmZGEMerbwp0f43/pAjWcSKDQCIUtrpSBAoSmCYBLfQ3zfZYyPG27SgNnN0VM36+zpoqMYEzK9ZVAkYdKNABPeu/KbkEBwFM0acdhsetSEwxe1HSUWRaNxifOu1S6k0wemBUwpl5qj/IammvIz4d/NEd1wlUj09VKvQHc2pmtcz+y3CLxXNkbDE8JtW1vai/t4onsxD5JF3rXNia2;25:FdGSWQrSSse+ATZWUBc6Dgh2D4XYAqY2h4ynYyH8wsO57IzFio3rf6WEliLQmyviauDb6nwhmeTBQtqGcqbu2BUfgUQNn0ZcyIBQPrWbYSS/wMTZMguqDerqb4ue+CcEsN8xL4MaV7o1Hr6krVeMOCq5HdcI1xzaWadMQSc5vXgxnaZhpU9WcWXcoGzW/LAzx37cHHgO5oeV25CHNzj8d89VXvUeCV53CS9kkV1nWP8YGkK3pUsHHXHBceBQnEhfoh7OPKOWzVJlzc1J6Gvoac9MdSqjrys53BLwJOnJOG3RyWyPd/PDZhgBSBNzCxWKHCSCgKrT09EXgNcVXbtQw72z2BcFokj2XrC3VGlXVTgYAf8Pbq4a1QJixbpnfEJqP3lJs2Xtqrh55HtWDP91DBrujuSDXl2+pNK+IDFTb1qZnGlevj7YSlipya71J+fDZUYh7Rau5NYEzrMd4oUMRT/zxGuBKmFEbra/NjqSI5g= X-MS-TrafficTypeDiagnostic: DB6PR0202MB2551: X-Microsoft-Exchange-Diagnostics: 1;DB6PR0202MB2551;31:bTotQwu53UIa/SdMQzXbuzXbjmzRqL/kjUT5QDLIV11wToTrvTP2JMHGi9Qag+Uf/wi5Hv1To6/zBUOD9zC3glqKpoIuh5SEDp7fv6JFQfnlcTBsmNu4AvBpiw9FDVZlyokEjyp+RaaNv33kvHI0nvNYHhQEQieeCLLFVbdzPJIE4cyXv3OoEZkBZUlUesc3dxaQ3ax6948Hr5X/MHrBKLeJ5TND5MPjACq/MFLWMdQ4k6zgZS0gFDsBptElba/nOvJBeswKuHgKUtrEG/w/ig== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(217544274631240); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(20161123560025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123558100)(2016111802025)(6043046)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DB6PR0202MB2551;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DB6PR0202MB2551; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjAyMDJNQjI1NTE7NDpnYVlXejV1bE82VnJuSndsRlU1VFoxZnIy?= =?utf-8?B?WDVDdEUyNWsrc2xvbzlhOEdhUEo4UG5rWXRGOVNFYzhERXFwSUVkR1RTcmd6?= =?utf-8?B?b2lKQ3FEckxObi9ZbzRsUjhQQUZkejlKQngxVXc2djcvNGdIWXlqV2pvQ0I0?= =?utf-8?B?MEZxV1FhdHRBdkdSZ3h3LzMxTzBRWEZNS3RMV0tlZUJnT2tYVU1XWVJYc2ZU?= =?utf-8?B?bTRHcGV5K3JiVldidk54cHF0M1lpQWdwaHgyQkxjSmYyZGdzaFZoUnE2SCtn?= =?utf-8?B?ekhNTGc5MWhxeHlkR2h5bFlGS040K0dsdHk3ZTBiL0NYcnh6Z1A3VEowVnRj?= =?utf-8?B?V3pNSHl2TFlSc3B6OWpNNUlJZGo3NmtHZlpnamQwVTFXQVMzNU1OVURnUnRx?= =?utf-8?B?Wi93WWN0L2RjOFh0disyR0x6V3pGYnpqS3RUMW8zRU1NbzRjMWZTOXQ5QTNN?= =?utf-8?B?WWE0dXBaZ2hyV1FzclA3QWJoRFp3TU9QR0NOL1d5YVA1T2RKTDd0VzdUcDhG?= =?utf-8?B?RUZvTmpnVkNmQXJhemVrQ1ZNak9OcHFBeUJXOGU1YlhNd0xpTCtmbDg0RUVz?= =?utf-8?B?dWtDUnpETHk5aFUwRk9OdjF6bzF5aWt6bS9rWS9KditRTllXY2lXQ3dhbFVZ?= =?utf-8?B?MHBFa2dxUC9PVkZNUGhkcXhoVFAwd3ZZYk8wRytla2d3UmRrODhJQ0kyS0NJ?= =?utf-8?B?ekNGYVZPN01pb3ZwUmZRK1FmZzlpR2NnelZ0eHpnL3N5U2preFV0WFdqS1ph?= =?utf-8?B?bDFlVGlJZ0JVTFc1YmkyZzFob0Z2SU96TGVvTUpWU0dhR2ZxbWM4SzBOcGlP?= =?utf-8?B?WlJOMEZrczc2eUE0SXRrZGl0czZFNFpZSXduQ3dycC94MjZGUHBvbHJPYVYz?= =?utf-8?B?ZG12SzJRL0VTZUF5VHlDOTdOdjhjU3Z0alhOQmV5eGZ5Qlp2Z2VOZkJHS2hi?= =?utf-8?B?TDdYMklELzVJeENsMEFwdk53Q0VUZk14UkxzYmU3VVYxc25ndy9RRlhWUjhq?= =?utf-8?B?aTFJbnMxZm5FRVh5OEdHVGdtcXZxcDZLaWFRYzB6S20vZmhnMWRLb0x3Uzkw?= =?utf-8?B?WXJSbTFYT1dKMS9XeituWUdOYXlIaEZFUTFGaW5mVlJrWVJRSHlsaFhGbkNk?= =?utf-8?B?aGJFZW92cXB3KzBwV1pmZmc1YktSVVZMaXliRjJCWHZLTWdSeVVaOWFRT0RY?= =?utf-8?B?VmoxZ3dXa1ZoY1BrMGlwbjU4eng3SlVIT0lRTDdIcTV3R1RRZENVVzk2SUhC?= =?utf-8?B?NWc3SGFualFkWXkvZ1Q5aE5OdmpHS0VvaUMyZlNmNGV4ZzdqdnNyNEl5dytK?= =?utf-8?B?dnlHL2dyc0RhVkxhdUFHU1YvbWxaa2JmRDlBdWUzWG9Gb3lFUkUxeWJJUkQ4?= =?utf-8?B?NVVWSmVnZTFBbkNWc3NraUtyT2gyVkI2b29wbndsQTAwck9pSzVuRUozRXhh?= =?utf-8?B?dkZWbXlnQUlFSHovUjcremR0aVViYndQQnl1Z1lNMDF4djZock5qeVB1WjRk?= =?utf-8?B?bVJSanIxNVJsbjc2Vkl6RFBpQjdDZWZ3M0pVeExsanBpV1o0L1FORXJIR3hR?= =?utf-8?B?ZDJXeUtnSHlkQzJOeWVCSE5IckFkMThPWnBnVE5SdnRWTlBseitqSlBMZWM1?= =?utf-8?B?aytpRjA0clVjdnJ0NWpXUmxPWGc1M1g2cEVZOTByRjV4ZE5sMExWS3o1SFNt?= =?utf-8?Q?sMYQsdHrMZCwwVuU6aw=3D?= X-Forefront-PRVS: 03449D5DD1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(979002)(6009001)(6049001)(39450400003)(39400400002)(39830400002)(39410400002)(52084003)(377424004)(24454002)(42186005)(31686004)(31696002)(86362001)(23676002)(189998001)(33646002)(4001350100001)(50986999)(54356999)(76176999)(74482002)(36756003)(8676002)(53936002)(50466002)(64126003)(81166006)(83506001)(5660300001)(6246003)(65826007)(110136004)(47776003)(66066001)(2906002)(38730400002)(65956001)(230700001)(6116002)(2950100002)(3846002)(229853002)(6666003)(6916009)(53546009)(478600001)(65806001)(25786009)(117156002)(3260700006)(77096006)(7736002)(305945005)(6486002)(966005)(6306002)(42262002)(217873001)(969003)(989001)(999001)(1009001)(1019001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB6PR0202MB2551;H:[192.168.0.125];FPR:;SPF:None;MLV:ovrnspm;PTR:InfoNoRecords;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjAyMDJNQjI1NTE7MjM6SlhSbms4RUlhT1gyZzBhaUtReUJQb2xm?= =?utf-8?B?dFlMbmRVcG5OdDlvKzZ6ZUlmcUVRbVNOcTlsYjNqa2tiYStFdkExS01JNmxO?= =?utf-8?B?czlGb0VHZlVKTTJXOVgyVHU3b3hxZm9DYWZZQWVrRXJid2VyUUdxUCtDZ0Rn?= =?utf-8?B?cXlubWVXak9Xa3NBRlF6dFh4RnhPamtucXkyclgyK0cxM1EreWtzTEQ0Rjlq?= =?utf-8?B?NEw0aWlmV3p6Z2RnZUFxajdiTXhIZk5ZYUJwS0Q0RVlKaDNoRnFKN05MUDhD?= =?utf-8?B?UVV1cFl0cHpMalZrekdXZ0NRSjJrNjdySm5sY3BOUXhRazZGT243VWI2Q0lH?= =?utf-8?B?aFZCdnMyZmphTnl5b0JFdlhPSmtQWUFubkNtY3pnN0ZyZkFwZmlsVEFNZ0Rt?= =?utf-8?B?anY3RGZyY2ZYQmVpZ0pkeGgzM1JtTkwzTlRHRDRHN2VLVCtwRkc0OFRGdjNL?= =?utf-8?B?ZHVVelp2VXJpbFRpbm43bUNlS3JDRUlKaWhjNEhidEc5TjhJUlFWTWJPN0M3?= =?utf-8?B?MkE4YkdaQnJtQ29TQ21lM0kyMTFHcmVyM1BXQS83V3c4U1JLczJCQmYvOXor?= =?utf-8?B?Q2lPTnYwVmplbXR2SnFsV2VNQmNMbzlHN2d3MVdQSkRpSGJyNHR1Vnd0NnJD?= =?utf-8?B?azRaTk5FSlpwOXl1V1FhVE50WW5QNEJ1bW1PUm84SjcrRFBpRFdVWXpTMDg0?= =?utf-8?B?L3NwdVhNWHFBT3psc0RFcW1rNXBvU21xdzNSTlBXSHRJWVhMdENXaWwvbndO?= =?utf-8?B?U0NtdHR2eTVhQ3VWa2NvVXZCYXRKbG5CNjJhcXlrdS9YcFZvWUNMalhjM3JT?= =?utf-8?B?NTVFdkIwQ0RoRFJvZ052SHJpVk9NQzIwMXVsSzV3ZHRUYldMczlqSG9YZmV3?= =?utf-8?B?MGN5WHpwVFEzUGJ6TXByTHlWbGl2WFdudDBJSmF2Z0NsSFZ1K0I5aGpCcU5v?= =?utf-8?B?alBtdXFocmg2YXUvMXpKVEdjUkx0RWs0RkhzK1R1elo3SUEreHZzbHRIU29O?= =?utf-8?B?ZFQwOVVuZUVoOTVwNmtPN0c3ZjNmeUhzMThHVjg1YWlVdEh1bUNWZ0xFUjha?= =?utf-8?B?cG0wZjV5RkJadVA4b01uNE5CL3FzOTkrUUJPMjROYzkxeG5VUitUU3ppbEhv?= =?utf-8?B?VmFrdnVYaVg0VVlZZldiamJ3N1NiTnlkWktoeUc1eVBFZy9kWHJ5Z3NabDBo?= =?utf-8?B?bkJTMVVUZHYrRG1WNmV2UW1RaWpLUWRRekZFVHFINVlnS3JINmV1MWgrZjll?= =?utf-8?B?QTRwSnJaM0JKV05rZDFaeUQ4SXZMSUNOaURRbHZCTUM2N3gwdmZEQzBBem1N?= =?utf-8?B?ZkZJc2NpVlozSTZseTVLTHJEQURkbjVsMjlvSWppRWdXYmRPa2tRQ2RKYTA2?= =?utf-8?B?MnIydHkvbDh2UTh1WTZxdDVERXROZDJicHg4MHRJNmJLaVZGNDV2YXUvS21w?= =?utf-8?B?WWs1ZmRRNWd3MG0yWktVdXo5QndFeWsycXVJaVRIZG5rbnF1WmNJMG5EMms3?= =?utf-8?B?c25ObUt0dGlRZVpxSHF0WTBOOVNES0s3RmhPYWFsNW54L2NucGM2a1ZUY0s2?= =?utf-8?B?Y2NLZERDdUN1cHVjTnlpcFZSQzA0YnMreEN2V29iQVhqRElFTXhSazJUWUtu?= =?utf-8?B?RGFDVnlvUHQyZ2pCVHA2OTZwZTlkbUJyN0s5T0RGRE9CUldoVnF3MHlPalRh?= =?utf-8?B?TStEcHNyeUlqY3Z0b1lBR1VEM0dteFJrS3VvT2YzWnY2MDhObVk3QnBQL21T?= =?utf-8?B?T0lUU1R6NHJRd1FiZHk2RkxGV3JHcnh5dVJSRHZ5c3ZScHVIMWJ2d2FsTnFj?= =?utf-8?B?M3MvZnFmYUdIRFNmTDVQVVpaZ0ZqRjRyVDRTd2tiN0pEak1mOTdSemROeU1Z?= =?utf-8?B?dHllWjdEL1JCSVVFYzVKa1oxNWdUQTJId1Y2VUxoaVBUeGh3ckZ3RnpodVFJ?= =?utf-8?B?eUlJeVIvQ0tBSUVXeitwSldkMjdoSkJUODRKK0Z3OEdNSjBwbHJFV2ZYRGZ5?= =?utf-8?B?cHFEbUhjZjUxN0QvWDNydzk5RGJGT2NHYlJ2V3NZYUx0a01OS3ZVM3RYQldS?= =?utf-8?Q?+ngAa4JRq4iH3XpLxJlExNaT6At?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjZQUjAyMDJNQjI1NTE7NjpxN3RNU0luMy9BY2FES09hR1JjWGkya3BH?= =?utf-8?B?ZWhCMldrK1FEZW9DZ0dac2lUcDlvR1k0aTV1d0Rmazlxc2M5MEJXbmx2NGhC?= =?utf-8?B?Z3Q2YWhRY3ErVlBtTVhLVC9XdGZjRTUzU3NtbUhjdFkvV2N1NnpwYzVLRHZN?= =?utf-8?B?dnB4dUlCbjd4cnB2NG1GQitnYXk0dTFZMFFzeVdMSVp4dmtrOWRtcDFUUzdB?= =?utf-8?B?a2pSaTdjWjlibXF0WUhlTWNwZzJTNHNTT3FxbWV6OW0xQVdvWGRxbUVDNUZN?= =?utf-8?B?ZFJ2NStiMUhaOHphWE5pWFgrYkttUml1MDdBc1gwUnlKQ1Bic05HYmV0MDJy?= =?utf-8?B?V0NIUlJ4TzZBWUVaYmNVN3J5R3IyRXJNSnR2UXQyd2trRGl5dU9ZR0NFcHA2?= =?utf-8?B?Q0ZVSUlIMGVqRkVuYnpCaytDQkZ3Y0taWEgrRkV5czVQc0xpNzViUnM4Zjhn?= =?utf-8?B?K1ZLTndtWHVsaXNCUDU1eTRzYy9YSTZSOGZkNmJZWEdSbk0wOWNsakxoNkww?= =?utf-8?B?NEVzK0dPZGVKTFFmLzJ1cnYwK1FiZVl6VUpJb3djWFp2VnlFbHk0dHJVdlFR?= =?utf-8?B?UVQ4ZWZQR3QxN25SNFV3RHRVRmZ2OWZFdWxFV1gydVRaVmVncThWdHJQQUt3?= =?utf-8?B?MDBkVHJUcFRiUnpIRllPcnA4S0VtM3BYRDhzb3V0VGh0bTFzb3JNRmwrQlND?= =?utf-8?B?ZHo2ckZqMG9KajNPWFZKZzFRaCtEQUZNTHhWUk0rWlM0RkROOHE0N2xoOHBs?= =?utf-8?B?WXhvR1hlc1A4M1Bybnl5ek9GejhCWXI3ajlGVGNaOUZNOW1tU0NaZjZrbVFM?= =?utf-8?B?eWovUkQrSjFYMHFQZFkrZlFjSkFtMEFmaXQrV3NrZWtIcUlObFhMQ2hlR2tn?= =?utf-8?B?K0psVEF1aXY0THFOcWZuaGswWjBKbGQrcnRlaGZnaTNadTZPWTZ5SjFqbzd5?= =?utf-8?B?eTlXTkdkSThoNDQ0ZVJjZzNVR0RScmhiaVd1dGJCRGpMc3BYQXQ0M1F6SXJx?= =?utf-8?B?c0tmQjYrejQvTjdBWlFUaDFDd2o5bmFOMmJuN3dyV1A2T2gvRDA2QXJXTmp6?= =?utf-8?B?WWxBS2ZhUzY4aEFNdHBNMytMT0EvY2FZSTR3M1RhS3BLeVVESWZhWi9NTldY?= =?utf-8?B?WUUxK0JaKzJxMTEyMXJKVFl5Y21rZEV0eTBWcWsxT1cwQ2MyNkMvdWZPakdq?= =?utf-8?B?SFg5elRtR3k1dUtvY2I2dUwrdHhGY041emNDSU0wSE9uZ0o1emxZOG9NbTN1?= =?utf-8?B?eGczMExWNDFHRytBVWd6UTI1ZXFwWlpRQjNJSHJYVUp2L1dQajhTZFNjUjVi?= =?utf-8?Q?z67fCqoxEJD/CTioAihfQKTne4PQLIuh0=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB6PR0202MB2551;5:kuDjgomM6VX511xGMdoW0OW/sY75BqN8oNuno3yVzIL18/vkiG5m60Krl8Sv/8XQns9bvr7ygY3N+LnRziUZry3sxLOHDbtyRBrqLobiVoFkGHseND1pA0av5mV/meiuPKK4GLYYIQmdatz2+p39sNkKlpVBYE6pM8uV3i+DT6D23lNUftpw8H3KQ1Va6mj3uCosGgHH+rBQi8mO3l/5qM8ELgMCRrqhVGkErCgELuboNw0x1/UDR0hlbDmq1BOpUBfMphvMbiPfkGM3nGs9GLUM3pQuXQAZr9iLH1GQahoEGDJsjwTkqkuddGmBXdMh4NciTEc9iLX//wSxZb+F4B4bMYP5BcAl2VZzh0ZjT6DLjhB0G3ucD3j9tzy7nAU5XH3RJ7dO0YIViRbGYTyVcM/O6aAshKRD6uui5p5sizt964w5f0VaFrTTAVfApdG8BXTtpa3k7TE4PK6xun1QJHL9YBnnELhg7qmmP1ImP4gA7VJa0kpMYuG1+Pv0jmNT;24:b57Rgyz6+VkmBsU/q23aGHu/xMJRjD0DS6gYdxd92NchGnN+b7y3MLAdpdCmTTPiaJnEFKqp0h86qbd1qwmhz56+Bqv2q6yIQTfmIbRdfgs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB6PR0202MB2551;7:QjqXxM20A+6X4xkinfl5ETsltAfTVn26nyTFXv7AOVbWjZtcBhAEFAbDXge57tmdPNT4MADznoHk3qwlgJPhR5Hl96VF0UfAIsN4MXeP6BvsP+9uydYBczsWbAFCtj1Pkl/igEtcaRK0zuAdNngQ+lySzM1rFLD2HdmYbXiw547yrZHQuiYHRhtdWZBBeopX/d0iObkaob0y+VYRughR4CFcnc7ICFnTZLtnUZCYju8uMU0Ny0Sg8Tx5AeK9CAIYycwUFiU4k0VjYE4rJ9buLlSqH2znAz41CMW4TI2mrrU/ge/KcyHoq4HtBDzREGe5my3z9G6W4bwOR8ShofCpFybFQCC757U2VcduYbIKfbxvCtn1he2LzHAmBzl78fosQOwg1wPWZuZ7iA5xwojpRkBwPNtL/LRbluNPPJqS6GgCnpYM5XUKdJQUjAaAKzQ5+RywLLkeC/vO+1QqaTV5lkVf/jrfizr8K8YYorqFbZyn04Fh6xrkRKzxTUKNi7E2zlepdswd42mdqXDVxfIQlTGCXuRVlTEhwFFbrdZj5AByq4MdaMRBQZpscdMru5PHO08/EOS/vaBEMJEohJpiRAeqB0BnXU0hcbEPHxgUqjRCI25gKcfYb9wwWeQIiPg6bMQVnCeoGxEl/8iDZxnDnjMGMuhXzNOtxCmFO397qGTcRuuQL1SJLNfIIFWtrztL7qz8fdnoR+XB9vYVx1KM/Qa37iF1/qKXda4emOSYMMBB6ZRX4CY+gdpNApseP4F9ZMey6N2Tb9FsZ6LlaTJfy14olzwkZvjA43hej81kprE= X-OriginatorOrg: axentia.se X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2017 09:55:05.5135 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0202MB2551 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 9970 Lines: 286 On 2017-06-20 11:40, Daniel Vetter wrote: > On Sat, Jun 17, 2017 at 07:48:02PM +0200, Peter Rosin wrote: >> All layers of all supported chips support this, the only variable is the >> base address of the lookup table in the register map. >> >> Signed-off-by: Peter Rosin > > As Boris said, pls use the new color manager stuff for atomic drivers, and > then use the helper to implement the legacy kms LUT support on top of it, > it's drm_atomic_helper_legacy_gamma_set(). > -Daniel Hmm, I don't see how this comment applies to this patch? Isn't this patch good as is, because I thought I already did wire this up with the drm_atomic_helper_legacy_gamma_set helper as requested? (sure, v3 has a register offset tweak, but that's just a detail) I totally agree that 2/3 and 3/3 are ugly and I am working on that, but if 1/3 is also not in the right direction I'd like to know ASAP. Thanks! Cheers, peda > >> --- >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c | 5 +++++ >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c | 13 +++++++++++ >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h | 16 ++++++++++++++ >> drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c | 29 +++++++++++++++++++++++++ >> 4 files changed, 63 insertions(+) >> >> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >> index 5348985..694adcc 100644 >> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c >> @@ -429,6 +429,8 @@ static const struct drm_crtc_funcs atmel_hlcdc_crtc_funcs = { >> .atomic_destroy_state = atmel_hlcdc_crtc_destroy_state, >> .enable_vblank = atmel_hlcdc_crtc_enable_vblank, >> .disable_vblank = atmel_hlcdc_crtc_disable_vblank, >> + .set_property = drm_atomic_helper_crtc_set_property, >> + .gamma_set = drm_atomic_helper_legacy_gamma_set, >> }; >> >> int atmel_hlcdc_crtc_create(struct drm_device *dev) >> @@ -484,6 +486,9 @@ int atmel_hlcdc_crtc_create(struct drm_device *dev) >> drm_crtc_helper_add(&crtc->base, &lcdc_crtc_helper_funcs); >> drm_crtc_vblank_reset(&crtc->base); >> >> + drm_mode_crtc_set_gamma_size(&crtc->base, ATMEL_HLCDC_CLUT_SIZE); >> + drm_crtc_enable_color_mgmt(&crtc->base, 0, false, ATMEL_HLCDC_CLUT_SIZE); >> + >> dc->crtc = &crtc->base; >> >> return 0; >> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> index 30dbffd..4f6ef07 100644 >> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.c >> @@ -42,6 +42,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9n12_layers[] = { >> .default_color = 3, >> .general_config = 4, >> }, >> + .clut_offset = 0x400, >> }, >> }; >> >> @@ -73,6 +74,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9x5_layers[] = { >> .disc_pos = 5, >> .disc_size = 6, >> }, >> + .clut_offset = 0x400, >> }, >> { >> .name = "overlay1", >> @@ -91,6 +93,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9x5_layers[] = { >> .chroma_key_mask = 8, >> .general_config = 9, >> }, >> + .clut_offset = 0x800, >> }, >> { >> .name = "high-end-overlay", >> @@ -112,6 +115,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9x5_layers[] = { >> .scaler_config = 13, >> .csc = 14, >> }, >> + .clut_offset = 0x1000, >> }, >> { >> .name = "cursor", >> @@ -131,6 +135,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_at91sam9x5_layers[] = { >> .chroma_key_mask = 8, >> .general_config = 9, >> }, >> + .clut_offset = 0x1400, >> }, >> }; >> >> @@ -162,6 +167,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = { >> .disc_pos = 5, >> .disc_size = 6, >> }, >> + .clut_offset = 0x600, >> }, >> { >> .name = "overlay1", >> @@ -180,6 +186,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = { >> .chroma_key_mask = 8, >> .general_config = 9, >> }, >> + .clut_offset = 0xa00, >> }, >> { >> .name = "overlay2", >> @@ -198,6 +205,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = { >> .chroma_key_mask = 8, >> .general_config = 9, >> }, >> + .clut_offset = 0xe00, >> }, >> { >> .name = "high-end-overlay", >> @@ -223,6 +231,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = { >> }, >> .csc = 14, >> }, >> + .clut_offset = 0x1200, >> }, >> { >> .name = "cursor", >> @@ -244,6 +253,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d3_layers[] = { >> .general_config = 9, >> .scaler_config = 13, >> }, >> + .clut_offset = 0x1600, >> }, >> }; >> >> @@ -275,6 +285,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d4_layers[] = { >> .disc_pos = 5, >> .disc_size = 6, >> }, >> + .clut_offset = 0x600, >> }, >> { >> .name = "overlay1", >> @@ -293,6 +304,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d4_layers[] = { >> .chroma_key_mask = 8, >> .general_config = 9, >> }, >> + .clut_offset = 0xa00, >> }, >> { >> .name = "overlay2", >> @@ -336,6 +348,7 @@ static const struct atmel_hlcdc_layer_desc atmel_hlcdc_sama5d4_layers[] = { >> }, >> .csc = 14, >> }, >> + .clut_offset = 0x1200, >> }, >> }; >> >> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h >> index b0596a8..709f7b9 100644 >> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h >> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_dc.h >> @@ -88,6 +88,11 @@ >> #define ATMEL_HLCDC_YUV422SWP BIT(17) >> #define ATMEL_HLCDC_DSCALEOPT BIT(20) >> >> +#define ATMEL_HLCDC_C1_MODE ATMEL_HLCDC_CLUT_MODE(0) >> +#define ATMEL_HLCDC_C2_MODE ATMEL_HLCDC_CLUT_MODE(1) >> +#define ATMEL_HLCDC_C4_MODE ATMEL_HLCDC_CLUT_MODE(2) >> +#define ATMEL_HLCDC_C8_MODE ATMEL_HLCDC_CLUT_MODE(3) >> + >> #define ATMEL_HLCDC_XRGB4444_MODE ATMEL_HLCDC_RGB_MODE(0) >> #define ATMEL_HLCDC_ARGB4444_MODE ATMEL_HLCDC_RGB_MODE(1) >> #define ATMEL_HLCDC_RGBA4444_MODE ATMEL_HLCDC_RGB_MODE(2) >> @@ -142,6 +147,8 @@ >> #define ATMEL_HLCDC_DMA_CHANNEL_DSCR_DONE BIT(2) >> #define ATMEL_HLCDC_DMA_CHANNEL_DSCR_OVERRUN BIT(3) >> >> +#define ATMEL_HLCDC_CLUT_SIZE 256 >> + >> #define ATMEL_HLCDC_MAX_LAYERS 6 >> >> /** >> @@ -259,6 +266,7 @@ struct atmel_hlcdc_layer_desc { >> int id; >> int regs_offset; >> int cfgs_offset; >> + int clut_offset; >> struct atmel_hlcdc_formats *formats; >> struct atmel_hlcdc_layer_cfg_layout layout; >> int max_width; >> @@ -414,6 +422,14 @@ static inline u32 atmel_hlcdc_layer_read_cfg(struct atmel_hlcdc_layer *layer, >> (cfgid * sizeof(u32))); >> } >> >> +static inline void atmel_hlcdc_layer_write_clut(struct atmel_hlcdc_layer *layer, >> + unsigned int c, u32 val) >> +{ >> + atmel_hlcdc_layer_write_reg(layer, >> + layer->desc->clut_offset + c * sizeof(u32), >> + val); >> +} >> + >> static inline void atmel_hlcdc_layer_init(struct atmel_hlcdc_layer *layer, >> const struct atmel_hlcdc_layer_desc *desc, >> struct regmap *regmap) >> diff --git a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c >> index 1124200..b5bd9b0 100644 >> --- a/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c >> +++ b/drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c >> @@ -83,6 +83,7 @@ drm_plane_state_to_atmel_hlcdc_plane_state(struct drm_plane_state *s) >> #define SUBPIXEL_MASK 0xffff >> >> static uint32_t rgb_formats[] = { >> + DRM_FORMAT_C8, >> DRM_FORMAT_XRGB4444, >> DRM_FORMAT_ARGB4444, >> DRM_FORMAT_RGBA4444, >> @@ -100,6 +101,7 @@ struct atmel_hlcdc_formats atmel_hlcdc_plane_rgb_formats = { >> }; >> >> static uint32_t rgb_and_yuv_formats[] = { >> + DRM_FORMAT_C8, >> DRM_FORMAT_XRGB4444, >> DRM_FORMAT_ARGB4444, >> DRM_FORMAT_RGBA4444, >> @@ -128,6 +130,9 @@ struct atmel_hlcdc_formats atmel_hlcdc_plane_rgb_and_yuv_formats = { >> static int atmel_hlcdc_format_to_plane_mode(u32 format, u32 *mode) >> { >> switch (format) { >> + case DRM_FORMAT_C8: >> + *mode = ATMEL_HLCDC_C8_MODE; >> + break; >> case DRM_FORMAT_XRGB4444: >> *mode = ATMEL_HLCDC_XRGB4444_MODE; >> break; >> @@ -424,6 +429,29 @@ static void atmel_hlcdc_plane_update_format(struct atmel_hlcdc_plane *plane, >> ATMEL_HLCDC_LAYER_FORMAT_CFG, cfg); >> } >> >> +static void atmel_hlcdc_plane_update_clut(struct atmel_hlcdc_plane *plane) >> +{ >> + struct drm_crtc *crtc = plane->base.crtc; >> + struct drm_color_lut *lut; >> + int idx; >> + >> + if (!crtc || !crtc->state) >> + return; >> + >> + if (!crtc->state->color_mgmt_changed || !crtc->state->gamma_lut) >> + return; >> + >> + lut = (struct drm_color_lut *)crtc->state->gamma_lut->data; >> + >> + for (idx = 0; idx < ATMEL_HLCDC_CLUT_SIZE; idx++, lut++) { >> + u32 val = ((lut->red << 8) & 0xff0000) | >> + (lut->green & 0xff00) | >> + (lut->blue >> 8); >> + >> + atmel_hlcdc_layer_write_clut(&plane->layer, idx, val); >> + } >> +} >> + >> static void atmel_hlcdc_plane_update_buffers(struct atmel_hlcdc_plane *plane, >> struct atmel_hlcdc_plane_state *state) >> { >> @@ -768,6 +796,7 @@ static void atmel_hlcdc_plane_atomic_update(struct drm_plane *p, >> atmel_hlcdc_plane_update_pos_and_size(plane, state); >> atmel_hlcdc_plane_update_general_settings(plane, state); >> atmel_hlcdc_plane_update_format(plane, state); >> + atmel_hlcdc_plane_update_clut(plane); >> atmel_hlcdc_plane_update_buffers(plane, state); >> atmel_hlcdc_plane_update_disc_area(plane, state); >> >> -- >> 2.1.4 >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/dri-devel >