Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756014AbdGXQAw (ORCPT ); Mon, 24 Jul 2017 12:00:52 -0400 Received: from mail-cys01nam02on0046.outbound.protection.outlook.com ([104.47.37.46]:13344 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753825AbdGXQAl (ORCPT ); Mon, 24 Jul 2017 12:00:41 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Harry.Wentland@amd.com; Subject: Re: [PATCH 1/2] drm/edid: Add helper to detect whether EDID changed To: Paul Kocialkowski , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, intel-gfx@lists.freedesktop.org Cc: Daniel Vetter References: <20170724145447.23449-1-paul.kocialkowski@linux.intel.com> From: Harry Wentland Message-ID: <92631572-3a27-431a-581a-2e421fb894cd@amd.com> Date: Mon, 24 Jul 2017 12:00:32 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: <20170724145447.23449-1-paul.kocialkowski@linux.intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [165.204.55.250] X-ClientProxiedBy: BN6PR22CA0030.namprd22.prod.outlook.com (10.173.23.16) To DM3PR1201MB1101.namprd12.prod.outlook.com (10.164.198.13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 66e9ce03-76f7-4f1c-ff9d-08d4d2ad2016 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(300000503095)(300135400095)(48565401081)(201703131423075)(201703031133081)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:DM3PR1201MB1101; X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;3:SbCkZ6GigxoY+Bife/WQwjO3RfTe8/QtqDfEKlBnpXRBzWsh9apjpNDrO6pvzmRuMYVcFU1KKnazgmH7ZQvKu+4L7xsuFMerplPj6VxbJy0ObkngVIkX7Gs+e56QK9TL7U4FP1t9Y0Nhbx30ENXq8xhb5nznUIAYy6zNvQFmSxfdp3vwXrczrbdYfDQp8ajY1lV9aJCAGtBTR8A0MZ1B+g4kM9iv1xYO0omtfXx4ep7NjZ/xye6rQOL99Fk2hNBMk+DuGdsqquO6aM4gkPttbRfsUCWRgcCySiqKHbmUx2X9nf48cGJQQLjdmzmDuY6TMFhLXZd+MikH5E0R2Gqkqnlokp2tcuN6ktkaw6jbjfFRJXkEb42py34H7ZoY3l1AK5iynastv2bLyRTmCGNnpKLY3LZmsRBhNZPBIDfZpkJ8N2BV0Ofm/ijb904tgQzmARimWNw0wDVrlhNB5wbx5eLjWbk5VsafTMz8cYkMj0Iy9h++6BctQ/2PAAMkyy2BzsVorqL8jo+nUQX267KwnUzpKiRMEsxHA4UQteW1rvmysktIZWI35r8jIor8GNGLrJk9d8dOIPkW32yRMpkDrKVTLF5qPjZDw6ACI3Wy+bVCShROxf2jrWBQnw8k+tICam8W1ebKz2pMGEqi8KNrt4DZAS7Y3OmV8jUpXFRAJcmll1/Dpgc9SFiFxbFczwfFxiZ5AfVzLulCaNi9OWTkeQr7oGlZtREfGq93FnWJxZ926LG6+XHYz6exJ98FJAywJXIS9DpvUAka5a5Xd6vLqQ== X-MS-TrafficTypeDiagnostic: DM3PR1201MB1101: X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;25:WmJM54wUpekTcdxHakv2RH7EvfUB8mFrP02NBstNK9yURTqaA/8GNy+vOzJXt428N4I1abS6CSuxcnp2U7E4jiAm0kRHIbpZXSraZg1fmVSsAm0HNH/30aLOeil5UTCUz31BfK4vl3DvX2y/KWNvGuIBucbCMsR4XES7wQtFqRc/13cuE6ekSSRIOsOqrlnEAEMQGC7UkoscO0ht47c8z6kuetCxS7C0LI+x7jXfH5vWDsl+sB1ENC8f9FuwkGx9j2/DX66irER6hXE7CW4Euf1AHWm+Nr4njFErY3YukOV7SLESwxvzEi91xeJg2Kl18V5ETyZLGtJhnC/zswXkrJ734ctSKvd9JZWzNoQr544Vm8SL7DdhrbYIjTrEIjc8lZfnc/mmGHYGVgTD53/Axo0+qgo7f8/A24pmXadPsDNtbjkWL0n5G5y+q8I7Gx/Ig7WiCkL2XMJ3z3ukYM+mabHueCprXVGPTonDPlBr1zwdeWMj45LKlRxW2I2CZuvOqspW6YzCmhJ/hBuGriLQ76S5h/ddDxUD+C5mpD02Gtt0lvi0CweHrfy4OjDGE+YylRvSHwYy5Cv0FYKkW8ZJhT23fmrG0BAwHdA+NAkRxI9e27/Z2fawnx2uN56ZxOxxyeQ8bMSOZAS7goDQnkw7WfO7sYgQWIbhx9Fiz91snS+I4RnBSsxCS25+T4/HNGyAb7R0ed3vun2btDcXrqMtYX/gzGLSiPQwtW/9qGlC1xmV1eM1cbAmvPSO2vodgEzDnYmbYJIfO0pCsVyTkI1gp6l4xTxSZTmPM23GiNdne0OjzwXAzp0Acb1R2Ap1/WnSvYeWRWrrzW86OufJLvGVJHsworaxNup47fCCICW52KdojN4vAZouIuYI3uBxMNBVqTBnT0vw0DQnlo+VOcp+/ddDN0duh07EBV0cyYEo2Ng= X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;31:hFlj+AXC8ca7iq5Es0fp0mtMcUDBCQ7zR2LnmteVN24u60Q2ARbmoyUfH01IQiSdbr2GFwy6ZRbKxobOl0bdu/jnffcybS/k53aQRxQbShujg/Qj4aeac6GzgpNPJJ6jC36FfO/ekPG+wKF3eBEQsS9hInHfWvAEHBB6pEKWEJIoezn8DRwKNpt6jkTHghdrHCrwfQfIDj7joUJVb8iacUAyMyFiHtiiTeJH1olRswWJhSWtEkTeplYmbuuq6N/Rz6ZLHtbjA7sJB2d4MieilNfy7hoLvFtvrMBCt2YuBonmgdZdJ3Z95vq5lZDLxSP2WrTaP9Omhc+kFlB+8PsIr4NuBgpDPmmErtks+CCiP7bz4yGyrghGHSwqZvzD9JkQevGtp3ei1ONmxm60cIQeg9/ifJJoWZxTFDCyWpbUnaYP0AOh8SzBRl4Oi9tU7K5TNzMR9Nuzmf7j1nixWn7AHYZKvY3XUlCFSQH2IjWkENYg1V+PMGshzwcv09K/CJbXSM9vmXomP++MjQtz1kyJLU0DsHX5uPSUOehgwy3Q0ic6jktQEEgAn6EnhYH4HoSohFDn0GNIkmsK4BAFVSSKwMKYVUoPTUaErdc5D2rYsuJ3D7oU17TcZrv3EVSh54TWrSHFCLILF/GdFaivFwmQbvw1pyecLG+rLHi9FDAXYzPeJHdGilRSNmN+9scPMcUDMGLXkRtesg7vAZnGYVyMWw== X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;20:vkkOdX+4bMDREDDD6dHk1Fx1JU8I0Rd8/mlM7VeMEwXSIxRIQsbEq+YjsjAzxlE+bw/an4u9gR4pq9asf+PrjxsT7GQuvQ6Z4be5eunpGxOTfl0ooKtxq96qYF3iBzyNxaagbGQihJf3V7I98Rnxg5/78uBbMwqyKDAWiWz7yecRyctnOho7cB5RkDUfjHeamxcPY6BaFOrrYXDrIeiVk00lY+HUjL2Xqznc6I9b0DrSD3cDCqoM1jFGVZiWOoc7PhHYs9NSBtPwlB9lJdIoYACkhawYvGBUR+pxgVavZj3Q/bl1goMeCwVkPFogCwkaR/V1VA26Vpj5B+Q1xxv20Akpvwa93lieUeoS82QMcDD4uxs/tvvrQySDjZbdjGp2UbSGSW9R222Vc4T9GWZ/xRq4Yxi7+p/uA0eMjO/rSoiOKF1YxZ1A5aOVMQTVm1eYLBbHvNEueAd3XHDsiJH63yuOVJImyRlt5lF+rKrd0vJmmev4+iHytW7rVI1MplmC X-Exchange-Antispam-Report-Test: UriScan:(767451399110)(228905959029699); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(100000703101)(100105400095)(6055026)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(6072148)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:DM3PR1201MB1101;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:DM3PR1201MB1101; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTNQUjEyMDFNQjExMDE7NDpVczgwQytYQ1NGYS82Sm5FUHN4djRMNzhM?= =?utf-8?B?SllWTmMvMmFrU09HOWtUTHJ4ZXUvZGFMcUZSd3JIbzZMT2gvaHZOMXFOT0lV?= =?utf-8?B?V1IxczFONTUzQ3B3TVhhbGJhWWRrU04yK0l0bko5cHhCZm8yYWYrVW9ZUE5R?= =?utf-8?B?QUlwUWx2Q3VRM2JleUJGK3RaOUlYME9YaUp2c1J1MEh4bVF4MkNoTUNUTFFH?= =?utf-8?B?bERFMDZwVkozR2w1RTd0TGFsdW94MFNKbURzRWJpNEJkVmU2VTFubVo1bkNH?= =?utf-8?B?ZTQ5ODdONXlyVnhzUE9kQTNVd3VCTDZWcUpzRE5iZFJEMitmR2swUm5xeWVY?= =?utf-8?B?MVZSR2JGcTFkcnZrdGNCcGlsTXNYUmMxZm15MDhIN2tZVVE1OUxwTUZ3TGd0?= =?utf-8?B?OXBreVhVaHBTRmkxNmZtT1ByaEh2SHY4VHJweXNWOHVjUUt3b3UwR3hIYnc0?= =?utf-8?B?aGhyaE55c1B2TlZVT3FBNlZRYXgxY3RlOFF5VE5XSDYzcXliMk5aQmJXb1dh?= =?utf-8?B?ZTkzM1YvQ25LUSszVlVEdzRCbUI1SWFkaDJybzVOQTNWMkE0dzNBaWcvT0lv?= =?utf-8?B?L05ib0RPVG5uSjgxZXpVWllGR2Z4ZklYTzBZTFJpN0VNT1BPOXpCcWFLNnBS?= =?utf-8?B?Uk03M01SaXpocTZ3bEZVNUoxU1o2QzNUMitMa05udW54UyszZmFGK2Y4ZWxS?= =?utf-8?B?bDBsSTlRSVhrSFk3VzdyWHU4ODhzVkE1T1d4S2ZCaEJBUTBKbytFWXF2S2xn?= =?utf-8?B?U2VrQ1FMZ3ZjMkJFNldnZVcxNmxWdk95YVJJS3I4ZlhsWEdyT2NpZGtnR29n?= =?utf-8?B?Njk0SWlKQTk4UUNHZFNsekpIaFV0enBHbUhlQnAxQXlyWHlDMVhJT3FFOFNi?= =?utf-8?B?Qm5uQWVEUm9MRGhLY2I4a1RROUo5V2Q4S2g0U3pTanA4UDlvbVdjTGZxbHox?= =?utf-8?B?djRjSHFqcnFvQ2k2NUQ3dVU3Sks5S0Y1WUFGRU1SME1Pb2tJV3BJbVVBZ1lr?= =?utf-8?B?V1pLSTREWWQ5djB4c3grTmJRV1RVdHM4M3ZtcW13aVBWOUM2aDlLdllXWHMy?= =?utf-8?B?RW1icFpCc3Zad0UzS2N1T2o0NS80TlA4TjR1di9XcUNEM1pNTlYyM01WMCs5?= =?utf-8?B?ZU14RmxuWHdWY0c4UVRxY1JQTlFHN05QT2FSOTV5cGw1V0EvZ0hZS0JVUUl1?= =?utf-8?B?QVIwVTQxOVo2Um12UkV6aTl4RDF2QUZldEdCbGJsdC9XME9CVzBBY2t3eFpI?= =?utf-8?B?M3N2eFd3RUREVVlRczlGU0czRkhCOEhUSXYxcy9sOEdiRUtKOVk0S0puT1V4?= =?utf-8?B?TDZMQWNVUTI1bi91c0ZwVlpKTVF0YXo2bE5vS1J1Rng0Ym9XQWgrQnY4THk4?= =?utf-8?B?M0NSYythaEFKZjc1TFJsNytzbzNoYVcxZXFmQXJaMi81NUtPTEVDdytqZkZL?= =?utf-8?B?eGUvZkFEaC81cm5VNXdpaHpjVEhOMENOWkdKa1doQmdNZURUaXRTTTJ6eTcr?= =?utf-8?B?YkJoaUxSaDlHcENYVUk5TEdURjUxV2EwVUlGbG5UT1VIb2g0U2hDWTdRL3Zm?= =?utf-8?B?aUdnQ0RySURiU1FHWStRMVZNL3dMMkM0YklqSEdMSFpxSHFPSUdxL3QvZmlP?= =?utf-8?B?OHRwWGZmVXp4NGhHL3p1K1RvajNZTUVvU3E3cjdtUEtoa2NrSFVzR1VHOHhS?= =?utf-8?Q?xebrog+zYoVYGPjxRKA=3D?= X-Forefront-PRVS: 0378F1E47A X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(7370300001)(4630300001)(6049001)(6009001)(39850400002)(39400400002)(39840400002)(39410400002)(39860400002)(39450400003)(199003)(377454003)(189002)(24454002)(377424004)(6666003)(229853002)(6116002)(90366009)(42186005)(38730400002)(110136004)(6246003)(53936002)(47776003)(7350300001)(478600001)(4001350100001)(72206003)(50466002)(8676002)(83506001)(106356001)(36756003)(77096006)(6486002)(2950100002)(105586002)(3846002)(76176999)(54356999)(50986999)(86362001)(66066001)(4326008)(101416001)(31696002)(53546010)(81166006)(65826007)(33646002)(65806001)(65956001)(2870700001)(7736002)(97736004)(81156014)(68736007)(189998001)(64126003)(25786009)(23676002)(31686004)(5660300001)(2906002)(305945005);DIR:OUT;SFP:1101;SCL:1;SRVR:DM3PR1201MB1101;H:[172.29.238.226];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTNQUjEyMDFNQjExMDE7MjM6V3RtL3RWdFQxYzlsdnNVMzhrMmtEVHJB?= =?utf-8?B?UlVmVy9sSjBJanhhaXFuY3FBR2RTR0NqTFc3SER5d3k2YWlCd0huL1U2Nmoz?= =?utf-8?B?QWFmU25LcHlLbUpUMXJmVW51ZDNYelB4UE0yZDV3Znc4OFJUd0xSS1hUOVJr?= =?utf-8?B?NjZQOU5FbW44R1lnUlhidVRHRXkwSkJ5eEk3ZnYrajZlQjNKQUNPY1BINXhx?= =?utf-8?B?cjZvNjlpY2FRQXNwTCtYSTN6YmZyZUQvZW82Y2NuOXo0WHJySngyTU95ek5C?= =?utf-8?B?d1BhSDM0T3Q5MFVxL0lSeFkyNk9SbncvQURxVXhGTVk4Mm4zVERlVVNrd0pw?= =?utf-8?B?SG1KWnBITjJUcldsOEV2bm94d21jbFVQRDIrajNsWEFNNmZtT2pBajJJQ3dy?= =?utf-8?B?NHgwMS9Fem1uelZKb1I1L2JIV1c1NlhKZ3AydldGWDFHd1AxSXJLcXVocWxB?= =?utf-8?B?LzhXWkdOa3IwalpnM3dLQ3JwY2IvQW1UK0FlTTFWVGdmOHE2bHJGT3FkcXFJ?= =?utf-8?B?K0ZHcXduOHdKTjZjWnMzMC9VQzF6MFZJYWE1ajJUUXV4NkFPUm1JaGhRWWx3?= =?utf-8?B?Y0FJamtEWTNDcVJuL1RTalVjbWY5a1dZVjdsWUFrdThMNWh2cU9rVWExZ3VL?= =?utf-8?B?WEhyNWZPTG9ENzJ3cVh3VWJ2bzY4NS9Fcnp3czd5aWRuWjhneW5xR3pLd2k3?= =?utf-8?B?dkQ1blpPaWxiVHhjc0Rjb1haQy96VkhLYnRZZDZVcmFWMEZ6RVJCYUdmcUtT?= =?utf-8?B?d1U3QnI4QjBMWHE4MEUzZ24zTUFWRGFrWWhVK0dkak9OaEVxL0krSE1nOFRV?= =?utf-8?B?VkpSTTZnQzlKeFk4MU96a3R5K0lBdzJ0QXNUckZXdmtwNWhzT2FOUkloc1FD?= =?utf-8?B?WEc1L2dadzZIZFIwbzNuV2NCY2MrUklucHplUlFuNXRHbEhGMUJHb2F5aGdw?= =?utf-8?B?Tmt6eUFvN0V4bEhVem9DdWMrQXh2S0RFdEROb29YV1pJK2w2RDQ2cWtzY0pN?= =?utf-8?B?RGEyR3dqT3N1OW1PSzdpWUtCMWhkK2JHQzFzMUtNcWI3ZWlCVSt6eU1UekNS?= =?utf-8?B?dkhBaysyUWw4aWxWUVNvZXdYZm1UYmZiVWIyT2NiaXA5R1haY295NkJnWkl3?= =?utf-8?B?UWtXVkFycGFCZUM0TEJlSHRWZXNNMGlVcnJBQ0gxYzdjSmEzSzlVV3hJQlhn?= =?utf-8?B?V2NTNDBUL0xyRDZUR211aEJGaTNWOEZ1cGF5c2xuREY2TlNOeTRNYmRpNHdL?= =?utf-8?B?OTc0cGxnM015NUVBMUhRWndKVGZONWI5aG42VE84Mld4MUZQWEZyV1BReUxS?= =?utf-8?B?QU9JRVQzdDVLY1dmYjczRU1xSFhEMHhSRTljL3ExUkE3QTRCSGgzK1BuWmg3?= =?utf-8?B?aW02enE0d1FQV1hPc0RmUnljdGlCYk1yeUhXWHVWWE5xclBadU00SFNjbXZD?= =?utf-8?B?NHRGelh6bzViVTRxR2JNZy9aU1ZnQVB0bkJsRU9WSFJIZ1pqMkVySExMZFhH?= =?utf-8?B?ZmtrUWJMT2RSSkJORkc0dEtKVzhBVE0yVGtXMW81Y3lsaURkVlhnOWtrWGti?= =?utf-8?B?MkxPbHNxb2dUYWFPWGtEbU5nczFJS3NmOTU2b29KZ2FqT3RhR3hGNWt1MzZN?= =?utf-8?B?a2tKTEpTRnF2cjNOTDlsQjR1TnhoUzlVYUJhZ2tmWitJS3hxbVZtdHdUSW55?= =?utf-8?B?V09qUFVTanllMEREU3BKTHVhZFBPZGR2NDQ1SitCRWxWUkJkRFEyMytKS2ZC?= =?utf-8?B?dHIwVVYyaXlDdDFLSFY3S3BFQlVvbEYyNEovR1oxQi9KdEl3amdpSlNCTVVn?= =?utf-8?B?eXFFazJBQVRZN2FMK2JLU0ZneFpjbFZjbHExOCt5TEp3Ryt6YTdWK3FzaHdR?= =?utf-8?B?WlpoWnUzNlFHdU9jR0MrMUdPMG5FV3VLakp6YmRDbVdIVWlzMDFuTVNINFpJ?= =?utf-8?B?OTkvajJURms5YXlZeFpCSlZYbEQ1akYrd2gvRjRJM1BzR1pLNVJBK0dDQmtQ?= =?utf-8?B?eDU2cWZBS1YwN3VYeU1DQnpDU2lLNDhOM0NjWW9taGRickNuVDYrSG1rbHBu?= =?utf-8?B?S2cvLzRObUVMT2pIbExqMFcrUldHOGN4MVZUK3pabHU5RjdLUzhPWE5oWk9F?= =?utf-8?B?K2RyaDBmNnBsNkdoM1I0ME53djNmM2xwQ0l4SXQySDR6bSsydGlXTlJjbXNL?= =?utf-8?B?NVVDOUE2ZUdhdEtlSGJ1c2lMTkU5TEE9PQ==?= X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtETTNQUjEyMDFNQjExMDE7NjptTDVYdzllVFpqQzduQkNVdis0NldyTmI4?= =?utf-8?B?TTRlQzQ4NGduTXR3dXJQdlAxaE1RMnNwbmpZNnJLZFBDWjdiQUFpREZkS2h6?= =?utf-8?B?N3lheUJPZHBPcFlXd3pZRWtiTGpsVVQ1bmN1emVBczlWUEhodWVRU0RnRjBM?= =?utf-8?B?MlNUQ2p5MXpXbjRXUUpKSk9LY1kwUjNJZ05LZEhqYy9XWDhBK0hFT0tNbFFq?= =?utf-8?B?dlMwOExWTGlzb0t6QXAwRHdmQkpkWmhvR2NFZy9IKzRibGJDeWtad1NEN3Uw?= =?utf-8?B?b05DUk9NVW9iQnhrMVNHbXp0ajB0OUNzRS9MRTNJbmRkYW5yVmcvMzdnUjRi?= =?utf-8?B?Wm5DWXo5Tm4yTFB6VTRZalFxeUtPQVVLWVcyNklsbGtaYzM3Snk0MDN2ZVYw?= =?utf-8?B?Qmw2N2h2b0NGRVJ3UEYvT3NtTmRnUC9yK2hPRS9jdzd0cXFzbk5hZkw4U2U4?= =?utf-8?B?cVRhTmlTcU8rdVRCZUU0RU1sbWU3YUNIRkl3enowUWFibDZSdzR0NzYrcXNP?= =?utf-8?B?L1F5OThkTHRXbXp1TGZhbUhMOTRMYUxSZmtPdWYzRjAwMlBtU1FSaEdYVWFP?= =?utf-8?B?OEVWNWhZVW9qQTJMUE4rQ01PeW1VU0NIa2pXZkp4YUhudFU5MlFGVkFGNXpC?= =?utf-8?B?eWNFeDFtSTl0VHBlU0luWmpzclZHczNMazIveXRCVGpmaUJDbzRVSnkybFpi?= =?utf-8?B?MHE5RUI1RDNja2JoRittVWRZTEI5UVlLWkMvT3E4aTNBTkpGcUZLZW0xT0FZ?= =?utf-8?B?Q2RhM2tNSTN1YmozaktjMDQ0OFRBK0NzUHMySXZ1UWVWTVdneDhac1lNaUlG?= =?utf-8?B?b09oKzJDWkoyWDJrNHFjVXdZY1Y5SVhzaG1nb2xHNUtod1VmV3R1YUpGb3I1?= =?utf-8?B?UlRsakpYZXdNbFo4Wm5DZ2F3MVRodXFyUVAzbk15aUlWUlRjSTlETEdzZDhQ?= =?utf-8?B?YnRrdmNvejdNTS9ZTVNuTkVQZytqL3VDdGxUcHc4L0hzdVRoN2llUkpNODZR?= =?utf-8?B?K0pGWDVHVm9jTEJURGRNQ2hXazVDZkZOWk5DNzRBeEtJZkZWbmVYMzFHRzZp?= =?utf-8?B?Rk8rZE92ZnMvNGQ3NmFYeHF3YXhRRlkxMWxlNHczNWZhN1RubjF2OVlOdDRE?= =?utf-8?B?U0VWL2VsQ1dKb21IWkZuM2g1TDh5WUlsSU1YTHFrNW04RXROdUZta1pWN3BT?= =?utf-8?B?eldacUc2ZElTUzNXK1ljQnpkM05yZ21xL1VrSExSNGh4OW5mU1NvTjgzTzIy?= =?utf-8?B?T3gyK0N2R0txQ1ZQTjVjSzRTSWgvZUpFVzEvYnhYdDQzUGZtOVkrOUwvS1hM?= =?utf-8?B?LzlYMGFZNXhsQXJITS9KOTB4djhPM3NhUFQvTzZDaHEzcXNZeVVVM0x0cXJH?= =?utf-8?Q?DR9o1aK3e?= X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;5:ttZ9d3bWJo/Wnazz2ODixBXp8yPDvBCyrN+qMqg3mNZxGT75UAxRr+VTyC7ByIPfCaOQaXSNR+UKs+ZLhzZqh16BKtl6pk4BjATtXGWpwagVTKLRXRQy+xhzIGshMIchq3EDKClemJ/Asuw5AL2hzvpbfBSM0ul02ZI6uiYXjg02wUiH423xyUQV9WRzLIS/WfdslmGbZi28wC1DVLN/ekcsArtLWOlWO3oRDktvJhdEIkPjWprOHd1MhLZ6L2WrYrNp9lGg78WELdjwh0fUVTA+pvA+5J+onpyKp7Q7Y7D59RKIxlQ3wzphvykWVE36be/+tGPIxaVUHdyhawZ+qRjTjx9KLo0N30/YS5yufq0hkTSAm1EC4fn0qqC5iKp2gte+hTk8cMLLNeSFDO0f8e+wmZBMDEjgiUr87G4W/1unFSeMHytuYT0Zx78ONUQB10wHkOh23fzbrKJKVFG4R65Fe4XhgoGK4Np9czfosDykXoL7e4vminhY7mjUULUX;24:ypB0QOEi1tLr2mhURGgcUL9LQC31rTqyKb0ps11ra7II+OP3Lt7NSgmldCrbMKw19o/kpeBHu1PgUnCtQ3njt5OJ2iqa0Fqy3JbxK12MCUQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;7:a9pFJDFdSY2s+aJcY2rRpBDQr9divcj0LQ+LFuplQ42z/B9tpFBUW0SVSxqedQwhGujkhRbvhcGpM+Fg365gmfbFT7P42jw0bgjE/L8vmZdvkoxgRSz2j+yBkKV9pxk905T6BnVO3+gxeGND698TqHL1AGLnpJRw25v3RRuR9C6WZlUuOxIUgWap8KlwnEt1XNQZxt0z/fYEUiDZnckjHxuhaT9RytV1V7bQKqai3OhmK6MwLdgxy7wsePRGbM1pQMf3KbdSYRPCz+dCzRju+5yL+MOqEzvlg3Bn3ymzT70hD+UjhNAG1Ygv15bCsFWDO++jcHbW0xEEHqSniptVm1pqgN9WT+ZF5vS35vWG3fws0pMWrawFCFX7gUZjkSMWrI6CjKkDxuCZ8ubEAy/NMmnLQ5tHOvS+sAPD8HcukVQ9poQPND7NymI1v6LlodL/De+4FmiD+aKI4Q9IUvZby0b9wTkacZ0H+GaXEG8iJ2lAVgR38OsMXgzp6uR2istrSOwkjMOgpDpueZqKhMP9hsrM+vPui364dLwkQZMKS8Ns/Ib3byh+mFBZ0nqP7UWxcA3lrqZF3HxtbgbCUENAZZG4Kjvt1kK5Hi6QRKi0wNNvKCi+2b2WxosOcqUz8rE0d8Kc9VUelXUGJc53feiGyYgP2W+QvCLuV6qY8FhLdcrphJX14cTAixE1UNcAfkXKTK2YEkw/UR536PnEPvtFgI2BnbHKQgH3K40sR7YIgFx1f+QP0REPXsAg5ti9TWt2yRxXTMjnTqhBUqEsvY9BtnTyrFG8L3eEFKJNEYLfvvY= X-Microsoft-Exchange-Diagnostics: 1;DM3PR1201MB1101;20:6XnNERL0qqEmR1AFcZL6Ouo99rkKTRdYN0isVj6MMIEqbTJfmGK9gQFDTc9JUcLY8trYIgMM/nbRuthlOS+g6xf25kA1OCzDyNxYjthSH6TIo0Relq/p/v78LSbvSfgucIzakagTlZMJFP9rKu1vOtq9GINWiNeTy9qsmVlf8M6nWWVQElzNI8GnL8HNIhOwpTGvhFb693+CvFKthe84ceG5JJi8sbzOY8m/dezPMguuISMWFxYyJbMEkBRvChNZ X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2017 16:00:36.8291 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR1201MB1101 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2842 Lines: 88 On 2017-07-24 10:54 AM, Paul Kocialkowski wrote: > This adds a common drm helper to detect whether the EDID changed from > the last known cached one. This is useful help detect that a monitor was > changed during a suspend/resume cycle. > > When that happens (a monitor is replaced by another one during suspend), > no hotplug event will be triggered so the change will not be caught at > resume time. Detecting that the EDID changed allows detecting it. > This makes sense and could be used by other drivers. Acked-by: Harry Wentland Harry > Signed-off-by: Paul Kocialkowski > --- > drivers/gpu/drm/drm_edid.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ > include/drm/drm_edid.h | 3 +++ > 2 files changed, 48 insertions(+) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 6bb6337be920..f6ce8bc2907a 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -5036,3 +5036,48 @@ static void drm_get_displayid(struct drm_connector *connector, > } > return; > } > + > +/** > + * drm_check_edid_changed - Check whether the EDID changed since the last update > + * @connector: connector we're probing > + * @adapter: I2C adapter to use for DDC > + * > + * Check whether the EDID changed since the last time it was updated in the > + * drm blob cache. > + * > + * Return: A boolean indicating whether a change happened or not. > + */ > +bool drm_check_edid_changed(struct drm_connector *connector, > + struct i2c_adapter *adapter) > +{ > + struct drm_property_blob *edid_blob; > + struct edid *edid_stored; > + struct edid *edid_read; > + int ret = 0; > + > + if (!connector->edid_blob_ptr) > + return false; > + > + edid_blob = drm_property_blob_get(connector->edid_blob_ptr); > + if (!edid_blob) > + return false; > + > + if (!edid_blob->data || edid_blob->length != sizeof(struct edid)) > + goto out; > + > + edid_stored = (struct edid *) edid_blob->data; > + > + edid_read = drm_get_edid(connector, adapter); > + if (!edid_read) > + goto out; > + > + ret = memcmp(edid_stored, edid_read, sizeof(struct edid)); > + > + kfree(edid_read); > + > +out: > + drm_property_blob_put(edid_blob); > + > + return ret != 0; > +} > +EXPORT_SYMBOL_GPL(drm_check_edid_changed); > diff --git a/include/drm/drm_edid.h b/include/drm/drm_edid.h > index 1e1908a6b1d6..593a97b269c3 100644 > --- a/include/drm/drm_edid.h > +++ b/include/drm/drm_edid.h > @@ -485,4 +485,7 @@ void drm_edid_get_monitor_name(struct edid *edid, char *name, > struct drm_display_mode *drm_mode_find_dmt(struct drm_device *dev, > int hsize, int vsize, int fresh, > bool rb); > +bool drm_check_edid_changed(struct drm_connector *connector, > + struct i2c_adapter *adapter); > + > #endif /* __DRM_EDID_H__ */ >