- 20 4月, 2012 2 次提交
-
-
由 Lars-Peter Clausen 提交于
The CEA extension block has a field which describes which YCbCr modes are supported by the device, use it to fill the drm_display_info color_formats fields. Also the existence of a CEA extension block is used as indication that the device supports RGB. Signed-off-by: NLars-Peter Clausen <lars@metafoo.de> Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Lars-Peter Clausen 提交于
The code should obviously check the EDID feature field for EDID feature flags and not the color_formats field of the drm_display_info struct. Also update the color_formats field with new modes instead of overwriting the current mode. Signed-off-by: NLars-Peter Clausen <lars@metafoo.de> Reviewed-by: NJesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 21 3月, 2012 1 次提交
-
-
由 Matt Turner 提交于
It's already defined in drm_edid.h. Signed-off-by: NMatt Turner <mattst88@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 20 3月, 2012 1 次提交
-
-
由 Carsten Emde 提交于
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: NCarsten Emde <C.Emde@osadl.org> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 03 2月, 2012 2 次提交
-
-
由 Sascha Hauer 提交于
to add the missing drm_mode_object_put for that mode. Signed-off-by: NSascha Hauer <s.hauer@pengutronix.de> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Eugeni Dodonov 提交于
This allows to avoid talking to a non-responding bus repeatedly until we finally timeout after 15 attempts. We can do this by catching the -ENXIO error, provided by i2c_algo_bit:bit_doAddress call. Within the bit_doAddress we already try 3 times to get the edid data, so if the routine tells us that bus is not responding, it is mostly pointless to keep re-trying those attempts over and over again until we reach final number of retries. This change should fix https://bugs.freedesktop.org/show_bug.cgi?id=41059 and improve overall edid detection timing by 10-30% in most cases, and by a much larger margin in case of phantom outputs (up to 30x in one worst case). Timing results for i915-powered machines for 'time xrandr' command: Machine 1: from 0.840s to 0.290s Machine 2: from 0.315s to 0.280s Machine 3: from +/- 4s to 0.184s Timing results for HD5770 with 'time xrandr' command: Machine 4: from 3.210s to 1.060s Reviewed-by: NChris Wilson <chris@hchris-wilson.co.uk> Reviewed-by: NKeith Packard <keithp@keithp.com> Tested-by: NSean Finney <seanius@seanius.net> Tested-by: NSoren Hansen <soren@linux2go.dk> Tested-by: NHernando Torque <sirius@sonnenkinder.org> Tested-by: NMike Lothian <mike@fireburn.co.uk> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41059Signed-off-by: NEugeni Dodonov <eugeni.dodonov@intel.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 20 12月, 2011 2 次提交
-
-
由 Christian Schmidt 提交于
The current logic misunderstands the spec about CEA 18byte descriptors. First, the spec doesn't state "detailed timing descriptors" but "18 byte descriptors", so any data record could be stored, mixed timings and other data, just as in the standard EDID. Second, the lower four bit of byte 3 of the CEA record do not contain the number of descriptors, but "the total number of DTDs defining native formats in the whole EDID [...], starting with the first DTD in the DTD list (which starts in the base EDID block)." A device can of course support non-native formats. As such the number can't be used to determine n, and the existing code will filter non-timing 18byte descriptors anyway. Signed-off-by: NChristian Schmidt <schmidt@digadd.de> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Christian Schmidt 提交于
CEA datablocks are only defined from revision 3 onwards. Only check for them if the revision says so. Signed-of-by: NChristian Schmidt <schmidt@digadd.de> Tested-by: NJames Cloos <cloos@jhcloos.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 19 12月, 2011 1 次提交
-
-
由 Christian Schmidt 提交于
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: NChristian Schmidt <schmidt@digadd.de> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 01 11月, 2011 1 次提交
-
-
由 Paul Gortmaker 提交于
They need this to get all the EXPORT_SYMBOL variants and THIS_MODULE Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
-
- 22 9月, 2011 1 次提交
-
-
由 Wu Fengguang 提交于
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: NBen Skeggs <bskeggs@redhat.com> Signed-off-by: NWu Fengguang <fengguang.wu@intel.com> Signed-off-by: NKeith Packard <keithp@keithp.com>
-
- 04 8月, 2011 2 次提交
-
-
由 Thomas Reim 提交于
Provides function drm_edid_header_is_valid() for EDID header check and replaces EDID header check part of function drm_edid_block_valid() by a call of drm_edid_header_is_valid(). This is a prerequisite to extend DDC probing, e. g. in function radeon_ddc_probe() for Radeon devices, by a central EDID header check. Tested for kernel 2.6.35, 2.6.38 and 3.0 Cc: <stable@kernel.org> Signed-off-by: NThomas Reim <reimth@gmail.com> Reviewed-by: NAlex Deucher <alexdeucher@gmail.com> Acked-by: NStephen Michaels <Stephen.Micheals@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Jesse Barnes 提交于
Drivers need to know the CEA version number in addition to other display info (like whether the display is an HDMI sink) before enabling certain features. So track the CEA version number in the display info structure. Signed-off-by: NJesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: NKeith Packard <keithp@keithp.com>
-
- 25 7月, 2011 1 次提交
-
-
由 Tormod Volden 提交于
Also disable the ascii dump and remove the literal printing of the KERN_ERR macro in the log: [drm:drm_edid_block_valid] *ERROR* Raw EDID: <3>00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ v2: Remove the trailing empty line as well. Signed-off-by: NTormod Volden <debian.tormod@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 16 6月, 2011 2 次提交
-
-
由 Dave Airlie 提交于
Some RS690 chipsets seem to end up with floating connectors, either a DVI connector isn't actually populated, or an add-in HDMI card is available but not installed. In this case we seem to get a NULL byte response for each byte of the i2c transaction, so we detect this case and if we see it we don't do anymore DDC transactions on this connector. I've tested this on my RS690 without the HDMI card installed and it seems to work fine. Signed-off-by: NDave Airlie <airlied@redhat.com> Reviewed-by: NAlex Deucher <alexdeucher@gmail.com>
-
由 Dave Airlie 提交于
this puts the header and followup at the same loglevel as the hex dump code. Signed-off-by: NDave Airlie <airlied@redhat.com> Reviewed-by: NAlex Deucher <alexdeucher@gmail.com>
-
- 28 4月, 2011 2 次提交
-
-
由 Jesse Barnes 提交于
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: NJesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: NAlex Deucher <alexdeucher@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 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: NJesse Barnes <jbarnes@virtuousgeek.org> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 01 4月, 2011 1 次提交
-
-
由 Ben Skeggs 提交于
Nouveau needs access to this structure to build an ELD block for use by the HDA audio codec. Signed-off-by: NBen Skeggs <bskeggs@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 16 3月, 2011 1 次提交
-
-
由 Chris Wilson 提交于
Usually EDID retrieval is fine. However, sometimes, especially when the machine is loaded, it fails, but succeeds after a few retries. Based on a patch by Michael Buesch. Reported-by: NMichael Buesch <mb@bu3sch.de> Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk> Reviewed-by: NAlex Deucher <alexdeucher@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 23 2月, 2011 1 次提交
-
-
由 Chris Wilson 提交于
... and fixup some methods to accept the constant argument. Now that constant module arrays are loaded into read-only memory, using const appropriately has some benefits beyond warning the programmer about likely mistakes. Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 09 11月, 2010 1 次提交
-
-
由 Sam Tygier 提交于
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: NSam Tygier <samtygier@yahoo.co.uk> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 19 10月, 2010 1 次提交
-
-
由 Zhenyu Wang 提交于
To help to determine if digital display port needs to enable audio output or not. This one adds a helper to get monitor's audio capability via EDID CEA extension block. Tested-by: NWu Fengguang <fengguang.wu@intel.com> Signed-off-by: NZhenyu Wang <zhenyuw@linux.intel.com> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NChris Wilson <chris@chris-wilson.co.uk>
-
- 18 9月, 2010 1 次提交
-
-
由 Chris Wilson 提交于
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: NChris Wilson <chris@chris-wilson.co.uk>
-
- 10 8月, 2010 5 次提交
-
-
由 Adam Jackson 提交于
... of the code, not of the mode lists. Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Adam Jackson 提交于
This brings us in line with the EDID spec recommendation for mode priority sorting. We still don't extract all the modes we could from VTB, but VTB is so rare in the wild that I'm not really concerned. Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Adam Jackson 提交于
Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Adam Jackson 提交于
Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Adam Jackson 提交于
Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 29 7月, 2010 1 次提交
-
-
由 Adam Jackson 提交于
We're adjusting horizontal timings only here, moving vsync was just a slavish translation of a typo in the X server. Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 20 7月, 2010 1 次提交
-
-
由 Kulikov Vasiliy 提交于
Change sizeof(x) / sizeof(*x) to ARRAY_SIZE(x). Signed-off-by: NKulikov Vasiliy <segooon@gmail.com> Signed-off-by: NJiri Kosina <jkosina@suse.cz>
-
- 01 6月, 2010 1 次提交
-
-
由 Jordan Crouse 提交于
Allow platform devices without PCI resources to be DRM devices. [airlied: fixup warnings with dev pointers] Signed-off-by: NJordan Crouse <jcrouse@codeaurora.org> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 26 5月, 2010 1 次提交
-
-
由 Adam Jackson 提交于
Switches will try to update the topology address and not correctly fix up the checksum, so just let it slide. https://bugs.freedesktop.org/28229Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 21 5月, 2010 1 次提交
-
-
由 Alex Deucher 提交于
Spotted by Scott Bertilson. Fixes fdo bug 28146. Signed-off-by: NAlex Deucher <alexdeucher@gmail.com> Reviewed-by: NMark Marshall <mark.marshall@csr.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 18 5月, 2010 4 次提交
-
-
由 Dave Airlie 提交于
Simple cloning rules compared to server: (a) single crtc (b) > 1 connector active (c) check command line mode (d) try and find 1024x768 DMT mode if no command line. (e) fail to clone Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Dan Carpenter 提交于
m == num_est3_modes is one past the end of the est3_modes[]. Signed-off-by: NDan Carpenter <error27@gmail.com> Reviewed-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Adam Jackson 提交于
Having hsync both start and end on pixel 1072 ain't gonna work very well. Matches the X server's list. Signed-off-by: NAdam Jackson <ajax@redhat.com> Tested-By: NMichael Tokarev <mjt@tls.msk.ru> Cc: stable@kernel.org Signed-off-by: NDave Airlie <airlied@redhat.com>
-
由 Dan Carpenter 提交于
We don't use timing_level any more after: 9cf00977 "drm/edid: Unify detailed block parsing between base and extension blocks". Signed-off-by: NDan Carpenter <error27@gmail.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 10 4月, 2010 1 次提交
-
-
由 Adam Jackson 提交于
... and not the global list. Signed-off-by: NAdam Jackson <ajax@redhat.com> Signed-off-by: NDave Airlie <airlied@redhat.com>
-
- 07 4月, 2010 1 次提交
-
-
由 Adam Jackson 提交于
Claims 1280x1024 preferred, physically 1600x1200 cf. http://bugzilla.redhat.com/530399Signed-off-by: NAdam Jackson <ajax@redhat.com> Cc: stable@kernel.org Signed-off-by: NDave Airlie <airlied@redhat.com>
-