)]}'
{
  "log": [
    {
      "commit": "066e52eeaa329d782ccee96265a6a351fc395bf1",
      "tree": "21308f20f8c42cca8a21c169428ad36c2a48329e",
      "parents": [
        "b789e86d6475e0e347b64fa65f70fedfc4fb9af3"
      ],
      "author": {
        "name": "Elyes Haouas",
        "email": "ehaouas@noos.fr",
        "time": "Mon Sep 26 12:48:47 2022 +0200"
      },
      "committer": {
        "name": "Angel Pons",
        "email": "th3fanbus@gmail.com",
        "time": "Tue Oct 04 14:04:23 2022 +0000"
      },
      "message": "Fix \"unnecessary with of ancestor [-gnatwr]\"\n\nThese warnings are a bit overeager as some of them only apply once\nunnecessary `use type ...` clauses are adapted. So we do both in\none patch. This partially fixes building with GCC 12.\n\nChange-Id: Id7e88fe9a3ef7cb10cbc427a052e21f12578a3fd\nSigned-off-by: Elyes Haouas \u003cehaouas@noos.fr\u003e\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/libgfxinit/+/67833\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "2bbd6e7c6044d7c3fb5607834d00e4e7d83a2ada",
      "tree": "9d39e3333feda6885ff63692c935e4ac114fb3a3",
      "parents": [
        "8a6e7bd43caef134bcb9616da9be3b4344850123"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Tue Jan 07 18:22:59 2020 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Thu Mar 05 15:12:18 2020 +0000"
      },
      "message": "gma panel: Introduce `Panel_Control` type\n\nFor now, `Panel_Control` only distinguishes `Panel_1` from `No_Panel`,\ni.e. if a port has a panel attached or not. To ease future addition of\nsupport for more than one panel, we already add loops and arrays around\nit, though.\n\nWith the information, if a port has a panel attached, in `Port_Config`,\nwe can pass that on into Panel.* procedures and let those decide what\nto do (e.g. do nothing if no panel is attached).\n\nChange-Id: I83864bc86b48f65d9ba43e083b805ca09497cbb0\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/c/libgfxinit/+/38243\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "9a4c4c3024a20bfe134bf93ca04a3634848dbd39",
      "tree": "b53532d9affed9129c64120b916cf5f7bd016d97",
      "parents": [
        "88da05e1742894774144bc6aa750e742d0b10291"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 16 22:05:11 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 04 22:10:27 2019 +0000"
      },
      "message": "gma: Refactor Update_Outputs()\n\nIn Update_Outputs(), we used to have two steps, iterating over\nall available pipes: We disabled all pipes whose mode changed\nor that would be disabled otherwise. Then, we enabled all pipes\nwith new modes.\n\nAs checks for validity of the configurations were only done on\ndemand in the second step, that left us with no knowledge about\nwhat configs would actually be tried. To make this information\navailable for future work, we add a validation step before the\nexisting two. That gives us:\n\n 1. Validate all new configs\n 2. Disable pipes\n    - whose mode changed\n    - that were disconnected\n    - whose config didn\u0027t validate\n 3. Enable/update pipes with new configs\n\nThis way, we can make global decisions ahead of 2. and 3. based\non the remaining, _valid_ configurations.\n\nWe had to turn Pipe_Setup.Scaler_Available() into a Reserve_Scaler()\nso we can keep track which new configuration gets to use a scaler.\nG45 is still the only case where we have less scalers than pipes\navailable. To keep that transparent to Update_Outputs() we add the\nopaque type `Scaler_Reservation`.\n\nThe `Loop_Invariant` of 1. allows us to keep the validation\nin mind, to satisfy pre-conditions of the various steps ahead.\nTo not lose the validation, Fill_Port_Config() needs a post\ncondition and a little restructuring to prove it.\n\nChange-Id: I079ae8f85c821a272b5d095c1ef437ee804aa9ac\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/libgfxinit/+/35528\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "88da05e1742894774144bc6aa750e742d0b10291",
      "tree": "87a020df25668d680eeac96fd2c033c8275f7136",
      "parents": [
        "9e96a45649a8e7c8d945220bbaa0e37ff1af8adf"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Sep 16 21:03:20 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 04 21:37:13 2019 +0000"
      },
      "message": "gma config_helpers: Add dot-clock helper functions\n\nHighest_Dotclock() returns the highest dot clock in a set of\npipe configurations.\n\nLimit_Dotclocks() reduces any dot clock to the given maximum\nif it exceeds the latter. To prove that Limit_Dotclocks() only\nchanges timing, we introduce Stable_FB().\n\nChange-Id: Iaa25e774d38c7af12150523739d902cf8e758674\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/libgfxinit/+/35529\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "9e96a45649a8e7c8d945220bbaa0e37ff1af8adf",
      "tree": "9b8552aad49ed267cca4a352c7c19017d7a7d0fa",
      "parents": [
        "312433cd3d90ebd5ee44bc1795b10e3846c1f96c"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Sep 22 20:25:17 2019 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Fri Oct 04 21:34:46 2019 +0000"
      },
      "message": "gma config_helpers: Introduce Valid_FB()\n\nMake the post condition of Validate_Config() a separate function,\nValid_FB(). This way, we don\u0027t have to repeat it everywhere.\n\nTheoretically, we could make Validate_Config() an expression\nfunction, too. Alas, all the added conditions seem to distract\nprovers too much.\n\nChange-Id: I0931217658000d3ff6d71515acb45aeb063768d5\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/c/libgfxinit/+/35527\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\n"
    },
    {
      "commit": "f361ec81e075b3ece15fcb910ec4c96758ce33c2",
      "tree": "f6b0b643a65dc06c822b41fe0cb34e796e02d1fe",
      "parents": [
        "958c5640456afc695e4b05a9a23df3ada14ebdd2"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sat Jun 02 18:01:45 2018 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jun 03 20:37:04 2018 +0000"
      },
      "message": "gma: Introduce Pipe_Config.Scaler_Available()\n\nG45 provides only a single panel fitter. Therefore, we can only enable\na single pipe that requires scaling. Scaler_Available() tells us if a\npanel fitter is available for a given pipe. We use the result to filter\ninvalid configurations early.\n\nChange-Id: Ie05bfb58318e79edc8ab81598458e620ffdcb2ab\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/26768\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "cbbaade460c23a04d4f9641e0e92afae9ddd12ec",
      "tree": "7fdb2f58f11fe4bbb6c007971d83d064baeb431d",
      "parents": [
        "b4b72794bab8523128befdb4bf4266b79413332a"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Jan 02 13:59:36 2018 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 29 14:37:04 2018 +0000"
      },
      "message": "gma config_helpers: Pass only the modeline to Validate_Config()\n\nValidate_Config() had the full `Port_Config` as parameter, though we\nonly accessed the modeline. Make that explicit so we can also call it\nwhen we don\u0027t have the full config available.\n\nChange-Id: Ia4620d1ffa1a3cd098d721d84f2453f2dc19da2a\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/23163\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "5ef4d605c0f0cdd46d9361ead6df849ea8a17811",
      "tree": "7a6a95e377fcdfb349b8610b2c43845e393bba65",
      "parents": [
        "34be6547c8dc24aa9c8b406bb1fc8d8fcd118a44"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Wed Dec 13 13:56:47 2017 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue May 29 14:36:45 2018 +0000"
      },
      "message": "Add Start_X and Start_Y offsets for framebuffer panning\n\nFor tiled modes, the offsets add to the stride. To keep things simple,\nwe always assume that they are accounted for (even in linear mode).\n\nTo make the panning visible, the offsets are added in `gfx_test` and\nthe test image is drawn larger by two times the offsets. Also add the\nnew parameters to Dump_Configs() along with the forgotten tiling and\nrotation parameters.\n\nChange-Id: I5d1e1f2ed8b1872a2b82be23a6a622d948f7831f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/22866\nReviewed-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\n"
    },
    {
      "commit": "9b479412a7e43888f52840e03b57eed710e46af6",
      "tree": "327ed066e30f61d7a284bb787a29c34a8332bd47",
      "parents": [
        "b7470499e80e1910ff078a55ac46a097b7f0c903"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Aug 27 11:55:56 2017 +0200"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Tue Dec 12 14:26:37 2017 +0000"
      },
      "message": "gma: Add support for rotated framebuffers\n\nAs for the tiling, we enable support for rotated framebuffers on\nplatforms with Plane_Control. On every path where a rotated frame-\nbuffer may be expected, we have to exchange width and height in\ncase of 90 degree rotations. Beside the rotation setting itself,\nthe hardware needs to know the vertical stride instead of the hori-\nzontal and a delicate page mapping in case of 90 degree rotations.\nFor that we divide the GTT space into two, the lower half contains\nthe linear mappings, the upper half mappings for a rotated scanout.\n\nChange-Id: I1c901b7abc0fe7764bee87f6fda58ba9fa3f340d\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/22711\nReviewed-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\nTested-by: Stefan Reinauer \u003cstefan.reinauer@coreboot.org\u003e\n"
    },
    {
      "commit": "31a5217d39f95b51dc1fbe452f0e169507ca95d7",
      "tree": "8cbe6d6f76e050bbaf654a04cad025e25b59d3cd",
      "parents": [
        "8fb0f31d7b53738e81922f46541722e7c48743f6"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 05 14:17:34 2017 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Mar 12 13:18:03 2017 +0100"
      },
      "message": "gma: Justify some use-visibility warnings\n\nThese `use type` statements were required for older compilers\n(\u003c\u003d GCC 6.2) but are warned about by newer versions, sigh.\n\nChange-Id: I50d6ea19b5a9e0c7d839f6a9781b6179156ce162\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/18690\nReviewed-by: Paul Menzel \u003cpaulepanter@users.sourceforge.net\u003e\nReviewed-by: Patrick Georgi \u003cpgeorgi@google.com\u003e\n"
    },
    {
      "commit": "3be61d4f7e79907db981d67e620e0b10ee49181e",
      "tree": "3394fa7c80e93e75ffa1cc3eda57c411b4ecd585",
      "parents": [
        "43370ba02a5907152d4849ea02fe622a409580d5"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.huber@secunet.com",
        "time": "Mon Jan 09 13:58:18 2017 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Mon Mar 06 18:50:54 2017 +0100"
      },
      "message": "gma: Refactor Hotplug_Detect() interface and usage\n\nChecking for hotplug events should be done before any other work to\nreduce load and (spurious) debug output. Therefor, use the simpler\n`Port_Type` in the interface of `Hotplug_Detect()` so we don\u0027t have to\nfill the whole `Port_Cfg` before checking for events.\n\nAlso, now that it\u0027s possible, factor the disabling of a single output\nout of `Update_Outputs()`.\n\nChange-Id: I2a0ba5530c8d511fa95f9cac12297ad428a40d77\nSigned-off-by: Nico Huber \u003cnico.huber@secunet.com\u003e\nReviewed-on: https://review.coreboot.org/18119\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Patrick Georgi \u003cpgeorgi@google.com\u003e\n"
    },
    {
      "commit": "8c45bcfc4d024c866e4c2b92b1768b413ec8be9c",
      "tree": "dfcfa082dcf1ab6dc31ccf9a50a9ed4a08c8539c",
      "parents": [
        "3c544eeb50590b2bbc69f04725b279ec96a4b2fa"
      ],
      "author": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Nov 20 17:30:57 2016 +0100"
      },
      "committer": {
        "name": "Nico Huber",
        "email": "nico.h@gmx.de",
        "time": "Sun Jan 01 17:36:07 2017 +0100"
      },
      "message": "gma: Split out config derivation and port probing\n\nThe GMA package has grown way too big. Move derivation of the internal\nconfiguration into new package `Config_Helpers`, EDID probing into new\npackage `Display_Probing`.\n\nChange-Id: Ib49ac7b00367be4295d18dba3afd1a0692e0497f\nSigned-off-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-on: https://review.coreboot.org/17757\nReviewed-by: Adrian-Ken Rueegsegger \u003cken@codelabs.ch\u003e\n"
    }
  ]
}
