blob: 3ddf330ecc69f93e5c4f081ff486b9a34664f5cf [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?><manifest revision="fe725030d377aaac5da9eaae348594dd500f57d4">
<notice>Your sources have been sync'd successfully.</notice>
<remote fetch="https://android.googlesource.com" name="aosp" review="https://android-review.googlesource.com"/>
<remote alias="cros" fetch="https://chromium.googlesource.com/" name="chromium"/>
<remote fetch="https://chromium.googlesource.com" name="cros" review="https://chromium-review.googlesource.com"/>
<default remote="cros" revision="refs/heads/master" sync-j="8"/>
<project name="aosp/platform/external/dbus-binding-generator" path="src/aosp/external/dbus-binding-generator" revision="0f36410cec3fe0c95afa666f17198706c7669656" upstream="refs/heads/master"/>
<project name="aosp/platform/external/libbrillo" path="src/aosp/external/libbrillo" revision="b93979c05d099d54f997720190e5b7b4f84b5366" upstream="refs/heads/master"/>
<project name="aosp/platform/external/libchrome" path="src/aosp/external/libchrome" revision="8263a04a1e4e6e40ed479f62ac529874eb7675ef" upstream="refs/heads/master"/>
<project name="aosp/platform/external/modp_b64" path="src/third_party/modp_b64" revision="99dc13926931cedfd2e4e582c33ef657d0645c5c" upstream="refs/heads/master"/>
<project name="aosp/platform/system/connectivity/apmanager" path="src/aosp/system/connectivity/apmanager" revision="a9a4938a099d1bf1a87798e021791bbe2e467d00" upstream="refs/heads/master"/>
<project name="aosp/platform/system/connectivity/shill" path="src/aosp/system/connectivity/shill" revision="aabae9dd3eb2aba3054ef997228e31cf46293c90" upstream="refs/heads/master"/>
<project name="aosp/platform/system/firewalld" path="src/aosp/system/firewalld" revision="64fc5a23a1ae487409cc585b3fbf261c553acb4e" upstream="refs/heads/master"/>
<project name="aosp/platform/system/tpm" path="src/aosp/system/tpm" revision="ebdd3bfbecea0e5396fe318c9f8ec27507c333a1" upstream="refs/heads/master"/>
<project name="aosp/platform/system/update_engine" path="src/aosp/system/update_engine" revision="941cf235c5e56eddc6e4f2de2f38bee032a4dead" upstream="refs/heads/master"/>
<project name="aosp/platform/system/webservd" path="src/aosp/system/webservd" revision="8f325b7f28a4b3042753fb006bdbe95db98768cc" upstream="refs/heads/master"/>
<project name="apps/libapps" path="src/third_party/libapps" revision="a2f30ee08fb8f7d0440ba7056d95591f146bcd04" upstream="refs/heads/master">
<annotation name="branch-mode" value="pin"/>
</project>
<project name="chromium/deps/libmtp" path="chromium/src/third_party/libmtp" remote="chromium" revision="4a93e2cfc133473ae58f17374c32669eea9a8912" upstream="refs/heads/master"/>
<project name="chromium/src/third_party/Python-Markdown" remote="chromium" revision="b08af21eb795e522e1b972cb85bff59edb1ae209" upstream="refs/heads/master"/>
<project name="chromium/src/tools/md_browser" remote="chromium" revision="f246a322b16c15723800ea6c6414af3a29d79ee9" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools,labtools" name="chromium/tools/depot_tools" remote="chromium" revision="5702f0baefc0c1321374d838f8fc27c18d79a2ae"/>
<project groups="minilayout,buildtools,chromeos-admin,labtools,sysmon,devserver" name="chromiumos/chromite" path="chromite" revision="800791b08fb908032fd5787737a7cdb71b13bb03" upstream="refs/heads/master">
<copyfile dest="AUTHORS" src="AUTHORS"/>
<copyfile dest="LICENSE" src="LICENSE"/>
</project>
<project name="chromiumos/docs" path="docs" revision="2e4d46ab32491f64aa29f40cbf6ae03c47cadd06" upstream="refs/heads/master"/>
<project name="chromiumos/graphyte" path="src/platform/graphyte" revision="51c13d169e7dcf7f9acbafbebd373cd6b310ed86" upstream="refs/heads/master"/>
<project name="chromiumos/infra/distfiles_updater" path="infra/distfiles_updater" revision="2ad0fd5216e6be358f78e06939ee609d8688e716" upstream="refs/heads/master"/>
<project name="chromiumos/infra/suite_scheduler" path="infra/suite_scheduler" revision="f61a998565223c4cf6c7e1b43f2e288d94a8f08f" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools,chromeos-admin,labtools,sysmon,devserver" name="chromiumos/infra_virtualenv" path="infra_virtualenv" revision="704dbb824410432fcd5902ed41509f40735e7fd8" upstream="refs/heads/master"/>
<project name="chromiumos/manifest" path="manifest" revision="5e50bca350e730b73b81d5707bf332c12efd5c82" upstream="refs/heads/master"/>
<project groups="minilayout" name="chromiumos/overlays/board-overlays" path="src/overlays" revision="5ec056fd7ee4c86695825f7dbdde6fa7dfe78df3" upstream="refs/heads/master"/>
<project groups="minilayout,labtools" name="chromiumos/overlays/chromiumos-overlay" path="src/third_party/chromiumos-overlay" revision="851c7e12377c7c4d5e0cad0b371283aae9fb85a8" sync-c="true" upstream="refs/heads/master"/>
<project groups="minilayout,labtools" name="chromiumos/overlays/eclass-overlay" path="src/third_party/eclass-overlay" revision="ad5d44ff5879038eec0c01bc8f9a76bbe2638001" upstream="refs/heads/master"/>
<project groups="minilayout,labtools" name="chromiumos/overlays/portage-stable" path="src/third_party/portage-stable" revision="74265e852ae812060a84e13d3618a0affce7aedf" upstream="refs/heads/master"/>
<project name="chromiumos/platform/arc-camera" path="src/platform/arc-camera" revision="4b849d43c50995975382ada12a6e96e5bc31dd12" upstream="refs/heads/master"/>
<project name="chromiumos/platform/assets" path="src/platform/assets" revision="07f5d5eb201c6f5c978df8f86e9e81907df54db1" upstream="refs/heads/master"/>
<project name="chromiumos/platform/audiotest" path="src/platform/audiotest" revision="a2834cbe4e9cb85356e115afd4f4b2398745cf75" upstream="refs/heads/master"/>
<project name="chromiumos/platform/battery_updater" path="src/platform/battery_updater" revision="32463c6de8e8c98d4b1711937bc7678afc121a85" upstream="refs/heads/master"/>
<project name="chromiumos/platform/bmpblk" path="src/platform/bmpblk" revision="2f616acb24a31c40b9e47a2d2e001a0a3b6d159e" upstream="refs/heads/master"/>
<project name="chromiumos/platform/bootcache" path="src/platform/bootcache" revision="ebe3a0995e90026433ffc62b7aeed6cad1f28694" upstream="refs/heads/master"/>
<project name="chromiumos/platform/btsocket" path="src/platform/btsocket" revision="1b65449a647c99556511df30b8ab660b98acce7f" upstream="refs/heads/master"/>
<project name="chromiumos/platform/chameleon" path="src/platform/chameleon" revision="50e26c0020940a88729ac3f2e194c5b5d475d8db" upstream="refs/heads/master"/>
<project name="chromiumos/platform/chromiumos-assets" path="src/platform/chromiumos-assets" revision="2f1ee8448a886ce1abad9c0e8741582244f8ab40" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools" name="chromiumos/platform/crostestutils" path="src/platform/crostestutils" revision="ea800d26846cc4bab2d5f3190062779dda49918b" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools,labtools" name="chromiumos/platform/crosutils" path="src/scripts" revision="3a4d23b50af09785d2eb94c152b7c4d3f42fe479" upstream="refs/heads/master"/>
<project name="chromiumos/platform/crosvm" path="src/platform/crosvm" revision="664bbcb9701234cf6a92196aaf807558a95f936c" upstream="refs/heads/master"/>
<project name="chromiumos/platform/depthcharge" path="src/platform/depthcharge" revision="33f9ca8ce70fb4b451bcecfb68814c9a079ec32e" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools,devserver" name="chromiumos/platform/dev-util" path="src/platform/dev" revision="b066b06cbdfa25fa153353e0e1587ddbe382b35b" upstream="refs/heads/master"/>
<project name="chromiumos/platform/dm-verity" path="src/platform/verity" revision="5d5faf68cdb05e477f0637f517f4926a0db1394a" upstream="refs/heads/master"/>
<project name="chromiumos/platform/drm-tests" path="src/platform/drm-tests" revision="fe6e6fa9d29c4fa24d42b4195e8f74b47a6e3142" upstream="refs/heads/master"/>
<project name="chromiumos/platform/ec" path="src/platform/ec" revision="6bbcf5b3f8fac6c6d4f8ea9edef470cf4887f1a7" upstream="refs/heads/master"/>
<project name="chromiumos/platform/experimental" path="src/platform/experimental" revision="0c9b56092424c370eff748b25d49caceb9a18dab" upstream="refs/heads/master"/>
<project name="chromiumos/platform/factory" path="src/platform/factory" revision="33ad0a188a62d8b378ab5ce690244b763eae6f3b" upstream="refs/heads/master"/>
<project name="chromiumos/platform/factory_installer" path="src/platform/factory_installer" revision="39dc50c15c59193776fa3d9636b0af5755594349" upstream="refs/heads/master"/>
<project name="chromiumos/platform/firmware" path="src/platform/firmware" revision="969149fc4ae6421006ab6f2b99eee2dd18ccdf39" upstream="refs/heads/master"/>
<project name="chromiumos/platform/frecon" path="src/platform/frecon" revision="da55e6cd18a13750b0fc417f8db6a310ad284231" upstream="refs/heads/master"/>
<project name="chromiumos/platform/gestures" path="src/platform/gestures" revision="43e38ba29ec1efeedca5fa72b68833b6199d1899" upstream="refs/heads/master"/>
<project name="chromiumos/platform/go-seccomp" path="src/platform/go-seccomp" revision="0280326e5bd212fcfbe3696e113730045debae74" upstream="refs/heads/master"/>
<project name="chromiumos/platform/google-breakpad" path="src/third_party/breakpad" revision="cc1deb44521d41125f5d617940a654c58c794325" upstream="refs/heads/master"/>
<project name="chromiumos/platform/imageloader" path="src/platform/imageloader" revision="a290471be8063ef1a1173d891e70ee6607d129ac" upstream="refs/heads/master"/>
<project name="chromiumos/platform/initramfs" path="src/platform/initramfs" revision="4510af8444a752854acf64a1ad08f086ae60fb4e" upstream="refs/heads/master"/>
<project name="chromiumos/platform/inputcontrol" path="src/platform/inputcontrol" revision="ae0b15dc322bab9bf6d7c4fcd5f77d488766a275" upstream="refs/heads/master"/>
<project name="chromiumos/platform/jabra_vold" path="src/platform/jabra_vold" revision="8830911158ae632b7626d0ebe33248e66ffaeef3" upstream="refs/heads/master"/>
<project name="chromiumos/platform/libevdev" path="src/platform/libevdev" revision="9f7a1961eb4726211e18abd147d5a11a4ea86744" upstream="refs/heads/master"/>
<project name="chromiumos/platform/memento_softwareupdate" path="src/platform/memento_softwareupdate" revision="c7ff5188fb31541c3c6173e8171155f965760883" upstream="refs/heads/master"/>
<project name="chromiumos/platform/minigbm" path="src/platform/minigbm" revision="8ac0c9a9550bd1fa57e49613fae45df9001f74fc" upstream="refs/heads/master"/>
<project name="chromiumos/platform/moblab" path="src/platform/moblab" revision="dca599879cab0dba8ed32ef3a5d1b82e26524732" upstream="refs/heads/master"/>
<project name="chromiumos/platform/monitor_reconfig" path="src/platform/monitor_reconfig" revision="f022d19d84f232290b596beeb26347f62442e7eb" upstream="refs/heads/master"/>
<project name="chromiumos/platform/mosys" path="src/platform/mosys" revision="b5e5dd108140db4d58816a2f87c6ce8156bc0ca6" upstream="refs/heads/master"/>
<project name="chromiumos/platform/mtpd" path="src/platform/mtpd" revision="17cc088dc198f626513d4154644d57553b69fefd" upstream="refs/heads/master"/>
<project name="chromiumos/platform/mtplot" path="src/platform/mtplot" revision="5e4f631e633384751f582bd9db5f4d6eb2112494" upstream="refs/heads/master"/>
<project name="chromiumos/platform/mttools" path="src/platform/mttools" revision="8e83b1936d92fa4992d6597862d10b801fbaa097" upstream="refs/heads/master"/>
<project name="chromiumos/platform/newblue" path="src/platform/newblue" revision="c7f05ef326c229b69453039ab467b65a03cb88d6" upstream="refs/heads/master"/>
<project name="chromiumos/platform/puffin" path="src/platform/puffin" revision="2426ccf4e3558eeca0d2a7e8dd0a900ae09d245f" upstream="refs/heads/master"/>
<project name="chromiumos/platform/punybench" path="src/platform/punybench" revision="c050715684a5dde3a4fc818f3de816a407fdb2de" upstream="refs/heads/master"/>
<project name="chromiumos/platform/system_api" path="src/platform/system_api" revision="ff270ca217a85f02bddcdd78d8cbc9d6a4641572" upstream="refs/heads/master"/>
<project name="chromiumos/platform/touch_firmware_test" path="src/platform/touch_firmware_test" revision="95a5fb7a1e4526ed8c8e641431f66f22f302cddc" upstream="refs/heads/master"/>
<project name="chromiumos/platform/touch_noise_filter" path="src/platform/touch_noise_filter" revision="f1eb895f7ea70ad99bbe60508fda825923c35af6" upstream="refs/heads/master"/>
<project name="chromiumos/platform/touch_updater" path="src/platform/touch_updater" revision="2c5fd79b6efa11bac3347b5a5b676014e8336462" upstream="refs/heads/master"/>
<project name="chromiumos/platform/touchbot" path="src/platform/touchbot" revision="75d8f1bfbbb3dfc870fcbc22f53cd16b66ac7f23" upstream="refs/heads/master"/>
<project name="chromiumos/platform/touchpad-tests" path="src/platform/touchpad-tests" revision="4a4e4cd4aae6f8b5fb5ca0f34b8e937835b08f08" upstream="refs/heads/master"/>
<project name="chromiumos/platform/tpm" path="src/third_party/tpm" revision="0cba6cadd1bea1ce3717779201d594c4c9131dc2" upstream="refs/heads/master"/>
<project name="chromiumos/platform/tpm_lite" path="src/platform/tpm_lite" revision="066c7f963b3ef733716251b666e0af0afd03b4fe" upstream="refs/heads/master"/>
<project name="chromiumos/platform/uboot-env" path="src/platform/uboot-env" revision="108ebbfac4d13d11e1940216434c368384ee0c0b" upstream="refs/heads/master"/>
<project groups="buildtools" name="chromiumos/platform/vboot_reference" path="src/platform/vboot_reference" revision="de4cefc915938a787575786c3526599f61de1a63" upstream="refs/heads/master"/>
<project name="chromiumos/platform/vpd" path="src/platform/vpd" revision="0ed732a09b5cd199e4741624437aa0a85866e3c2" upstream="refs/heads/master"/>
<project name="chromiumos/platform/webplot" path="src/platform/webplot" revision="bbd5ea22ef9f8e109e363b26958d9a2fc8921f0f" upstream="refs/heads/master"/>
<project name="chromiumos/platform/xf86-input-cmt" path="src/platform/xf86-input-cmt" revision="3f2ffc921952e57a4343463b0679d90b80b51fc7" upstream="refs/heads/master"/>
<project name="chromiumos/platform/xorg-conf" path="src/platform/xorg-conf" revision="e2b1fe70d712d2d8f32084ec1ab500e8e74c12f9" upstream="refs/heads/master"/>
<project name="chromiumos/platform2" path="src/platform2" revision="55211382d27a77ee68e33d95eaabc75e2c13a6e7" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools,labtools" name="chromiumos/repohooks" path="src/repohooks" revision="20532baaae557c9c75121bca7bbe93225600c46e" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/adhd" path="src/third_party/adhd" revision="2e14c232763ac89fd9d2fa5e9b3fdcf6581b2db8" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/android_mtdutils" path="src/third_party/android_mtdutils" revision="9bcfc3ee238f16925e9aaa4573129784ebb397e7" upstream="chromeos"/>
<project name="chromiumos/third_party/arm-trusted-firmware" path="src/third_party/arm-trusted-firmware" revision="95fba14bc483055114d40e72386daf9c021177b6" upstream="refs/heads/upstream_mirror/master">
<annotation name="branch-mode" value="create"/>
</project>
<project name="chromiumos/third_party/atheros" path="src/third_party/atheros" revision="52a5bdaa8930c14ee42518354de3e5ec09911c6b" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/atrusctl" path="src/third_party/atrusctl" revision="0bd2504604c3e3980025e11d2b45865b6806340c" upstream="refs/heads/master"/>
<project groups="buildtools,labtools,devserver" name="chromiumos/third_party/autotest" path="src/third_party/autotest/files" revision="5511bd329a1597c761a315e320a8ec2e816f4853" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/bluez" path="src/third_party/bluez" revision="7066947d5b6ad8af9608d1b82c92693cff9fcc26" upstream="refs/heads/chromeos-5.44"/>
<project name="chromiumos/third_party/bootstub" path="src/third_party/bootstub" revision="5ac54e8d3d305c2c6c7297e8e54d3cf7e4629b29" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/broadcom" path="src/third_party/broadcom" revision="4070e7161f2f1a1a22027a744eb868500688f0b6" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/cbootimage" path="src/third_party/cbootimage" revision="b7d5b2d6a6dd05874d86ee900ff441d261f9034c" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/chrontel" path="src/third_party/chrontel" revision="7bcd0328d0eeef6a0539bd0ba80cd9a545e6cf4a" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/coreboot" path="src/third_party/coreboot" revision="b6d2a7286a25943c8a225833c7b50ec0d033f351" upstream="refs/heads/chromeos-2016.05"/>
<project name="chromiumos/third_party/coreboot/blobs" path="src/third_party/coreboot/3rdparty/blobs" revision="9ba07035ed0acb28902cce826ea833cf531d57c1" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/cryptoc" path="src/third_party/cryptoc" revision="6283eeeaf5ccebcca982d5318b36d49e7b32cb6d" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/cypress-tools" path="src/third_party/cypress-tools" revision="043fba1c35f89cce95f804bf6d4f01cfc23a6c21" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/daisydog" path="src/third_party/daisydog" revision="f21d857fde838f7cb141f81c49070abbdf343fce" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/dbus-cplusplus" path="src/third_party/dbus-c++" revision="904f49fd770dd559800523edd91c1226e131655d" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/dbus-spy" path="src/third_party/dbus-spy" revision="0e04421c73b24536de7fcc1886da469d8b7a2a41" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/displaylink-updater" path="src/third_party/displaylink-updater" revision="a52808b5995fe2ed481269c8f089358d4b451d5c" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools" name="chromiumos/third_party/dpkt" path="chromite/third_party/dpkt" revision="f5259728b1294412bee945df9708efba09ea9160">
<annotation name="branch-mode" value="pin"/>
</project>
<project name="chromiumos/third_party/edk2" path="src/third_party/edk2" revision="0aa39d284043be61b5f1222afdffd39a5abaf3aa" upstream="refs/heads/chromeos-2014.04"/>
<project name="chromiumos/third_party/em100" path="src/third_party/em100" revision="6e60dbae5bf62cd0ffffb9fc5ca9ba93e831ee88" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/flashmap" path="src/third_party/flashmap" revision="9108393752ffd93b133037add1f7b484de09bdbc" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/flashrom" path="src/third_party/flashrom" revision="d42cf5ae80ed35f5c8de7c63a4e565cf06795c81" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/gcc" path="src/third_party/gcc" revision="a2bc87ab8851051e765d60626a6997f63ddfe00e" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools" name="chromiumos/third_party/gdata" path="chromite/third_party/gdata" revision="fe7e5c90a9827feb66ed446b2d297a1618b25272" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/gdmwimax" path="src/third_party/gdmwimax" revision="e8236b4b2d66b1972e4f84955a238134acd7f6a1" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/gobi3k-sdk" path="src/third_party/gobi3k-sdk" revision="5e5d1a65cbf855609e4d7c9c425615090a834704" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/grub2" path="src/third_party/grub2" revision="df6034c59cb2d847f9e780cf2def30c5c9b8305f" upstream="refs/heads/master"/>
<project groups="labtools" name="chromiumos/third_party/hdctools" path="src/third_party/hdctools" revision="2fb1e95f675ea7dff86313f537fe343d98e1cb9f" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/hostap" path="src/third_party/wpa_supplicant" revision="8601bb1a7c10425b150796a9d51a8cbf87639643" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/huddly-updater" path="src/third_party/huddly-updater" revision="161c244c9ec418dee34bd4843c15f61e58bd86ae" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/kernel" path="src/third_party/kernel/v3.8" revision="e24bb8bc26b2a1298685f84cdcf41ac19d8f2c32" upstream="refs/heads/chromeos-3.8"/>
<project name="chromiumos/third_party/kernel" path="src/third_party/kernel/v3.10" revision="7cb9f1ba6af767620ded214d0391169d192e43b2" upstream="refs/heads/chromeos-3.10"/>
<project name="chromiumos/third_party/kernel" path="src/third_party/kernel/v3.14" revision="1bedb6afb96ff089070db0abac280bc546def480" upstream="refs/heads/chromeos-3.14"/>
<project name="chromiumos/third_party/kernel" path="src/third_party/kernel/v3.18" revision="684dbc9bd2478f727cbd712bcad8e3fd0343a561" upstream="refs/heads/chromeos-3.18"/>
<project name="chromiumos/third_party/kernel" path="src/third_party/kernel/v4.4" revision="7ddb4bdd8712a3a00fc8efe22586eadb75b27391" upstream="refs/heads/chromeos-4.4"/>
<project name="chromiumos/third_party/khronos" path="src/third_party/khronos" revision="bbd199f8f3dc9c2a49cfecfc7956fe7706d9f0e9" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/kvmtool" path="src/third_party/kvmtool" revision="9dc621e77e7e4f3c045831021b04d19997d3deb5" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libc-bench" path="src/third_party/libc-bench" revision="76793dd4b09191a78a78180012718e72d792717f" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libdrm" path="src/third_party/libdrm" revision="0c7748b56694e9b00537f27bbe9edb11c78ce08f" upstream="refs/heads/chromeos-2.4.70"/>
<project name="chromiumos/third_party/libmbim" path="src/third_party/libmbim" revision="afc1b877083133dbb52958d1a9e1b621761c06ab" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libqmi" path="src/third_party/libqmi" revision="7b5fbfa86476ce1641891064b222a56bf24aff4a" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libresample" path="src/third_party/libresample" revision="cc9f20f439396b7d45e94b8301edd95d33f26a46" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libscrypt" path="src/third_party/libscrypt" revision="b45c53f9418a6eff2c8ed98703a55f96029304b1" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/libsigrok" path="src/third_party/libsigrok" revision="199fe31115c76231746f5953271795d58679561c" upstream="refs/heads/chromeos"/>
<project name="chromiumos/third_party/libsigrok-cli" path="src/third_party/sigrok-cli" revision="c9edfa218e5a5972531b6f4a3ece8d33a44ae1b5" upstream="refs/heads/chromeos"/>
<project name="chromiumos/third_party/libsigrokdecode" path="src/third_party/libsigrokdecode" revision="3279c2825684c7009775b731d0a9e37815778282" upstream="refs/heads/chromeos"/>
<project name="chromiumos/third_party/libv4lplugins" path="src/third_party/libv4lplugins" revision="e79d5093d0c93b9072f45415b29e12b2740db25e" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/linux-firmware" path="src/third_party/linux-firmware" revision="b9aa9932d0fe198195c852d3a31c650fce4d5d65" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/ltp" path="src/third_party/ltp" revision="7df860dd2389c5c9a5b2ed9ac8a7f1d48d6fed03" upstream="refs/heads/chromeos-20150119"/>
<project name="chromiumos/third_party/marvell" path="src/third_party/marvell" revision="b5d3741d042bde7941284303712c3790ab4e489d" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/memtest" path="src/third_party/memtest" revision="3d4be6e3bfd819856e38a82e35c206fec4551851" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/mesa" path="src/third_party/arc-mesa" revision="363ddcc065f0ea30154fde1c28898d5fe4fc7bc6" upstream="refs/heads/arc-12.1.0-pre2"/>
<project name="chromiumos/third_party/mesa" path="src/third_party/mesa" revision="9baf1ff8fc06d8c986e55465f77427d416ecd710" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/mesa" path="src/third_party/mesa-img" revision="129178893b2260df22db96327c5ca9c2ce7db046" upstream="refs/heads/mesa-img"/>
<project name="chromiumos/third_party/mimo-updater" path="src/third_party/mimo-updater" revision="6ee0c34335fd6d5752ca35cb909ca8fc48415295" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/minifakedns" path="src/third_party/miniFakeDns" revision="6184bea119dea53da539727fe8c2a116f98cef24" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/mmc-utils" path="src/third_party/mmc-utils" revision="bcc3e2e4246431be511be3959a11cd9733bedd29" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/modemmanager-next" path="src/third_party/modemmanager-next" revision="c3cded2efc1c82a18639ae4109d6dbc2d6a95502" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/nfs-ganesha" path="src/third_party/nfs-ganesha" revision="0ca03501dfd49f8091a04f941c05a71246b24bf4" upstream="refs/heads/V2.3-stable"/>
<project name="chromiumos/third_party/ntirpc" path="src/third_party/ntirpc" revision="9188a4c63881f5c26283ac05132f97a408a67462" upstream="refs/heads/V1.3.3-cros"/>
<project name="chromiumos/third_party/opencryptoki" path="src/third_party/opencryptoki" revision="b67690aeeb4174b2253db18a9c1b19eeb219a4ef" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/portage_tool" path="src/third_party/portage_tool" revision="3ccfed9fd25d8e3c01e5be7d737e8d478fb46f70" upstream="refs/heads/chromeos-2.2.12"/>
<project groups="minilayout,buildtools" name="chromiumos/third_party/pyelftools" path="chromite/third_party/pyelftools" revision="19b3e610c86fcadb837d252c794cb5e8008826ae" upstream="refs/heads/master-0.22"/>
<project name="chromiumos/third_party/realtek-updater" path="src/third_party/realtek-updater" revision="7e603e12fbf9d2a8aeb67f1075fe43dbfaf52f7f" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/rootdev" path="src/third_party/rootdev" revision="b9b8f1de0ab9d4b0e1739d7c0dc4ec232b85a5c3" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/seabios" path="src/third_party/seabios" revision="3004147dd3707e600772ec6c5d37beac7f4b8eb4" upstream="refs/heads/chromeos-2014.11.03"/>
<project name="chromiumos/third_party/sis-updater" path="src/third_party/sis-updater" revision="3cd8fe58f994440d2e5e6238e45611b9f2dc709c" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/sysbios" path="src/third_party/sysbios" revision="33e1db34b8162de72a5e9bbbc44e6bce38978396" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/tegra-power-query" path="src/third_party/tegra-power-query" revision="66f1f0d949f4ca4836c1a65b622629205240e37a" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/tegrastats" path="src/third_party/tegrastats" revision="1be161a89525d840e1f6d1f21b3f45645a7dedb3" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/tlsdate" path="src/third_party/tlsdate" revision="8ccda0f645b65dc82f8676ce321406938a35d0b4" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/toolchain-utils" path="src/third_party/toolchain-utils" revision="4c5de98c78520452b325f10f26981c47c52430a3" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/tpm-emulator" path="src/third_party/tpm-emulator" revision="310a21ef24ace14b4d6e8095172445494f54ff25" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/tpm2" path="src/third_party/tpm2" revision="cb2de5a810df1898cd3ae47d517603b8b12371c0" upstream="refs/heads/master"/>
<project name="chromiumos/third_party/trousers" path="src/third_party/trousers" revision="31f4933a54cce7b157619eb1dd14ea32bec39279" upstream="refs/heads/master-0.3.13"/>
<project name="chromiumos/third_party/u-boot" path="src/third_party/u-boot/files" revision="cc72f5c47c758892b0f41257b0dd441a506ffdcd" upstream="refs/heads/chromeos-v2013.06"/>
<project name="chromiumos/third_party/u-boot" path="src/third_party/u-boot/next" revision="b30f38206f17aa73cda0a2fdaf4dc705527315ba" upstream="refs/heads/chromeos-v2015.07-rc1"/>
<project name="chromiumos/third_party/whining" path="src/third_party/whining" revision="f6e2acc3f21e8b7c9eec4a8871a65f50381daacf" upstream="refs/heads/master"/>
<project name="external/git.kernel.org/fs/xfs/xfstests-dev" path="src/third_party/xfstests" revision="9000551d9b7874ba8bc98a3b9dbf2526f3564527" upstream="refs/heads/master"/>
<project groups="minilayout,buildtools" name="external/swarming.client" path="chromite/third_party/swarming.client" remote="chromium" revision="715861067a7cc8d20d2d629b6d76d796c004feb4"/>
<project name="linux-syscall-support" path="src/third_party/breakpad/src/third_party/lss" revision="3f6478ac95edf86cd3da300c2c0d34a438f5dbeb"/>
<project name="platform/bootable/recovery" path="src/aosp/bootable/recovery" remote="aosp" revision="764eb215afddc013fb663804306d8b29ab85caf8" upstream="refs/heads/master"/>
<project name="platform/external/bsdiff" path="src/aosp/external/bsdiff" remote="aosp" revision="47db46b45d266d4cb15040c3b6389a2c18f2ab59" upstream="refs/heads/master"/>
<project name="platform/external/libcxx" path="src/aosp/external/libcxx" remote="aosp" revision="1e705dad853445419ccc8d35d82de263e91de3f3" upstream="refs/heads/master"/>
<project name="platform/external/libcxxabi" path="src/aosp/external/libcxxabi" remote="aosp" revision="c41479a1d7de7fe6e9cfbff9be21382f7b23ace7" upstream="refs/heads/master"/>
<project name="platform/external/libmojo" path="src/aosp/external/libmojo" remote="aosp" revision="24543f227908c2e949bb9a15b40276f59fcc9a0a" upstream="refs/heads/master"/>
<project name="platform/external/minijail" path="src/aosp/external/minijail" remote="aosp" revision="dba6209b4f3b22d53d4fa64b766677da417982cd" upstream="refs/heads/master"/>
<project name="toolchain/binutils" path="src/aosp/toolchain/binutils" remote="aosp" revision="c80811581709b9346364e3229b888f9ad830cdf5" upstream="refs/heads/master"/>
<project name="toolchain/gcc" path="src/aosp/toolchain/gcc" remote="aosp" revision="32c89c19b042a12b5a1bf0153299154ea5435c03"/>
<project name="weave/libweave" path="src/weave/libweave" revision="fa29d8f43a37aaf4b47fd2f3c76785050d075a7d" upstream="refs/heads/master"/>
<repo-hooks enabled-list="pre-upload" in-project="chromiumos/repohooks"/>
<pending_commit branch="chromeos-4.4" change_id="I0a217883bd2844e1222950cb17cde76c883ffac1" commit="e5964743a7f80096402374ef52a3f7ae411045b7" commit_message="UPSTREAM: drm/i915/ringbuffer: Move all generic engine-&gt;dispatch_batchbuffer together Consolidate the block of default vfuncs for dispatching the batchbuffer. Just a minor tweak on top of Tvrtko's great job of tidying up the vfunc initialisation. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467361093-20209-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; (cherry picked from commit 6f7bef75d10e04ad62c0264614df4e013e5e4b67) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I0a217883bd2844e1222950cb17cde76c883ffac1 Reviewed-on: https://chromium-review.googlesource.com/460274 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460274" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/74/460274/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I4432efcd2aef86252dffd18c09084102ae02c2ef" commit="1241ea3b18b2cb438659e7804a8d1495a6c99276" commit_message="UPSTREAM: drm/i915/ringbuffer: Move all default irq vfuncs init to a separate func Just plonk all the default irq vfuncs together in one function to keep the initialisers of reasonable size. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467361093-20209-2-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; (cherry picked from commit ed00307893df2a8386307aba36e4a552b72ffb89) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I4432efcd2aef86252dffd18c09084102ae02c2ef Reviewed-on: https://chromium-review.googlesource.com/460275 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460275" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/75/460275/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ia696a95a2ab5730e419279042eaeb0dd2d3178d3" commit="45fff0d4f91aadd0f439fd5e71c1c68a464a7810" commit_message="UPSTREAM: drm/i915/bxt: Export pooled eu info to userspace Pooled EU is a bxt only feature and kernel changes are already merged. This feature is not yet exposed to userspace as the support was not yet available. Beignet team expressed interest and added patches to use this. Since we now have a user and patches to use them, expose them from the kernel side as well. v2: fix compile error [1] https://lists.freedesktop.org/archives/beignet/2016-June/007698.html [2] https://lists.freedesktop.org/archives/beignet/2016-June/007699.html Cc: Winiarski, Michal &lt;michal.winiarski@intel.com&gt; Cc: Zou, Nanhai &lt;nanhai.zou@intel.com&gt; Cc: Yang, Rong R &lt;rong.r.yang@intel.com&gt; Cc: Tim Gore &lt;tim.gore@intel.com&gt; Cc: Jeff McGee &lt;jeff.mcgee@intel.com&gt; Signed-off-by: Arun Siluvery &lt;arun.siluvery@linux.intel.com&gt; Acked-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467369782-25992-1-git-send-email-arun.siluvery@linux.intel.com Acked-by: Jani Nikula &lt;jani.nikula@intel.com&gt; (cherry picked from commit 37f501afed23fa1126017255495d5be5e97c9d6d) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ia696a95a2ab5730e419279042eaeb0dd2d3178d3 Reviewed-on: https://chromium-review.googlesource.com/460276 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460276" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/76/460276/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I3ff673d5ce8cdd589da533347e82d9f2d85f0c43" commit="d011fa78aacd337c16b11af3197bffbc76dc86c0" commit_message="UPSTREAM: drm/i915/shrinker: Flush active on objects before counting As we inspect obj-&gt;active to decide how many objects we can shrink (we only shrink idle objects), it helps to flush the active lists first in order to have a more accurate count of available objects. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-1-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit bed50aea61df4e62395620795079f0e7a3876723) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I3ff673d5ce8cdd589da533347e82d9f2d85f0c43 Reviewed-on: https://chromium-review.googlesource.com/460277 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460277" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/77/460277/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I0a1fe74dd1da86b828c1b6f5938fa4e423229e6c" commit="2edac6e67351c08758343ca1468878b751656989" commit_message="UPSTREAM: drm/i915: Delay queuing hangcheck to wait-request We can forgo queuing the hangcheck from the start of every request to until we wait upon a request. This reduces the overhead of every request, but may increase the latency of detecting a hang. However, if nothing every waits upon a hang, did it ever hang? It also improves the robustness of the wait-request by ensuring that the hangchecker is indeed running before we sleep indefinitely (and thereby ensuring that we never actually sleep forever waiting for a dead GPU). As pointed out by Tvrtko, it is possible for a GPU hang to go unnoticed for as long as nobody is waiting for the GPU. Though this rare, during that time we may be consuming more power than if we had promptly recovered, and in the most extreme case we may exhaust all memory before forcing the hangcheck. Something to be wary off in future. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-2-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 05535726d3004d8a4d1444f310ab27b251391a70) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I0a1fe74dd1da86b828c1b6f5938fa4e423229e6c Reviewed-on: https://chromium-review.googlesource.com/460278 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460278" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/78/460278/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I9ba600112da4b3bd7279a0fadacef7522f19489e" commit="5efb3292dd45f5301d0ab5442c81d2d7248f6548" commit_message="UPSTREAM: drm/i915: Remove the dedicated hangcheck workqueue The queue only ever contains at most one item and has no special flags. It is just a very simple wrapper around the system-wq - a complication with no benefits. v2: Use the system_long_wq as we may wish to capture the error state after detecting the hang - which may take a bit of time. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-3-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 7774002586703aac3952f332bdf14759865171ef) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I9ba600112da4b3bd7279a0fadacef7522f19489e Reviewed-on: https://chromium-review.googlesource.com/460279 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460279" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/79/460279/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Icfab2c780ad8898ebdf22aae1366b506dfd67397" commit="850725d828d6b73ef1096ab287b239620a0bf146" commit_message="UPSTREAM: drm/i915: Make queueing the hangcheck work inline Since the function is a small wrapper around schedule_delayed_work(), move it inline to remove the function call overhead for the principle caller. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-4-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 26a02b8fc35ff2c393505bccd9f046e8d50c1708) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Icfab2c780ad8898ebdf22aae1366b506dfd67397 Reviewed-on: https://chromium-review.googlesource.com/460280 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460280" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/80/460280/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I4cd825c2a57f3155634d2b57a66a885eb22d7829" commit="df6833e3bdbc5424347c31487b68fdf9585f5c6c" commit_message="UPSTREAM: drm/i915: Separate GPU hang waitqueue from advance Currently __i915_wait_request uses a per-engine wait_queue_t for the dual purpose of waking after the GPU advances or for waking after an error. In the future, we may add even more wake sources and require greater separation, but for now we can conceptually simplify wakeups by separating the two sources. In particular, this allows us to use different wait-queues (e.g. one on the engine advancement, a global one for errors and one on each requests) without any hassle. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-5-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 1f15b76f1ec973d1eb5d21b6d98b21aebb9025f1) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I4cd825c2a57f3155634d2b57a66a885eb22d7829 Reviewed-on: https://chromium-review.googlesource.com/460281 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460281" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/81/460281/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I1afe73c18d9a147b2777e0ac76c44c768fcf0005" commit="9e7966c93faf4d691f82e3cefcddb9548e93cda4" commit_message="UPSTREAM: drm/i915: Slaughter the thundering i915_wait_request herd One particularly stressful scenario consists of many independent tasks all competing for GPU time and waiting upon the results (e.g. realtime transcoding of many, many streams). One bottleneck in particular is that each client waits on its own results, but every client is woken up after every batchbuffer - hence the thunder of hooves as then every client must do its heavyweight dance to read a coherent seqno to see if it is the lucky one. Ideally, we only want one client to wake up after the interrupt and check its request for completion. Since the requests must retire in order, we can select the first client on the oldest request to be woken. Once that client has completed his wait, we can then wake up the next client and so on. However, all clients then incur latency as every process in the chain may be delayed for scheduling - this may also then cause some priority inversion. To reduce the latency, when a client is added or removed from the list, we scan the tree for completed seqno and wake up all the completed waiters in parallel. Using igt/benchmarks/gem_latency, we can demonstrate this effect. The benchmark measures the number of GPU cycles between completion of a batch and the client waking up from a call to wait-ioctl. With many concurrent waiters, with each on a different request, we observe that the wakeup latency before the patch scales nearly linearly with the number of waiters (before external factors kick in making the scaling much worse). After applying the patch, we can see that only the single waiter for the request is being woken up, providing a constant wakeup latency for every operation. However, the situation is not quite as rosy for many waiters on the same request, though to the best of my knowledge this is much less likely in practice. Here, we can observe that the concurrent waiters incur extra latency from being woken up by the solitary bottom-half, rather than directly by the interrupt. This appears to be scheduler induced (having discounted adverse effects from having a rbtree walk/erase in the wakeup path), each additional wake_up_process() costs approximately 1us on big core. Another effect of performing the secondary wakeups from the first bottom-half is the incurred delay this imposes on high priority threads - rather than immediately returning to userspace and leaving the interrupt handler to wake the others. To offset the delay incurred with additional waiters on a request, we could use a hybrid scheme that did a quick read in the interrupt handler and dequeued all the completed waiters (incurring the overhead in the interrupt handler, not the best plan either as we then incur GPU submission latency) but we would still have to wake up the bottom-half every time to do the heavyweight slow read. Or we could only kick the waiters on the seqno with the same priority as the current task (i.e. in the realtime waiter scenario, only it is woken up immediately by the interrupt and simply queues the next waiter before returning to userspace, minimising its delay at the expense of the chain, and also reducing contention on its scheduler runqueue). This is effective at avoid long pauses in the interrupt handler and at avoiding the extra latency in realtime/high-priority waiters. v2: Convert from a kworker per engine into a dedicated kthread for the bottom-half. v3: Rename request members and tweak comments. v4: Use a per-engine spinlock in the breadcrumbs bottom-half. v5: Fix race in locklessly checking waiter status and kicking the task on adding a new waiter. v6: Fix deciding when to force the timer to hide missing interrupts. v7: Move the bottom-half from the kthread to the first client process. v8: Reword a few comments v9: Break the busy loop when the interrupt is unmasked or has fired. v10: Comments, unnecessary churn, better debugging from Tvrtko v11: Wake all completed waiters on removing the current bottom-half to reduce the latency of waking up a herd of clients all waiting on the same request. v12: Rearrange missed-interrupt fault injection so that it works with igt/drv_missed_irq_hang v13: Rename intel_breadcrumb and friends to intel_wait in preparation for signal handling. v14: RCU commentary, assert_spin_locked v16: Sort seqno-groups by priority so that first-waiter has the highest task priority (and so avoid priority inversion). v17: Add waiters to post-mortem GPU hang state. v18: Return early for a completed wait after acquiring the spinlock. Avoids adding ourselves to the tree if the is already complete, and skips the awkward question of why we don't do completion wakeups for waits earlier than or equal to ourselves. v19: Prepare for init_breadcrumbs to fail. Later patches may want to allocate during init, so be prepared to propagate back the error code. Testcase: igt/gem_concurrent_blit Testcase: igt/benchmarks/gem_latency Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: &quot;Rogozhkin, Dmitry V&quot; &lt;dmitry.v.rogozhkin@intel.com&gt; Cc: &quot;Gong, Zhipeng&quot; &lt;zhipeng.gong@intel.com&gt; Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt; Cc: Dave Gordon &lt;david.s.gordon@intel.com&gt; Cc: &quot;Goel, Akash&quot; &lt;akash.goel@intel.com&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@linux.intel.com&gt; #v18 Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-6-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 688e6c7258164de86d626e8e983ca8d28015c263) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I1afe73c18d9a147b2777e0ac76c44c768fcf0005 Reviewed-on: https://chromium-review.googlesource.com/460282 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460282" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/82/460282/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I814377fef8d12f9d58f3b182efff4b826326e6df" commit="04a6b5af833d52aa37d330260762938c6ce87f70" commit_message="UPSTREAM: drm/i915: Spin after waking up for an interrupt When waiting for an interrupt (waiting for the engine to complete some work), we know we are the only waiter to be woken on this engine. We also know when the GPU has nearly completed our request (or at least started processing it), so after being woken and we detect that the GPU is active and working on our request, allow us the bottom-half (the first waiter who wakes up to handle checking the seqno after the interrupt) to spin for a very short while to reduce client latencies. The impact is minimal, there was an improvement to the realtime-vs-many clients case, but exporting the function proves useful later. However, it is tempting to adjust irq_seqno_barrier to include the spin. The problem is first ensuring that the &quot;start-of-request&quot; seqno is coherent as we use that as our basis for judging when it is ok to spin. If we could, spinning there could dramatically shorten some sleeps, and allow us to make the barriers more conservative to handle missed seqno writes on more platforms (all gen7+ are known to have the occasional issue, at least). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-7-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit f69a02c9d57d50c7f688cf0be2b65ea9e3087fc9) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I814377fef8d12f9d58f3b182efff4b826326e6df Reviewed-on: https://chromium-review.googlesource.com/460283 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460283" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/83/460283/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I848def2c5b97017c847d334f3dcbfc26ef259573" commit="4a30e19cafef32cf2cb98ae99788587833225859" commit_message="UPSTREAM: drm/i915: Use HWS for seqno tracking everywhere By using the same address for storing the HWS on every platform, we can remove the platform specific vfuncs and reduce the get-seqno routine to a single read of a cached memory location. v2: Fix semaphore_passed() to look at the signaling engine (not the waiter's) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-8-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 1b7744e7ba4e4ad17b5910796c9b1ca74063df01) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I848def2c5b97017c847d334f3dcbfc26ef259573 Reviewed-on: https://chromium-review.googlesource.com/460284 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460284" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/84/460284/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I753a49a636f42d6079bbe397d7fa300a355cf5aa" commit="ae146ba1e19b34ade4e981ed4eabf8d2baa2856f" commit_message="UPSTREAM: drm/i915: Stop mapping the scratch page into CPU space After the elimination of using the scratch page for Ironlake's breadcrumb, we no longer need to kmap the object. We therefore can move it into the high unmappable space and do not need to force the object to be coherent (i.e. snooped on !llc platforms). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-9-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit f8291952bd8c10e2dfb6fc0419ed747922ab90ea) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I753a49a636f42d6079bbe397d7fa300a355cf5aa Reviewed-on: https://chromium-review.googlesource.com/460285 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460285" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/85/460285/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I6aca98a1cff0016ebe8143c29c09578126cdf5b3" commit="c8850b1798a9b4e1ff44dea99b35541015f695fa" commit_message="UPSTREAM: drm/i915: Allocate scratch page from stolen With the last direct CPU access to the scratch page removed, we can now allocate it from our small amount of reserved system pages (stolen memory). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-10-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit de8fe1663a5e1e6d83b21caf000f462483a8a559) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I6aca98a1cff0016ebe8143c29c09578126cdf5b3 Reviewed-on: https://chromium-review.googlesource.com/460286 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460286" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/86/460286/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I68577c3552867adaea7523dd5e3b65fe261dc1a8" commit="20ed57f527eab844da59d922d95796b67f427ac8" commit_message="UPSTREAM: drm/i915: Refactor scratch object allocation for gen2 w/a buffer The gen2 w/a buffer is stuffed into the same slot as the gen5+ scratch buffer. If we pass in the size we want to allocate for the scratch buffer, both callers can use the same routine. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-11-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 7d5ea80720a8e53ff4ea309708cef2a7a0e163c7) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I68577c3552867adaea7523dd5e3b65fe261dc1a8 Reviewed-on: https://chromium-review.googlesource.com/460287 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460287" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/87/460287/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I6e9b97bb3026bb5e7df70ad0f2775444f8bf3422" commit="a476015c81565fb8883b35e47e07da3f8b1d88c4" commit_message="UPSTREAM: drm/i915: Add a delay between interrupt and inspecting the final seqno (ilk) On Ironlake, there is no command nor register to ensure that the write from a MI_STORE command is completed (and coherent on the CPU) before the command parser continues. This means that the ordering between the seqno write and the subsequent user interrupt is undefined (like gen6+). So to ensure that the seqno write is completed after the final user interrupt we need to delay the read sufficiently to allow the write to complete. This delay is undefined by the bspec, and empirically requires 75us even though a register read combined with a clflush is less than 500ns. Hence, the delay is due to an on-chip buffer rather than the latency of the write to memory. Note that the render ring controls this by filling the PIPE_CONTROL fifo with stalling commands that force the earliest pipe-control with the seqno to be completed before the command parser continues. Given that we need a barrier operation for BSD, we may as well forgo the extra per-batch latency by using a common per-interrupt barrier. Studying the impact of adding the usleep shows that in both sequences of and individual synchronous no-op batches is negligible for the media engine (where the write now is unordered with the interrupt). Converting the render engine over from the current glutton of pie-controls over to the per-interrupt delays speeds up both the sequential and individual synchronous no-ops by 20% and 60%, respectively. This speed up holds even when looking at the throughput of small copies (4KiB-&gt;4MiB), both serial and synchronous, by about 20%. This is because despite adding a significant delay to the interrupt, in all likelihood we will see the seqno write without having to apply the barrier (only in the rare corner cases where the write is delayed on the last required is the delay necessary). Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94307 Testcase: igt/gem_sync #ilk Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-12-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit f8973c217f07903247d222ab92ad37e2529aff2e) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I6e9b97bb3026bb5e7df70ad0f2775444f8bf3422 Reviewed-on: https://chromium-review.googlesource.com/460288 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460288" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/88/460288/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I8c2215f20e09a07b993dddf7e6b1203cc910163f" commit="77430fc255c8873dfc2504e5e66d09d7a253c74e" commit_message="UPSTREAM: drm/i915: Check the CPU cached value in HWS of seqno after waking the waiter If we have multiple waiters, we may find that many complete on the same wake up. If we first inspect the seqno from the CPU cache, we may reduce the number of heavyweight coherent seqno reads we require. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-13-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 7ec2c73b1dbe1cd83c52e4a386b2070331c5414c) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I8c2215f20e09a07b993dddf7e6b1203cc910163f Reviewed-on: https://chromium-review.googlesource.com/460289 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460289" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/89/460289/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ie0e6d04dc6aaf89ab6f47b343b66208bee1da975" commit="bb4ae68462ed032b724ba562d8e218cf1adfb780" commit_message="UPSTREAM: drm/i915: Only apply one barrier after a breadcrumb interrupt is posted If we flag the seqno as potentially stale upon receiving an interrupt, we can use that information to reduce the frequency that we apply the heavyweight coherent seqno read (i.e. if we wake up a chain of waiters). v2: Use cmpxchg to replace READ_ONCE/WRITE_ONCE for more explicit control of the ordering wrt to interrupt generation and interrupt checking in the bottom-half. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-14-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 3d5564e91025bd17d93d0a23ebf8e22309652591) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ie0e6d04dc6aaf89ab6f47b343b66208bee1da975 Reviewed-on: https://chromium-review.googlesource.com/460290 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460290" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/90/460290/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I82b9e3ed1cd5d0251d032eb2590d404b9a8fe6a6" commit="bd0550d0f473591e5d79b7559fcf23d8ba6f1077" commit_message="UPSTREAM: drm/i915: Stop setting wraparound seqno on initialisation We have testcases to ensure that seqno wraparound works fine, so we can forgo forcing everyone to encounter seqno wraparound during early uptime. seqno wraparound incurs a full GPU stall so not forcing it will eliminate one jitter from the early system. Using the testcases, we have very deterministic testing which given how difficult it would be to debug an issue (GPU hang) stemming from a wraparound using pure postmortem analysis I see no value in forcing a wrap during boot. Advancing the global next_seqno after a GPU reset is equally pointless. References? https://bugs.freedesktop.org/show_bug.cgi?id=95023 Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-15-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 1137fa8615e1c45cc79c7c6ff06704cd1702bcfd) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I82b9e3ed1cd5d0251d032eb2590d404b9a8fe6a6 Reviewed-on: https://chromium-review.googlesource.com/460291 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460291" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/91/460291/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I3360a5570c2f3e9c264fc406f1474a8f5cf814c3" commit="576dd5257fc2950898a4daa5985d32761ddf2850" commit_message="UPSTREAM: drm/i915: Convert trace-irq to the breadcrumb waiter If we convert the tracing over from direct use of ring-&gt;irq_get() and over to the breadcrumb infrastructure, we only have a single user of the ring-&gt;irq_get and so we will be able to simplify the driver routines (eliminating the redundant validation and irq refcounting). Process context is preferred over softirq (or even hardirq) for a couple of reasons: - we already utilize process context to have fast wakeup of a single client (i.e. the client waiting for the GPU inspects the seqno for itself following an interrupt to avoid the overhead of a context switch before it returns to userspace) - engine-&gt;irq_seqno() is not suitable for use from an softirq/hardirq context as we may require long waits (100-250us) to ensure the seqno write is posted before we read it from the CPU A signaling framework is a requirement for enabling dma-fences. v2: Move to a signaling framework based upon the waiter. v3: Track the first-signal to avoid having to walk the rbtree everytime. v4: Mark the signaler thread as RT priority to reduce latency in the indirect wakeups. v5: Make failure to allocate the thread fatal. v6: Rename kthreads to i915/signal:%u Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-16-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit c81d46138da658b6a4edc53d5d9aaf62d56d764b) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I3360a5570c2f3e9c264fc406f1474a8f5cf814c3 Reviewed-on: https://chromium-review.googlesource.com/460292 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460292" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/92/460292/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ifcab12e9725843057fbd554f5d9b41b1e4c15875" commit="f015477e8adfd55c000dcbd0caea7d0c4b31cfcc" commit_message="UPSTREAM: drm/i915: Embed signaling node into the GEM request Under the assumption that enabling signaling will be a frequent operation, lets preallocate our attachments for signaling inside the (rather large) request struct (and so benefiting from the slab cache). v2: Convert from void * to more meaningful names and types. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-17-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit b3850855f480a34bf528f78e1ff693739b3aa98c) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ifcab12e9725843057fbd554f5d9b41b1e4c15875 Reviewed-on: https://chromium-review.googlesource.com/460293 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460293" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/93/460293/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I341d28714fb9f39bfa1deed70bffe5d719a2065c" commit="a4dc17f22a9720f2d4edd0aa77ef915667c52aff" commit_message="UPSTREAM: drm/i915: Move the get/put irq locking into the caller With only a single callsite for intel_engine_cs-&gt;irq_get and -&gt;irq_put, we can reduce the code size by moving the common preamble into the caller, and we can also eliminate the reference counting. For completeness, as we are no longer doing reference counting on irq, rename the get/put vfunctions to enable/disable respectively and are able to review the use of posting reads. We only require the serialisation with hardware when enabling the interrupt (i.e. so we cannot miss an interrupt by going to sleep before the hardware truly enables it). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-18-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 31bb59cc01fda94e55eca7304e0e745908c3bec6) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I341d28714fb9f39bfa1deed70bffe5d719a2065c Reviewed-on: https://chromium-review.googlesource.com/460294 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460294" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/94/460294/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I5cfed9bb555c6151a84e8eefa0d826a8a7544a3f" commit="66f07651180601b22899938972df1ff4a030e614" commit_message="UPSTREAM: drm/i915: Simplify enabling user-interrupts with L3-remapping Borrow the idea from intel_lrc.c to precompute the mask of interrupts we wish to always enable to avoid having lots of conditionals inside the interrupt enabling. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-19-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 61ff75ac20ffa6d0039f643234d0c5244070fb15) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I5cfed9bb555c6151a84e8eefa0d826a8a7544a3f Reviewed-on: https://chromium-review.googlesource.com/460295 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460295" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/95/460295/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Idba3e063ade9fdf8f0c7707dc426bf2fcb831850" commit="6c5abc09dd4ab610c24cb56bce3654757f6efc94" commit_message="UPSTREAM: drm/i915: Remove debug noise on detecting fault-injection of missed interrupts Since the tests can and do explicitly check debugfs/i915_ring_missed_irqs for the handling of a &quot;missed interrupt&quot;, adding it to the dmesg at INFO is just noise. When it happens for real, we still class it as an ERROR. Note that I have chose to remove it entirely because when we detect the &quot;missed interrupt&quot; is irrelevant and the message contains no more information than we glean from looking in debugfs. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467390209-3576-20-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit c5a7b5aacea23f21f2def7c175c64bedbc872202) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Idba3e063ade9fdf8f0c7707dc426bf2fcb831850 Reviewed-on: https://chromium-review.googlesource.com/460296 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460296" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/96/460296/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I123b9579b834eb1b925faed1fb9fe9a45edbd7be" commit="9d8aa3fe4db8a1df331ae874515cd42407e2377b" commit_message="UPSTREAM: drm/i915: Fix inconsistent indenting in i915_error_state_to_str() smatch complains: drivers/gpu/drm/i915/i915_gpu_error.c:503 i915_error_state_to_str() warn: inconsistent indenting Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467470166-31717-4-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; (cherry picked from commit a98b7e58e93c7f937cb2283e600ed2d0a2bb74f4) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I123b9579b834eb1b925faed1fb9fe9a45edbd7be Reviewed-on: https://chromium-review.googlesource.com/460297 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460297" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/97/460297/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I69b2d370427a65636eb6b973158e68131d168166" commit="0c98d7f37478a9f5fc899b0b44f663d0dcc2c92c" commit_message="UPSTREAM: drm/i915: Remove check for !crtc_state in intel_plane_atomic_calc_changes() smatch spotted that: drivers/gpu/drm/i915/intel_display.c:11986 intel_plane_atomic_calc_changes() warn: variable dereferenced before check 'crtc_state' (see line 11972) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467470166-31717-9-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; (cherry picked from commit 841149909abb4cf9038ba0a12f3bec711f3ce09b) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I69b2d370427a65636eb6b973158e68131d168166 Reviewed-on: https://chromium-review.googlesource.com/510394 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="510394" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="2" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/94/510394/2" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="If5d2be9ea5277b9f4e99daa289793d916554a24f" commit="3121917cdfc7b2dbcc4720896b57db41e83914a5" commit_message="UPSTREAM: drm/i915: Only start retire worker when idle The retire worker is a low frequency task that makes sure we retire outstanding requests if userspace is being lax. We only need to start it once as it remains active until the GPU is idle, so do a cheap test before the more expensive queue_work(). A consequence of this is that we need correct locking in the worker to make the hot path of request submission cheap. To keep the symmetry and keep hangcheck strictly bound by the GPU's wakelock, we move the cancel_sync(hangcheck) to the idle worker before dropping the wakelock. v2: Guard against RCU fouling the breadcrumbs bottom-half whilst we kick the waiter. v3: Remove the wakeref assertion squelching (now we hold a wakeref for the hangcheck, any rpm error there is genuine). v4: To prevent excess work when retiring requests, we split the busy flag into two, a boolean to denote whether we hold the wakeref and a bitmask of active engines. v5: Reorder cancelling hangcheck upon idling to avoid a race where we might cancel a hangcheck after being preempted by a new task Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; References: https://bugs.freedesktop.org/show_bug.cgi?id=88437 Reviewed-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-1-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 67d97da34917fb0b21af4c0942a6e03b4b10c094) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: If5d2be9ea5277b9f4e99daa289793d916554a24f Reviewed-on: https://chromium-review.googlesource.com/460298 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460298" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/98/460298/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I761b25ca2b3adedcc3ce06c9c915b2d6cc4d7d47" commit="a11d3c4bf3f38d722bcba79f4d8bf0118ad8b84c" commit_message="UPSTREAM: drm/i915: Do not keep postponing the idle-work Rather than persistently postponing the idle-work everytime somebody calls i915_gem_retire_requests() (potentially ensuring that we never reach the idle state), queue the work the first time we detect all requests are complete. Then if in 100ms, more requests have been queued, we will abort the idle-worker and wait again until all the new requests have been completed. Of course, this does depend upon the idle worker cancelling itself gracefully from the previous patch. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-2-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 1b51bce27b58881275e855a9630918297ce867b8) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I761b25ca2b3adedcc3ce06c9c915b2d6cc4d7d47 Reviewed-on: https://chromium-review.googlesource.com/460299 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460299" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/99/460299/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I8e2309b321d12637ed7b9a7556ed9e569fad3730" commit="67055fdc0dfbc23c300276d601b21c0b1c51b2ff" commit_message="UPSTREAM: drm/i915: Remove redundant queue_delayed_work() from throttle ioctl We know, by design, that whilst the GPU is active (and thus we are throttling) the retire_worker is queued. Therefore attempting to requeue it with queue_delayed_work() is a no-op and we can safely remove it. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Joonas Lahtinen &lt;joonas.lahtinen@linux.intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-3-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit e307d62d5faba86622c19dca43883ac37bd8e34a) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I8e2309b321d12637ed7b9a7556ed9e569fad3730 Reviewed-on: https://chromium-review.googlesource.com/460300 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460300" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/00/460300/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I006f8645c9be5a4d6ea0535b9a8448cd5243f688" commit="236b396683e777d8ef95cfe0cb85b9821a583339" commit_message="UPSTREAM: drm/i915: Restore waitboost credit to the synchronous waiter Ideally, we want to automagically have the GPU respond to the instantaneous load by reclocking itself. However, reclocking occurs relatively slowly, and to the client waiting for a result from the GPU, too late. To compensate and reduce the client latency, we allow the first wait from a client to boost the GPU clocks to maximum. This overcomes the lag in autoreclocking, at the expense of forcing the GPU clocks too high. So to offset the excessive power usage, we currently allow a client to only boost the clocks once before we detect the GPU is idle again. This works reasonably for say the first frame in a benchmark, but for many more synchronous workloads (like OpenCL) we find the GPU clocks remain too low. By noting a wait which would idle the GPU (i.e. we just waited upon the last known request), we can give that client the idle boost credit (for their next wait) without the 100ms delay required for us to detect the GPU idle state. The intention is to boost clients that are stalling in the process of feeding the GPU more work (and who in doing so let the GPU idle), without granting boost credits to clients that are throttling themselves (such as compositors). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: &quot;Zou, Nanhai&quot; &lt;nanhai.zou@intel.com&gt; Cc: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt; Reviewed-by: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt; Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-4-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 0e6883b043754a44a682a8f8393862e0ef0490dc) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I006f8645c9be5a4d6ea0535b9a8448cd5243f688 Reviewed-on: https://chromium-review.googlesource.com/460301 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460301" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/01/460301/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I7dfc790436ac3226f26f92280b80f2e28782b38a" commit="440cf163a8e33bc175244a1dfe15fc3eee966b7a" commit_message="UPSTREAM: drm/i915: Add background commentary to &quot;waitboosting&quot; Describe the intent of boosting the GPU frequency to maximum before waiting on the GPU. RPS waitboosting was introduced with commit b29c19b64528 (&quot;drm/i915: Boost RPS frequency for CPU stalls&quot;) but lacked a concise comment in the code to explain itself. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-5-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit df4ba5099f80dac5f822c22937c37860ddd8e434) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I7dfc790436ac3226f26f92280b80f2e28782b38a Reviewed-on: https://chromium-review.googlesource.com/460302 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460302" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/02/460302/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Iaf56837f992167226f3c7c8cf6a21832a1df8cfa" commit="197e0ff66952ea7de4eb9b02da140403547fd54d" commit_message="UPSTREAM: drm/i915: Flush the RPS bottom-half when the GPU idles Make sure that the RPS bottom-half is flushed before we set the idle frequency when we decide the GPU is idle. This should prevent any races with the bottom-half and setting the idle frequency, and ensures that the bottom-half is bounded by the GPU's rpm reference taken for when it is active (i.e. between gen6_rps_busy() and gen6_rps_idle()). v2: Avoid recursively using the i915-&gt;wq - RPS does not touch the struct_mutex so has no place being on the ordered i915-&gt;wq. v3: Enable/disable interrupts for RPS busy/idle in order to prevent further HW access from RPS outside of the wakeref. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Imre Deak &lt;imre.deak@intel.com&gt; Cc: Jesse Barnes &lt;jbarnes@virtuousgeek.org&gt; References: https://bugs.freedesktop.org/show_bug.cgi?id=89728 Reviewed-by: Micha Winiarski &lt;michal.winiarski@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-6-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit c33d247d0e31df48ada35d71d1dc7830a4bb4314) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Iaf56837f992167226f3c7c8cf6a21832a1df8cfa Reviewed-on: https://chromium-review.googlesource.com/460303 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460303" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/03/460303/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ife1ffd5d89b298f1740e3ed05a62436e70a3e407" commit="f4a935e82cda87c70ceb45ef51aea4f1c0bc0e16" commit_message="UPSTREAM: drm/i915: Remove stop-rings debugfs interface Now that we have (near) universal GPU recovery code, we can inject a real hang from userspace and not need any fakery. Not only does this mean that the testing is far more realistic, but we can simplify the kernel in the process. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Arun Siluvery &lt;arun.siluvery@linux.intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-7-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 7b4d3a16dd97be0ebc793ea046b9af9d5c9b1b1a) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ife1ffd5d89b298f1740e3ed05a62436e70a3e407 Reviewed-on: https://chromium-review.googlesource.com/460304 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460304" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/04/460304/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Id57adefccf51ed18f615f651ec716fe898a4b31f" commit="c5c4d84146bd8263250ec16093746fc63000ecfd" commit_message="UPSTREAM: drm/i915: Record the ringbuffer associated with the request The request tells us where to read the ringbuf from, so use that information to simplify the error capture. If no request was active at the time of the hang, the ring is idle and there is no information inside the ring pertaining to the hang. Note carefully that this will reduce the amount of information stored in the error state - any ring without an active request will not be recorded. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Dave Gordon &lt;david.s.gordon@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-8-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit ba6e0418064de8c4dee914a5eb8574affe19e6f5) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Id57adefccf51ed18f615f651ec716fe898a4b31f Reviewed-on: https://chromium-review.googlesource.com/460305 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460305" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/05/460305/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I362a3b45824648768380462de87318e6e50a5dc9" commit="fe27cb44229e96ab79dcd461020f814afcc650b4" commit_message="UPSTREAM: drm/i915: Allow userspace to request no-error-capture upon GPU hangs igt likes to inject GPU hangs into its command streams. However, as we expect these hangs, we don't actually want them recorded in the dmesg output or stored in the i915_error_state (usually). To accommodate this allow userspace to set a flag on the context that any hang emanating from that context will not be recorded. We still do the error capture (otherwise how do we find the guilty context and know its intent?) as part of the reason for random GPU hang injection is to exercise the race conditions between the error capture and normal execution. v2: Split out the request-&gt;ringbuf error capture changes. v3: Move the flag defines next to the intel_context-&gt;flags definition Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Acked-by: Daniel Vetter &lt;daniel.vetter@ffwll.ch&gt; Reviewed-by: Dave Gordon &lt;david.s.gordon@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467616119-4093-9-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit bc3d674462e5df5f2b33adbfcaad9edff8b827f4) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I362a3b45824648768380462de87318e6e50a5dc9 Reviewed-on: https://chromium-review.googlesource.com/460306 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460306" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/06/460306/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I3378478128233b70b6194cda5d91797511f3b236" commit="b5eddf038a9cc0770e8fbf97006a63804354f719" commit_message="UPSTREAM: drm/i915: Limit i915_ring_test_irq debugfs to actual rings For simplicity in testing, only report known rings in the mask. This allows userspace to try and trigger a missed irq on every ring and do a comparison between i915_ring_test_irq and i915_ring_missed_irq to see if any rings failed. v2: Move the debug message to after the rings are selected (so that the message accurately reflects reality) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1466170505-8048-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; (cherry picked from commit 3a122c27673691f99120dcaf36bccaa471bfb0df) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I3378478128233b70b6194cda5d91797511f3b236 Reviewed-on: https://chromium-review.googlesource.com/460307 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460307" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/07/460307/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Icf373a9af96292c56fd850dd731660eeaf47d83a" commit="6e17e81c98d353eefa74ab551ac5e6fb1739bf83" commit_message="UPSTREAM: Revert &quot;drm/i915/kbl: drm/i915: Avoid GuC loading for now on Kabylake.&quot; This reverts commit 2b81b84471b9 Cc: Christophe Prigent &lt;christophe.prigent@intel.com&gt; Signed-off-by: Peter Antoine &lt;peter.antoine@intel.com&gt; Reviewed-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt; Signed-off-by: Rodrigo Vivi &lt;rodrigo.vivi@intel.com&gt; Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; (cherry picked from commit 6f8be28012f46352e5e54752a00946901a926c03) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Icf373a9af96292c56fd850dd731660eeaf47d83a Reviewed-on: https://chromium-review.googlesource.com/510395 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="510395" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="2" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/95/510395/2" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I144e0a6f0f8a42cbc884988b007d331a4f9baf1d" commit="a5491063bc8a2925359526d96e5e53faab26de24" commit_message="BACKPORT: drm/i915: Mass convert dev-&gt;dev_private to to_i915(dev) Since we now subclass struct drm_device, we can save pointer dances by noting the equivalence of struct drm_device and struct drm_i915_private, i.e. by using to_i915(). text data bss dec hex filename 1073824 4562 416 1078802 107612 drivers/gpu/drm/i915/i915.ko 1068976 4562 416 1073954 106322 drivers/gpu/drm/i915/i915.ko Created by the coccinelle script: @@ expression E; identifier p; @@ - struct drm_i915_private *p = E-&gt;dev_private; + struct drm_i915_private *p = to_i915(E); Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Dave Gordon &lt;david.s.gordon@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467628477-25379-1-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit fac5e23e3c385fde41aab4a23bc50c8c15ad4d00) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Conflicts: [Tarun] [&quot;1b6f49589 drm/i915: Remove intel_limit_t typedef&quot; and &quot;9e2c84751 drm/i915: Remove intel_clock_t typedef&quot; are not required.] drivers/gpu/drm/i915/intel_display.c [90198355 drm/i915/dsi: Add DCS control for Panel PWM is not really needed.] drivers/gpu/drm/i915/intel_dsi_dcs_backlight.c (deleted) Change-Id: I144e0a6f0f8a42cbc884988b007d331a4f9baf1d Reviewed-on: https://chromium-review.googlesource.com/460308 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460308" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/08/460308/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Id83229bf12e7b1f81906442af4c9fb4dd628c7d5" commit="d498222b4cb2aa93dc26ea101dcfbf706dee59d1" commit_message="BACKPORT: drm/i915: convert a few more E-&gt;dev_private to to_i915(E) Also remove some redundant dev and dev_priv locals Signed-off-by: Dave Gordon &lt;david.s.gordon@intel.com&gt; Cc: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467626365-29871-1-git-send-email-david.s.gordon@intel.com Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467628477-25379-2-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit f19ec8cb5a4e16299840be6220308793d443de3f) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Conflicts: [Tarun: Ignore &quot;74aa156ba9 drm/i915/bxt: reserve space for RC6 in the the GuC WOPCM&quot;. Dont reallt need GuC changes.] drivers/gpu/drm/i915/intel_guc_loader.c Change-Id: Id83229bf12e7b1f81906442af4c9fb4dd628c7d5 Reviewed-on: https://chromium-review.googlesource.com/460309 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460309" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/09/460309/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I5c6b7671ce6fc0a16c2d3ab4f14ef3e72fcc305a" commit="cb76ad1420df378e396b2f1a34b46e5948bf4d46" commit_message="UPSTREAM: drm/i915: Explicitly convert some macros to boolean values Some IS_ and HAS_ macros can return any non-zero value for true. One potential problem with that is that someone could assign them to integers and be surprised with the result. Therefore it is probably safer to do the conversion to 0/1 in the macros themselves. Luckily this does not seem to have an effect on code size. Only one call site was getting bit by this and a patch for that has been sent as &quot;drm/i915/guc: Protect against HAS_GUC_* returning true values other than one&quot;. v2: Added some extra braces as suggested by checkpatch. Signed-off-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Reviewed-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467643823-9798-1-git-send-email-tvrtko.ursulin@linux.intel.com (cherry picked from commit af1346a0f38fe5b762729a91ed10c7c7f59b76c9) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I5c6b7671ce6fc0a16c2d3ab4f14ef3e72fcc305a Reviewed-on: https://chromium-review.googlesource.com/510396 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="510396" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="2" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/96/510396/2" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I669df21de67e49d7769042368ea9fb8c22eec67d" commit="9f0d58ff62957b2ee9e71abd354200178bd4440f" commit_message="UPSTREAM: drm/i915: Replace lockless_dereference(bool) with READ_ONCE() After Joonas complained about using READ_ONCE() on the only use of the variable in the function, where the intent was to simply document that the read was intentionally racy and unlocked, I switched the READ_ONCE() over to lockless_dereference(). However, in linux-next that has a stronger type-check to only allow pointers and is no longer interchangeable with READ_ONCE(), see commit 331b6d8c7afc (&quot;locking/barriers: Validate lockless_dereference() is used on a pointer type&quot;) Reported-by: Stephen Rothwell &lt;sfr@canb.auug.org.au&gt; Fixes: 67d97da34917 (&quot;drm/i915: Only start retire worker when idle&quot;) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467705276-707-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; (cherry picked from commit b1379d49646e791def9a1c81ff7f04d571e71d7c) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I669df21de67e49d7769042368ea9fb8c22eec67d Reviewed-on: https://chromium-review.googlesource.com/460310 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460310" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/10/460310/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I347d4a241c12fff16ea769a7c94e764922f84993" commit="af4cbf52e79130bfad94e2f5e9de7852e12e6564" commit_message="UPSTREAM: drm/i915: Amalgamate gen6_mm_switch() and vgpu_mm_switch() These are identical, so let's just use the same vfunc. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467618513-4966-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; (cherry picked from commit 8eb95204d926ed0c3d1d588c352adef40ed673f2) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I347d4a241c12fff16ea769a7c94e764922f84993 Reviewed-on: https://chromium-review.googlesource.com/460311 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460311" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/11/460311/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I2ba01b90ca990fc8e962c2854f7858df00aff579" commit="f0b9b5f8474090ebceb854109a1a8e17cdfbfbd2" commit_message="UPSTREAM: drm/i915: Clean up GPU hang message Remove some redundant kernel messages as we deduce a hung GPU and capture the error state. v2: Fix &quot;hang&quot; vs &quot;no progress&quot; message whilst I was there v3: s/snprintf/scnprintf/ Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Mika Kuoppala &lt;mika.kuoppala@linux.intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467618513-4966-2-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; (cherry picked from commit 2b2842887de75c340ab427b898aa867964316d2f) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I2ba01b90ca990fc8e962c2854f7858df00aff579 Reviewed-on: https://chromium-review.googlesource.com/460312 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460312" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/12/460312/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I0b3b88e4d10ee195530e0c801d6f96853a2f4c55" commit="d9cf09231ca0e29c8f5775f2e39bbf25ed0b4f54" commit_message="UPSTREAM: drm/i915: Skip capturing an error state if we already have one As we only ever keep the first error state around, we can avoid some work that can be quite intrusive if we don't record the error the second time around. This does move the race whereby the user could discard one error state as the second is being captured, but that race exists in the current code and we hope that recapturing error state is only done for debugging. Note that as we discard the error state for simulated errors, igt that exercise error capture continue to function. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467618513-4966-3-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala &lt;mika.kuoppala@intel.com&gt; (cherry picked from commit 9777cca0c4d3d35a97cb5711be575967712bd59b) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I0b3b88e4d10ee195530e0c801d6f96853a2f4c55 Reviewed-on: https://chromium-review.googlesource.com/460313 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460313" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/13/460313/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ib869f1b5d4d81f4094cd050e778fa15b27dffc87" commit="4aaf7334fd55d052c7ff2b45432fcd6c074fae4e" commit_message="UPSTREAM: drm/i915: Split out runtime configuration of device info to its own file Let's reclaim a few hundred lines from i915_drv.c by splitting out the runtime configuration of the &quot;constant&quot; dev_priv-&gt;info. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467711623-2905-1-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; (cherry picked from commit 94b4f3ba483ace6dd4a3f881e19cc18bdbafa6ef) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ib869f1b5d4d81f4094cd050e778fa15b27dffc87 Reviewed-on: https://chromium-review.googlesource.com/460314 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460314" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/14/460314/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Ib42b06e48d8912e4511da90a1ad960b0ec57f4f5" commit="8d742a41070dac69ffb074ee7786617ab361f8a7" commit_message="UPSTREAM: drm/i915: Remove use of dev_priv-&gt;dev backpointer in __i915_printk() As we can just directly use drm_dev-&gt;drm.dev, we do not need the drm_dev-&gt;dev backpointer anymore and can also loose the warning about order of __i915_printk() and our initialisation (which is now always safe). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Imre Deak &lt;imre.deak@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467711623-2905-2-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; (cherry picked from commit fb93942033dfe7b4b87bba516f9b551da0bac970) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Ib42b06e48d8912e4511da90a1ad960b0ec57f4f5 Reviewed-on: https://chromium-review.googlesource.com/460315 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460315" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/15/460315/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I88b48ec22f481f81218abf064f155375aa5df3a2" commit="ccb240ef0fd8a51bcf50504ad8a2d1e29a772e1f" commit_message="UPSTREAM: drm/i915: Remove impossible tests for dev-&gt;dev_private If we have a drm_device, we have a drm_i915_private (since they are the same). Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Imre Deak &lt;imre.deak@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467711623-2905-3-git-send-email-chris@chris-wilson.co.uk Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; (cherry picked from commit ded8b07d4c2827811215d92be4c97426ce7f1999) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I88b48ec22f481f81218abf064f155375aa5df3a2 Reviewed-on: https://chromium-review.googlesource.com/510397 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="510397" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="2" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/97/510397/2" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I109e53e3e7b1d661b72b759ea4faa6ccc6bd28c5" commit="a25e84e5a209fe23f1da7474e39e34fa33634a00" commit_message="BACKPORT: drm/i915: Convert dev_priv-&gt;dev backpointers to dev_priv-&gt;drm Since drm_i915_private is now a subclass of drm_device we do not need to chase the drm_i915_private-&gt;dev backpointer and can instead simply access drm_i915_private-&gt;drm directly. text data bss dec hex filename 1068757 4565 416 1073738 10624a drivers/gpu/drm/i915/i915.ko 1066949 4565 416 1071930 105b3a drivers/gpu/drm/i915/i915.ko Created by the coccinelle script: @@ struct drm_i915_private *d; identifier i; @@ ( - d-&gt;dev-&gt;i + d-&gt;drm.i | - d-&gt;dev + &amp;d-&gt;drm ) and for good measure the dev_priv-&gt;dev backpointer was removed entirely. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Matthew Auld &lt;matthew.auld@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467711623-2905-4-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 91c8a326a192117219d5b9b980244c3662e35404) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Conflicts: [Tarun] [Ignoring &quot;c37f7f57c drm/i915/opregion: abstract acpi display type getter for a connector&quot;. No functional changes] drivers/gpu/drm/i915/intel_opregion.c Change-Id: I109e53e3e7b1d661b72b759ea4faa6ccc6bd28c5 Reviewed-on: https://chromium-review.googlesource.com/460316 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460316" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/16/460316/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="Icd49118b199b4aee3f75c7141b703ce43d1a95df" commit="00f46d53aa2836286b2d17c47e7b13aeabc3c960" commit_message="UPSTREAM: drm/i915: Always double check for a missed interrupt for new bottom halves After assigning ourselves as the new bottom-half, we must perform a cursory check to prevent a missed interrupt. Either we miss the interrupt whilst programming the hardware, or if there was a previous waiter (for a later seqno) they may be woken instead of us (due to the inherent race in the unlocked read of b-&gt;tasklet in the irq handler) and so we miss the wake up. Spotted-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96806 Fixes: 688e6c725816 (&quot;drm/i915: Slaughter the thundering... herd&quot;) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467805142-22219-1-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 04171313cb25311acf82279284d722fed7b70d53) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: Icd49118b199b4aee3f75c7141b703ce43d1a95df Reviewed-on: https://chromium-review.googlesource.com/460317 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460317" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/17/460317/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I286432f1f8664b9b0d07b5a35f1bf4ccf4172c94" commit="b2295ffa1eb606941fe9f00f92f0b60b27eb79c1" commit_message="UPSTREAM: drm/i915: Wake up the bottom-half if we steal their interrupt Following on from the scenario Tvrtko envisioned to explain a hard-to-hit race with multiple first waiters, we could also then race in the __i915_request_irq_complete() and the bottom-half may miss the vital irq-seqno barrier and so go to sleep not noticing their seqno is complete. v2: unlock, not double lock the rcu_read_lock. Fixes: 3d5564e91025 (&quot;drm/i915: Only apply one barrier after...&quot;) Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Cc: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467805142-22219-2-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit 99fe4a5f7383559ee120492124365e708a587130) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I286432f1f8664b9b0d07b5a35f1bf4ccf4172c94 Reviewed-on: https://chromium-review.googlesource.com/460318 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460318" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/18/460318/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-4.4" change_id="I87491ce7e965a94be843d42bbeafcf4e02fe7a10" commit="fed9e999b1a8a0d0bf5f31aaaabbb4abc960d64b" commit_message="UPSTREAM: drm/i915: Group the irq breadcrumb variables into the same cacheline As we inspect both the tasklet (to check for an active bottom-half) and set the irq-posted flag at the same time (both in the interrupt handler and then in the bottom-halt), group those two together into the same cacheline. (Not having total control over placement of the struct means we can't guarantee the cacheline boundary, we need to align the kmalloc and then each struct, but the grouping should help.) v2: Try a couple of different names for the state touched by the user interrupt handler. Signed-off-by: Chris Wilson &lt;chris@chris-wilson.co.uk&gt; Reviewed-by: Tvrtko Ursulin &lt;tvrtko.ursulin@intel.com&gt; Link: http://patchwork.freedesktop.org/patch/msgid/1467805142-22219-3-git-send-email-chris@chris-wilson.co.uk (cherry picked from commit aca34b6e1ca909ba15f6c1c1dc89bea8f455403f) from drm-intel-next-2016-07-11 Signed-off-by: Tarun &lt;tarun.vyas@intel.com&gt; BUG=b:36446508 TEST=No regressions in KBL and APL based devices Change-Id: I87491ce7e965a94be843d42bbeafcf4e02fe7a10 Reviewed-on: https://chromium-review.googlesource.com/460319 Commit-Ready: Sean Paul &lt;seanpaul@chromium.org&gt; Tested-by: Sean Paul &lt;seanpaul@chromium.org&gt; Reviewed-by: Sean Paul &lt;seanpaul@chromium.org&gt; " fail_count="3" gerrit_number="460319" owner_email="tarun.vyas@intel.com" pass_count="0" patch_number="5" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/19/460319/5" remote="cros" total_fail_count="3"/><pending_commit branch="chromeos-3.18" change_id="Ie7d07814a8c5384d3c7bc1f2570f62775e771b42" commit="d4c8f1810272c7a9e5406dd765f0f456046d58a6" commit_message="FROMLIST: uvcvideo: Prevent heap overflow in uvc driver The size of uvc_control_mapping is user controlled leading to a potential heap overflow in the uvc driver. This adds a check to verify the user provided size fits within the bounds of the defined buffer size. BUG=chromium:724785 TEST=Build and run Change-Id: Ie7d07814a8c5384d3c7bc1f2570f62775e771b42 Signed-off-by: Robb Glasser &lt;rglasser@google.com&gt; [groeck: cherry picked from https://source.codeaurora.org/quic/la/kernel/msm-3.10 commit b7b99e55bc7770187913ed092990852ea52d7892; updated subject] Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt; Signed-off-by: Guenter Roeck &lt;groeck@chromium.org&gt; (am from https://patchwork.kernel.org/patch/9741303/) Reviewed-on: https://chromium-review.googlesource.com/517423 Reviewed-by: Dmitry Torokhov &lt;dtor@chromium.org&gt; (cherry picked from commit 7ddb4bdd8712a3a00fc8efe22586eadb75b27391) Reviewed-on: https://chromium-review.googlesource.com/517316 " fail_count="0" gerrit_number="517316" owner_email="groeck@chromium.org" pass_count="0" patch_number="1" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/16/517316/1" remote="cros" total_fail_count="0"/><pending_commit branch="chromeos-3.10" change_id="Ie7d07814a8c5384d3c7bc1f2570f62775e771b42" commit="9b881bcfe47eaa359a4c0dfd8be2b92d7ee37320" commit_message="FROMLIST: uvcvideo: Prevent heap overflow in uvc driver The size of uvc_control_mapping is user controlled leading to a potential heap overflow in the uvc driver. This adds a check to verify the user provided size fits within the bounds of the defined buffer size. BUG=chromium:724785 TEST=Build and run Change-Id: Ie7d07814a8c5384d3c7bc1f2570f62775e771b42 Signed-off-by: Robb Glasser &lt;rglasser@google.com&gt; [groeck: cherry picked from https://source.codeaurora.org/quic/la/kernel/msm-3.10 commit b7b99e55bc7770187913ed092990852ea52d7892; updated subject] Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt; Signed-off-by: Guenter Roeck &lt;groeck@chromium.org&gt; (am from https://patchwork.kernel.org/patch/9741303/) Reviewed-on: https://chromium-review.googlesource.com/517423 Reviewed-by: Dmitry Torokhov &lt;dtor@chromium.org&gt; (cherry picked from commit 7ddb4bdd8712a3a00fc8efe22586eadb75b27391) Reviewed-on: https://chromium-review.googlesource.com/517318 " fail_count="0" gerrit_number="517318" owner_email="groeck@chromium.org" pass_count="0" patch_number="1" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/18/517318/1" remote="cros" total_fail_count="0"/><pending_commit branch="chromeos-3.14" change_id="Ie7d07814a8c5384d3c7bc1f2570f62775e771b42" commit="765dbab805af0b99df939eb7001e254cf15a2ed0" commit_message="FROMLIST: uvcvideo: Prevent heap overflow in uvc driver The size of uvc_control_mapping is user controlled leading to a potential heap overflow in the uvc driver. This adds a check to verify the user provided size fits within the bounds of the defined buffer size. BUG=chromium:724785 TEST=Build and run Change-Id: Ie7d07814a8c5384d3c7bc1f2570f62775e771b42 Signed-off-by: Robb Glasser &lt;rglasser@google.com&gt; [groeck: cherry picked from https://source.codeaurora.org/quic/la/kernel/msm-3.10 commit b7b99e55bc7770187913ed092990852ea52d7892; updated subject] Signed-off-by: Guenter Roeck &lt;linux@roeck-us.net&gt; Signed-off-by: Guenter Roeck &lt;groeck@chromium.org&gt; (am from https://patchwork.kernel.org/patch/9741303/) Reviewed-on: https://chromium-review.googlesource.com/517423 Reviewed-by: Dmitry Torokhov &lt;dtor@chromium.org&gt; (cherry picked from commit 7ddb4bdd8712a3a00fc8efe22586eadb75b27391) Reviewed-on: https://chromium-review.googlesource.com/517317 " fail_count="0" gerrit_number="517317" owner_email="groeck@chromium.org" pass_count="0" patch_number="1" project="chromiumos/third_party/kernel" project_url="https://chromium-review.googlesource.com/chromiumos/third_party/kernel" ref="refs/changes/17/517317/1" remote="cros" total_fail_count="0"/><lkgm version="9594.0.0-rc4"/></manifest>