[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <50843C83.8040801@cfl.rr.com>
Date: Sun, 21 Oct 2012 14:18:43 -0400
From: Mark Hounschell <dmarkh@....rr.com>
To: Bruno Prémont <bonbons@...ux-vserver.org>
CC: linux-kernel@...r.kernel.org,
"markh@...pro.net >> Mark Hounschell" <markh@...pro.net>,
Intel Graphics Development <intel-gfx@...ts.freedesktop.org>
Subject: Re: [Intel-gfx] drm_kms_helper problems
Hi Bruno,
On 10/21/2012 10:58 AM, Bruno Prémont wrote:
> Hi mark,
>
> On Sun, 21 October 2012 Mark Hounschell <dmarkh@....rr.com> wrote:
>> I have a TV that appears to not provide proper EDID info to the HDMI or DVI
>> ports of my Intel DH77DF motherboard. I received some pointers from this
>> list that pointed me in the direction of creating my own EDID file and I
>> now have a binary blob that matches what the service manual says is the
>> proper EDID info.
>>
>> But I am unable to get the drm_kms_helper module to load and use this file.
>> My relevant kernel config options are.
>>
>> CONFIG_DRM_KMS_HELPER=m
>> CONFIG_DRM_LOAD_EDID_FIRMWARE=y
>>
>> my relevant kernel command line contains:
>>
>> video=card0-HDMI-A-1:e
>> drm_kms_helper.edid_firmware=card0-HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>
> The variant without card0- should be the right one.
>
OK. Changed it. What if I had more than one video card?
>> The edid file:
>> # ls -al /lib/firmware/edid/lg42lb9df_hdmi1.edid
>> -rw-r--r-- 1 root root 256 Oct 16 05:46 /lib/firmware/edid/lg42lb9df_hdmi1.edid
>>
>> connector info from /sys/class/drm/
>>
>> card0 card0-DP-1 card0-DP-2 card0-DP-3 card0-HDMI-A-1 card0-HDMI-A-2
>> card0-HDMI-A-3 card0-VGA-1 controlD64 version
>>
Which should I use? HDMI-A-1, HDMI-A-2, or HDMI-A-3? Why re there 3??
>> And I don't really understand why I have 3 entries for the one hdmi port?
>> Nor do I really understand _exactly_ how to define the connector in my
>> kernel command line or which of the 3 connectors from /sys I should be
>> using. I've tried different variants. Ie. card0-HDMI-A-1and HDMI-A-1.
>>
>> The results in the kernel log file remain:
>>
>> [ 1.879654] drm_kms_helper: Unknown parameter `edid'
>
> As your drm_kms_helper is built modular, did you try not putting that
> parameter on kernel cmdline but rather put it in modprobe's configuration
> for that module? (may doing the whole loading manually).
>
I've created a /etc/modprobe.d/20-drm_kms_helper.conf with:
options drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
and now I'm getting something different. It looks like it's trying. In fact
I actually get a screen on the TV now. It's not 1920x1080 but 1024x768 at
60hz.
[ 1.883124] load_module: Calling parse_args for module = drm_kms_helper
args = edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
[ 1.883126]
[ 1.883126] parse_args: (1) Entered for drm_kms_helper
[ 1.883127]
[ 1.883127] parse_args: (2) Entered for drm_kms_helper
[ 1.883127] parse_args: doing = drm_kms_helper
[ 1.883128] parse_args: args =
edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8
[ 1.883129] parse_args: num = 2
[ 1.883130] parse_args: min_level = -32768
[ 1.883131] parse_args: max_level = 32767
[ 1.883132]
F\xffffffc9\xfffffff8h\xffffff89\xffffff86\xffffffc0\xffffff80\xffffffff\xffffffff\xffffffd4R\xffffffc9\xfffffff8TF\xffffffc9\xfffffff88\xffffff89\xffffff86\xffffffc0\xffffffa4\xffffffff\xffffffffdF\xffffffc9\xfffffff8,
num=2, min_level=-32768, max_level=32767
[ 1.886855]
.
.
.
[ 2.132749] [drm] forcing HDMI-A-1 connector ON
[ 2.132752] [drm] forcing HDMI-A-2 connector ON
[ 2.132753] [drm] forcing HDMI-A-3 connector ON
[ 2.189769] [drm:edid_load] *ERROR* Requesting EDID firmware
"edid/lg42lb9df_hdmi1.edid" failed (err=-2)
I get a couple of the above messages.
[ 2.388623] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid,
remainder is 130
[ 2.388631] Raw EDID:
[ 2.388635] 00 ff ff ff ff ff ff 00 ff ff ff ff ff ff ff ff
> # modprobe drm_kms_helper edid_firmware=HDMI-A-1:edid/lg42lb9df_hdmi1.edid
>
I can't seem to rm the modules already loaded to try this.
> I have no idea why it fails for you, here on the systems I have it works
> fine (on one where everything is built into the kernel I did set the cmdline
> arguments via CONFIG_CMDLINE="..." (having CONFIG_CMDLINE_BOOL=y).
>
>> I assume I am doing something wrong but I have put some debug printks in
>> kernel/params.c that shows me every call made to it and it's params. It is
>> entered many times and I see a sequence to in the log file. As an example,
>> the last one to call with params before drm_kms_helper is "late" and here
>> are my debug prints for it:
>
> Did you check that your bootloader get things right, e.g. if results are the
> same no matter in which order you put the kernel parameters (and if there are
> some non-ASCII values in there).
> As you have quite some length of parameters there could be some buffer size
> issue.
> (take this as just wild guessing)
>
The bootloader file is clean. Want me to send a complete dmesg again?
Mark
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists