Re: Intel graphics drm issue?

Bruno Prémont
2012-10-14T20:41:59Z

On Sun, 14 October 2012 Mark Hounschell <dmarkh@cfl.rr.com> wrote:
> I gave it a try. I don't think it liked my kernel cmdline. dmesg attached.
> There is a lot more in there now that nomodeset is gone and the debug is
> turned on.
>
> # ls -al /lib/firmware/edid/lg42lb9df.edid
> -rw-r--r-- 1 root root 1024 Oct 14 2012 /lib/firmware/edid/lg42lb9df.edid
>
> ## cat /proc/cmdline
> root=/dev/disk/by-id/ata-INTEL_SSDSC2CW060A3_CVCV205106EB060AGN-part4
> noresume splash=silent quiet apm=off vga=normal drm.debug=0xe irqpoll
> drm_kms_helper.edid_firmware=edid/lg42lb9df.edid
>
>
> from attached dmesg:
> 1.833032] drm_kms_helper: Unknown parameter `edid'

As your drm drivers seem to all be built-in (according to kernel timings)
you will have to build the EDID firmware into the kernel as well (see
CONFIG_EXTRA_FIRMWARE), otherwise it probably can't be loaded (unless Linus'
firmware loading patch is already in 3.6.2 and root filesystem/initrd is
ready at that time).

Did you set CONFIG_DRM_LOAD_EDID_FIRMWARE?
If not, that may be the reason for unknown parameter `edid' error.

But I saw I mis-remembered side of EDID blobs, they are just 128 bytes
per block, not 512 (seems I was thinking disk sector sizes),
thus you should just get 256 bytes output.

Just truncating the file to 256 bytes will do. You may also
change your .c file to have
uint8_t firmware[] = {
...
};
...
fwrite(firmware, sizeof(firmware), 1, fd);
...

that way compiler gets numbers right :)

Kernel code rejects edid with unexpected size! Thus it would have
complained if it had tried to load it with a size of 1k.

Bruno