- 30 Jul, 2016 3 commits
-
-
ROOL authored
Detail: In various places the free() on error was the responsibility of the called function, and sometimes the calling function. Rationalise this by returning true/false so the free() is always done at the same level as malloc(). Likewise, add_proposed_mode() is now done at the level that generates the mode. Tidy up debug so that only successfully generated and added modes get debug printed with display_mode_parameters(), not discarded ones. Admin: Submission for the EDID bounty. Tagged as ScrModes-0_55-mallocfree.
-
ROOL authored
Detail: Missing break statements (around line 790) would always have selected 50Hz frame rate regardless. Removed duplicate call to add_proposed_mode() which generate_mode_using_cvt_rb() already does, resulting in duplicated modes. Admin: CVT3 still untested, but less broken than before. Submission for the EDID bounty. Tagged as ScrModes-0_55-cvt3fix.
-
ROOL authored
Detail: The dynamic range of the values being computed easily fit within integer types, so use these instead of doubles. This makes ScrModes independent of its position in intialisation with respect to FPEmulator once more, and saves 1k of code space too. Functions generate_mode_using_gtf(), generate_mode_using_cvt_rb(), generate_cvt3_timing() affected. Admin: Test added to brute force compare float and fixed point results. Submission for the EDID bounty. Version 0.55. Tagged as 'ScrModes-0_55'
-
- 21 May, 2016 1 commit
-
-
ROOL authored
Admin: Line up braces missed in earlier tidying. Not tagged.
-
- 14 May, 2016 3 commits
-
-
ROOL authored
Detail: Rounding the pixel clock to 0.25MHz was not correctly performed due to clock step division being outside the floor() function, so all times came out in steps of 1MHz. In GTF timing with interlacing v_lines_rqd specifies ROUND(v_lines/2,0) rather than ROUNDDOWN(v_lines/2,0). Abandon GTF calculations early if they result in a -ve duty cycle. Update margins to 1.8% from standard. Admin: Mode with non-multiple-of-1MHz clock tested, now matches VESA CVT spreadsheet. GTF change not tested since int_rqd = 0 the code wasn't called. Margin% change not tested since margins_rqd = 0 the code wasn't called. Submission for the EDID bounty. Version 0.54. Tagged as 'ScrModes-0_54'
-
ROOL authored
Detail: Main source file split into 3. Admin: Tested briefly, functionality unchanged. Submission for the EDID bounty. Tagged as ScrModes-0_53-split
-
ROOL authored
Detail: Move the 500+ lines of tables into a new source file and remove storage inferred by former CEAModes.h. Tame some of the rampant style from various authors, even within 1 function, to something reasonably consistent. Uppercase the 'debug' macro to 'IFDEBUG'. Relocate ScrModes specific defines out of EDIDModes header, rename to edidmemory.h. Add monitor type 6 to monitors.h. Fix for unguarded debug printout "Can't allocate space for monitor list" in parseedid. Admin: Tested briefly, functionality unchanged. Submission for the EDID bounty. Tagged as ScrModes-0_53-tables
-
- 10 Jan, 2016 1 commit
-
-
Jeffrey Lee authored
Add support for parsing CEA Short Video Descriptors (SVDs). Fix loaded EDID files being overwritten with monitor EDID during Service_DisplayChanged. Detail: h/CEAModes - Table of CEA mode timings from CEA 861-D s/ScrModes - Implement process_cea_video_data_block() in order to support SVD parsing. Ensure loadedid() sets the EDIDEnabled flag to 0, to prevent the loaded EDID (potentially) being replaced during Service_DisplayChanged. Admin: Tested on iMx6 Version 0.53. Tagged as 'ScrModes-0_53'
-
- 08 Jan, 2016 1 commit
-
-
Jeffrey Lee authored
Fix *LoadModeFile not reporting errors when parsing EDID files. Fix another "RMA allocation failed" bug with audio format processing. Detail: c/ScrModes - Fix loadedid() not returning errors from parseedid() c/ScrModes - Fix bad use of realloc() in add_audio_format() - if audio_format_count hits zero then it's expected for realloc to return NULL. Admin: Tested on iMx6 Version 0.52. Tagged as 'ScrModes-0_52'
-
- 06 Jan, 2016 1 commit
-
-
Jeffrey Lee authored
Detail: c/ScrModes - When removing 'candidate' from the list of audio formats, it's the number of formats which we want to decrement, not the pointer to the start of the list. Admin: Tested on iMx6 Fixes "RMA allocation failed" and other issues when dealing with monitors with complex audio capabilities Version 0.51. Tagged as 'ScrModes-0_51'
-
- 15 Dec, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: c/ScrModes: - Added established timings for 720x400 @ 70Hz to be used in place of the auto-generated timings. For a BenQ FP737s-D, these match the expected timings listed in the manual, and they actually result in a picture displaying (auto-generated timings did not). - Split the guts of generate_dmt_mode out into a separate function so it can easily be used for adding the 720x400 @ 70Hz ModeDefinition - Fix established timing handling to only call generate_dmt_mode if the DMT defines timings for a given mode (old logic meant that only 720x400 @ 70Hz was falling through to the auto-generate case) - Fix established timing auto-generation to cope with the possibility of timings_byte being non-zero Admin: Tested on iMx6 on a variety of monitors 720x400 @ 70Hz now displays correctly on a FP737s-D 640x480 @ 67Hz now works too (albeit with a warning about being a non-preset mode, this one is listed in the EDID but not in the manual) Version 0.50. Tagged as 'ScrModes-0_50'
-
- 29 Nov, 2015 1 commit
-
-
Jeffrey Lee authored
Detail: Makefile - Export a C version of hdr/ScrModes Resources/Germany/Messages, Resources/UK/Messages, h/errors - Add new error message cmhg/ScrModesv, hdr/ScrModes - Declare existence of ScreenModes_EnumerateAudioFormats SWI. Declare ScreenModes_ReadInfo reason codes. h/modex - Extend MonitorDefinition struct to allow it to store the speaker mask & audio format information that's extracted from the EDID c/ScrModes - Extend support for processing of CEA extension blocks. All block revisions > 0 should now be accepted, and rudimentary parsing of CEA data block collections is implemented (currently, only extracts information from audio related blocks). Add SWI ScreenModes_EnumerateAudioFormats to allow details of the supported formats to be returned in either "raw" or "friendly" forms. Add ScreenModes_ReadInfo reason code 1 to allow reading of the speaker mask (+ validity bits). Also fix *LoadModeFile to allow EDID blocks to be loaded without first having to issue *ReadEDID first (EDIDEnabled flag issue). Admin: Tested on iMX6 with assorted EDID blocks German messages file in need of translation Version 0.49. Tagged as 'ScrModes-0_49'
-
- 24 Feb, 2015 2 commits
-
-
Jeffrey Lee authored
Detail: c/ScrModes - Replace magic numbers used for sync polarities with HSync_Positive, VSync_Negative, etc. #defines. Fix GTF2 polarity to be correct. Fix CVT/CVT RB polarities to be correct (+ some incorrect code indentation). Make dtd_block_to_modedesc return true/false for success/failure so we can reject stereoscopic 3D modes. Admin: Tested on Pandaboard Version 0.48. Tagged as 'ScrModes-0_48'
-
Jeffrey Lee authored
Detail: c/ScrModes - Fixed decoding of DTD polarties in dtd_block_to_modedesc. Add support for some missing established timings (generated by GTF/CVT as we don't have any known-good values to use as a reference) Admin: Tested on Pandaboard Submission from William Harden Version 0.47. Not tagged
-
- 20 Feb, 2015 3 commits
-
-
Jeffrey Lee authored
Detail: c/ScrModes - Reorder while loop conditions to ensure the DTD offset is checked before we try reading any data; prevents potential data abort if initial offset is too large to be valid. Admin: Builds, untested Version 0.47. Retagged as 'ScrModes-0_47'
-
Jeffrey Lee authored
Detail: c/ScrModes - Swap 'return;' for 'return NULL;' in the (currently unused) DERIVE_CVT3_FROM_DMT code to ensure the function has a sensible return value Admin: Untested Version 0.47. Retagged as 'ScrModes-0_47'
-
Jeffrey Lee authored
Detail: c/ScrModes, h/modex - Added support for CVT 3 byte codes & VTB-EXT blocks. Add framework for sorting modes by EDID priority. Move CEA extension block handling into its own function & increase error checking. Resources/Germany/CmdHelp, Resources/UK/CmdHelp - Fix missing message token & incorrect syntax of syntax message Admin: Code submission from William Harden Tested on Raspberry Pi Version 0.47. Tagged as 'ScrModes-0_47'
-
- 16 Feb, 2015 2 commits
-
-
Jeffrey Lee authored
Detail: c/ScrModes - Fix a bad merge causing a compute_modedescription() call to go missing. Fix Get_DTD_ASCII to avoid reading one byte too many, and to ensure the buffer is null terminated. Also strip any control characters. Improve MDF saving to return an error if the file couldn't be created, and to substitute various unsafe characters with underscores Admin: Tested on Pandaboard Version 0.46. Tagged as 'ScrModes-0_46'
-
John Ballance authored
Added 'CreateModeFile' instead of optional file name on ReadEDID now needs a file path for where to save the created mdf. It'll use the name in the EDID for the file name Admin: tested in iMx6 Version 0.45. Tagged as 'ScrModes-0_45'
-
- 14 Feb, 2015 2 commits
-
-
Jeffrey Lee authored
Detail: c/ScrModes - Make sure compute_modedescription is used to initialise frame_mhz (and line_hz). Fixes bogus vertical bounds in MDF comments, and will fix order of modes as defined by sorting function modes_inorder. Also change horizontal bounds comment to use stored line_hz value instead of computing it on the fly Admin: Tested on Pandaboard Version 0.44. Tagged as 'ScrModes-0_44'
-
Jeffrey Lee authored
Detail: c/ScrModes: - Double-checked all the DMT timings against the spec and corrected a few mistakes in both the DMT timings list and the established timings list. - Tidied up DMT & established timing formatting a bit, made static data arrays const - Fixed preferred mode handling so that it'll forget the preferred mode if you load an MDF after reading EDID (preferred_mode->bit0 used as a cheeky flag, in preference over malloc/free). Fixes crash/bad behaviour on startup caused by returning a duff preferred mode from Service_MonitorLeadTranslation on startup. - Added sanity checks to avoid null pointer dereferences if preferred_mode or new_preferred_mode are null - Fixed preferred mode handling to work correctly with interlaced modes (fixed it to use the frame width & height instead of the field width & height) - Tweaked CVT extension block handling - swapped the "- 17" with "- 18" in order to take into account the presence of the checksum byte - Tweaked GTF calculation to round pixel_khz to nearest when calculating it. I don't think this is mentioned in the spec, but when comparing some timings against the GTF spreadsheet this fixes ScreenModes being off by 1kHz in a few cases - When outputing an MDF, don't output display range parameters if the block wasn't found - Fix MDF output of interlaced modes (frame width/height vs. field width/height), use more accurate mHz frame rate value instead of Hz one - Make GraphicsV_IICOp calls use the correct GraphicsV driver number; current_graphicsv_driver() function added to replace ad-hoc code in a couple of other places - Fix reading of extension blocks. Also tweak logic to avoid re-reading the first block. - Initialise 'thefilename' when calling parseedid so that ERR_NOMODES will display something vaguely sensible Admin: Tested on Raspberry Pi (ROM), Pandaboard (ROM), Iyonix (softload) Appears to read EDID correctly from test monitors (BenQ FP737s, BenQ FP241W, ADI TD-523N), but there are some minor discrepancies in MDF output for some modes Version 0.43. Tagged as 'ScrModes-0_43'
-
- 12 Feb, 2015 1 commit
-
-
John Ballance authored
Detail: Admin: Version 0.42. Tagged as 'ScrModes-0_42'
-
- 11 Feb, 2015 1 commit
-
-
John Ballance authored
Detail: Added several things 1) Readedid routine not called in module initialise. 2) Flag added to determine whether old loadmodefile usage, or new readedid usage. Defaults to loadmodefile mode until a readedid command with no parameters, then swirches to edid reading mode. Reverts again if loadmodefile command is used. 3) Tidied up error message when graphicsv fails to read the edid due to connectivity issues. 4) Added hex dump of edid data blocks read to end of a saved mdf file. 5) Implemented read of second ans subsequent 128 byte edid blocks, if required. Admin: tested in imx rom Version 0.41. Tagged as 'ScrModes-0_41'
-
- 10 Feb, 2015 1 commit
-
-
John Ballance authored
Detail: For field support it is extremely helpful to determine what a customer's monitor reports. Whilst (hopefully) this module will correctly produce modes the monitor can handle and the computer generate, when that doesn't happen support types need to be able to find out why, ideally using the same exact information that is generated. So: The ReadEDID command, if called with a full file name, will now save the discovered mdf information to that file instead of loading it. The resultant mdf can be used directly, or used as the basis for further modifications. It exports additional information in the header section which may prove helpful to 'mdf tweakers'. Admin: Tested in imx rom. In 'advertised' use it is the same code as before. It is only when the filename is given to the readedid command that different paths are invoked. Further enhancements may be desirable. Version 0.40. Tagged as 'ScrModes-0_40'
-
- 08 Feb, 2015 1 commit
-
-
Steve Revill authored
This should be considered beta-quality work-in-progress code that gives us a new *command (ReadEDID) that attempts to read the list of supported display mode information from a connected monitory and configure the system for it, as if an MDF file had been loaded containing that information. Admin: Community testing is required for this feature. Please try replacing the LoadModeFile line in your !Boot.Choices.Boot.PreDesk.Configure.Monitor file with a line saying "ReadEDID". If you get a sensible looking list of modes when the machine boots, then things should be OK. If you see an error, please get in touch with ROOL on the "Bounties - ReadEDID" topic. You'll clearly need to be running a ROM with this version of ScreenModes in it! Version 0.39. Tagged as 'ScrModes-0_39'
-
- 09 Mar, 2014 1 commit
-
-
Jeffrey Lee authored
Detail: c/ScrModes, cmhg/ScrModesv - Fire off Service_ModeFileChanged whenever we receive Service_DisplayChanged, so that our clients are informed of the fact the mode list may have changed Admin: Tested on Iyonix, BB-xM Version 0.38. Tagged as 'ScrModes-0_38'
-
- 19 Jan, 2014 1 commit
-
-
Jeffrey Lee authored
Detail: h/modex - Define the syncpol flags as taking up a full word of space, to avoid bits 2-31 being left undefined when generating a VIDC list, and potentially resulting in wrong interlace setting being used Admin: Tested on Raspberry Pi Version 0.37. Tagged as 'ScrModes-0_37'
-
- 15 Dec, 2013 1 commit
-
-
Jeffrey Lee authored
Detail: c/ScrModes - All GraphicsV calls now use the current driver number instead of always calling driver 0. Get the list of supported pixel formats via GraphicsV 17 if implemented, otherwise fall back to GraphicsV 8. Generate old or new style mode provider blocks as appropriate. h/modex - Update definitions for new mode provider block format, new control list items Admin: Tested in Tungsten, IOMD, OMAP3, BCM2835 ROMs Requires HdrSrc-2_38 and Kernel-5_35-4_79_2_203 Version 0.36. Tagged as 'ScrModes-0_36'
-
- 06 Jan, 2013 1 commit
-
-
Robert Sprowson authored
New function, build_a_vidclist() allows the GraphicsV Vet_Mode entry point to be called when validating a mode, so the graphics driver can decide on a mode by mode basis whether it can be achieved. This resolves the problem where an MDF has a super set of modes that the hardware only supports a subset of. Also * Inlined inform_modefilechanged * Removed redundant CFLAGS from makefile * Made a few braces and spaces consistent with their surroundings Tested in an IOMD ROM build on a machine with and without VRAM fitted, looking in display manager that the menus are rebuilt accordingly. Fixes ticket #315. Version 0.35. Tagged as 'ScrModes-0_35'
-
- 28 Aug, 2012 1 commit
-
-
Robert Sprowson authored
Relax clipping of mode names 19 characters is a bit mean if you want to say "2048 x 1024 big monitor" or similar, so bumped it to 31+terminator. 100 characters for the monitor title is a bit lavish, since (in System font) display manager's title bar can only fit 33 characters, reduced to 31+terminator too. Fixes ticket #302. Version 0.34. Tagged as 'ScrModes-0_34'
-
- 12 Aug, 2012 1 commit
-
-
Robert Sprowson authored
Was previously for internal use only, but largely irrelevant as the majoirty of targets don't contain a VIDC, and those that do use a GraphicsV driver anyway. * CMHG and resources updated to remove the command from the command/syntax table * Don't bother probing OS_ReadSysInfo 2 for the video controller, assume it's always GraphicsV * Don't try vetting modes based on VIDC limitations (leave that to VIDC20Video module) * Don't listen to the kernel's bandwidth limit suggestion, always use INT32_MAX Also * Fix potential null pointer dereference if there's not enough RAM to build an ICONSPRITES command * Rather than setting up an atexit() handler in the module init, just use a module finalisation handler * Makefile tickled to not use Norcroft specific flags Version 0.33. Tagged as 'ScrModes-0_33'
-
- 22 Jul, 2012 1 commit
-
-
Robert Sprowson authored
Resources go in 'ScreenMode' not 'ScrModes'. Retagged as 'ScrModes-0_32'.
-
- 14 Jul, 2012 1 commit
-
-
Robert Sprowson authored
* Makefile recreated from fragments * Swap to C99 types, remove 'machtypes.h' * Use centralised SWI and service call definitions, remove 'newswis.h' and 'services.h' * Error E21 taken out of resources, CMHG generates this one for free * Compiler warnings squashed Version 0.32. Tagged as 'ScrModes-0_32'
-
- 14 Jan, 2012 1 commit
-
-
Steve Revill authored
Version 0.31. Tagged as 'ScrModes-0_31'
-
- 03 Feb, 2003 1 commit
-
-
Robert Sprowson authored
When the video controller is V_UNKNOWN (ie.not a VIDC) then an attempt will be made to validate the desired bpp via GraphicsV.That way,when the screen modes are enumerated only achievable ones are returned. Also added an iconsprites command to the loadmodefile command,so that if a sprite file exists in the same dir as the MDF it can override the default display manager icon. Version 0.30. Tagged as 'ScrModes-0_30'
-
- 12 Apr, 2002 1 commit
-
-
Steve Revill authored
Detail: * Added/fixed the install rule for disc builds as required for the Baseline builds. * The MkClean file now calls stripdepnd to remove dynamic dependencies. Admin: Builds and installs. Version 0.29. Tagged as 'ScrModes-0_29'
-
- 21 Mar, 2001 1 commit
-
-
David Cotton authored
Detail: srccommitt'ed again to gain tag. Admin: No changes. Version 0.28. Tagged as 'ScrModes-0_28'
-
- 01 Mar, 2001 1 commit
-
-
Mike Stephens authored
added support for output_format keyword in MDFs, value of 1 means digital intended for cases like video controller attached to Chrontel for TV display untested Version 0.27. Not tagged
-
- 06 Jun, 2000 1 commit
-
-
Kevin Bracey authored
Service_ModeTranslation - previously just left it to the Kernel, which would select mode 25 with hilarious results on an NC/STB. Version 0.27. Tagged as 'ScrModes-0_27'
-
- 24 Mar, 2000 1 commit
-
-
Kevin Bracey authored
Version 0.26. Tagged as 'ScrModes-0_26'
-