From patchwork Thu Nov 22 10:22:53 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Egbert Eich X-Patchwork-Id: 1783471 Return-Path: X-Original-To: patchwork-dri-devel@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by patchwork1.kernel.org (Postfix) with ESMTP id 2224E3FC64 for ; Thu, 22 Nov 2012 11:13:03 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1A77CE64A7 for ; Thu, 22 Nov 2012 03:13:03 -0800 (PST) X-Original-To: dri-devel@lists.freedesktop.org Delivered-To: dri-devel@lists.freedesktop.org Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.8]) by gabe.freedesktop.org (Postfix) with ESMTP id 0DE31E5EA0 for ; Thu, 22 Nov 2012 02:56:14 -0800 (PST) Received: from debian (p5DCF0728.dip0.t-ipconnect.de [93.207.7.40]) by mrelayeu.kundenserver.de (node=mrbap0) with ESMTP (Nemesis) id 0MDF52-1TTr091wgm-00H02a; Thu, 22 Nov 2012 11:51:05 +0100 Received: from sles11.fritz.box (sles11.fritz.box [192.168.178.22]) by debian (Postfix) with ESMTP id 767B43F35D; Thu, 22 Nov 2012 11:50:59 +0100 (CET) From: Egbert Eich To: dri-devel@lists.freedesktop.org Subject: [PATCH v2 03/18] DRM/KMS/EDID: Return Base EDID block if reading EEDID Blocks fails (v2) Date: Thu, 22 Nov 2012 05:22:53 -0500 Message-Id: <1353579788-30637-4-git-send-email-eich@suse.com> X-Mailer: git-send-email 1.7.7 In-Reply-To: <1353579788-30637-1-git-send-email-eich@suse.com> References: <1353356598-10634-1-git-send-email-eich@suse.de> <1353579788-30637-1-git-send-email-eich@suse.com> X-Provags-ID: V02:K0:/2UkEflZ7BeeTLz4V/rPm45pMQt0kmZgHg9GQXssNV8 VE5WfqBmcp6SUW+WqAz+H9Bp5RJlyZyfKpbvBx1uYfJESRu7uS GoQ1AMast9jUPslMo+KBZciL0MeB613tQIVBkiXbD01HR18ora e1EuEH1iKae002dehnfrGbL1HWt+LW8aoj0AZA164fdXqrTFqZ L0MseSKaZoAEFEbkLIVWEO3fWymjK6ioUviWjQVrUVFp5lBUKO nXituYsGUiW+7pEmVeI0DfGmZlBC4Blxkr5gTNyjR9REXgFor4 lg62hQRabjtu7u8eB+ywZVHHwq8zBt7MwzzGT2addWAhUTw5CZ u5QTh4+h0aYjKCcXBSVU= Cc: Egbert Eich , tiwai@suse.com X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org Errors-To: dri-devel-bounces+patchwork-dri-devel=patchwork.kernel.org@lists.freedesktop.org If I2C readout fails for an extension block but we have read a valid base block, don't fail completely but at least return the base block. v2: Make goto target names more telling. Signed-off-by: Egbert Eich --- drivers/gpu/drm/drm_edid.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index 9e64069..043ba42 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c @@ -355,8 +355,10 @@ drm_do_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) for (i = 0; i < 4; i++) { if (drm_do_probe_ddc_edid(adapter, block + (valid_extensions + 1) * EDID_LENGTH, - j, EDID_LENGTH)) - goto out; + j, EDID_LENGTH)) { + valid_extensions = 0; + goto done_fix_extension_count; + } if (drm_edid_block_valid(block + (valid_extensions + 1) * EDID_LENGTH, j, print_bad_edid)) { valid_extensions++; break; @@ -368,6 +370,7 @@ drm_do_get_edid(struct drm_connector *connector, struct i2c_adapter *adapter) drm_get_connector_name(connector), j); } +done_fix_extension_count: if (valid_extensions != block[EDID_EXTENSION_FLAG_OFFSET]) { block[EDID_CHECKSUM_OFFSET] += block[EDID_EXTENSION_FLAG_OFFSET] - valid_extensions; block[EDID_EXTENSION_FLAG_OFFSET] = valid_extensions;