1. 29 Aug, 2012 1 commit
  2. 03 Jul, 2012 1 commit
    • Takashi Iwai's avatar
      drm: edid: Don't add inferred modes with higher resolution · 7b668ebe
      Takashi Iwai authored
      
      
      When a monitor EDID doesn't give the preferred bit, driver assumes
      that the mode with the higest resolution and rate is the preferred
      mode.  Meanwhile the recent changes for allowing more modes in the
      GFT/CVT ranges give actually more modes, and some modes may be over
      the native size.  Thus such a mode would be picked up as the preferred
      mode although it's no native resolution.
      
      For avoiding such a problem, this patch limits the addition of
      inferred modes by checking not to be greater than other modes.
      Also, it checks the duplicated mode entry at the same time.
      Reviewed-by: default avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      7b668ebe
  3. 21 Jun, 2012 1 commit
  4. 01 Jun, 2012 1 commit
  5. 29 May, 2012 1 commit
  6. 27 Apr, 2012 2 commits
  7. 23 Apr, 2012 1 commit
  8. 20 Apr, 2012 10 commits
  9. 21 Mar, 2012 1 commit
  10. 20 Mar, 2012 1 commit
    • Carsten Emde's avatar
      drm: allow loading an EDID as firmware to override broken monitor · da0df92b
      Carsten Emde authored
      
      
      Broken monitors and/or broken graphic boards may send erroneous or no
      EDID data. This also applies to broken KVM devices that are unable to
      correctly forward the EDID data of the connected monitor but invent
      their own fantasy data.
      
      This patch allows to specify an EDID data set to be used instead of
      probing the monitor for it. It contains built-in data sets of frequently
      used screen resolutions. In addition, a particular EDID data set may be
      provided in the /lib/firmware directory and loaded via the firmware
      interface. The name is passed to the kernel as module parameter of the
      drm_kms_helper module either when loaded
        options drm_kms_helper edid_firmware=edid/1280x1024.bin
      or as kernel commandline parameter
        drm_kms_helper.edid_firmware=edid/1280x1024.bin
      
      It is also possible to restrict the usage of a specified EDID data set
      to a particular connector. This is done by prepending the name of the
      connector to the name of the EDID data set using the syntax
        edid_firmware=[<connector>:]<edid>
      such as, for example,
        edid_firmware=DVI-I-1:edid/1920x1080.bin
      in which case no other connector will be affected.
      
      The built-in data sets are
      Resolution    Name
      --------------------------------
      1024x768      edid/1024x768.bin
      1280x1024     edid/1280x1024.bin
      1680x1050     edid/1680x1050.bin
      1920x1080     edid/1920x1080.bin
      
      They are ignored, if a file with the same name is available in the
      /lib/firmware directory.
      
      The built-in EDID data sets are based on standard timings that may not
      apply to a particular monitor and even crash it. Ideally, EDID data of
      the connected monitor should be used. They may be obtained through the
      drm/cardX/cardX-<connector>/edid entry in the /sys/devices PCI directory
      of a correctly working graphics adapter.
      
      It is even possible to specify the name of an EDID data set on-the-fly
      via the /sys/module interface, e.g.
      echo edid/myedid.bin >/sys/module/drm_kms_helper/parameters/edid_firmware
      The new screen mode is considered when the related kernel function is
      called for the first time after the change. Such calls are made when the
      X server is started or when the display settings dialog is opened in an
      already running X server.
      Signed-off-by: default avatarCarsten Emde <C.Emde@osadl.org>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      da0df92b
  11. 03 Feb, 2012 2 commits
  12. 20 Dec, 2011 2 commits
  13. 19 Dec, 2011 1 commit
    • Christian Schmidt's avatar
      drm/edid: support CEA video modes. · 54ac76f8
      Christian Schmidt authored
      
      
      TFT/plasma televisions and projectors have become commonplace, and so
      has the use of PCs to drive them. Add the video modes specified by an
      EDID's CEA extension to the mode database for a connector.
      
      Before:
      [    1.158869] [drm:drm_mode_debug_printmodeline], Modeline
      19:"1920x1080i" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
      [    1.158875] [drm:drm_mode_debug_printmodeline], Modeline
      18:"1920x1080i" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
      [    1.158882] [drm:drm_mode_debug_printmodeline], Modeline
      20:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
      
      After:
      [    1.144175] [drm:drm_mode_debug_printmodeline], Modeline
      22:"1920x1080" 0 74250 1920 2448 2492 2640 1080 1084 1094 1125 0x40 0x15
      [    1.144179] [drm:drm_mode_debug_printmodeline], Modeline
      21:"1920x1080" 0 74250 1920 2008 2052 2200 1080 1084 1094 1125 0x48 0x15
      [    1.144187] [drm:drm_mode_debug_printmodeline], Modeline
      30:"1920x1080" 50 148500 1920 2448 2492 2640 1080 1084 1089 1125 0x40 0x5
      [    1.144190] [drm:drm_mode_debug_printmodeline], Modeline
      29:"1920x1080" 60 148500 1920 2008 2052 2200 1080 1084 1089 1125 0x40 0x5
      [    1.144192] [drm:drm_mode_debug_printmodeline], Modeline
      25:"1920x1080" 24 74250 1920 2558 2602 2750 1080 1084 1089 1125 0x40 0x5
      [    1.144195] [drm:drm_mode_debug_printmodeline], Modeline
      24:"1280x720" 50 74250 1280 1720 1760 1980 720 725 730 750 0x40 0x5
      [    1.144198] [drm:drm_mode_debug_printmodeline], Modeline
      23:"1280x720" 60 74250 1280 1390 1430 1650 720 725 730 750 0x40 0x5
      [    1.144201] [drm:drm_mode_debug_printmodeline], Modeline 27:"720x576"
      50 27000 720 732 796 864 576 581 586 625 0x40 0xa
      [    1.144203] [drm:drm_mode_debug_printmodeline], Modeline 26:"720x480"
      60 27000 720 736 798 858 480 489 495 525 0x40 0xa
      [    1.144206] [drm:drm_mode_debug_printmodeline], Modeline 28:"640x480"
      60 25175 640 656 752 800 480 490 492 525 0x40 0xa
      Signed-off-by: default avatarChristian Schmidt <schmidt@digadd.de>
      Reviewed-by: default avatarAdam Jackson <ajax@redhat.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      54ac76f8
  14. 31 Oct, 2011 1 commit
  15. 21 Sep, 2011 1 commit
    • Wu Fengguang's avatar
      drm: support routines for HDMI/DP ELD · 76adaa34
      Wu Fengguang authored
      
      
      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 <yakui.zhao@intel.com>
      CC: Wang Zhenyu <zhenyu.z.wang@intel.com>
      CC: Jeremy Bush <contractfrombelow@gmail.com>
      CC: Christopher White <c.white@pulseforce.com>
      CC: Pierre-Louis Bossart <pierre-louis.bossart@intel.com>
      CC: Paul Menzel <paulepanter@users.sourceforge.net>
      CC: James Cloos <cloos@jhcloos.com>
      CC: Chris Wilson <chris@chris-wilson.co.uk>
      Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Signed-off-by: default avatarWu Fengguang <fengguang.wu@intel.com>
      Signed-off-by: default avatarKeith Packard <keithp@keithp.com>
      76adaa34
  16. 04 Aug, 2011 1 commit
  17. 03 Aug, 2011 1 commit
  18. 25 Jul, 2011 1 commit
  19. 16 Jun, 2011 2 commits
  20. 27 Apr, 2011 2 commits
  21. 31 Mar, 2011 1 commit
  22. 15 Mar, 2011 1 commit
  23. 22 Feb, 2011 1 commit
  24. 08 Nov, 2010 1 commit
    • Sam Tygier's avatar
      DRM: ignore invalid EDID extensions · 0ea75e23
      Sam Tygier authored
      
      
      Currently an invalid EDID extension will cause the whole EDID to be considered invalid. Instead just drop the invalid extensions, and return the valid ones. The base block is modified to claim to have the number valid extensions, and the check sum is updated.
      
      For my EIZO S2242W the base block is fine, but the extension block is all zeros. Without this patch I get no X and no VTs.
      Signed-off-by: default avatarSam Tygier <samtygier@yahoo.co.uk>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      0ea75e23
  25. 19 Oct, 2010 1 commit
  26. 18 Sep, 2010 1 commit
    • Chris Wilson's avatar
      drm/i915: use GMBUS to manage i2c links · f899fc64
      Chris Wilson authored
      
      
      Use the GMBUS interface rather than direct bit banging to grab the EDID
      over DDC (and for other forms of auxiliary communication with external
      display controllers). The hope is that this method will be much faster
      and more reliable than bit banging for fetching EDIDs from buggy monitors
      or through switches, though we still preserve the bit banging as a
      fallback in case GMBUS fails.
      
      Based on an original patch by Jesse Barnes.
      
      Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
      Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
      f899fc64