From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754572AbbHQHtb (ORCPT ); Mon, 17 Aug 2015 03:49:31 -0400 Received: from mga03.intel.com ([134.134.136.65]:59985 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750866AbbHQHt3 (ORCPT ); Mon, 17 Aug 2015 03:49:29 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.15,693,1432623600"; d="scan'208";a="785116880" From: Jani Nikula To: Srinivas Kandagatla , Thierry Reding , dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, Srinivas Kandagatla Subject: Re: [PATCH RFC 1/5] drm/edid: Add support to get edid early In-Reply-To: <1439567398-13611-1-git-send-email-srinivas.kandagatla@linaro.org> Organization: Intel Finland Oy - BIC 0357606-4 - Westendinkatu 7, 02160 Espoo References: <439567280-13491-1-git-send-email-srinivas.kandagatla@linaro.org> <1439567398-13611-1-git-send-email-srinivas.kandagatla@linaro.org> User-Agent: Notmuch/0.20.2+58~g39779b9 (http://notmuchmail.org) Emacs/24.4.1 (x86_64-pc-linux-gnu) Date: Mon, 17 Aug 2015 10:52:27 +0300 Message-ID: <87614epd1g.fsf@intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 14 Aug 2015, Srinivas Kandagatla wrote: > This patch adds support to get edid way early before the connector is > created, this is mainly used for panel drivers to auto-probe the panel > based on the vendor and product id from EDID. > > Signed-off-by: Srinivas Kandagatla > --- > drivers/gpu/drm/drm_edid.c | 8 ++++++++ > include/drm/drm_crtc.h | 1 + > 2 files changed, 9 insertions(+) > > diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c > index 7087da3..30359cd 100644 > --- a/drivers/gpu/drm/drm_edid.c > +++ b/drivers/gpu/drm/drm_edid.c > @@ -1388,6 +1388,14 @@ struct edid *drm_get_edid(struct drm_connector *connector, > } > EXPORT_SYMBOL(drm_get_edid); > > +struct edid *drm_get_edid_early(struct i2c_adapter *adapter) > +{ > + struct drm_connector dummy_connector; > + > + return drm_get_edid(&dummy_connector, adapter); This will oops the kernel on bad EDID. BR, Jani. > +} > +EXPORT_SYMBOL(drm_get_edid_early); > + > /** > * drm_edid_duplicate - duplicate an EDID and the extensions > * @edid: EDID to duplicate > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index 57ca8cc..35d8763 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -1330,6 +1330,7 @@ extern void drm_reinit_primary_mode_group(struct drm_device *dev); > extern bool drm_probe_ddc(struct i2c_adapter *adapter); > extern struct edid *drm_get_edid(struct drm_connector *connector, > struct i2c_adapter *adapter); > +extern struct edid *drm_get_edid_early(struct i2c_adapter *adapter); > extern struct edid *drm_edid_duplicate(const struct edid *edid); > extern int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid); > extern void drm_mode_config_init(struct drm_device *dev); > -- > 1.9.1 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/dri-devel -- Jani Nikula, Intel Open Source Technology Center