1. 11 Jul, 2017 1 commit
    • Jeffrey Lee's avatar
      Make EDID handling more robust · c3128e9b
      Jeffrey Lee authored
      Detail:
        c/edidsupport:
        - Make readedid() check that the EDID has a valid header. Previously only the checksum was checked, which is wholly insufficient (e.g. an EDID block full of null bytes would be considered valid). loadedid() also updated for consistency, although with the current code the header will have already been detected by loadmodefile().
        - Add some extra checks to readedidblock() to cope with more situations in which the GraphicsV call could fail. Fix confusing comment/code ordering.
        h/errors, Resources/Germany/Messages, Resources/UK/Messages - Add new "Invalid EDID block" error, for use when no valid header is found
      Admin:
        Tested on Raspberry Pi 3
        Booting an EDID-enabled Pi without a monitor (and with the broken BCMVideo 0.47) no longer results in an (unintelligible) error box on entry to the desktop + system stuck in mode 0
        However, note that other issues in the boot sequence mean that booting with EDID enabled and no monitor still isn't 100% wor...
      c3128e9b
  2. 05 Mar, 2017 1 commit
    • ROOL's avatar
      Offer export of raw EDID blob and complementary MDF export · 961adc98
      ROOL authored
      Detail:
        Export the EDID raw data as a file in ResourceFS. This allows the Screen Setup plugin to scan that directory to pick up the currently connected monitor, and similarly select it from !Boot.Choices.PreDesk. The EDID data can also be drag & drop copied or exported for offline analysis.
        Add SaveModeFile command. This differs in that it works on the current set, to be symmetrical with LoadModeFile which loads the current set. Also fixes issues of losing the original mode names given; NULL pointer dereference when the EDID block contains no modes (eg. VIDCDriver); and no long writes out malformed MDFs which can't be loaded into !MakeModes (this seems to be because the CreateModeFile command was based on a stale copy of EDIDDecode which fixed the same bug circa 2012).
        Query the current GraphicsV driver for the deepest colour depth for the preferred mode, rather than assuming 32bpp is always possible (eg. because of bandwidth or graphics con...
      961adc98
  3. 29 Nov, 2015 1 commit
    • Jeffrey Lee's avatar
      Add support for parsing and reporting the contents of CEA 861-D audio-related EDID blocks · 9a30976a
      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'
      9a30976a
  4. 11 Feb, 2015 1 commit
    • John Ballance's avatar
      Made safer to deploy in current ROMS, and added further stuff to generated mdf · 36800dfd
      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'
      36800dfd
  5. 08 Feb, 2015 1 commit
    • Steve Revill's avatar
      Added prototype EDID support code. · d893357d
      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'
      d893357d
  6. 14 Jul, 2012 1 commit
    • Robert Sprowson's avatar
      Clean up pass · aa5b72f2
      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'
      aa5b72f2
  7. 21 Sep, 1998 1 commit