22 Sep, 2011

1 commit

  • ELD (EDID-Like Data) describes to the HDMI/DP audio driver the audio
    capabilities of the plugged monitor.

    This adds drm_edid_to_eld() for converting EDID to ELD. The converted
    ELD will be saved in a new drm_connector.eld[128] data field. This is
    necessary because the graphics driver will need to fixup some of the
    data fields (eg. HDMI/DP connection type, AV sync delay) before writing
    to the hardware ELD buffer. drm_av_sync_delay() will help the graphics
    drivers dynamically compute the AV sync delay for fixing-up the ELD.

    ELD selection policy: it's possible for one encoder to be associated
    with multiple connectors (ie. monitors), in which case the first found
    ELD will be returned by drm_select_eld(). This policy may not be
    suitable for all users, but let's start it simple first.

    The impact of ELD selection policy: assume there are two monitors, one
    supports stereo playback and the other has 8-channel output; cloned
    display mode is used, so that the two monitors are associated with the
    same internal encoder. If only the stereo playback capability is reported,
    the user won't be able to start 8-channel playback; if the 8-channel ELD
    is reported, then user space applications may send 8-channel samples
    down, however the user may actually be listening to the 2-channel
    monitor and not connecting speakers to the 8-channel monitor.

    According to James, many TVs will either refuse the display anything or
    pop-up an OSD warning whenever they receive hdmi audio which they cannot
    handle. Eventually we will require configurability and/or per-monitor
    audio control even when the video is cloned.

    CC: Zhao Yakui
    CC: Wang Zhenyu
    CC: Jeremy Bush
    CC: Christopher White
    CC: Pierre-Louis Bossart
    CC: Paul Menzel
    CC: James Cloos
    CC: Chris Wilson
    Signed-off-by: Ben Skeggs
    Signed-off-by: Wu Fengguang
    Signed-off-by: Keith Packard

    Wu Fengguang
     

28 Apr, 2011

2 commits

  • EDID 1.4 digital displays report the color spaces they support in the
    features block. Add support for grabbing this data and stuffing it into
    the display_info struct for driver use.

    Signed-off-by: Jesse Barnes
    Reviewed-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Jesse Barnes
     
  • EDID 1.4 digital monitors report the bit depth supported in the input
    field. Add support for parsing this out and storing the info in the
    display_info structure for use by drivers.

    [airlied: tweaked to fix inter-patch dependency]
    Signed-off-by: Jesse Barnes
    Reviewed-by: Adam Jackson
    Signed-off-by: Dave Airlie

    Jesse Barnes
     

10 Aug, 2010

1 commit


18 May, 2010

1 commit

  • Smatch complained that we initialize 6 elements in add_detailed_modes()
    but the timings[] array is declared with 5 elements. Adam Jackson
    verified that 6 is the correct number of timings.

    On Mon, May 10, 2010 at 12:08:24PM -0400, Adam Jackson wrote:
    > > > struct std_timing timings[5];
    > > > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    >
    > This decl is wrong, should be 6. From the 1.4 spec:
    >
    > "Six additional Standard Timings may be listed as a display descriptor
    > (tag #FAh)."
    >
    > The 1.3 spec is a little less explicit about it, but does show 6
    > standard timing codes in the 0xFA detailed subblock, terminated by 0x0A
    > in the 18th byte. I don't have the docs for 1.2 or earlier, but we're
    > paranoid enough about not adding broken timings that we should be fine.

    This patch is basically a clean up, because timings[] is declared inside
    a union and increasing the number of elements here doesn't change the
    overall size of the union.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Dave Airlie

    Dan Carpenter
     

06 Apr, 2010

1 commit


09 Feb, 2010

1 commit

  • Some servers hardcode an edid in rom so that they will
    work properly with KVMs. This is a port of the relevant
    code from the ddx.

    [airlied: reworked to validate edid at boot stage - and
    remove special quirk, if there is a valid EDID in the BIOS rom
    we'll just try and use it.]

    Signed-off-by: Alex Deucher
    Signed-off-by: Dave Airlie

    Alex Deucher
     

04 Dec, 2009

2 commits


24 Jun, 2009

1 commit


19 Jun, 2009

1 commit


11 Mar, 2009

1 commit

  • Comparing the layouts of struct detail_pixel_timing with
    x.org's struct detailed_timings and how those are handled,
    it appears that the hsync_positive and vsync_positive
    fields are backwards.

    This patch fixes https://bugs.freedesktop.org/show_bug.cgi?id=20019
    for me. It was tested on 2 monitors, LG FLATRON L225WS 22" and
    a YAKUMO 17" for which more details are unknown.

    Signed-off-by: Pantelis Koukousoulas
    Signed-off-by: Dave Airlie

    Pantelis Koukousoulas
     

25 Feb, 2009

1 commit


29 Dec, 2008

1 commit

  • Add mode setting support to the DRM layer.

    This is a fairly big chunk of work that allows DRM drivers to provide
    full output control and configuration capabilities to userspace. It was
    motivated by several factors:
    - the fb layer's APIs aren't suited for anything but simple
    configurations
    - coordination between the fb layer, DRM layer, and various userspace
    drivers is poor to non-existent (radeonfb excepted)
    - user level mode setting drivers makes displaying panic & oops
    messages more difficult
    - suspend/resume of graphics state is possible in many more
    configurations with kernel level support

    This commit just adds the core DRM part of the mode setting APIs.
    Driver specific commits using these new structure and APIs will follow.

    Co-authors: Jesse Barnes , Jakob Bornecrantz
    Contributors: Alan Hourihane , Maarten Maathuis

    Signed-off-by: Jesse Barnes
    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Dave Airlie