[PATCH 1/2] drm/edid: Make EDID header fixup threshold configurable

Dave Airlie airlied at gmail.com
Mon Apr 26 22:01:01 PDT 2010


On Tue, Apr 27, 2010 at 5:03 AM, Adam Jackson <ajax at redhat.com> wrote:
> Signed-off-by: Adam Jackson <ajax at redhat.com>

not sure about the kernel-parameters additions, since the option would
be drm.edid_threshhold= and its a module option, though now that we
can accept module options on the command line, we could start adding
them to parameters file. However you'd need to add the drm. bit to the
front of the option.

How much broken hw we seeing that this fixes? maybe some bug
references, as I hate having special options that people have to know
just to see somehting on screen.

Dave.

> ---
>  Documentation/kernel-parameters.txt |    4 ++++
>  drivers/gpu/drm/drm_edid.c          |    5 ++++-
>  2 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index e2202e9..17d50d2 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -713,6 +713,10 @@ and is between 256 and 4096 characters. It is defined in the file
>        edd=            [EDD]
>                        Format: {"off" | "on" | "skip[mbr]"}
>
> +       edid_threshold=<int> [DRM]
> +                       Set the minimum number of bytes of an EDID header
> +                       that must be valid, out of 8.  The default is 6.
> +
>        eisa_irq_edge=  [PARISC,HW]
>                        See header of drivers/parisc/eisa.c.
>
> diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
> index 7188674..6a1b5a3 100644
> --- a/drivers/gpu/drm/drm_edid.c
> +++ b/drivers/gpu/drm/drm_edid.c
> @@ -62,6 +62,9 @@
>  /* use +hsync +vsync for detailed mode */
>  #define EDID_QUIRK_DETAILED_SYNC_PP            (1 << 6)
>
> +static unsigned int edid_threshold = 6;
> +MODULE_PARM_DESC(edid_threshold, "EDID header fixup threshold (default: 6)");
> +module_param_named(edid_threshold, edid_threshold, int, 0600);
>
>  #define LEVEL_DMT      0
>  #define LEVEL_GTF      1
> @@ -135,7 +138,7 @@ drm_edid_block_valid(u8 *raw_edid)
>                                score++;
>
>                if (score == 8) ;
> -               else if (score >= 6) {
> +               else if (score >= edid_threshold) {
>                        DRM_DEBUG("Fixing EDID header, your hardware may be failing\n");
>                        memcpy(raw_edid, edid_header, sizeof(edid_header));
>                } else {
> --
> 1.7.0.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>


More information about the dri-devel mailing list