)]}'
{
  "commit": "960e239abb429da6f9c6718d12ffd5d649fa9892",
  "tree": "0d2d212be1aa9e55fe93bcf503fe17048a96b99d",
  "parents": [
    "3c3828add50024e90e57d6fbe0e660d1b66302d9"
  ],
  "author": {
    "name": "Arthur Heymans",
    "email": "arthur@aheymans.xyz",
    "time": "Tue Mar 03 19:45:24 2026 +0100"
  },
  "committer": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Sat Jun 06 10:23:00 2026 +0000"
  },
  "message": "gma: Add Intel i945 (Gen3) graphics init support\n\nAdd i945G (desktop) and i945GM (mobile) generation support, modeled\nafter the existing G45 generation code with hardware-specific\nadaptations based on the Linux i915 DRM driver and coreboot.\n\nKey hardware differences from G45 (Gen4):\n- GTT on separate PCI BAR3 (not within BAR0)\n- Simple 32-bit GTT PTEs (addr[31:12] | valid[0])\n- No DSPSURF register (uses DSPADDR/DSPLINOFF instead)\n- Gen3 fence registers: 32-bit at split 0x2000/0x3000 addresses\n- Different PLL limits (VCO 1400-2800 MHz, 96 MHz refclk)\n- SDVO multiplier in DPLL register bits[7:4]\n- LVDS restricted to Pipe B (pre-i965 requirement)\n- CDClk: fixed 400 MHz (desktop) or GCFGC-based (mobile)\n- No HDMI/DP, only VGA, LVDS, and SDVO outputs\n- PCI IDs: 0x2772 (I945G), 0x27a2/0x27ae (I945GM)\n\nTESTED with thinkpad x60: LVDS \u0026 VGA works with a linear framebuffer.\n\nChange-Id: Ib67b3d0ee5e06df427869dce4db926ba57a80fd8\nSigned-off-by: Arthur Heymans \u003carthur@aheymans.xyz\u003e\nReviewed-on: https://review.sourcearcade.org/c/libgfxinit/+/476\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: Nico Huber \u003cnico.h@gmx.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "906e1cd45dd8a795af1fe5320b4f02aad46e9dd3",
      "old_mode": 33188,
      "old_path": "common/Makefile.inc",
      "new_id": "47ef35b06534cf6f86515a2ec7ba4d0823686d8d",
      "new_mode": 33188,
      "new_path": "common/Makefile.inc"
    },
    {
      "type": "modify",
      "old_id": "dd6c2f833a0702e754fc19bcb33fbfb22a390b80",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-config.ads.template",
      "new_id": "2c859c530c4fbf57d0e807466d66edc0118899a9",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-config.ads.template"
    },
    {
      "type": "modify",
      "old_id": "868d51410d2e1973c50104ccdb38532427aa8c8f",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-config_helpers.adb",
      "new_id": "3b559684538c78fedcf47ba6c4e76cd813689af1",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-config_helpers.adb"
    },
    {
      "type": "modify",
      "old_id": "67f8ddf318e7005fe4709f44d06ad9f8a025c7d1",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-display_probing.adb",
      "new_id": "b313ded781593de1e5d7f18677c273aca583d155",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-display_probing.adb"
    },
    {
      "type": "modify",
      "old_id": "82f5222eafbb30fbc37d875a3090e9dfdfc55289",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-pipe_setup.adb",
      "new_id": "03aaf12b73e608b6da88e83f66125b50554c8400",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-pipe_setup.adb"
    },
    {
      "type": "modify",
      "old_id": "7270cb267f02e358845e2e2071edc92a0753dd85",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-pipe_setup.ads",
      "new_id": "f047a6444d85924a4fa9b03e1657632a662c90a7",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-pipe_setup.ads"
    },
    {
      "type": "modify",
      "old_id": "3f0d7ae6aaf20d35a59a7d7b2a58a30957ed8078",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-registers.adb",
      "new_id": "eb12b0dec2971f922bde4ed506ba1c3cb576f476",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-registers.adb"
    },
    {
      "type": "modify",
      "old_id": "498cb533a71e674d19f23ab62f59ee5dc493c226",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma-registers.ads",
      "new_id": "404dda36d3498450d4c862743eb026a02a1d330f",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma-registers.ads"
    },
    {
      "type": "modify",
      "old_id": "c3073d34e77f338e4cafac21aa2e914a3fd076b5",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma.adb",
      "new_id": "92c6f5eb8faceb9c64c4b27a5f900e2e294e2d2e",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma.adb"
    },
    {
      "type": "modify",
      "old_id": "43e88e1a023ce35394dfc8d052aa564abe2f7138",
      "old_mode": 33188,
      "old_path": "common/hw-gfx-gma.ads",
      "new_id": "c05f4f16bbb38c5b79427282cfb69ccc823b0ffe",
      "new_mode": 33188,
      "new_path": "common/hw-gfx-gma.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3c7d02212e87c9e4d22c10824417eb2273d287c6",
      "new_mode": 33188,
      "new_path": "common/i945/Makefile.inc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e774227992528a00087bd5fbb0fc6585b0c9ab56",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-connectors.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4d57041d4a0795c9d30ef998d372b31fe23974e5",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-gmch-lvds.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "04c6719889eff4738a7a6139f8da3da3aca0877b",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-gmch-lvds.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1a43b64ab7530956a3c5ee97e20a60e0ad5bc3ca",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-gmch-vga.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e7b6e7ce9b5868e23555e7daac03acc08dbfe6d5",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-gmch-vga.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "740913e528f6f31b72e516a93c9c27cab736c232",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-gmch.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "96ba6afd1146289033d9a6dcc38a3b911a5675c0",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-plls.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f99a29f8004612bdff48d4c09d37b0c879601404",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-plls.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "af82c17d45f6459a997cd0fe471b2be221cb245a",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-port_detect.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e18d1e35366b00a2d8802972da4d7e1ace4d0394",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-power_and_clocks.adb"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "cad2898517e68161889085fcd41745c441b9dc55",
      "new_mode": 33188,
      "new_path": "common/i945/hw-gfx-gma-power_and_clocks.ads"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ecaa32a81c7153fbf9f142c4dccf18304451418f",
      "new_mode": 33188,
      "new_path": "configs/i945"
    },
    {
      "type": "modify",
      "old_id": "6a10657ac95f9f0266313c4b6264100df0a8e9f3",
      "old_mode": 33188,
      "old_path": "gfxtest/hw-gfx-gma-gfx_test.adb",
      "new_id": "716f99403a5548833c4455cda86f32d542582bde",
      "new_mode": 33188,
      "new_path": "gfxtest/hw-gfx-gma-gfx_test.adb"
    }
  ]
}
