* [PATCH] drm/i915/hdmi: Fix weak connector detection @ 2016-03-31 20:55 Ezequiel Garcia 2016-04-01 9:07 ` ✓ Fi.CI.BAT: success for " Patchwork 2016-04-01 14:47 ` [PATCH] " Ville Syrjälä 0 siblings, 2 replies; 8+ messages in thread From: Ezequiel Garcia @ 2016-03-31 20:55 UTC (permalink / raw) To: intel-gfx, dri-devel; +Cc: Daniel Vetter, Ezequiel Garcia Currently, our implementation of drm_connector_funcs.detect is based on getting a valid EDID. This requirement makes the driver fail to detect connected connectors in case of EDID corruption, which prevents from falling back to modes provided by builtin or user-provided EDIDs. Let's fix this by improving the detection, with a DDC probe, if the current EDID-based detection failed. Note that a better way of dealing with this could calling drm_probe_ddc in drm_connector_funcs.detect, and do the EDID full reading and parsing in drm_connector_helper_funcs.get_modes, when it's actually needed. However, this would be more invasive and thus more error-prone. The current commit is an attempt to get some uninvasive fix, and allow for easier backporting. Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> --- drivers/gpu/drm/i915/intel_hdmi.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c index a0d8daed2470..c079206e6681 100644 --- a/drivers/gpu/drm/i915/intel_hdmi.c +++ b/drivers/gpu/drm/i915/intel_hdmi.c @@ -1428,6 +1428,20 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) } else status = connector_status_disconnected; + /* + * The above call to intel_hdmi_set_edid() checked for a valid EDID. + * However, the EDID can get corrupted for several reasons, resulting + * in a disconnected status despite the connector being connected. + * Hence, let's try one more time, by only probing the DDC. + * + * This allows the DRM core to fallback to builtin or user-provided + * EDID firmware, e.g. in drm_helper_probe_single_connector_modes. + */ + if (status == connector_status_disconnected) + if (drm_probe_ddc(intel_gmbus_get_adapter(dev_priv, + intel_hdmi->ddc_bus))) + status = connector_status_connected; + intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); return status; -- 2.7.0 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply related [flat|nested] 8+ messages in thread
* ✓ Fi.CI.BAT: success for drm/i915/hdmi: Fix weak connector detection 2016-03-31 20:55 [PATCH] drm/i915/hdmi: Fix weak connector detection Ezequiel Garcia @ 2016-04-01 9:07 ` Patchwork 2016-04-01 14:47 ` [PATCH] " Ville Syrjälä 1 sibling, 0 replies; 8+ messages in thread From: Patchwork @ 2016-04-01 9:07 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: intel-gfx == Series Details == Series: drm/i915/hdmi: Fix weak connector detection URL : https://patchwork.freedesktop.org/series/5151/ State : success == Summary == Series 5151v1 drm/i915/hdmi: Fix weak connector detection http://patchwork.freedesktop.org/api/1.0/series/5151/revisions/1/mbox/ Test drv_module_reload_basic: skip -> PASS (skl-nuci5) bdw-nuci7 total:196 pass:184 dwarn:0 dfail:0 fail:0 skip:12 bdw-ultra total:196 pass:175 dwarn:0 dfail:0 fail:0 skip:21 bsw-nuc-2 total:196 pass:159 dwarn:0 dfail:0 fail:0 skip:37 byt-nuc total:196 pass:161 dwarn:0 dfail:0 fail:0 skip:35 hsw-brixbox total:196 pass:174 dwarn:0 dfail:0 fail:0 skip:22 skl-i7k-2 total:196 pass:173 dwarn:0 dfail:0 fail:0 skip:23 skl-nuci5 total:196 pass:185 dwarn:0 dfail:0 fail:0 skip:11 snb-dellxps total:40 pass:28 dwarn:0 dfail:0 fail:0 skip:11 Results at /archive/results/CI_IGT_test/Patchwork_1770/ e8d1e8123ef907fc23b53554af9cb99c7f380fb9 drm-intel-nightly: 2016y-04m-01d-07h-26m-00s UTC integration manifest 7e9e86b488dbca2c55fa4844a4b46da4d93e3fa5 drm/i915/hdmi: Fix weak connector detection _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-03-31 20:55 [PATCH] drm/i915/hdmi: Fix weak connector detection Ezequiel Garcia 2016-04-01 9:07 ` ✓ Fi.CI.BAT: success for " Patchwork @ 2016-04-01 14:47 ` Ville Syrjälä 2016-04-01 15:38 ` Ezequiel Garcia 1 sibling, 1 reply; 8+ messages in thread From: Ville Syrjälä @ 2016-04-01 14:47 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: Daniel Vetter, intel-gfx, dri-devel On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: > Currently, our implementation of drm_connector_funcs.detect is > based on getting a valid EDID. > > This requirement makes the driver fail to detect connected > connectors in case of EDID corruption, which prevents from falling > back to modes provided by builtin or user-provided EDIDs. So why are you getting corrupted EDIDs? > > Let's fix this by improving the detection, with a DDC probe, > if the current EDID-based detection failed. > > Note that a better way of dealing with this could calling > drm_probe_ddc in drm_connector_funcs.detect, and do the > EDID full reading and parsing in drm_connector_helper_funcs.get_modes, > when it's actually needed. > > However, this would be more invasive and thus more error-prone. > The current commit is an attempt to get some uninvasive fix, > and allow for easier backporting. > > Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > --- > drivers/gpu/drm/i915/intel_hdmi.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > index a0d8daed2470..c079206e6681 100644 > --- a/drivers/gpu/drm/i915/intel_hdmi.c > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > @@ -1428,6 +1428,20 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) > } else > status = connector_status_disconnected; > > + /* > + * The above call to intel_hdmi_set_edid() checked for a valid EDID. > + * However, the EDID can get corrupted for several reasons, resulting > + * in a disconnected status despite the connector being connected. > + * Hence, let's try one more time, by only probing the DDC. > + * > + * This allows the DRM core to fallback to builtin or user-provided > + * EDID firmware, e.g. in drm_helper_probe_single_connector_modes. > + */ > + if (status == connector_status_disconnected) > + if (drm_probe_ddc(intel_gmbus_get_adapter(dev_priv, > + intel_hdmi->ddc_bus))) > + status = connector_status_connected; > + > intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); > > return status; > -- > 2.7.0 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-04-01 14:47 ` [PATCH] " Ville Syrjälä @ 2016-04-01 15:38 ` Ezequiel Garcia 2016-04-01 15:46 ` Ville Syrjälä 0 siblings, 1 reply; 8+ messages in thread From: Ezequiel Garcia @ 2016-04-01 15:38 UTC (permalink / raw) To: Ville Syrjälä; +Cc: Daniel Vetter, intel-gfx, dri-devel [-- Attachment #1.1: Type: text/plain, Size: 2785 bytes --] El abr. 1, 2016 11:47 AM, "Ville Syrjälä" <ville.syrjala@linux.intel.com> escribió: > > On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: > > Currently, our implementation of drm_connector_funcs.detect is > > based on getting a valid EDID. > > > > This requirement makes the driver fail to detect connected > > connectors in case of EDID corruption, which prevents from falling > > back to modes provided by builtin or user-provided EDIDs. > > So why are you getting corrupted EDIDs? > Does it matter? > > > > Let's fix this by improving the detection, with a DDC probe, > > if the current EDID-based detection failed. > > > > Note that a better way of dealing with this could calling > > drm_probe_ddc in drm_connector_funcs.detect, and do the > > EDID full reading and parsing in drm_connector_helper_funcs.get_modes, > > when it's actually needed. > > > > However, this would be more invasive and thus more error-prone. > > The current commit is an attempt to get some uninvasive fix, > > and allow for easier backporting. > > > > Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > > --- > > drivers/gpu/drm/i915/intel_hdmi.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c > > index a0d8daed2470..c079206e6681 100644 > > --- a/drivers/gpu/drm/i915/intel_hdmi.c > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > > @@ -1428,6 +1428,20 @@ intel_hdmi_detect(struct drm_connector *connector, bool force) > > } else > > status = connector_status_disconnected; > > > > + /* > > + * The above call to intel_hdmi_set_edid() checked for a valid EDID. > > + * However, the EDID can get corrupted for several reasons, resulting > > + * in a disconnected status despite the connector being connected. > > + * Hence, let's try one more time, by only probing the DDC. > > + * > > + * This allows the DRM core to fallback to builtin or user-provided > > + * EDID firmware, e.g. in drm_helper_probe_single_connector_modes. > > + */ > > + if (status == connector_status_disconnected) > > + if (drm_probe_ddc(intel_gmbus_get_adapter(dev_priv, > > + intel_hdmi->ddc_bus))) > > + status = connector_status_connected; > > + > > intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); > > > > return status; > > -- > > 2.7.0 > > > > _______________________________________________ > > dri-devel mailing list > > dri-devel@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > -- > Ville Syrjälä > Intel OTC [-- Attachment #1.2: Type: text/html, Size: 3813 bytes --] [-- Attachment #2: Type: text/plain, Size: 160 bytes --] _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-04-01 15:38 ` Ezequiel Garcia @ 2016-04-01 15:46 ` Ville Syrjälä 2016-04-01 19:50 ` Ezequiel Garcia 0 siblings, 1 reply; 8+ messages in thread From: Ville Syrjälä @ 2016-04-01 15:46 UTC (permalink / raw) To: Ezequiel Garcia; +Cc: Daniel Vetter, intel-gfx, dri-devel On Fri, Apr 01, 2016 at 12:38:11PM -0300, Ezequiel Garcia wrote: > El abr. 1, 2016 11:47 AM, "Ville Syrjälä" <ville.syrjala@linux.intel.com> > escribió: > > > > On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: > > > Currently, our implementation of drm_connector_funcs.detect is > > > based on getting a valid EDID. > > > > > > This requirement makes the driver fail to detect connected > > > connectors in case of EDID corruption, which prevents from falling > > > back to modes provided by builtin or user-provided EDIDs. > > > > So why are you getting corrupted EDIDs? > > > > Does it matter? Yes. We should fix the real cause (if possible) instead of adding more duct tape. > > > > > > > Let's fix this by improving the detection, with a DDC probe, > > > if the current EDID-based detection failed. > > > > > > Note that a better way of dealing with this could calling > > > drm_probe_ddc in drm_connector_funcs.detect, and do the > > > EDID full reading and parsing in drm_connector_helper_funcs.get_modes, > > > when it's actually needed. > > > > > > However, this would be more invasive and thus more error-prone. > > > The current commit is an attempt to get some uninvasive fix, > > > and allow for easier backporting. > > > > > > Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> > > > --- > > > drivers/gpu/drm/i915/intel_hdmi.c | 14 ++++++++++++++ > > > 1 file changed, 14 insertions(+) > > > > > > diff --git a/drivers/gpu/drm/i915/intel_hdmi.c > b/drivers/gpu/drm/i915/intel_hdmi.c > > > index a0d8daed2470..c079206e6681 100644 > > > --- a/drivers/gpu/drm/i915/intel_hdmi.c > > > +++ b/drivers/gpu/drm/i915/intel_hdmi.c > > > @@ -1428,6 +1428,20 @@ intel_hdmi_detect(struct drm_connector > *connector, bool force) > > > } else > > > status = connector_status_disconnected; > > > > > > + /* > > > + * The above call to intel_hdmi_set_edid() checked for a valid > EDID. > > > + * However, the EDID can get corrupted for several reasons, > resulting > > > + * in a disconnected status despite the connector being connected. > > > + * Hence, let's try one more time, by only probing the DDC. > > > + * > > > + * This allows the DRM core to fallback to builtin or > user-provided > > > + * EDID firmware, e.g. in drm_helper_probe_single_connector_modes. > > > + */ > > > + if (status == connector_status_disconnected) > > > + if (drm_probe_ddc(intel_gmbus_get_adapter(dev_priv, > > > + intel_hdmi->ddc_bus))) > > > + status = connector_status_connected; > > > + > > > intel_display_power_put(dev_priv, POWER_DOMAIN_GMBUS); > > > > > > return status; > > > -- > > > 2.7.0 > > > > > > _______________________________________________ > > > dri-devel mailing list > > > dri-devel@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/dri-devel > > > > -- > > Ville Syrjälä > > Intel OTC -- Ville Syrjälä Intel OTC _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-04-01 15:46 ` Ville Syrjälä @ 2016-04-01 19:50 ` Ezequiel Garcia 2016-04-05 14:54 ` Ezequiel Garcia 0 siblings, 1 reply; 8+ messages in thread From: Ezequiel Garcia @ 2016-04-01 19:50 UTC (permalink / raw) To: Ville Syrjälä; +Cc: Daniel Vetter, intel-gfx, dri-devel On 01 Apr 06:46 PM, Ville Syrjälä wrote: > On Fri, Apr 01, 2016 at 12:38:11PM -0300, Ezequiel Garcia wrote: > > El abr. 1, 2016 11:47 AM, "Ville Syrjälä" <ville.syrjala@linux.intel.com> > > escribió: > > > > > > On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: > > > > Currently, our implementation of drm_connector_funcs.detect is > > > > based on getting a valid EDID. > > > > > > > > This requirement makes the driver fail to detect connected > > > > connectors in case of EDID corruption, which prevents from falling > > > > back to modes provided by builtin or user-provided EDIDs. > > > > > > So why are you getting corrupted EDIDs? > > > > > > > Does it matter? > > Yes. We should fix the real cause (if possible) instead of adding > more duct tape. > So, there are two things involved in this patch: 1. There are several reasons why EDID can get screwed, this is documented at length [1], and it's the motivation for CONFIG_DRM_LOAD_EDID_FIRMWARE to exist. You can find lots of reports on the internet of people getting corrupt EDID from their monitors. For instance, here's one [2]. And even if no firmware is provided using CONFIG_DRM_LOAD_EDID_FIRMWARE, the DRM core will provide a 1024x768 fallback mode: int drm_helper_probe_single_connector_modes(struct drm_connector *connector, uint32_t maxX, uint32_t maxY) { [..] if (count == 0 && connector->status == connector_status_connected) count = drm_add_modes_noedid(connector, 1024, 768); But, this only works if the connector is detected. Since I'm interested in backporting this patch to apply it on the kernels I maintain (which are currently deployed on hundreds of machines), I tried to find a simple solution. Hence, this patch. There's no issue to fix here, because broken hardware is a fact of life, and not something we can fix or ignore [3]. 2. On the other side, the i915 implementation looks suspicious. IMHO, drm_connector_funcs.detect should not try to read a valid EDID, and just try to detect if the connector is connected or disconnected. The EDID can be read in drm_connector_helper_funcs.get_modes, as other drm/connector drivers are doing (tda998x, tfp410, tegra). However, I think it's safer to get a simple fix now, and do this as follow-up patches. How does it sound? [1] Documentation/EDID/HOWTO.txt [2] http://www.blaicher.com/2012/06/howto-fixing-a-broken-edid-eeprom-with-a-bus-pirate-v4/ [3] https://marc.info/?l=linux-kernel&m=112838038415265&w=4 -- Ezequiel Garcia, VanguardiaSur www.vanguardiasur.com.ar _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-04-01 19:50 ` Ezequiel Garcia @ 2016-04-05 14:54 ` Ezequiel Garcia 2016-04-14 5:11 ` Ezequiel Garcia 0 siblings, 1 reply; 8+ messages in thread From: Ezequiel Garcia @ 2016-04-05 14:54 UTC (permalink / raw) To: Ville Syrjälä; +Cc: Daniel Vetter, intel-gfx, dri-devel (Adding Jani again, who got dropped for some reason) On 1 April 2016 at 16:50, Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> wrote: > On 01 Apr 06:46 PM, Ville Syrjälä wrote: >> On Fri, Apr 01, 2016 at 12:38:11PM -0300, Ezequiel Garcia wrote: >> > El abr. 1, 2016 11:47 AM, "Ville Syrjälä" <ville.syrjala@linux.intel.com> >> > escribió: >> > > >> > > On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: >> > > > Currently, our implementation of drm_connector_funcs.detect is >> > > > based on getting a valid EDID. >> > > > >> > > > This requirement makes the driver fail to detect connected >> > > > connectors in case of EDID corruption, which prevents from falling >> > > > back to modes provided by builtin or user-provided EDIDs. >> > > >> > > So why are you getting corrupted EDIDs? >> > > >> > >> > Does it matter? >> >> Yes. We should fix the real cause (if possible) instead of adding >> more duct tape. >> > > So, there are two things involved in this patch: > > 1. > There are several reasons why EDID can get screwed, this is > documented at length [1], and it's the motivation for > CONFIG_DRM_LOAD_EDID_FIRMWARE to exist. > > You can find lots of reports on the internet of people getting > corrupt EDID from their monitors. For instance, here's one [2]. > > And even if no firmware is provided using CONFIG_DRM_LOAD_EDID_FIRMWARE, > the DRM core will provide a 1024x768 fallback mode: > > int drm_helper_probe_single_connector_modes(struct drm_connector *connector, > uint32_t maxX, uint32_t maxY) > { > [..] > if (count == 0 && connector->status == connector_status_connected) > count = drm_add_modes_noedid(connector, 1024, 768); > > But, this only works if the connector is detected. > > Since I'm interested in backporting this patch to apply it on the kernels > I maintain (which are currently deployed on hundreds of machines), I tried > to find a simple solution. Hence, this patch. > > There's no issue to fix here, because broken hardware is a fact of life, > and not something we can fix or ignore [3]. > > 2. > On the other side, the i915 implementation looks suspicious. IMHO, > drm_connector_funcs.detect should not try to read a valid EDID, > and just try to detect if the connector is connected or disconnected. > > The EDID can be read in drm_connector_helper_funcs.get_modes, as other > drm/connector drivers are doing (tda998x, tfp410, tegra). > > However, I think it's safer to get a simple fix now, and do this > as follow-up patches. > > How does it sound? > > [1] Documentation/EDID/HOWTO.txt > [2] http://www.blaicher.com/2012/06/howto-fixing-a-broken-edid-eeprom-with-a-bus-pirate-v4/ > [3] https://marc.info/?l=linux-kernel&m=112838038415265&w=4 > -- > Ezequiel Garcia, VanguardiaSur > www.vanguardiasur.com.ar -- Ezequiel García, VanguardiaSur www.vanguardiasur.com.ar _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH] drm/i915/hdmi: Fix weak connector detection 2016-04-05 14:54 ` Ezequiel Garcia @ 2016-04-14 5:11 ` Ezequiel Garcia 0 siblings, 0 replies; 8+ messages in thread From: Ezequiel Garcia @ 2016-04-14 5:11 UTC (permalink / raw) To: Ville Syrjälä, Jani Nikula, Daniel Vetter; +Cc: intel-gfx, dri-devel On 5 April 2016 at 11:54, Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> wrote: > (Adding Jani again, who got dropped for some reason) > > On 1 April 2016 at 16:50, Ezequiel Garcia <ezequiel@vanguardiasur.com.ar> wrote: >> On 01 Apr 06:46 PM, Ville Syrjälä wrote: >>> On Fri, Apr 01, 2016 at 12:38:11PM -0300, Ezequiel Garcia wrote: >>> > El abr. 1, 2016 11:47 AM, "Ville Syrjälä" <ville.syrjala@linux.intel.com> >>> > escribió: >>> > > >>> > > On Thu, Mar 31, 2016 at 05:55:03PM -0300, Ezequiel Garcia wrote: >>> > > > Currently, our implementation of drm_connector_funcs.detect is >>> > > > based on getting a valid EDID. >>> > > > >>> > > > This requirement makes the driver fail to detect connected >>> > > > connectors in case of EDID corruption, which prevents from falling >>> > > > back to modes provided by builtin or user-provided EDIDs. >>> > > >>> > > So why are you getting corrupted EDIDs? >>> > > >>> > >>> > Does it matter? >>> >>> Yes. We should fix the real cause (if possible) instead of adding >>> more duct tape. >>> >> >> So, there are two things involved in this patch: >> >> 1. >> There are several reasons why EDID can get screwed, this is >> documented at length [1], and it's the motivation for >> CONFIG_DRM_LOAD_EDID_FIRMWARE to exist. >> >> You can find lots of reports on the internet of people getting >> corrupt EDID from their monitors. For instance, here's one [2]. >> >> And even if no firmware is provided using CONFIG_DRM_LOAD_EDID_FIRMWARE, >> the DRM core will provide a 1024x768 fallback mode: >> >> int drm_helper_probe_single_connector_modes(struct drm_connector *connector, >> uint32_t maxX, uint32_t maxY) >> { >> [..] >> if (count == 0 && connector->status == connector_status_connected) >> count = drm_add_modes_noedid(connector, 1024, 768); >> >> But, this only works if the connector is detected. >> >> Since I'm interested in backporting this patch to apply it on the kernels >> I maintain (which are currently deployed on hundreds of machines), I tried >> to find a simple solution. Hence, this patch. >> >> There's no issue to fix here, because broken hardware is a fact of life, >> and not something we can fix or ignore [3]. >> >> 2. >> On the other side, the i915 implementation looks suspicious. IMHO, >> drm_connector_funcs.detect should not try to read a valid EDID, >> and just try to detect if the connector is connected or disconnected. >> >> The EDID can be read in drm_connector_helper_funcs.get_modes, as other >> drm/connector drivers are doing (tda998x, tfp410, tegra). >> >> However, I think it's safer to get a simple fix now, and do this >> as follow-up patches. >> >> How does it sound? >> Are there any other comments regarding this patch? If at all possible, I'd like to see this merged, or otherwise a proposal for an alternative solution. >> [1] Documentation/EDID/HOWTO.txt >> [2] http://www.blaicher.com/2012/06/howto-fixing-a-broken-edid-eeprom-with-a-bus-pirate-v4/ >> [3] https://marc.info/?l=linux-kernel&m=112838038415265&w=4 Thanks, -- Ezequiel García, VanguardiaSur www.vanguardiasur.com.ar _______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-04-14 5:11 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-03-31 20:55 [PATCH] drm/i915/hdmi: Fix weak connector detection Ezequiel Garcia 2016-04-01 9:07 ` ✓ Fi.CI.BAT: success for " Patchwork 2016-04-01 14:47 ` [PATCH] " Ville Syrjälä 2016-04-01 15:38 ` Ezequiel Garcia 2016-04-01 15:46 ` Ville Syrjälä 2016-04-01 19:50 ` Ezequiel Garcia 2016-04-05 14:54 ` Ezequiel Garcia 2016-04-14 5:11 ` Ezequiel Garcia
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.