From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754670AbbHQJpG (ORCPT ); Mon, 17 Aug 2015 05:45:06 -0400 Received: from mail-wi0-f174.google.com ([209.85.212.174]:37015 "EHLO mail-wi0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750847AbbHQJpD (ORCPT ); Mon, 17 Aug 2015 05:45:03 -0400 Message-ID: <55D1AD11.8040602@linaro.org> Date: Mon, 17 Aug 2015 10:44:49 +0100 From: Srinivas Kandagatla User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Jani Nikula , Thierry Reding , dri-devel@lists.freedesktop.org CC: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH RFC 1/5] drm/edid: Add support to get edid early References: <439567280-13491-1-git-send-email-srinivas.kandagatla@linaro.org> <1439567398-13611-1-git-send-email-srinivas.kandagatla@linaro.org> <87614epd1g.fsf@intel.com> In-Reply-To: <87614epd1g.fsf@intel.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/08/15 08:52, Jani Nikula wrote: > 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. > Thanks for quick review, Yes, you are right it would blow up on dev_warn(connector->dev->dev, ... May we can fix this if we are happy to take this approach of getting edid early. --srini > 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 >