)]}'
{
  "commit": "6a9ee8af344e3bd7dbd61e67037096cdf7f83289",
  "tree": "07cdb493a790cf45bc473f2fc2ea1b9a166d5191",
  "parents": [
    "9fd1de52945e06ed88a440c99ca92dab74b9b33c"
  ],
  "author": {
    "name": "Dave Airlie",
    "email": "airlied@linux.ie",
    "time": "Mon Feb 01 15:38:10 2010 +1000"
  },
  "committer": {
    "name": "Dave Airlie",
    "email": "airlied@redhat.com",
    "time": "Mon Mar 01 16:20:37 2010 +1000"
  },
  "message": "vga_switcheroo: initial implementation (v15)\n\nMany new laptops now come with 2 gpus, one to be used for low power\nmodes and one for gaming/on-ac applications. These GPUs are typically\nwired to the laptop panel and VGA ports via a multiplexer unit which\nis controlled via ACPI methods.\n\n4 combinations of systems typically exist - with 2 ACPI methods.\nIntel/ATI - Lenovo W500/T500 - use ATPX ACPI method\nATI/ATI - some ASUS - use ATPX ACPI Method\nIntel/Nvidia - - use _DSM ACPI method\nNvidia/Nvidia -  - use _DSM ACPI method.\n\nTODO:\nThis patch adds support for the ATPX method and initial bits\nfor the _DSM methods that need to written by someone with\naccess to the hardware.\nAdd a proper non-debugfs interface - need to get some proper\ntesting first.\n\nv2: add power up/down support for both devices\non W500 puts i915/radeon into D3 and cuts power to radeon.\n\nv3: redo probing methods, no DMI list, drm devices call to\nregister with switcheroo, it tries to find an ATPX method on\nany device and once there is two devices + ATPX it inits the\nswitcher.\n\nv4: ATPX msg handling using buffers - should work on more machines\n\nv5: rearchitect after more mjg59 discussion - move ATPX handling to\n    radeon driver.\n\nv6: add file headers + initial nouveau bits (to be filled out).\n\nv7: merge delayed switcher code.\n\nv8: avoid suspend/resume of gpu that is off\n\nv9: rearchitect - mjg59 is always right. - move all ATPX code to\nradeon, should allow simpler DSM also proper ATRM handling\n\nv10: add ATRM support for radeon BIOS, add mutex to lock vgasr_priv\n\nv11: fix bug in resuming Intel for 2nd time.\n\nv12: start fixing up nvidia code blindly.\n\nv13: blindly guess at finishing nvidia code\n\nv14: remove radeon audio hacks - fix up intel resume more like upstream\n\nv15: clean up printks + remove unnecessary igd/dis pointers\n\nmount debugfs\n\n/sys/kernel/debug/vgaswitcheroo/switch - should exist if ATPX detected\n + 2 cards.\n\nDIS - immediate change to discrete\nIGD - immediate change to IGD\nDDIS - delayed change to discrete\nDIGD - delayed change to IGD\nON - turn on not in use\nOFF - turn off not in use\n\nTested on W500 (Intel/ATI) and T500 (Intel/ATI)\n\nSigned-off-by: Dave Airlie \u003cairlied@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "2307f98349f7d145aec2a0d57c57a86777a3cbb6",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_dma.c",
      "new_id": "42ca07f04a210cdca6bd4bf5cd9cf7d847d5088d",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_dma.c"
    },
    {
      "type": "modify",
      "old_id": "cf4cb3e9a0c22a5a244350db95f8d846b05e3fdb",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_drv.c",
      "new_id": "fd739efe73ce40d9f066939a432f0a307c14f17e",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_drv.c"
    },
    {
      "type": "modify",
      "old_id": "b99b6a841d9506b1782562e825b383ac650aaf9c",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/i915_drv.h",
      "new_id": "d77e5665135293b22bb57b183b2d890bfb738e01",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/i915_drv.h"
    },
    {
      "type": "modify",
      "old_id": "aaabbcbe590507ca7b56dc382cc09370bd8e449c",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/i915/intel_fb.c",
      "new_id": "8cd791dc5b298d1d11217429798f8f66f0ff0089",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/i915/intel_fb.c"
    },
    {
      "type": "modify",
      "old_id": "48227e7447539f281ffc79e40ebd05b517d0c1ae",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/nouveau/nouveau_acpi.c",
      "new_id": "0e0730a531371e9e59ec01d1db10b72143c0c67b",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/nouveau/nouveau_acpi.c"
    },
    {
      "type": "modify",
      "old_id": "da3b93b84502de4721f84193bbcbe1598c2b959b",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/nouveau/nouveau_drv.c",
      "new_id": "f83ec65addba0d8aa0fe6d82a5c336f19a37cbdc",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/nouveau/nouveau_drv.c"
    },
    {
      "type": "modify",
      "old_id": "1c15ef37b71cffc9c234f08b0337e50e1af4ff6e",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/nouveau/nouveau_drv.h",
      "new_id": "85c05feab4f04263f04bd3ee444468dcea0ed291",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/nouveau/nouveau_drv.h"
    },
    {
      "type": "modify",
      "old_id": "ea879a2efef328c8a452d8403bc93cfbd85cb879",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/nouveau/nouveau_fbcon.c",
      "new_id": "1ebf22b664dd3d76b07c060f87ea7182953b2f12",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/nouveau/nouveau_fbcon.c"
    },
    {
      "type": "modify",
      "old_id": "a4851af5b05ec535816eeb98973675c6cbb03aa4",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/nouveau/nouveau_state.c",
      "new_id": "85d65b91389c951862db9841a3320949f5597589",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/nouveau/nouveau_state.c"
    },
    {
      "type": "modify",
      "old_id": "1cc7b937b1eaea4cdaac2df729613a6142fa9e90",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/Makefile",
      "new_id": "8e62fe13e31c9416fe3af25215b3e3c64eb487f7",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/Makefile"
    },
    {
      "type": "modify",
      "old_id": "c0356bb193e57f39ef602ad50c6af607b056c15a",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon.h",
      "new_id": "a5dfb1557d3eb47d43a6260fb03e49fc3677f683",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0ae52f19071d5a578cec0fb5a852d91fcd4b7cf9",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_atpx_handler.c"
    },
    {
      "type": "modify",
      "old_id": "906921740c6034153cdbf5264acf9bf5664785e8",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_bios.c",
      "new_id": "a34b909485b89d37ee4e4fdf2f4d607e2027cc8e",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_bios.c"
    },
    {
      "type": "modify",
      "old_id": "768b1509fa032b1a90ec9a38bab111672ebfbd4f",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_device.c",
      "new_id": "cb8d9a1dd69c721ace81f6ed25add3781d720ce6",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_device.c"
    },
    {
      "type": "modify",
      "old_id": "8ba3de7994d4f2719313f0baf7f62d0daebdfe23",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_drv.c",
      "new_id": "4ab53aa163b2891a5594777cc9c87ebe53e68c05",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_drv.c"
    },
    {
      "type": "modify",
      "old_id": "c57ad606504dfcb3cee7b66103aac1ab834daec9",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_drv.h",
      "new_id": "7362371951432aff7be8e18e19ba19e5cc959348",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_drv.h"
    },
    {
      "type": "modify",
      "old_id": "d71e346e9ab5a9faa96d62a96ad35cb84cfce20d",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_fb.c",
      "new_id": "561719223988dc261785b66883d2aa8b61d158cf",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_fb.c"
    },
    {
      "type": "modify",
      "old_id": "f23b05606eb53f6fbe2f79de24f9613e318683ce",
      "old_mode": 33188,
      "old_path": "drivers/gpu/drm/radeon/radeon_kms.c",
      "new_id": "5db7af6b91f47eed1dde3b75ccc6db32ef7ab203",
      "new_mode": 33188,
      "new_path": "drivers/gpu/drm/radeon/radeon_kms.c"
    },
    {
      "type": "modify",
      "old_id": "790e675b13eb8f4b16e9b7040bd656759473ae93",
      "old_mode": 33188,
      "old_path": "drivers/gpu/vga/Kconfig",
      "new_id": "6116a0196214cfd2bf52e39dd39d3f7d6b99adb1",
      "new_mode": 33188,
      "new_path": "drivers/gpu/vga/Kconfig"
    },
    {
      "type": "modify",
      "old_id": "7cc8c1ed645b3f042ef2ac6630929539d1e44092",
      "old_mode": 33188,
      "old_path": "drivers/gpu/vga/Makefile",
      "new_id": "14ca30b75d0aacdf099cf936083453f088b6343c",
      "new_mode": 33188,
      "new_path": "drivers/gpu/vga/Makefile"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a3f587a0aba9da50d8c7a31757733f6a09bd759b",
      "new_mode": 33188,
      "new_path": "drivers/gpu/vga/vga_switcheroo.c"
    },
    {
      "type": "modify",
      "old_id": "3681c6a8821239ad58858a062e0f2e6177f994fa",
      "old_mode": 33188,
      "old_path": "drivers/video/console/fbcon.c",
      "new_id": "b0a3fa00706d2e25896fc862aa1bcc116010a6c7",
      "new_mode": 33188,
      "new_path": "drivers/video/console/fbcon.c"
    },
    {
      "type": "modify",
      "old_id": "369767bd873efe5bafedb6b5936982952848a914",
      "old_mode": 33188,
      "old_path": "include/linux/fb.h",
      "new_id": "c10163b4c40e18e26fca70c76420fc8ceb10ad8b",
      "new_mode": 33188,
      "new_path": "include/linux/fb.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4b58ab1e861224a1174eeb457709db84ca06a0b0",
      "new_mode": 33188,
      "new_path": "include/linux/vga_switcheroo.h"
    }
  ]
}
