From patchwork Wed Mar 5 22:48:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jesse Barnes X-Patchwork-Id: 3780041 Return-Path: X-Original-To: patchwork-intel-gfx@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id A9F8B9F35F for ; Wed, 5 Mar 2014 22:48:58 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id CA60E201F2 for ; Wed, 5 Mar 2014 22:48:57 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) by mail.kernel.org (Postfix) with ESMTP id 05BC220211 for ; Wed, 5 Mar 2014 22:48:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id B5BD3FAAB6; Wed, 5 Mar 2014 14:48:51 -0800 (PST) X-Original-To: intel-gfx@lists.freedesktop.org Delivered-To: intel-gfx@lists.freedesktop.org Received: from oproxy9-pub.mail.unifiedlayer.com (oproxy9-pub.mail.unifiedlayer.com [69.89.24.6]) by gabe.freedesktop.org (Postfix) with SMTP id 42CD1FAA99 for ; Wed, 5 Mar 2014 14:48:41 -0800 (PST) Received: (qmail 30212 invoked by uid 0); 5 Mar 2014 22:48:40 -0000 Received: from unknown (HELO box514.bluehost.com) (74.220.219.114) by oproxy9.mail.unifiedlayer.com with SMTP; 5 Mar 2014 22:48:39 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuousgeek.org; s=default; h=References:In-Reply-To:Message-Id:Date:Subject:To:From; bh=yl4Y7hyFsluy9SVPhZNlrEYeR7Po7PkHZaXeSmYPBk8=; b=XW8+ipfBLUzPp4e0hreepGiZL5ismnGmy6/U6lpm2X+wf3Y7FdXqPeulrCev4Rx2zrTxH3eaSyzERMfjY9Sim3fdcM387sqqLIdKquvHjNZk9SocN/zuwnUAgHpjb3LW; Received: from [67.161.37.189] (port=56412 helo=localhost.localdomain) by box514.bluehost.com with esmtpsa (UNKNOWN:CAMELLIA256-SHA:256) (Exim 4.80) (envelope-from ) id 1WLKcB-0003Px-Nc for intel-gfx@lists.freedesktop.org; Wed, 05 Mar 2014 15:48:39 -0700 From: Jesse Barnes To: intel-gfx@lists.freedesktop.org Date: Wed, 5 Mar 2014 14:48:29 -0800 Message-Id: <1394059711-7910-5-git-send-email-jbarnes@virtuousgeek.org> X-Mailer: git-send-email 1.8.4.2 In-Reply-To: <1394059711-7910-1-git-send-email-jbarnes@virtuousgeek.org> References: <1394059711-7910-1-git-send-email-jbarnes@virtuousgeek.org> X-Identified-User: {10642:box514.bluehost.com:virtuous:virtuousgeek.org} {sentby:smtp auth 67.161.37.189 authed with jbarnes@virtuousgeek.org} Subject: [Intel-gfx] [PATCH 4/6] drm: take modeset locks around initial fb helper probing X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Drivers ought to complain otherwise. Signed-off-by: Jesse Barnes --- drivers/gpu/drm/drm_fb_helper.c | 2 ++ drivers/gpu/drm/i915/intel_dp.c | 4 ++++ drivers/gpu/drm/i915/intel_drv.h | 3 +++ 3 files changed, 9 insertions(+) diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index ca100d6..b946217 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c @@ -1533,9 +1533,11 @@ bool drm_fb_helper_initial_config(struct drm_fb_helper *fb_helper, int bpp_sel) drm_fb_helper_parse_command_line(fb_helper); + drm_modeset_lock_all(dev); count = drm_fb_helper_probe_connector_modes(fb_helper, dev->mode_config.max_width, dev->mode_config.max_height); + drm_modeset_unlock_all(dev); /* * we shouldn't end up with no modes here. */ diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c index 0d5a311..738c4e6 100644 --- a/drivers/gpu/drm/i915/intel_dp.c +++ b/drivers/gpu/drm/i915/intel_dp.c @@ -2880,6 +2880,10 @@ intel_dp_get_dpcd(struct intel_dp *intel_dp) char dpcd_hex_dump[sizeof(intel_dp->dpcd) * 3]; + /* We cache the DPCD for eDP panels */ + if (intel_dp->dpcd_valid) + return true; + if (intel_dp_aux_native_read_retry(intel_dp, 0x000, intel_dp->dpcd, sizeof(intel_dp->dpcd)) == 0) return false; /* aux transfer failed */ diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index a01fcf0..9ee412d 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h @@ -503,8 +503,11 @@ struct intel_dp { unsigned long last_backlight_off; bool psr_setup_done; bool use_tps3; + bool dpcd_valid; /* for eDP DPCD caching */ struct intel_connector *attached_connector; + struct work_struct edp_cache_work; struct edp_power_seq power_seq; + const char *i2c_name; uint32_t (*get_aux_clock_divider)(struct intel_dp *dp, int index); /*