Skip to content

Commit 047193a

Browse files
committed
Merge DRM changes from upstream v6.14..v6.15
This commit was generated using: rhdrm-merge-drm v6.15 RHEL-88418 JIRA: https://issues.redhat.com/browse/RHEL-88418 Conflicts: drivers/gpu/drm/Makefile drivers/gpu/drm/xe/xe_gt_topology.c Conflict resolution: diff --cc drivers/gpu/drm/Makefile index 19fb370fbc567,ec0090b6987dc..ed54a546bbe2d --- a/drivers/gpu/drm/Makefile +++ b/drivers/gpu/drm/Makefile @@@ -223,3 -223,25 +223,21 @@@ obj-y += solomon obj-$(CONFIG_DRM_SPRD) += sprd/ obj-$(CONFIG_DRM_LOONGSON) += loongson/ obj-$(CONFIG_DRM_POWERVR) += imagination/ + + # Ensure drm headers are self-contained and pass kernel-doc + hdrtest-files := \ + $(shell cd $(src) && find . -maxdepth 1 -name 'drm_*.h') \ + $(shell cd $(src) && find display lib -name '*.h') + + always-$(CONFIG_DRM_HEADER_TEST) += \ + $(patsubst %.h,%.hdrtest, $(hdrtest-files)) + + # Include the header twice to detect missing include guard. + quiet_cmd_hdrtest = HDRTEST $(patsubst %.hdrtest,%.h,$@) + cmd_hdrtest = \ + $(CC) $(c_flags) -fsyntax-only -x c /dev/null -include $< -include $<; \ + $(srctree)/scripts/kernel-doc -none $(if $(CONFIG_WERROR)$(CONFIG_DRM_WERROR),-Werror) $<; \ + touch $@ + + $(obj)/%.hdrtest: $(src)/%.h FORCE + $(call if_changed_dep,hdrtest) - -# Enable shims for the RHEL DRM backport -subdir-ccflags-y += -DRH_DRM_BACKPORT -drm-y += drm_backport.o diff --cc drivers/gpu/drm/i915/display/intel_crtc.c index d462a6b7e0094,5b2603ef2ff75..6e9145ff4a7c9 --- a/drivers/gpu/drm/i915/display/intel_crtc.c +++ b/drivers/gpu/drm/i915/display/intel_crtc.c @@@ -716,10 -721,10 +723,11 @@@ void intel_pipe_update_end(struct intel * which would cause the next frame to terminate already at vmin * vblank start instead of vmax vblank start. */ - intel_vrr_send_push(new_crtc_state); + if (!state->base.legacy_cursor_update) + intel_vrr_send_push(NULL, new_crtc_state); - local_irq_enable(); + if (!IS_ENABLED(CONFIG_PREEMPT_RT)) + local_irq_enable(); if (intel_vgpu_active(dev_priv)) goto out; Commit list: commit 69c0d83f0eeac6d0d573790c768fcbc902f0dfc5 commit 7a5cd45fab0a2671aa4ea6d8fb80cea268387176 commit b255ce4388e09f14311e7912d0ccd45a14a08d66 commit 66df9debcb29d14802912ed79a9cf9ba721b51a4 commit 26d6fd81916e62d2b0568d9756e5f9c33f0f9b7a commit 9a0dfe9bacef9c3bf6aaa92b5913945364ef805f commit a73583107af9b42c0a28045e4e30ec3fab2dbcd1 commit 574f5ee2c85a00a579549d50e9fc9c6c072ee4c4 commit 47ad90921586dbe1f37dab3f4352df8e42d2fa30 commit 81a1d1f5d275547f51849e14401264f0e8147bd8 commit a56d1e380d7475c154c39b08a3793a73e015589f commit 34e47bdbad0353acaf1eeecea64ffa711061b65c commit 7e182cb4f5567f53417b762ec0d679f0b6f0039d commit 73d934d7b6e39a3e52586467a30ca3ff3f6f9eb4 commit eee0912a7185d5dc0a700d48f7ff620bb7f5389b commit 5a6e8c369486a79493ab300a1987cc6aad16cf6a commit 41b4b11da02157c7474caf41d56baae0e941d01a commit 88849f24e2abba8a8951aa76ea60a72fba916afe commit e995bb4adc728345d6c988efff36f4933e662703 commit 5d40d4fae6f2fb789f48207a9d4772bbee970b5c commit 3566784817aeb1a733c95953998a29adc386d2ff commit 950942b4813f8c44dbec683fdb140cf4a238516b commit 465a3914b254f82608a8dfb580ac9930722dfd88 commit 5bbccadaf33eea2b879d8326ad59ae0663be47d1 commit 7bfc9fa99580b9b94da1c4cdcdebe3f792c1fe40 commit bc3e5f48b7ee021371dc37297678f7089be6ce28 commit 0240fa18d247c99a1967f2fed025296a89a1c5f5 commit 4480912f3f8b8a1fbb5ae12c5c547fd094ec4197 commit 353b8f48390d36b39276ff6af61464ec64cd4d5c commit ae06e0b3bfe07321c6a865df1b701e64194ec66e commit e52443608934952fc978234cf7d639d6aa3f1856 commit ab680dc6c78aa035e944ecc8c48a1caab9f39924 commit dad945c27a42dfadddff1049cf5ae417209a8996 commit dd4f78ec6a6f82d02e59d6cadde6b92ed0507a4d commit 74509d54ebf1ecfbdf5f7edec32c490fefa01b8b commit f7dfd3db3e0459765176124b4b7e4b4b93533676 commit 5dd8b536bbdaee00df1e8dbd8dc4e9fc2f7fadcb commit ffda6454267d0b870f3a09945a7ce88137b914a6 commit 2ef1c8c5de40316ba65051940e587157385e10c0 commit 178ada9d6e90637667a7410dd7fe75fbbe2cd4c5 commit b1cce631e61fcf3e1bc77ace05f10d00c737af9a commit d2a0b1bc5773d3124ef7bee886fce1bb59fd9b76 commit 3ac197e4d7ada579a1a8fed36f7f27eb1c231dd2 commit 24c095f6958acebefabee4aad20ee5a98cfb46fb commit 9313b0bee09b6fdff4fb087090e57e44fcfd4ab3 commit c5877587a2a93de3ebf0cb981f02ed3d2fee3ee3 commit d4dbabd4251a93f98f8f4e72ad57f35adbd08e00 commit 3040274f7e2b651a4e65082b57b7174a49bcc593 commit 49b14a1256a365f288abcd438750cd102a9dadb0 commit c0eac88092642e49be3b5d47eb5d5a963199b024 commit 97395ce76edcce4d39419e90a65d84960fd48aee commit 9ef80eec5fab5dd840687f55a79c109777b2adf2 commit d995dc60e0e9611cc11dc869b176c66dc16b7245 commit 9104ee0868ff0a944f9f7f5ac30bfa88eecaa289 commit 573b73e5ac2ce0d58859eace8218f3a7e9212186 commit 155c77f45f63dd58a37eeb0896b0b140ab785836 commit 92029e0baa5313ba208103f90086f59070bbf93b commit 57e233c3bd63f32d2c7e937db2e16b98f723ce2f commit 1f463794097dcdf4c64fffd31de2177681525e35 commit 1d3160c7cba37b48be453f29ec2faede77002d14 commit 0d6c9edf9e5b25361bb23a151ad162878ecd81a5 commit 8025f23728e9bc817495d48a04954cdee27462bd commit 57af0c0f3b3bad8669dbcdb6b1d31b1537c614ad commit 35bdd1060a04e234e85bb7494d505d2bbdcabd58 commit 4e19eabc7e5c03da09a53fc05caecab3aa18ee0d commit 0ca6d6058852857c628b479f1e7aad3386036bdb commit 29e93d0a04b6c546a2557486029219e5f6146e65 commit 749b5b279e5636cdcef51e15d67b77162cca6caa commit 4f7fad42aa1aefc2baca7ef91d955fbe6f133e28 commit e0b0c6d2076d2b94122218259202030faaaac61d commit ed3a892e5e3d6b3f6eeb76db7c92a968aeb52f3d commit 0bd39e303ee705c4b0549e2826c42c1d7b849898 commit b9ec6793355647bcbcecb21ef6cd179469d3f191 commit c26f22dac3449d8a687237cdfc59a6445eb8f75a commit 6e11ce84c514f3ad8c8c766e1328bf49d80a0325 commit d160dc6f53914d729be7fcb7afbd0e9e6a3725b2 commit 467dce3817bd2b62ccd6fcfd7aae76f242ac907e commit 8cb3a1e2b3502341f7e5253842a74e511c13e5c9 commit 1b242ceec53627a93129ee076b94f8eb321e5a79 commit 2b85c4feeeb73984dc676f7fdbcff71e82a1dbab commit 90322277a3f1ddf5740aac703e92ef99c7a45f32 commit c5e3306a424b52e38ad2c28c7f3399fcd03e383d commit 3318ef9888d5b4f5c5a9473180fd0b16e9ef266d commit 0af944f0e3082ff517958b1cea76fb9b8cb379dd commit 00728273bdf1001f8d2f7b65bc398000d7defe0b commit 778c29fca7557baa514dd0cf6efaa654845edf60 commit 4745ef7a173f4c9182099870c627de309c07b204 commit 51e7f44027a184f5f9048caa0d7e29eebdd9a5cc commit b7eeed399b2851b140119e4866cabaaf1cba182d commit c14f66c6e46728db2cf314725e68655ac2f499dc commit af14b81e9f04b35d578627f6305d87010d0ef0ad commit 97b6a2eef43f8dac2f36cfde2d813eb2b5edd26e commit ab684293168c7c817fc6089f290496cd6bfeec0b commit 730ac786e869b1a98323f354e1d005cfc4d99fe9 commit a18bd2f32c6960bc5446db3d6d4e4b31267c863c commit 047d9b28a56a95044f47b54ddad71e69809ecdb3 commit 67badd015cba8d25fc88bf13cc49d8f7c377d547 commit 758736b0df3a55915014e54065d87e35cbfae7b8 commit b6e4f92a21e35ca8bd7b21b4b5866da59dd51c04 commit 8b85eadabd0902bde4562c493f4e1068a0c80c2b commit fd95e73debdffd77febc0f0b4b304378856a5e6b commit 1113fc0e826581bb56858b100cab46f1ceef69c7 commit aaab5404b16f19b06c7d88787d7ba18d91eeb854 commit 50554bf3e56dd0c78ef1eedb685d0ab36c9c9987 commit 11a64adcdbcc3028b96e440bc33fa76e2e825c10 commit 174e9ce0daf6af791386e96e76e743eb59e8a401 commit 1e14484677c8e87548f5f0d4eb8800e408004404 commit 229adcffdb54b13332d2afd2dc5d203418d50908 commit 440aaf479c9aaf5ecea9a463eb826ec243d5f1cf commit 75d37750a753e7ae079e470ea9699caeae756e3d commit 758debf35b9cda5450e40996991a6e4b222899bd commit 63060df6f709cbe494f0cfcaa613655862ba479a commit 861b27584d9055e4e1763341474ce8ce9dc6a55d commit 22b1a53f282b1ad6692c6238a7446275854f0afb commit b824709ee1d0dbfed4b1757279c97fc0edad1e1a commit 73900dce57e40bcced9af4518051ab9dabb9aea9 commit e35ecd95ecf28478c6aeac1ab480bbc033dae9c9 commit 3630a47b700e65066d3c9a3b6a58af5bfca812e9 commit 605a33e765890e4f1345315afc25268d4ae0fb7c commit 3abe2824e1af16580ae669a037892eb9e7ad3d54 commit 0d69fc7a023b8a979fc8b2bd9cd0754a24abf99d commit 58b7cd603db38d16350d380df70dbce468e99101 commit 6d531e350572163f5e3ec832710d459d1232c3cb commit 9983fd3c8dc315e0e4869d4522787163de57e0e9 commit 474c4dd29f666145dee7b5dce56d024a26e9550c commit c03dd019f0b56c40f42fa0e7785eaa109e0bdcd6 commit 709631924ee544ba0b661c41b442427897569f30 commit bbd8429264baf8bc3c40cefda048560ae0eb7890 commit 13265fe7426ec9ba5aa86baab913417ca361e8a4 commit 9cd3f4efc870463f17f6c29114c61fb6bfcaa291 commit d29cddd49bed2c880e7c17724bcf3604e865c23a commit 97ee0e351f6ebbcb2a2dccdff726f75f728fede8 commit 7e937cdf18164ea276ce0f4bbc5755e0031280e0 commit 0e1871f61e71d7611196b04d1b133f18fef666dd commit ae8b507fb8bbea2aa30783184d5728b14ce40c8f commit c49ca671818a325f2221f0bda8af96e339272a5e commit 696bfdf273eab9ce3dd2ff51d26ca30f7924a4bb commit d8b2149ba8f184cd138b482289b16d8558787e99 commit f90b552dcbb4e142f2a15d2b4458ea601248b8e8 commit 238f96315ada9e2183b04df90c9714b1da68455c commit 173baa1b2dc44e3551d9414f4919a48fe5da4880 commit 6568d423cb3000789b2b8493049883fcec09c329 commit 51678bb9a7fb25e44f38a4f0b1bd283fec809917 commit cdb73451bc675392c9c76779e2fec720edafd7ab commit 38f039f45964425d0d345e930ec1de53ab9b9c74 commit e2bd89d1aec61bf70a99731333cedae0881447b5 commit 7cc1e19703a553eda5f463cbe1fb011877ad16c2 commit 2f4c92166ed53d46b4ad66b7cffb1350dec8c0b6 commit d851663664a3515dc1272fc7ef35a6e0db467b31 commit 8e1096fd03b6c0e3e668cc2e4f0edbdc7de8fa01 commit e7dfd7c60e402e658238d25c8da4f8645e45b982 commit 71ca4715151e033c16427b8cfaa9b5393dd6a010 commit 6f7c813c88aed90ca342a76ef4cdc078d6210e07 commit 2499212e21601740ed7d5563563f39cf7e7d833a commit 67a98f7e27baf8c22483ec4873a8d8efdf71b55d commit 0a3f3f7c5da8e45e1d4adf4ed6f4e2b05912785a commit 16d22ba2debda22907b3eda4cc8ec1229136f424 commit c367b772e6d89d8c7b560c7df7e3803ce6b8bcea commit 8dd92e6eee590179818ba155cf02dc172e0c88c9 commit 135d8fc7af44c52083e18ccb24d56383d301f741 commit 2f3f4a73631b160e44ab13d497f7be62264d47ac commit 1914ba2b91ea8eff674e2369f610bb6bb9056745 commit 23fdf4308988b8aee2bb7cf8b77153f822d1fb3a commit a20dea718fca0a474ad5773bdc6504d6f5727322 commit 68f3a505b367656a2db05406a62dc43fb0c50034 commit 4917c46411164dd1aa22611577ab751cb66e04b9 commit edbfa38ffa822ab2fe6848a61b339f27a34c4b22 commit b0a76faea6b1492e480a69ef1a6cd19e30e7d60d commit 45a4778415736fe4649a9fac2323091cdd710d86 commit 49a167c393b0ceb592b9d2e65cc4f46bcc707108 commit f3b59457808f61d88178b0afa67cbd017d7ce79e commit a46ea12eca59fd3741ddfec3042d43f87fadf58f commit 380b0cdaa76bc8f5c16db16eaf48751e792ff041 commit 2218704997979fbf11765281ef752f07c5cf25bb commit 8a2392fec5b4b96d738feb6ecef02b9958bb64b1 commit c5303240e01919ea9cd3a2e198c3a25686a99552 commit 880426962795b763f209a0b7fcd5df815664aaf8 commit d6d4dc22d50312132ea312f1074e4367e219254c commit 1f1b673cec361b4ab20b817340f74e75d070f312 commit ff118b4f0c05ee55e049db2beefbbd2f43298fbd commit 42fdbe94b69ceed77622e58b33701546f49283a4 commit aee21ab36e142c10fa6b56694b9d160fb5a49abb commit 83db7bf1781dab848adf1280ee45bb4f93b52f27 commit cfa9d40db8c30d894171010fe765d96e9bc6a47e commit 367d7bc6d55a138cdcbd856e1e8f1f6967934954 commit 9ebb5846e1a3b1705f8a7cbc528888a1aa0b163e commit 5994018ecffc9e70e192bede2270819d8c93b2d4 commit 6f71507415841d1a6d38118e5fa0eaf0caab9c17 commit c132ec36fc28d58ba7e28b0f66651a9310e0d61a commit 3d09b2718969f6db5b9e50daa9a033a78f065522 commit be1c00b180f1c580c93e585058e64df51fcfd4c2 commit b40e209130bff435c8dcd17660cb4614ae62a3fb commit 1c6220a3950bd8e60126f5ea234f3f7bd86321b1 commit 87478ba50a05a1f44508316ae109622e8a85adc9 commit 2eede6f1d2b1d3c36e77555f7b98ab8a45f0527c commit dc80fde7947fd9d90d229e2b007cda2066943fb7 commit a9301e5bef12f8989a02d886109f13e89e1e51b0 commit 1abf834951fb039f24819283b7abd9f8309852b0 commit d49b485d1be3cb1b3b719cf4031f879dbc26c633 commit ae1e7fba27c9f68dfcaa0f527ee38dda013e566c commit 6aeaa55ae7683f7046fa362d57788f7fc1111e47 commit b9360d1751ec9397ab9e4fdea24a749d8fc19c91 commit dddc53806dd2a10e210d5ea08caec6d3f92440b2 commit 5947642004bfd56436ce63d3e65d517b5be52549 commit 560de03d15c06a3c17b20733a5b200ac0f78ae40 commit 18176f56942a596c5d03ed69ef30ad72f67a7edc commit 82ecaae2360776dcd0b9abf9ae6b947c28025931 commit 1efd5384277eb71fce20922579061cd3acdb07cf commit c156ef573efe4230ef3dc1ff2ec0038fe0eb217f commit 61d9f028936b895d955e6d704055f5d64e6a8e0c commit 54296aa4cfe71800a68342decc7176b7e1779713 commit 5fe543ce678aeaa6298eca9fe49ea1eaea024a6b commit accc7f5bf230864eec84b249104cb8649c993a62 commit 5b056be1f2d6d9ec3c61cc7b6e4c2cebd094f9f9 commit c55af0065207472ce96492e282d566c3415f3288 commit 381ab12d483ea30af4ca52db51d23c947f2904c1 commit ed868bcb4f5cecbb61c4f057aa7550650643ac3b commit 0936f0e54426177b0f0263ddf806ed5e13487db6 commit 6ce24b3450b8e8132b74d4f0b43a48f4e370e825 commit d3fedff828bb7e4a422c42caeafd5d974e24ee43 commit 8c27c4e90e3670970f51bf35051c58bf5b05ed49 commit f42da9aa863eaea4e37865959ed81a60c3df72b5 commit cabb162f7b7d2a012c80ecc13e5e75c0d01d6dde commit 9217f9aaef62236da37f6e915047352d114eff77 commit 65599f65b4f1538f335ef4ae7612302a4183cb5e commit 9159b622ad629e6415467130dad39dd83e7b6324 commit a9b14af999b058ee9371d3d8fa02245339da7302 commit b5d97b2db08f0143202bed897874e6563c0310ab commit d33847a0fe83b04718ac4d7715d128001161b221 commit 798047e63ac970f105c49c22e6d44df901c486b2 commit 3ab334814dc7dff39075e055e12847d51878916e commit 7f3b11934f9684038555fd9160e188d6893949b9 commit ce8c69ec90ca83fd4eacb246e2be699e6b439e97 commit 6bbce873a9c97cb12f5455c497be279ac58e707f commit 580aa2782c5b9eb50cb3bf936bc57ec0bf7d55db commit 22807d30fa854bbbe26e53774c9c899c39b62a71 commit f98ed88eb98b84f3e12ff09ec41a36a39dc43a98 commit 2c6a79af3fe0bc5db6f1097d0f64380f557830af commit a15b5379764be947001ab81bedc3ad6ee93919f8 commit 0c2f211b66051f97f8e3628be3a486a5841aa1b8 commit bda6fe811fba6742c4ec2f3c0a962b02d7d6e87f commit bbae6680cfe38b033250b483722e60ccd865976f commit 1bb9bb50a493ad349262edbd81e3f3c583e28122 commit 0268040b9c570c8fc328d3e0ea60da2e068fb76b commit 462445045269b2d31966b31ae5a73519d634cf16 commit 1829ee0b05177e4274cb169358f8bfea606334ea commit c965e3598b4ee7863d64dd13a54258753f7b447f commit 3c48ecb38a736bf457233dc6869e305aee6d52f9 commit 50f290053d79e3b1d108f181c0ba6b8e30ca94c9 commit 24079ed2aad6567f643df0e31b631184578de4e7 commit c852646f12d4cd5b4f19eeec2976c5d98c0382f8 commit 7c3127e4814c304c7d5a2fa796a42e75a9b8606f commit 011c1e246a1d01c9d4b3b183e469bdb87b1f7bb8 commit 257a10c18e18cbcec7b9621820c11a5c9ec613bd commit ef7ce3938621e47c6aa2d517eab6f1d484ad365b commit 4ee64041bcca5289623c287336bfd94a42f42104 commit 6ea5bf169ad4b5b2da1e7753031b446c22edecf3 commit 897286f2948cefe5f9d37fc3148fc19d0c7b160c commit f14d81b7102bdbf062f90b3910e986850f5f86c2 commit 14b66746088098f43db1e8732ff8902ddbdd4de0 commit 93b69c0482cf2a18d078fb1edefb4b84130838af commit a4d1c5d0b99b75263a5626d2e52d569db3844b33 commit 2e0727c347467775a2dfa7d850a3a029f3212e58 commit ef34861098c081a6222dbbe84439b571fa35c8a0 commit 431b742e2bfc9f6dd713f261629741980996d001 commit a37934ea75d331fafa7fe80b6180642ba5193422 commit 2c95bbf5002776117a69caed3b31c10bf7341bec commit cb1f868ca13756c0c18ba54d1591332476760d07 commit 5e940312a2ac64ba0d6239aff72135226818b238 commit 256daa32c9e0dcf924b3237e2165d8163f4d89cc commit 8b47c9cdb6a78364fe68f8af0abfd6f265577001 commit 35e1aacfe536d6e8d8d440cd7155366da2541ad4 commit 9548f4f4bd80d1abbbae3024fdb6a4b2e9a1690a commit 8cebc86c8275417e03945557bc33a4c9fc8e7824 commit 55f16199c2a95c7c1833daf8c6f2701cc7098023 commit 8305d47333d8e178890ae4990c7f0c8dbf5f4ace commit 1aeb1c0eda6060a57e078fbda263eb812dffaab1 commit d7364b86e4e59f7579061fed41e85a7cba14cfe6 commit 54cb7288900ba964bd525d004b9618efb52f724b commit fa8ffaae1b15236b8afb0fbbc04117ff7c900a83 commit 16016ade13f691da315fac7b23ebf1ab7b28b7ab commit c28f72c6ca98e039c2aa5aac6752c416bc31dbab commit 55d4b69861e853ac987f6d593b44a3c18b468576 commit 5bea40687c5cf2a33bf04e9110eb2e2b80222ef5 commit 7748289df510638ba61fed86b59ce7d2fb4a194c commit 1c470f4f61f3d8d631a0c63f0dc6e2307bd72a5c commit 8f6ddb4ab5db955bc826481d2f5c145aa5802ec1 commit 9069b783cd42963ecb47f7a614b663b4d257a5a7 commit 2dbbbc1740388a8bc4a8237de0b009eecec8f998 commit 387f269e56eafa461a314a30b4e7f85625b2cba6 commit c5806862543ff6c2ad242409fcdf0667eac26dae commit 6218bd2e649ab3bcd097d7903dd4b93baa21c73d commit 08277aa5d5a44befd71717de35b956f55e1e8401 commit e9bb15cdf5c40996bd7b17ecb69fb317629b8efc commit 21ccac0e22aaf27b767f9de4bf573e7c47f619c8 commit 33f17e2cbd930a2a00eb007d9b241b6db010a880 commit c13a42f2107c768715fbac518072363b57258e36 commit b73aebc7a1e0fd9d2a9d8ab7b88ada58bd80bb9f commit 220ed690436e919a523bd8cd0ca803268025d4b6 commit 8486de873730683a4b04815aa707d2e4e1028792 commit bb322c6fa16f97951d75dba46b9ef0cb2cfcb2d5 commit f3ee4d5b4392081427cd9c97432fbdfecfae26f5 commit 8c271e4d1172a9ebce172aea15edfb222836c57a commit 6e2e27c20dcfc8229954001bbb206ab4ecdc27d5 commit 31c726562849831b4c7f98d2fb267974b9390527 commit cf29a866a139519d6274756d65ebc29c9d749034 commit f595fe5f6ae7d74d7352e2577ca1577704b64b3b commit 65e366ace5ee3637179658e8cf37f934c857f563 commit d9bc304437da6b74ac2b6644fe47702b8286eb8d commit a67221b5eb8d59fb7e1f0df3ef9945b6a0f32cca commit 34776963452040f199bf9985ad8a2261a82d8b99 commit b8c00323ae65e1bbee9f87a1e66592b589f53b50 commit 2f5bbea1807a064a1e4c1b385c8cea4f37bb4b17 commit 3a40d4f4613e437cf78b9b6a28202c6549227459 commit af80fe138bebea8db089c5062bca9833a2602667 commit d24b85df791840089c2df6a25809aca814b1206d commit 707e860119d5510e897da89492f8a69ae627762c commit fdebbb2cec9d53aa6b83847d3762c7783514273a commit 219c6a4a6f6eada64773bc250cc02c60b5358278 commit 1bb3f70c418f8ac51a9f19b1f0fe6ddd889794e3 commit 7a74caabe1013b482b1db10751c79bc75bdaae8c commit 454bdacccac4a020f931bd39a8b8744f765b0ecd commit 255b3ff65d8ffd70db8c29dda6c8765d58fea2b6 commit c81202906b5cd56db403e95db3d29c9dfc8c74c1 commit 192cc9f2b74a8e3b7d7cc7f4d041698d7ba63efa commit 517e28d40c9fab2e96b7a88787007954efd6cf50 commit 2e90349bf44b30478351be4805a640b3bf5accb9 commit c337d4c1de88bda6da88477a390c2f7ba87466b6 commit d86f6beed067309eeea8bf7c91d967f310db98df commit 6af7e16c4d818c0d019c0cdb4eb12da6dc720b57 commit ec1d13fa90d6b760d01f6054faa9a0884af6c4d3 commit 0c5f9cb67897fc48aef8883d21a8d74d11a2f8e3 commit 56b0337d429356c3b9ecc36a03023c8cc856b196 commit dc9ea8777c8b999f6a7e9eb974b2f7ae5e643d9b commit 2e74748c4c0249930c8edcf5ae7b6e5c8c391f7a commit 99f4cb4fb222b42703b43551d55c9ec2520d9d5b commit a38619fc93ade0d5531f88b990825fbf50a79071 commit c791c7ebd00ffb91512f387f3ca31f92195c06ea commit 206914ca6529ea08b2ccb060948959fa837f3f19 commit 9e276d220a650def051a3981a8dfb86c5c23a892 commit df64948ec2cecb1dc0747072aca23621ebf80be9 commit 73ef9abb239bcf2b4ed68d808e0935a4e0ee251b commit b3f5c960146ab24afe56436389b2dc5cf44e7a36 commit 2056f0ad806272363fa7d3754317ef2380c112a1 commit cf92a9d4f01d8d63013dc0bdf1fc63ad4f6e7334 commit 67782bf6e8a6289996bbc3ce7138c30ff72ee458 commit ae5d9cde9b762fd4b7259e1f93a94e0c7f04681c commit ff48e05d8d1eefbdeb4504c0275c78654b858046 commit dcdd6b84d9acaa0794c29de7024cfdb20cfd7b92 commit f0c06677d1105a599370ffd0c94679996c3656f2 commit 96e84a2f5a5ba0efaaefb0dd5072e4b2e7f31f0e commit 3b506d73ec14977f3107ade94346cfb169c6f3b9 commit 0387d46ea7fd0496375b8668385db16ce6172ece commit f8caa80154c4b5481476d1aad8bef335b5f90e6d commit 72d479601d67026c4fafaad21762a777cf41f906 commit bd98ac2e05855ea781c9b7ad30b5e1a234aefe95 commit 41a97c4a12947c2786a1680d6839bb72d1c57cec commit 51462211f4a920687ae51823f6a8b0f499546bcc commit 385a8015b21469f249cdf30453f2c93d32405aa9 commit 492f8d2030bec7ab6d0adf7f41808d73871f86e7 commit e4afdef60562014bc4a5c74384cfe9de84590ca5 commit 206fa53fe1f1f73eae61c4330aa31dd6393d959e commit 71be802005074a4cc2297e4a1da1ca268d9c6b49 commit e5e8367d25abcf1ed5f9f84df7c856bd4e1e12c9 commit eaf53ac4901fbb06a94cc0b7842567b3d13c0492 commit 242d9bf59a0a8293acf3e67264875abd0b573614 commit f269e5eac4dbf55d89409257ec794c9c3c51e515 commit 51d262a96bc6c87f5dababf5136c978afa59f28e commit 8cca475b8085e551b3eebf4f2164e56c800402e0 commit 78d5d1e20d1de9422f013338a0f2311448588ba7 commit 459777724d306315070d24608fcd89aea85516d6 commit 9c9dc9ba4a00510c624588d9860968b26803a2b8 commit 4a82ceb04ad4bbb9cc20925abccb70938313e555 commit a5ebe00c2ace15634c02e3c64f1b28253553495b commit c771600c6af14749609b49565ffb4cac2959710d commit 550b82651bbd4339ac415933bc21e979d439cab4 commit df54f04f2020dd750d7c2d6c336ef91375d0db02 commit c5d82ed17eeaad79460e402da7ae58a9e37d8f94 commit b5ee4c2852d381a8f5351231561aa2faed474fe4 commit a40e718d34d3d02c781c295466b013415f68c4f1 commit ebac36ea8ad55b7c08ceaef0e3fa408c8cffacc6 commit dac328dea701ed1fde2b67176fe3c3a818536441 commit bdcdb913c2d36447ea49d33774e5d6093c55d6f7 commit 87b593d79864e6e82cb00aa3d837094a1643e272 commit ea9f8f2b21795a5d80418a655bcb212d5b89e08f commit 082795b2c67f264d1ec30cde723b7f24c448bfa7 commit 34176697bda3066de583deb5e569e2d77d5dc7f0 commit ab945e9a4e73e8eb3f54ea34dffd22eb70696c03 commit 295e276a6af6fadfe31c1afe27a2c670e4f9cbc3 commit 9b98776490ac28c150811f4fa4f88b81a4c97aa5 commit 8de6a113ad210194e22211f90f224904e407a4a0 commit bb68ce5daf1ac73222afbe3f8fa7ad6edd150c72 commit f0453266763841585e6f7d9cb9cd3db18fbb5dbe commit 76a677c51097057365564c7ac775ed6c1f117a86 commit d0fcbf81fc798d47c2a62d246a4786d11d050310 commit 0e1daf2b32dc85559cb1bb67e91c5a42db332cba commit 7e3bf00047cdfe2b09e9a0d77b99bedc15406bfa commit aa0a9861bf5157c51cda8191813d1b52374d5c78 commit 8d8334632ea62424233ac6529712868241d0f8df commit 93c7dd1b39444ebd5a6a98e56a363d7a4e646775 commit 241d8312131e66f31754659bd49169e1822ac1a8 commit 2ffa4878512d429eecffe4ef786cbf102a8b8165 commit 44a34dec43e8f214913e16204525d7253acc1891 commit 4d291c441bbc78805e6a4775383bd5a6f53d2e10 commit a5072fc77fb9e38fa9fd883642c83c3720049159 commit badff5fed9ce968b22ae2d4c4239e2f3223987b2 commit 93ecd4fbad16c90a9aded8e599a4ef75dada9f82 commit 5dfc37a6b77bf6beedbd30d70184b54e1a08ccac commit 9ee1855644254ef0e80b1c376f3d4b18a4528060 commit 9535c6a4c61cc0da28b9c9986aad200f1e1019e4 commit 64481497924d8055fa7d6e60948ca899fe341cb6 commit 3f8a009a794eac8f5b7fac0242d321cc4581303d commit b68074efcfcf7d8226ddb0b1326298671a04a3f7 commit 8d502933ac20afe97ec36fa8f0fd39bfee631b60 commit a5efc8dcfe710fd63a0557d3512e8ff753c2e283 commit 8a734b9359cfa1bdb805f5ca23e20bd99dd18a0a commit 01aebfaeff324d21f559a696016e13640f59b297 commit faa5259b1ea0f6237c1b8ff24aa3ce4b6faa2890 commit 19214cd74716891be6fcc0fd90c634b3963d5ed2 commit 5b380838930f1fb74d38f34ca4bff43416db01c3 commit 2eca617f12586abff62038db1c14cb3aa60a15aa commit 9e35a4edb837627849063d61d46968bfc691c484 commit af6c2b7c46e16701fba44a21326cb634786e3e71 commit 434e5ca5b5d7ea415670d4fcb399d90d355a1e38 commit 0590c94c3596d6c1a3d549ae611366f2ad4e1d8d commit dbed4a797e00d98a4eaa971f1585091fad076a74 commit 6bb05b3631bd81227298b291b651dc7ec6ee0145 commit 4f5f701c55c1dfa287c6ad55a4bcb4bc6cad974a commit 05345cea4ff5a857612df3f10144dec685c07e6d commit 6f3d9d0dd335290fa364048de5b3a440f1cf259f commit 4720e0ad30bbe87821e516e5c6cdeb94e615c6dd commit 7806bad76ac397a767f0c369534133c71c73b157 commit 320323d2e5456df9d6236ac1ce9c030b1a74aa5b commit 67725f5e8d844e27db4514a76699ec6a7000c627 commit 55e856c344b0473e78729e59e501b28d3c238b51 commit 011529fe81121e2d343522ecbb149e9b2d1e5931 commit cbc0a0ee34b5f108b184a6d59afd0f305564350a commit 2c569b955e02d06c97fa23b6fa367583e4fca1c8 commit 3a178c1a23ee9841722a898a8245f1a9429b65e5 commit d4e51a45f1964b50fac8e1ae8cc12aaa8dd8c87d commit 7d94a9a1c461674df3fc17ed31a05de6eae63263 commit fc3a50c12ebd33c77b7e4a1e4f154a44315d3169 commit 71163271dc227f8dd0d9446b8897a141c2eae957 commit 0678c15b942770223ec339ed58c79303d1b991ec commit aaad45cfaa1bdb774e3755c93c0ab5ef6858917a commit f74fd53ba34551b7626193fb70c17226f06e9bf1 commit 15d174fa85d936f3d0250b111e7d3b7f26a38b40 commit 1b80b2101d7b433718a21a9e7d413e066bf8aec6 commit 66ac08bb7788a130f731614423a133c9c333c64e commit f4e71f66036872e67a5eeb5800828541da5d12c9 commit 202f3f60d1743cacb4924566daac846d33be5378 commit 10fab0675483617867e1f4f59f1b1fe9bd4d719d commit 38e092786e54ae102eafe07c938aa289895639f1 commit 2ac2ff99962a78d1a0c17ac80e74974d8cdc23b1 commit 5199ffb87f787a71d6e628cb291bbf116c547051 commit 0e9cb79ce49bb42230be1cb27c56326c3cd7ca90 commit e4476cd1162e60ee9802e2d95cd6ffee7a71830b commit 3eb1b39820d0602aa822463618651d4106618f05 commit 2bb9476795dea15efc3e53170839e548a1ba8bd1 commit 429dd9a60d690c8dd8452785c71cc151e5012825 commit b2479f7231d8b16c8cabf4ac1804204f6071728b commit e3da9834e4728fb4ed4d87f5892e78d47498f2e3 commit 5dcfda5cfa42616ca84c41aa090e17e7417a0f68 commit 880ed2d84db9a1d6c1f6c4dcd52b1cacf3eb7a69 commit 9665025b57796f11ef0efac0116c2ec0f55091a9 commit 69e79a3a3208fbc50cb1773bc18da405927b9f98 commit a2ed9f8452479500023f386daa281887574f4b61 commit 37bd8e1b9d0fcc44cafbcc2e08ee7812d21ac726 commit 73a0d4b3672db15f5c8d4dac7c58a993b026ec7b commit fc2ef5b6e1ab9717b1a0b588a39b410864091fa9 commit 3214403cf99e20d8ee7df9cd639e6a152b0659fc commit 8c3b7d278ffc4d30b0809d1b7066a94963a0d2ca commit 9aed3a417dfa014a0b7a80bb21a744688cf54cf1 commit e72bbabda32e1c521180ea7e2f4f3204de38014e commit 2c7f45cc7e197a792ce5c693e56ea48f60b312da commit 6636c58b946c9cbfbd68a453d4eba2ef4585c65c commit 4929402a747889f650745905433c26b27284efc8 commit f2d236766f01ac56799070cc076518f5a7bdbbaf commit 50625eab3972e5d37dcf3a250d9e3cdecbd6c13b commit 768fec5ff7c1d1183edb14ff7d68b07edc98a6e1 commit 1d3ae92191fdff18f765936107d723401204cc12 commit 48ca4a1faafd1dbd5009bad9b32ee75e3b6317cc commit 62ae45687e43574f6c13158f8b8c5e10d3d22fc4 commit 7378c2dbf366ba4b0e01484abd211bb41dfa82b5 commit e20d0d407667f5b32220d92e8e7c0ed01c31b2e6 commit bd867a00f752805699ea216e4d73aec088321699 commit 972259d93c69c4064a2bfce62c8db9ea6275074b commit 24d687364cceb4d7547b73133c055560d2ee7d35 commit 65596167857fac39ec9e11ef52d2c51b46409bc7 commit 7d7529582cc29ab06bb0b269f3364586abacff52 commit 4ce63ed330ff48cca1170464d4dabc7e75f663c9 commit a5b55c18509500993b1540365c4f45ea1976ce97 commit c2d55e709a867589d1d7669e964c3f7de2d62abb commit 46e2ffbdd2a0835ec3918606cd183b158c3f0e91 commit 796a9f55a8d1d85387b973df9a06cbf4bc2d6327 commit f4dd4cb79f9ec3294e5100223ed90d8ae371f168 commit 26b3a8b25e68da478965f3054e4e213a48519fb6 commit b47e345db9b1d9ea6657ad218ea31ed0bdcbd342 commit 51385d68990cca5263ab9575edd5386f6e42a994 commit c9178dfba53ffd055c35f0daea9c35de89b45219 commit cdef53897cda82bc3261bf23acb0e8205ec8b19a commit 44397dfe48c4fe8580e3fc27e260b4420d277191 commit c3571a239e108fe92adedd49ca3905d435093157 commit f9f34d44c7d3cecd3e821d8a22d3fd88c972d0bf commit b7446752e5d3de98bf26b5d3a7ca4fe9165ec779 commit b7c5169ab9ddc3432161412bc2de28111306fbb3 commit caa6f4a75e9f8eaebd814a9c2d1602e0926f473d commit 325ba852d148434c5bcb06d513af1933a7f77b70 commit efc84f661e0a1b73449d678a89ad86d61bbf6bf4 commit 8064ca6e93e6361563b0de60204a51e4e12f932b commit 0371dbd42367cf5b13d2c46d8010cc8b242ba46b commit 33da70bd1e115d7d73f45fb1c09f5ecc448f3f13 commit 44810f8de2fb335f2888b6f00a3cd17ab3b1a38a commit b217105acbfa366f156bf40341e83bec94fbffec commit 3d5470c973149f479572dcf4eea064775041ea6c commit d957d4a3f8f200b5642f65832896efeb82eea860 commit 2ed83f2cc41e8f7ced1c0610ec2b0821c5522ed5 commit ba7f8eb7e447a8120f5bcb8e8d72964324ee5b84 commit 1c0b144bf7628a62575a4ec26623f7a6cdf0cb2b commit 20f48be63d1ad0ffa359c9612612876544669339 commit b784faeba229ad1b2cb0f9c0dbddc48411a3bc8c commit b2e5a04147acb122966b8b3c4f603625f888c38d commit e659c9eb87261db848d3e8053cc73c57454cdcb4 commit 6bde08d3173339ce516f36916bf1b6a8d8214507 commit 6d437d5203c54aafb42abf0aee0b6b810de8c085 commit e7704d7c72f028af67492b451ffd31d3b5e4603c commit e55565f8809c4b05dec704b153613d9e42367874 commit 822b13d19fac05b8299f9e3636dbcce246867d2f commit 485380f7fe518b89386f87e0d9896174374d20cb commit ca449221078983a4b70a77187e0ddb7445a3fce0 commit 8544374c0f82edb285779f21b149826fe2c2977c commit 8fdb3958e3965fcd11408e1cd5380895cdc96e06 commit b9467983b7747c371dfaaacb5d04a81555b5e65b commit 963537ca232568de06389d7e019bd7d2ae8eabb2 commit 5f95a1549555f8397574782d7708f25210c01f2c commit e29dad86fa40db46763bc267761021a679e2ae8f commit 933dc3c7c978413ab037db0c74f5be6d8878239f commit 667b96134c9e206aebe40985650bf478935cbe04 commit 23cb207751a5ddaef8b9686cf5ca7db8b3bb6b5f commit 46d0436a3e401692a614455861a82a0c852a6fd1 commit f5580a9c54e0af9bd0d0e217a23f5f9450b41019 commit f7a594e40517fa2ab25d5ca10e7b6a158f529fb5 commit 189abca05a89fc7b422811e497a7116b3e4f4dca commit 884e7e5ae04619fad37a7506baccf441a48313ae commit ffdd7a7b28980138f129897f2a1c360c01c396f8 commit 30f7f53a5b6d8937cb72131373e788965d24ec03 commit 9bbb556868c340fbf6f7d77cb215a37f06483f4b commit 6eb4c13a38457c7ff41bbfa7638f34cfda29c662 commit 06b0a4ad7162b9dd7e52dbec320ea9d080d9e551 commit ae36501515e253556f85f55d83b8e1d473b55424 commit 5f0d1ef6f16e150ee46cc00b8d233d9d271fe39e commit 41df56b1fc24cc36fffb10e437385b3a49fbb5e2 commit 3a7810c212bcf2f722671dadf4b23ff70a7d23ee commit b9e124a565c9df9508e49f1cdeaf9a3b5acff665 commit 3c50bf2196aaddcaffe2c7a1a7080470380cbfdd commit 7597d8f2e567daa02ca44e74fac2395bec120f3a commit 38e8ca3e4b6de1c6e49d0140264cfc8d314a5f70 commit 091e301c2b412f74795c1c65b97d49984ae2e211 commit f73767b2166eef975566c7ed7f1a7ba1e32a94f1 commit 196b68aa32c3171ebc8783e614d21b336ce61d50 commit 50e30e3a0ef3a748f86fcdd95072e207879a34d0 commit 16ca828617109666d23921d6568ae8b9802fe212 commit b02d6fd855633a3f34548612eb36a5bf5e89a4d0 commit b2d97a134c02ee14fcdc03b544ccb10449e853c3 commit 00117e3eb11441f398ef01c16d349bbfea4bcc52 commit ca7a75183b997420cf447f638962b8c92ba24676 commit 7485c30809edc56d407e09f72373317b158088a8 commit b9755229ea8ff889289e03bd405bcaf2e3e1edf0 commit c003b5ccaf625c4e8077a0e7a8a1d9e6e403d603 commit 16b85a0942c0b0f1611bcaa42cc98f020e34b1cf commit 04893397766a2b2f1bc7fe5c6414e4c0846ed171 commit 25961bad9212476983c570438366e1f5e9a9cf21 commit d8c782cac5007e68e7484d420168f12d3490def6 commit 6a7fde433231c18164c117592d3e18ced648ad58 commit 4a4077b4b63a8404efd6d37fc2926f03fb25bace commit 36681f15bb12b5c01df924379cdab9234259825c commit cbd97d621ece1d92c3542e52f8af7c04cd2c6afb commit 871f65a59f3cca534e54ab0efe9d976cdd05ac9a commit c87d202692de34ee71d1fd4679a549a29095658a commit a1d79eae960ce1642aed476d98e311aae46bfb82 commit 942bd112c92a13611899cdb075944b6e0a3b4165 commit e818635a31d28de9c991c27b663f3a222d9b6723 commit 17585c07c20b063d0b6a2740a5696388d009e9ff commit 31f9ed58827f682ff00c70ef482442149603a16c commit a01e934242f37b52e498958462a04f8ac30b4d66 commit a52e6cb06bbb6e2f3d9b9d3cb4b1cf165009fc3a commit 2f9a32b58927cc729f27afc622487db66de03e2e commit c909a49128a31bced8cfbd2dfb0a4fe56e01a6d0 commit be704e5ef4bd66dee9bb3f876964327e3a247d31 commit 3a5fa55455db6a11248a25f24570c365f9246144 commit 580dac7437974481646f10bfd198cfd80f22bf57 commit 503d67484e3a56a31227556c26ad560f9475f621 commit 2739bd123782f9bedc39285b3965ff2b4b3e6411 commit 13437c91606c9232c747475e202fe3827cd53264 commit 5c06c1df3582102e837dc7d6e8a462323277e57b commit a77269e33c94f372b141fc9d7e081d5f58a545f6 commit 05fd502e04c184441bd5662c2ac8d33a9c8fd03f commit a03f5f8d56a7464610ce696bce4150595ef063b6 commit 37971df8063b3fced72e5c3409ba1910c65b8557 commit 5caea7a589ed6458b5e5541dac582ef9a0821ae7 commit 1fb85819d629676f1d53f40c3fffa25a33a881e4 commit b3dd2903b09c6ea1803af33fd9b90212fb89e4f4 commit df996b5effda7d3b4525c78cd3fe375a224e734c commit 08527cb534ff00a8795bf42030e13a8e23391623 commit 358b3774a086b6cc5483781c6ef448b36a7591cb commit c3dddd6029676af390993da980881db9dd26831f commit 2b0ccf3923b5d38672ad801db004580948d7d2c5 commit d949e91b42f2c18fe8aded0ea002d1b588af2034 commit 63d5f8db53134cfbd085a5d9ed9646451b7647c3 commit 8ecd4ec6a5fddc1ae54cf92dbac0d46131d62fca commit 64dc2f0029ec42abaf87c44c636b12dff32ea395 commit 568199a5c7a971c5571a40f925938acbb48ad329 commit 3bd202b3c4c7235499060ead7b3a4ffe7008a8aa commit 2d5e8a8997aa3ca153fc2ad016c88012c97afa9e commit fa88342931bad919a542ae4348bfd4ef0afaf5ca commit 6d04e9785cd153f17a34ecb1d3ac7d848ca4339a commit 9ab737f3aeea29129903de6ddebf4bbce3ec0644 commit 6d4e03d0b1ba9cfc75a600519a15f41c2e7e5a6d commit b0fce908cf5db7d624c83f81050211e158febabd commit 3e7ef261d3866421a71fb6ec9e48bca543a4d339 commit abab9781274b6b7ff39fa990f4d3a15bee25e726 commit a5219b41dd908182e6b4c0a9ab842c11973043e6 commit 55aa33c3fe38763e4f285d5192fb9892133360a7 commit 543f6e7163d781eb989db0c32331e5d5ade68fdd commit a53cbd9e6f520a252ecce31f8b555203674a3413 commit 1c687c0da9efb7c627793483a8927554764e7a55 commit 250d9769eeee6cfebbafaca3e4f34a907b5b166f commit 15f00b073c9e3c6f98c6139ba1cc181a2adb3b74 commit 9b194af117a85a603321a3834636f1a8195a2c35 commit 59f79d83fcc840e7c639486ec54ed8d68d3c5208 commit 02efc0a780442930e6c09ccbd370e9f847401ca0 commit 76e3b62db9bf2dbedc5f41070684fdec64cd71a6 commit 9ae42f6120cade6347336a699d483c246e8fa427 commit 4bcba9844b7cfdfc3dc72568f8683b435a2bb3e2 commit 8cb06693bcd2596ba7e60681d3b8c7b98157a180 commit c5dd47d9e608c47fc85e91e7dc88aa024732dd33 commit 23577b3a154ba0fd529d784c681c435b734d13a6 commit 9b7d816f094e41839716fbebb1495061e90023a1 commit 4bc8f12db282e0b686a308e0d908262b6a6580e1 commit 1846a3472faf39105049d18fdd32bd244f3cbdd3 commit e986e89659e18ba986db044df58f165042817dc3 commit 7e0aa706810818d8e3fe865f76bdbd41296e6491 commit 6e8ca38ebc9b130f5be11d4c6e2450f7f838449a commit cc0e91a75533d76def12f2bedb95b00a8f70cebc commit 8b0d068e7dd177eca506d908622095b4a6c9d168 commit 759e764f7d587283b4e0b01ff930faca64370e59 commit aafe181f7dfbb726004c2ecb1d28297b84f3f34b commit e92f3f94cad24154fd3baae30c6dfb918492278d commit 0a0bd4f95cb33150b63d4f5bb02dc45c5557c483 commit 76e0410fe07ea236477adf7468636a9def0769bd commit 14d7ca5273fe7634f9c50dcc5bf2f2943e8bb0a4 commit fed4c27537893fd0b57975d05163dfe36edb257c commit e8bffa52e0253cfd689813a620e64521256bc712 commit 1b30456150e57a79e300b82eb2efac40c25a162e commit 8e539d2dd2afbf5a8755b373bf29082b58f912ad commit 2a4519c4e9b2e1f622ab4c5f5841abdb9760cb0b commit b474a6e11f3be9e1c45df56bb6579a7bc8468dbd commit c36d7948bb460f27f7ad77d35ad1d96cf848cd73 commit 5a20ca32a2a1bca469b238f1cab8ca05f06a7a08 commit 51d1b338541dea83fec8e6f95d3e46fa469a73a8 commit b40d022ec06ade9f6c809091dc188422a0f0946d commit 8f87447a8e5ea415100c005a4f468b1b7804678f commit 53b2e0c24afa4c24a2bf42bc850fe1565d978805 commit 3394b1f76d3f8adf695ceed350a5dae49003eb37 commit 53472eeb22ad5b122a485f73583f8201a8a32401 commit ebc25499de1287d9ad5f8461586e76e05a54df02 commit 5ffd56822a7159917306d99f18fd15dfd7288f20 commit 1350dd3691b5f757a948e5b9895d62c422baeb90 commit 23b645231eeffdaf44021debac881d2f26824150 commit ee9e64549fa90dab88adfa35c555dfee03f5ef4f commit 16a5a8fe6fb1868e5e19ba4e89e7b8caa37cc92c commit be2560e4b8288e9a8794cfa5db32614ce61a0068 commit 87d8232f0f7078204133ddb0880e2fcb3655bb72 commit 4b9a3117bbc7f827fa23b2efa35e369aa1662f54 commit 15d8c92f107c17c2e585cb4888c67873538f9722 commit 10e08943caedfb4b0b95933d248503a6f6b9fef6 commit 7845438718411b0e6e354f77a10a7b8b51b01852 commit 21da2507f3d5c50e7684ce9f28b7568c415ab8e2 commit a36e33edb239b2759de37c81d0e63b93e54fa5cb commit a19c560eeb0fe62633807b6ffd29eeeb56c4b44d commit 6a5c7ea5f4bb1aa72b419ef34a842c55e8608698 commit a40249ee7e6229f1ed56c7983993635d9064054b commit b97b429192191d73eeadea617df9b6db6422d05e commit 53ba0e1d6618366171091b1c1a316e753029757f commit 3a9a1f89c27643cb5233051e5190bf7503380b9a commit a580ed17f3ba86bc1b031fca8ba53aab7f4f5d6e commit 010d150a9183b3e75ff50b96aa9df397423f8c12 commit 82fafa7d58fb646bcac6a0155912eb153ea741d3 commit 9e1673db9871deb2cb6281b81e1bf93fb46946b4 commit f414bb4f717ad5a9ff7ed374472b98200239a158 commit ac6674bc94e91c25f5919efc91721264c00ab300 commit e5f5f7ccae5fd5807587f8075e06eb8a9fca2b41 commit ff3881cc6a588f8cd714c9ffbbcc9ef6b02c8d0f commit efa6fbd5899b975512c2ee684bbf98692259fbb4 commit 59f38b641ad004293611aac414f7fa55af29b51f commit 8e8cadfd88b44b4ffb658ae6d6ab3bc61cfd7f35 commit 005010f1f791a79d494ef83126425f587a4879cd commit 3b5bf853e3093eec34dc080ab375c2bd0758995d commit 411ad63877bbfd74d05ce79bceca75c15a400236 commit 1d1689ab0822942785769694cc29d150afaa7fe4 commit e01cbca0ea603acd62dad647ec774e7a9e02a7a0 commit ed15511a773df86205bda66c37193569575ae828 commit ab83b7f6a0c10b5e040ae60bc6789ff89dd9488c commit ad5c6ecef27e4f54748b7aa0815a722f83df5bce commit b7cf9f4ac1b8ad0fae1c0f011913361c140b49e1 commit 7bc00751f877cf9f57117842d62c4728c02cec85 commit 11bb3d1876fc59d2699e8050a361c9bc92464830 commit 6fe52b63f569c11a70b737751055afd46c4454b3 commit c088387ddd6482b40f21ccf23db1125e8fa4af7e commit 1ed591582b7b894d2f7e7ab5cef2e9b0b6fef12b commit fd40a63c63a182aeea1089a343e2f729de7e514d commit 41129e236f14c6c54145c722da06f6793e9fd13d commit 0ed1356af8f629ae807963b7db4e501e3b580bc2 commit 452c3fb857f8fe35544335d336eb6ee379ef9b30 commit 20d6343bf4576674756067a0c59be49526cad072 commit 801d827d80f6d8a574dee0f87e367167e2b6d80b commit fa27fa48061afda49f939fcac6c480f0c4c1fcfd commit ac76a51ddb5efb875c7c9ca87e002ff0aa4f63d1 commit bccb18c5617a8fb7f6cb2b6d93ae6f2657842929 commit b31e668d3111b100d16fd7db8db335328ce8c6d5 commit 6884d2051011f4db9e2f0b85709c79a8ced13bd6 commit 76120b3a304aec28fef4910204b81a12db8974da commit b2ecdabe46d23db275f94cd7c46ca414a144818b commit dcac00e4d6fdddadde1d5147d1f414f467356077 commit dc2b12b34fb8070b304a8725c4c4060058bc6ab7 commit d6e6cb5980ed8ad09cdcf3669056564b29b07585 commit c729ff4598d023afb8f81de63e1363d4c2a7cd40 commit 3c45d88d281ea87768007ab80c6d1400f6921b05 commit 6ebf4419fc19a98690be552eb3d5a4279aa82e6c commit 99037db545b5cca411182b312520d57c2f7a298b commit a23592837c4517e393f001f0189aaadb34145e35 commit 84a357bb0f7120e41620ee7aad3eeca233a4226c commit 776e3b502b6e49b1a72507d1a01a9b49d67fd843 commit 8b3f09fb44a3b4e88c87a4654f4bf859c2c6447e commit 121b214cdf10d4129b64f2b1f31807154c74ae55 commit 0bcf41171c64234e79eb3552d00f0aad8a47e8d3 commit ff57025c358603555f1e0ae0d50282a460433594 commit c0aeb90b28b88fa2eedef4eae4bd649de6fc2a3e commit ff6cd29b690b11fff7d1d998852fc6eeb02bed73 commit f5ebe80e32f809a52d4f562602f791c350c4a204 commit d3f557d52e2d1be48adf89a6c1e47cc8728b9054 commit 00f6a86c3c5ec14fc0b51cd7b4662817067c652b commit 960d71044eee8d7ca407ea272989de34f0e718f3 commit 6b5506158f902b3d427f76b0c243d025de40b333 commit 62fbc75b28a7a2e8619c575d2a0acad595345ed1 commit 91077d1deb5374eb8be00fb391710f00e751dc4b commit 58456143cc849ebd2e338d28d64747179e220a40 commit 00c8e0dd3dcd7016584ca131d26a88e4fbabe001 commit f709c06af881e4e2d5afd14e59aa08adbd9d2b4b commit a33a6b2f0824387b97dfdf3549239e5d70a437df commit 6a01df2f1b2a3b29721143729a3feff816bc0083 commit a1a9d90e6681a14335be51f3de0ee66e2446ee52 commit c324dbd23149b86686b20a822c3fc75c9eddfff4 commit 778be378be2a0e0528dd1ea44ed3dc9804950fc3 commit ab2b059467c94a5cb1869e238dd752127a45d122 commit dd6e5fee94b53f33ba61117827b89dd812a9c9a3 commit 78ecd904ee85f09360a8c4f1d15fb0a62ee4191e commit 1562a536ff4289c10d44b6d79b2be3e070dc3973 commit d9794afd23607aaf9275116f6b8580ddd3b7542a commit 13a8aca9b101a26a9da7f41c3e4ce7d6536981ea commit 7105bf946fc308d2cefd54e0fcaa748840d9a2d9 commit 2be189c9e82d0e522a22f7c31fa5a217e5ec0a85 commit 9fa560f70e249c937c7eddec019fd1c304bff135 commit f04fb4090f4a4771a440a36f8c18e038c45ec2fa commit 2d017fea5bf5c7ebe0518e3e2b557b4dff474a77 commit 9ba19223a5db2a3efd0228f106506cf33b95873c commit 1bcba228535f8c551d6ffe355c347415a88c1dc8 commit 611160b02a40ce3f60ab94eea85b394dca1cafd2 commit b5fa0913b56cedf651884d47bac3f1cf6e7e5092 commit 2ce177e9b3649afa9c19cc71460f3ad50e7fd344 commit eb8f1e3e8ee10cff591d4a47437dfd34d850d454 commit 529741c331da1fbf54f86c6ec3a4558b9b0b16dc commit 132c89ef8872e602cfb909377815111d121fe8d7 commit a860eb9c6ba6cdbf32e3e01a606556e5a90a2931 commit b24dcc183583fc360ae0f0899e286a68f46abbd0 commit 339adeb10472a34bb74624958b031e490531d37c commit f65727be3fa5f252c8d982d15023aab8255ded19 commit 72443c730b7a7b5670a921ea928e17b9b99bd934 commit 9d60cf4e8cf7c480d2cbd03ebe971faa64c2b166 commit cc46371e3d32de0e7ccb6077d064036822b8527f commit 77053ef7207a964c3b8e4e38dda2e273da5ccfb3 commit b296955b3a740ecc8b3b08e34fd64f1ceabb8fb4 commit b2108fc82a0acda34388bff3e3ee3544013b1623 commit 3a79e5a8b454bd055c5a7a499f773e082209cd20 commit 59af05d6a391575c5fe48e8ae693ff9cc5c682c9 commit b0bebbe4ea2a25937d341fa1f2ab2cd8ce339cad commit 8c6631234557515a7567c6251505a98e9793c8a6 commit abce7b4fc7c6d6a567872626e00c9b840be63b22 commit 74894ffc7d0cb6d99368b8c47386f4cc6c213a05 commit 03399d0bff2534e499878473bd0edc5dd8f99bbd commit cb493aee4d40e84a60e2e4eca55c745b0835ac30 commit 09e24a0b5243adf6e977288beb34497910a00cfe commit 500c04d2a70876c9fd49070606d948e96d32760e commit 80513e389765c8f9543b26d8fa4bbdf0e59ff8bc commit fe652becdbfccf265f4cea0eb379418d08c6596a commit 5183e69090f07585fa6c7ef71d4301bc16a15c76 commit c917e39cbdcd9fff421184db6cc461cc58d52c17 commit 56763be4009f3be178e534f9b3c10594abec5b6e commit 0487f50310cfeec1bb4480a67294fc7081c5ed22 commit 77802398097a55b62030466dd38efaf21c32ee76 commit eda80f1c2a00e3b62060de031f5bc547003f288d commit 2012aff9815e8a0b6439a2fe73aedef12ba4595e commit 523b69c6544554ed7d4b2a009cea0c001b4077b3 commit 92d5d2a09de16706fca340b6c1c197e562690da4 commit 76b1f8b32dc1ad8bb5f6fe2faa669e2858d35932 commit 56316ee91bcefaf535dbe8ba601cf5f14051d09a commit ad97840f954cc6834cc92324de9cde27ff0263db commit 652e09023029b79b4490e824d4ebe8eaea92cc8e commit 196222dccb3e1f3defe85919ae9f00f6f4a3f4c4 commit 13d68ae651dab6d19e014c5be838481c679f1936 commit f3e10e1a0c5a052d9e72cc18500b51d27fdf0eb4 commit b3060f5bea5a0e1dc932cb70f04a7750320c74ea commit 4d614ce8ffd757e4c7944bf9b5598b4a250a8a61 commit 5a1428242952f2c59f184e3ea6e18f3d474c911b commit a6d9d192903ea12b4d5c55b5bc3cd9466d2d4e0d commit b1118df145faab925637da0e02c53e8b3072699a commit 8652920d2c00243e8a8ca91560a30488d95d9a1b commit 4058e7cbfd0fb0cae7cbb8035bb43c593cc7c964 commit f9d35b945c599e8dbed17f484e82b4ad3d21721a commit 63f39ad858cdf1f5f25489f31fb66adda2d1d33e commit 32ed4660f1bd8ccac79a10c14f8f01db4f4db668 commit f13011a799996d770b19e941ec81e2354f24f8c7 commit 112a0317ebc601b4002c0c1ad0d500f72e26e514 commit d2093831eafb8dc0e25915c377e86dd4920d5b1f commit 474e1cd6fe898d3c51aa3633ebab0581ff80ab7d commit b6cfae8d9c71b6caed505de4f987862cf2f18c6d commit c19f5a0341e0a54e61469218fd9419633db5c937 commit 8bd1a8e7572c1012b19e4f57e2f49451820167ef commit 43c00fb1a5184ef68b1ae95a23476a85d4a4b0cc commit 272f17229e470af263823013792994fccf430fc7 commit 9b6c03cb96b9e19bce2c2764d2c6dd4ccbd06c5d commit 690d59fee83cb0f45fae21ce3aed2b335c87c1c2 commit 0592bb39e3a33ebcc956c1730fb2c756ebc71fdb commit 9892287897ca0c267a3071f7f6fa5d82126e29e9 commit 7358f053c4d6ef2692e4860b6d46b8f33c9aa1d3 commit 82ad584eed8baa5b1988580b3785649e7a1c07e5 commit f97e1d787f9f57fc78227bad348d092c1d7a1ee9 commit 1a2ff5c3058d3811b092736cbbd3ae09ea308dd2 commit c38e753abee274318a52ba53f99446a1b912ceea commit 397c07a3c90b18f09caa6ec4e00597f47319fbee commit ff533f73d5c038e9be359fbc587dc229a8299e13 commit 7ded94bd11d47a8ddef051aef1d1a42d8191e09f commit 5bee1e2de39fe41be132ee389529407212894582 commit eb79d71e506a1caeb0dedd1bab0e6899e8e74f5b commit ceb33b9de14aeab9bdbf73a45f44013d1e2aef34 commit f2cd50990d210eb70bf38d8077836772d4216a36 commit a4ed5f3ab0ce2655a217cb214fb0603faeb64797 commit bf8531990380c83d29f6fa69bce147c2247ce719 commit 89eb319aab83c76ffa5096d533bef3905e6e3051 commit fdee05235a25bac8495e1261be10a7727ffd0a79 commit a1e5b6d83e03d60d15ba393cbbd7d5c13e5cf0b3 commit 56339ffaeaf87cce070c2437df71dc3340598be0 commit e9db46e57661553444bf4543621c8d0202616501 commit c2b190bf2a8bd02ac196a5a41a00f2bbb73e8252 commit f5f6a5bf01096fbb8d33d917de3df681374d2b52 commit f82fe0d44913248877450584c27992c5b0f96ce7 commit 6d5815e22981500b189eb6aa2a0f8017d5f7fab7 commit c0a98824fe5be4b7c7f3323e840928bc6eeb618e commit 63379dbb50618d388f6ed54e62966d0240048964 commit af2ea3d32e53d0012fe00ede5666870f65a7035e commit 65d463807e8dc5b747abcfacb54b9119b8b71850 commit 5af3ff97c5789a500c2b9b4a5b63261d19a3eb1e commit be8425c2fda5f635f56f4159a1b9b5640342c279 commit 72d1eda78b77083482bb91515c58a7c0bb84703b commit 488e10740fbdfbfcfc359e0c69877a78ae9d9bb5 commit a9bb617f20eac215fe09e263cf5df1d85e4af8c1 commit f302d33096c059eaf97af3c0e098d46dec9dc29f commit ba94ce115e73e3bf5854a5b356b8e0825adc94cf commit b78fc1c13587ec37ec67de072921a5527cc70ec3 commit 742043c8affa8cb96db5bcc85b6dd4f904a804dd commit f1296603cc56219a6bf786b7ab4ad0cb6c7bbaa3 commit b756b0cbcb8574fc1b6c8448b63bc5b9b8c38f90 commit 3fae6d20e329816e4f0b32b765eaa4e48b02ec66 commit e64834b5094ff4ef2cfd960b82f69c2c26345501 commit 6280e96f8a5dcee3125d8963bc80773c99536429 commit bc8ab44023c1a4193ef2c5d2a152955722b33a8e commit f56b6db3e5e432fd0c82ab231572f92a159b5d34 commit 8b4bbaf8ddc1f68f3ee96a706f65fdb1bcd9d355 commit 2ed653c7b843db0670136330480842d76cb65cd8 commit c488967488d7eff7b9c527d5469c424c15377502 commit cbf4890c6f28fb1ad733e14613fbd33c2004bced commit 8ae6dfc0b61b170cf13832d4cfe2a0c744e621a7 commit 098c9b58be2267a69d15403f6341e8c2da0d90a4 commit c905aa685655f20db68929c00e1279ba16f30756 commit d27a1e93f21c209b8a87c816ae04cc3ae4dcc9b6 commit 5f7e384ab56e1edd6aabe860ebcb2b88ec468cb6 commit de84d580126eb2214937df755cfec5ef0901479e commit e619ac419174fdb6093b9e78b41bb5d0a97de9dd commit 9856893f754435c8f78e0a2e03716bac680b4bf4 commit 07bc2dcbcf403d47d6f305ef7f0d3d489491c5fb commit 72d7a7fa1f2404fd31c84a8f808b1b37021a3a9e commit 73e686939cb9152751791e518172c37eb31668d6 commit 6571bef25fe48c642f7a69ccf7c3198b317c136a commit 71e59a426845a033cf782652c36cb733296917b8 commit dc0297f3198bd60108ccbd167ee5d9fa4af31ed0 commit 58702e1a093b76cd273ec25b0cd0218d235743cd commit c4c3808feb9c279a66519a064908cd06e5800da5 commit b2a9e562dfa156bd53e62ce571f3f8f65d243f14 commit 30eb41f5d1a7ac6bb9b8f624dee5e545f8ee2c8e commit 663a87763b570d4e92d821b30508bed0025fa285 commit 2f94469cc0db4fb7e0b39208058be1d793319689 commit 2b04d04de956b44cc140d45cf8ebccfb378ce3bf commit 3f670b745d6144dc97db8ed65ec6b2eb315b0006 commit 3521276ad14fe47ce1c4382749f3c95762629375 commit 5b99dd12fe53c745b40191b9e7fe9a25653b4e7a commit 6ec054a52d92fd172560996e3b2a4234a31f5265 commit 966a0d49d1cd57165ad3e6232cf9de6fe43ecc63 commit 19f4da84b695fa84b42de017ebe6018a0195425d commit e82e1a0c22d841f379b1c768469dcdaae650e443 commit 5a9f8db2db70e09b47010a936b6c4fb83975464f commit 94030a1d3283251778411cf74553607a65260f78 commit ddd147d91d509c9d9fc6159efc5b56f61440bb9a commit 4ce2c7e201c265df1c62a9190a98a98803208b8f commit 70c7273778bf7f18f2e46a41638f6ff38fb9fa51 commit 7787bfb3b0ea62432d3ffcd31eb66daec4b462ba commit e3626a456599304f59f827494746940ec025ad6f commit 2d0f5001b61c4831d413d12c10caed0e99d73b25 commit 600aa8d31af9bf46c62ca0375cc2abb4f1d20c8d commit 60341a6d79aa5e18a9c4ad8d7193e1ec6f8741b0 commit cb0de06d1b0afb2d0c600ad748069f5ce27730ec commit 98c9d27ab30aa9c6451d3a34e6e297171f273e51 commit b7b68c6e36776a46d47743bc53b19089f5e0029a commit 2d13f801f1a67e9e19ccb810dc4f56870f4e9704 commit b6eb664d89e7ed1e3369fe2860fea31e6dc45e34 commit 80b6ef8ae25ade45e6418df3ddf699a5a10a7ca4 commit b76f1467dc56fccecfdd63357e2c71542ecd96c5 commit 4b7320bfd49dcaf33ef8ab724b88f7baf6bd9978 commit 71a18f7266f301b20faf9f5fd7aee228c83bb4a3 commit 27d4815149ba0c80ef2db2a82f0512f647e76d62 commit 4e37e928928b730de9aa9a2f5dc853feeebc1742 commit 6b93cb98910c826c2e2004942f8b060311e43618 commit 8b4b3af869e981bba6f5c140b41e76b971dad26a commit b729ea271e849c88f91ba51208e7ca3fb2f1bc4c commit 9e19f42955ff9863c5fa17916502de38f138f456 commit 0e6ffdb2b740f3aab098e3a7857ddf53fe2e0059 commit 6978c5f5a64d4bdd6b00214368d5fe59f56e9890 commit c7f2b8bfca78be8880af3ae4b6719767d4832d92 commit c504ad914f5bb2465395b310b673b48d296e08c0 commit 046eda65258ba1e6d9052e3ca07d8e489b6325de commit 30341f0b8ea71725cc4ab2c43e3a3b749892fc92 commit ed531feda7852de0aa702fbe3d23a0f743ccc77b commit 4d098000ac193f359e6b8ca4801dbdbd6a27b41f commit fb51bf02551958265b7116f6ba92752295c83c26 commit fb13d3497bdcf4f544be25f716b6bdf1a4f8e63a commit b554c009da1c3c6cb8c4b5da2ac2f37fb527e927 commit d34bd3c7cb84425dd6146a8d07af597b93ad4c4d commit 40115947b59f2ca361a47615304dff0a2b69a2b4 commit 130377304ed09e54ff35a8974372498aad7059f3 commit 0159e311772af9d6598aafe072c020687720f1d7 commit 5e7715478c273e5b17b08942182bc0350b7ef3a6 commit 226a0baf9098841ceb92ab7804a07426540663c7 commit 6dcc3c5121b72c3633592db761e76083cf7623a3 commit 7dc340540363a008cee1e160e8f2a4f034f196d4 commit ee3dc9e204d271c9c7a8d4d38a0bce4745d33e71 commit 8150827990b709ab5a40c46c30d21b7f7b9e9440 commit 71209c966320c0e9301ea736b9774429d4f8bdc0 commit f33044952c24f85a1527f91440b89d4423840de2 commit d6e6ea5efbe91466fc2b5943efbeea3a5a0044a7 commit 793ee232eedff8483a2fff87ae82832e243d381d commit 0ca57515606d3a8462abe8dfa83f23c39e5e69a9 commit 4c02f730165765ad412a1ce8de6ea0d7abc7a333 commit 4d3c4f4f7f22670ae7163b5f9bd6cfea28c2efc6 commit 0ad649321ae2537191f6cfa15ace5cc48d15f0bc commit fdbfaaaae06bbf3074d309b03d3853281f6cf433 commit 82252544921e3180389dc62efd0ca15eb2012898 commit d190e4d0f7b52bdb2b5bd8c3dcfbcd7877a0dc53 commit c94943b0863ef3b8e88769f0805f715c8247b2bf commit e2b3f95b47ed08b6ce8b9d64dbbbb79989ff3705 commit 6c565218ed965160cde4a37ce0650b5c94b6241e commit 95eebc05a72942582669f3ae675d7185dc275205 commit 25907304cfce5244fb4a8aa2ca5ec884e823b7c5 commit 5235053f443cef4210606e5fb71f99b915a9723d commit a1addcf8499a566496847f1e36e1cf0b4ad72a26 commit da120ed561e2f47556f63638842e6d6ddb8d8216 commit 9b71be8785e2849cd82b6aeab642b60cd6577966 commit 0b4119d54b17618c2ddb04a2af5bf5ebe24121e3 commit 27b791514789844e80da990c456c2465325e0851 commit 28d05f0836dfc4479d81e664f345ce125ea921d8 commit b7fd6528b5ad80eea66df6240f2399602d9fd388 commit 62431979dd92e8b2df2ea4ef38f852511b4e2638 commit 9d8af72fe73f00b74ac1ace6201ab7030d765d54 commit 81262b1656feb3813e3d917ab78824df6831e69e commit abefe9fcfbb6705b26ce1b71eb38a76c33291414 commit d8075f5a6d9d5e387967a65b583c5ec63bba5008 commit 97b05c8c2e1e0390f4447dc9cc5ec131dd54ca02 commit 86f06bcbb54e93f3c7b5e22ae37e72882b74c4b0 commit fba4d19f3731483ee8565f9e9bb7ed9fc89479e8 commit 26873260d394b1e33cdd720154aedf0af95327f9 commit 0d3004647631aedb713251525a99784661574767 commit 259eacbfcf66c52384bf4e194fd34939b6007265 commit 0fe2df4498db493ad400a67eb0e7e76fcaf7c3be commit d295786840166074e3d5d3ba3e0d854b21749510 commit f6d17270d18a6a6753fff046330483d43f8405e4 commit 02a2793ab27e3aa3f345f4e7761005e5c9e3ebd4 commit ab021b9f3194c16bb766eec084d22529e503f2c5 commit ba93dddfc92084a1e28ea447ec4f8315f3d8d3fd commit 23ef388a84c72b0614a6c10f866ffeac7e807719 commit 7c6518c1c73199a230b5fc55ddfed3e5b9dc3290 commit 02a940da2ccc0cc0299811379580852b405a0ea2 commit 35079e7eeed349fe10831cd596b9e279d793f958 commit 50f040c53ea9b26b32b8cf06724c24a99a6a4498 commit 8adeff83a3b07fa6d0958ed51e1b38ba7469e448 commit f3dde2ff7fcaacd77884502e8f572f2328e9c745 commit d7dc4917ae8147836a4eaecb5f64892d18dcbef8 commit 9655a16031789d43c21084027fe5a76393c189b1 commit 6f0e68b8c76df15f4af5846e4c8d49b15a550196 commit 9424a5bf0836347b737ab27da2c22111abf0ede2 commit 700e535db4ccd5ae0c0514f7d9a5fd9c98eb3855 commit ce615fe328450b761eeb71c046072aeca3099f3d commit f2510355fba808972253a8d8729f05e064c89321 commit ff930483af93753cc3ba252e13f3cd92e505f0f0 commit e4e6ae41cc9d96f253383e1ef2b705387f45a132 commit e6aae1db41e501f9b553ba3289c599e657de04d8 commit 0153d27673ac5c122d2437c1e573923963abd181 commit a8f921a10a8c2e2b209ad9ed1f1b7f48192c30aa commit 7c62aacc3b452f73a1284198c81551035fac6d71 commit 59f9c2c9f6f87c640d82a9751647d2eb1c4f0095 commit dab993bf151359e4e4d045c5469f34333e88e359 commit 83e3d0876754f820cb2adef55275d09d31676020 commit 01b1ace3b48171c4cbdd9b2e79e25099f6e3c861 commit d01bdc00254c2d12d36b0dbb5d098286edeb00ea commit d41d048043c47a5fce1879e8e95dc93a573d3708 commit d40f275d96e890ac58cdaf2a46cb928c4240fcb7 commit 292b1a8a50545b47d4fafc54452147abd2d1d86c commit 1671c9617d7e987f7cb815a77dcb2dbcf6d28988 commit 35359c36356a4226af1ba3956d48abf7ed136ebb commit 6b68c4542ffecc36087a9e14db8fc990c88bb01b commit 18fbd567e75f9b97b699b2ab4f1fa76b7cf268f6 commit 425b8481750abce45fa4aeecf6c32152cadbfa15 commit 4f109b061c12d63b332338ce9192593842fa09a4 commit 278d4f429143d1c5e7c4deb7d7147063da12606d commit ad45492c7c59bd2fe9960a1969bfcef70d293187 commit a2a20c1ecd7f2706b26dcdd61d245fe28aa7d72f commit 41cb3e2150190359b2cb325ea1964870ba620709 commit 8c5fe7d88bc1c12662a804fd75edb6ac85225ce2 commit eef3ede533aea7a40e2f72a7886da4827f10eeac commit db0d2d7572153490449e360d5ebf298badf5f395 commit 1a7460a1976d4a9cba1545b071a45c31c1786e38 commit a2d6f86bbcb497f8e28795a3e4d27861dea020df commit 1537ec85ebd7d7aa3ce1a003007cd3588cd58bda commit 9a0b11d4cf3b4324378c322b7043962e648681ed commit 760edec9396851935c20914f5ffdff94dd9d8f8c commit 9e0590eedede7bef999f9a4388243612456ffffd commit e827cf32eab449299f6062a8bca05f981c09ac50 commit cd5bbb2532f276626d1416b237676772bb61f11e commit e67a35bc953a873881a2a8c1ea27ede5870f5f42 commit 16893dd23f6d1e3a4dd6da272ef9960825da3ebd commit a33c9699e73456d08182ad7b87a4af52ac24f779 commit 18778b5fdd018baa6eb492166d04605b39030e1d commit 33e26f3544a558e7476eb221ff33173759b3a116 commit dd8c01e42f4c5c1eaf02f003d7d588ba6706aa71 commit a50ae1a2fdc71985e9bea25d1b509ce5e2b224c9 commit 7cb3274341bfa5977f3c90503b632986a82705fa commit 735ffae0c906307034314357814391a36e637b45 commit 15bccbfb78d63a2a621b30caff8b9424160c6c89 commit 0632d4f1b1c5049479124bbfc03f0b82eeaa5295 commit 0749f18967d3c4f01a8deec447dbf4da5f9c8b44 commit 7bcb697c94a117081a13cb40315c933247560cab commit fe43444d0e5924bc37b55e558bd15e157225a9fb commit 29eb839443058e2bf953566c8db99131c1542e0e commit 8266c81710942876d87c4684eca417e70c0d631a commit c9c672db1f9440e875ccb9b3f026edc516abd667 commit d1bba730a1052bf6a3648307b77b7e563b011718 commit ecddc26b4c9b72c86265536c2ebf31f7637683fe commit 0fe51805ce64222748310203132bd273483063f3 commit c4fad8c64e4c561f346ad3bf34dc4d260803ce93 commit 706184fad005d64f79d3931c70ad443fffe0d988 commit fd0141d1a8a2a26675ee88df75615c05a55044de commit 9efa033704c5598db935a096863cbe64b97994b3 commit 77f183d151bda791ac26ee479b6542ccd35acdac commit e6b6de16782b5cd08b17b3a4ab11aa7a8194d7bd commit 30d70e1e2680e6450d6be4d92d9ae3d366bbc9ce commit a38a005d95796fb5d5b8c8be325facc75c4708c9 commit ecab9ac6aa57cf116b552c7eb6a5c8208c1746a0 commit 24abc47205daa79dfde92274fa8c14b20b3cf797 commit 89eb42b5539f6ae6a0cabcb39e5b6fcc83c106a1 commit 76b7be63d9f33e8f319e480c50d3e53460927add commit b4ebc06212a3b8906c837bf899b34a2ae36a5e0a commit 67093883808b5b39894d8859937be4468eca50db commit dae870019866b247a7796359c4327ade3170faa4 commit d39f1bb57741ff6e34dd3c2937d5cddfed8a499c commit f4cd7a85db75d78f7cb907de785b1140e8b8b8aa commit 5826d5a5d5c5548a11fbc503d9a0bdee8af310d2 commit ecc9ab4e924b7eb9e2c4a668162aaa1d9d60d08c commit 0797c54502d6cdb806aaf8d482b3ed445d6e298f commit 94629182f3096fb8beafabc7e7cba097630185b7 commit bee48570cf8e312faec9b8f465762052555158d0 commit 9bf9442051c0af835b683411d9ebc6a5036d4cbb commit cb107271687d569c3b706b974bcae6b9fdcfe9d0 commit f98675638f0a818a2eb802103b1e140b091358c4 commit 710151263ca5f2ac3d120e3d727d2c75be905d7f commit 201fee333d4ca8cc9cdfc3ee27fadf35ca512a14 commit 38a404f8afa93c57ecb7868089fdc2c4371eb084 commit f1ab6870402f128a61ad2da47bbed1cc67d7b644 commit 259873561f3be91f5dcf1839ba1c3962642ca626 commit 4a23b9c67021c421a1cf9161e355b2b16e02252b commit c07c0c0df92050f2f9a9a009213702e029bb04e0 commit e3eb71cd699e718f12aea5d16d8d06dd93e35332 commit 0a3fb7338fb05285de76ce38fcf56cc3ab61d982 commit 64303b72de787b61a7d295d6973f5fbd955b85a5 commit 55945f08d9b7a13f92a6fb7f681b95c031627a1a commit c5ed3655cde2db070e64b721029ec9fee94ecae5 commit 40c6d55806a7da7e269f43af1410a36f865c0956 commit 307ce8bdc64ec3be8ce712b48026917d2e32a71c commit bda37b68f6d387e3a481fcf24420ecbca5f524f7 commit 8b18f0314285f128c473c92233dfcb96901d0af7 commit 39fb77a8d37eeaab8ed8127bd9b62b9d0af98534 commit f9993efed789ba52fda5ece8ca48ffd84b3cbe19 commit f2eb0a66ca160998302d3acdc6f50dbb8c0db833 commit 592846e3fe87cf120ef8b2c5e490762354e5ec2e commit 4ce4fe27205c1dea5e6d87edac4ccb0452a9d487 commit a2cf2a883c24ed582d829fc8ea6b4f5f09dc7b49 commit cac3dc89f2104281b5c7c4ab4435953f7a754f58 commit 3389dd059fff2dfd9b13e218c9f65e4bb5dc98a3 commit bd32af6faa7b22efcdaf7743ea06639d0985c25c commit 38c0d9882a6ae60e3ac7b00b00efd61f3a7ffbe7 commit 8bdfa5756b1b3e0880eb06a3b8fb262bb1e78341 commit 1ee6b2bff2caadc318c0ae5da6014809bc9517cc commit 4bb58793223d18be30f9673ea3294ed4e9740c5f commit 9b648fa54c5410278edeaa5697c6461d058f6448 commit 31a37dfc8f0be35b3668a3e5092d8788b94b6607 commit c51aa7923e28f30519a16bf89ed3c4f27460835c commit 4d1b653571c09f63a5970aea5efdbdee7a1520dc commit b5838d1517e229111453ef9177bacafa39f3f1c2 commit a67e75beff5613fe1aef5d4649a8df0e8353819d commit 82c13da746d24af7f2179bdceca46f950879896b commit 4343f814e53f461c3040dfd3481aa7d8fcd02449 commit dce1b8239803c456e5c6a9f45164d16cf11e3470 commit fddc45026311c05a5355fd34b9dc0a1d7eaef4a2 commit 906d2859e1c69ad3bd680fc02a2de00105ee827b commit b965e42530a815987a56d84b78c11e1852541ec0 commit d4bd7a50ca7c6199438cf19063464b4d6327a6c1 commit 7d37bcab9748134be668ec222ed630150eb32e8e commit 5b5f01eff70f9fb0456c945b0309bb19c186491a commit 00f85667faf03591666a3a447dc0d489ea9f0cb4 commit eaa3feb16d3b8fbb787cc6c0c16c45bf654d806a commit 1d72fc2e9e04e8f83599b309dbde06807273775f commit 63e6a77ccf239337baa9b1e7787cde9fa0462092 commit 9c696cc57c1a6dab6da6b51f4b30a7d16e233cbc commit e90711946b53590371ecce32e8fcc381a99d6333 commit 509d662a57ef5b1b460ec000913e9553423e7bd3 commit 0107c595c5d0521c6397836be0767532121ef16c commit 6f16d101dab5ec6e8fc9567769f73ae8baa3fe38 commit 485993e2f1a6bf3d1e8fb5a38c82edd3ae697ad9 commit f9234217d0167f43cc0cdccc39353c37de1d028d commit ee3ed100663d2ae8280bd5fc63b3e2c13c689cce commit 1b9366c601039d60546794c63fbb83ce8e53b978 commit f0b4440cdc1807bb6ec3dce0d6de81170803569b commit 0f3fda3117507e22e0c8bfe1849ea483a6e1d793 commit 7919b4cad5545ed93778f11881ceee72e4dbed66 commit fe9d0061c413f8fb8c529b18b592b04170850ded commit 7d83c129a8d7df23334d4a35bca9090a26b0a118 commit e21cba704714c301d04c5fd37a693734b623872a commit 2399bcc07c01189737858e0a88ac4ffdd1d4b03d commit 7a4c93cadd58728cd2d2d1c63093860e4af7b160 commit 8c0aff7d92e2be25717669eb65a81a89740a24f2 commit ba757a65d2a28d46a8ccf50538f4f05036983f1b commit 8918e180a6fd67fc9864f2ba18186b4573f8a61b commit 02649bbde017a3ff0ff24105d791016022bd443d commit 2c2e7170a750506ed9e1d28e225b647a6563fb3c commit 0410c6121529409b08e81a77ae3ee58c657e2243 commit 322ec93e9081d717fbc02c14fe80f754709e8b9c commit 5c91b5ad7155ee6e22930f7cbcb8e47dadbe13e7 commit 25d434cef791e03cf40680f5441b576c639bfa84 commit d9b5d83c5a4d720af6ddbefe2825c78f0325a3fd commit 96f18263140266d737e931530cb759d14858b0df commit 4f122372579d28e5ac74f3c222c173466ae5951d commit 067a974fd8a9ea43f97ca184e2768b583f2f8c44 commit 7ae2a3c2e283d0c030a612769fb2e834a3f7aea5 commit cc76847bf3ec5db8051600da690b3bb6984cc854 commit abf874a328a885592a6bfe6f7db463974e14b615 commit aa389adeaa8565cc664a6ee4a5dbdc7a6000d46f commit f953c6585e2d59254511c8d122e8d1d55a693133 commit db505ff68c122734ed0e944f9f8430eb89947fdb commit fe7fad476ec8153a8b8767a08114e3e4a58a837e commit 7c04b6c7e9c5b1d8121b4fe88bc47daed2ff8665 commit 767bb0b172fcfe62000265c91c4a84837d2428a7 commit 840cb2dc27174e06697b5d16ad76cd5adbfb4cdc commit 9a112dd8c17fa6397785f2227dfe4f6f175ed524 commit 6f60de67d7e4ae0f6c7aebcb9b62d89fed7233a4 commit 22a28633a40fd419f91ec8304336841d0f9c880d commit c931a0aa82c65964bf62d02d3fb7e69153ff37eb commit 5adac4c9f321db0b2efb1b6ac6d6d9791ecb6fc0 commit 194ecad0b5fcd6f1a325e31ade9c19490260b40f commit e2364a56ad47d3299b1bf2fdb854359d4a770230 commit af23476af8a9ee881bd7a6ef5c94b6f4049ad096 commit 30188df0c387d9837562bbcc38ede98f6a1f0d46 commit c9043706cb11b8005e145debe0a3211acd08e2c1 commit 0670c2f56e45b3f4541985a9ebe06d04308e43b0 commit 332122eba628d537a1b7b96b976079753fd03039 commit 600a0c7e76bb28244e019da3d6a42cae0c836f60 commit ecba96d2f838867af63243fc14f2eea486059967 commit f46fa84bdb21fc56c9f78252469fba2a0821072f commit 66ec4c1ab1c1c6b90afba0dd5ece625009c2c9ab commit 50c82997627b899f05a541f8858a8f34d8bf4bc7 commit 5e3e23b825372451360d6e39d2d25d0690ebe2f9 commit dcf9969259616435ef3197d0f8f2f1b0bcfbb1da commit d4ca1a8b334c69c26fb957b3f07f198f3c24adcc commit d75131164e398750269487cb72c132c39997956a commit 4cdaba1bb02392422ebf6aadff8d7fb8b9049d2f commit 26a4463e61f1a38187b82ef871ce1222d9e1c878 commit 463c93a18cef8a0b22d4eea1611e1ed31c1f97c6 commit c449f506ef38435b2c7e9ceb661e48662ac86b10 commit 491626f705fd22191e8d620255effb0ba878a657 commit e5f3081291eb958b46775edfd29d1f5367078474 commit d05386a3fdf373a19ab1918846668f096e6f966a commit 5488bec96bccbd87335921338f8dc38b87db7d2c commit 03c346d4d0d85d210d549d43c8cfb3dfb7f20e0a commit fcc20a4c752214b3e25632021c57d7d1d71ee1dd commit 100a5b8dadfca50d91d9a4c9fc01431b42a25cab commit 6f39b0c5ef0385eae586760d10b9767168037aa5 commit 6498a5e010fdeeab14b678fba58a6097ffad7e31 commit 30f2581b639e6a4a7c3139f3e5086447db5bb9e6 commit 711c39ea9885028a674a669d5b66e7f5e0651db8 commit fddbcd1532930fc8732f3018135e75f5779a8f3a commit ea349ec038c40b4bc6f20a61137282569d944ee0 commit 4684498cf9991e97a001ef5814391c7f7321ff99 commit d1b97b121e3c2bbb3c74fe91e42d13e59fd9d96e commit 916f2740b82a1b58dce2bbd51c9130ae77a56e25 commit c82734fbdc50dc9e568e8686622eaa4498acb81e commit 44d2f310f008613c1dbe5e234c2cf2be90cbbfab commit bbe2b06b55bc061c8fcec034ed26e88287f39143 commit ea3e66d280ce2576664a862693d1da8fd324c317 commit ba767b9d01a2c552d76cf6f46b125d50ec4147a6 commit e4c0fd3f965533cd2b38200ca73625afd602d39b commit e379856b428acafb8ed689f31d65814da6447b2e commit c63c3bfdde2656a3ead50ac3ce4a51a634e22dab commit 3b87886bfb038de2c62e627079472ba612e89410 commit ce43abd7ec9464cf954f90e1c69e11768b02fa0a commit edbf0f302dce5882424d37e460ad8c0f76126115 commit 899634a57abcbdd62367db6194623b13372d9da8 commit 677ae51f4901e22517f8291a0263f794c104e167 commit b5a3fc54e8e3a3215d9771c2774555da431147bf commit 0b9647d40ef82837d5025de6daad64db775ea1c5 commit 77bd621d148e4fb73bc1710b84faeb602d3bf704 commit 6fcfaac604dbb840c3be38ee8c7b1e3e974daace commit a734a717dcfe1ce618301775034e598cb456665b commit c3c584c18c90a024a54716229809ba36424f9660 commit b74f46f3ce1e5f6336645f1e9ff47c56d5dfdef1 commit a025f424af0407b7561bd5e6217295dde3abbc2e commit 0dfcc2bf269010a6e093793034c048049a40ee93 commit fc215e83d0480e8af58fd8ad2282c3c319ebcf4e commit 54743ca151a0050e0e9fd89a562392ddbaef4330 commit 0584bbcf0c53c133081100e4f4c9fe41e598d045 commit 79fc4e856ea8f62ff7a46cd0ce5ad3a895d39298 commit 02b2c97824df69f5a8618b28fcb7060be6166436 commit a2f72c0717ff2316b106436d8188a75e7886eed0 commit c707ea82c79dbd1d295ec94cc6529a5248c77757 commit 5ad8eed17232410edd127a00c3ed8ab1c03972e1 commit c286e8501adedc2a22620a5c60dcd14286b38514 commit 20ea0477686d69721a68315c971378884787fc23 commit 65890cad2edb53b6c3fdb289fbf071faac842070 commit 3cf7a0bc87f028b6bc63a43a80d9d6026ae4d85f commit e3bc320c4b0e1c2f45d00b917c27e474c90dcd9f commit 180998bf307f78efff43f4067c09156e0f33c8fd commit f24a74d59e147dad6eee7f132a9765c5fec22dea commit c2bd614bf8286c40dcd9a7d0b3cbcc4d0321a9c1 commit 7b3e14acc1f205d05d001bdceb884c5568ef10b7 commit d13fbeb74b7c22e2a22c3d2b8e39a9b8142128a9 commit aca9ec9b050c0900c3657ea4aba63d6d95073b22 commit 981a47429e875693e24da8f7bdc3345e935e32dc commit f123fda197525385a58c4cb88a0dd3f6facd5ad1 commit 130d8324ea95a8cb5bc7e1ec01ff249892352dc3 commit 43e88e20d3f3107b0f49f41200e315c9dc8a921d commit 1c79b5fcdf1a29525dbb6e8243d0e63c0e9a5000 commit f729e63743f0fbd504a1464e9495c456f63ff7ef commit f25c0f0d4f99df9725e50d282c9143fa51e84645 commit 578df37b1b6a5bc41602cdab3d982072e5688222 commit 36d63ce5dbc0dc37b5af90f6b7c3b92ab26403b7 commit 8d00cfd5e6e31df21efb257a6e379c66deff76f0 commit 51cd1bcfac4f1f8fae45249e08929d57b1d17bc4 commit 7b111aaae0ef810d26520e278bc9f7644158cb99 commit f281a92abe2069f75775b2e9429f15190fbdab30 commit dcb5bb06248d2406df2bc81bf8af72e9d7cc2ea4 commit 1092a4ea1b80a234e508a43364371302b7760b97 commit 8df5f03be54cd2d7b37009168080f982e9ca7574 commit fb92daa33a6b59059ab0e3ae5941866a1f64934c commit 029ab8cabd941fe0d8076ddf1e74ebfc7d3ae86c commit 5f6021d52b159f5bdb0164e0ce0c31df40d5e2a9 commit ab23db6d08efdda5d13d01a66c593d0e57f8917f commit 6e09402098b5249a0f6684db8ce45ee1fc67eee9 commit 6ef5ccaad76d907d4257f20de992f89c0f7a7f8e commit a3199eba46c54324193607d9114a1e321292d7a1 commit d4c60219ac10242a1d5a621e7ba673d6128b7e13 commit 41b830476009f50233e8df538113765c0a59308d commit a89b530373b720a94aa97ec3c4ea79dd6ee59fa7 commit ca17c8e149112270b598791bbd98968fe9231115 commit a91d91b6004796b868374394962331a1322da7ab commit 20c34e5c4af0b4a0972ae8b237c3a3866f45b082 commit 057fef20b8401110a7bc1c2fe9d804a8a0bf0d24 commit bac38ca8c4755452fcd7e9f2603dea944bcfe76e commit ceb7114c961bd8d8605dfff8e18d1a39d99cdd30 commit a29936bcd21eea7ac87546e2107313cd0f62c4d7 commit e7b5d23e5d4705ae93ef6af891b7b7bcccbe1257 commit b63d715b8090aed48bdef5930625946fa4c0d324 commit 8ae875f641188be338126cc76c76c82d256364dd commit f3bcfd04a52fb1b1702349bed2bccc1126b97f89 commit 70d645deac98303d1bf9ab08a4e68da52bf8c1e1 commit 00c8efc3180f0cf919b53980e969430657e01685 commit d2d5f6d578848f13b1d01abd4e9a2452e5602586 commit 1bdad3f21671d28b68fd52b5115ff905c26dc4a8 commit 7c4a393f974c26da8803618ca2c94fdccf5c7de7 commit 7e43a00be19a152cea7dca4ae7078cad999230cc commit 055e8af4c9a432f28132f6b42818a56e5b94cf12 commit 6069b21f58dc96e5d57c9c2fd64240135952a545 commit ced7486468ac3b38d59a69fca5d97998499c936b commit c8f33a6fa64735015032cbb2bc5300b93f3f709c commit 0695c746f55c875f4cf20bab92533a800a0fe4d6 commit 2d197a1f70be3f3c82858eedc50c93ac5f639bc6 commit 871d9c1f3f8ef17f8d19e0dabf5bb7a02dcdbf58 commit f25e698d43fb279a4f168ef1f05d0ead98beffe9 commit 16c211403998919682452ac323b71231efec7cce commit 22adf7c51ed19078fba77eff95d74642e3411c13 commit f2887e7ff3eede887ae0980169dfd1932e4f086e commit d0a83b2e212dbb3e61c08e154f48d7238a4a8950 commit 603cc828aa70260ee28e5ba6a085fdc0d6485941 commit a93247b58d04750a5d8dff922053d8d7ad6e8917 commit f4e43719d026696f4f20a420eadf67e3f55729b6 commit 2ef5754c9649151ce438c9b30ec720840762d2a2 commit a1c008b987d0f0fc5a9d746dd7782350ba48ce57 commit 03e1b3df217a94c75e644bf50d3b3b2203acba00 commit 04a1c47798f773…
1 parent 46a6bdb commit 047193a

File tree

1,437 files changed

+136363
-38553
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,437 files changed

+136363
-38553
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ NAME = Baby Opossum Posse
88
# DRM backport version
99
#
1010
RHEL_DRM_VERSION = 6
11-
RHEL_DRM_PATCHLEVEL = 14
11+
RHEL_DRM_PATCHLEVEL = 15
1212
RHEL_DRM_SUBLEVEL =
1313

1414
# *DOCUMENTATION*

drivers/accel/ivpu/ivpu_debugfs.c

Lines changed: 91 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
#include <linux/debugfs.h>
7+
#include <linux/fault-inject.h>
78

89
#include <drm/drm_debugfs.h>
910
#include <drm/drm_file.h>
@@ -331,7 +332,7 @@ ivpu_force_recovery_fn(struct file *file, const char __user *user_buf, size_t si
331332
return -EINVAL;
332333

333334
ret = ivpu_rpm_get(vdev);
334-
if (ret)
335+
if (ret < 0)
335336
return ret;
336337

337338
ivpu_pm_trigger_recovery(vdev, "debugfs");
@@ -382,7 +383,7 @@ static int dct_active_set(void *data, u64 active_percent)
382383
return -EINVAL;
383384

384385
ret = ivpu_rpm_get(vdev);
385-
if (ret)
386+
if (ret < 0)
386387
return ret;
387388

388389
if (active_percent)
@@ -397,6 +398,88 @@ static int dct_active_set(void *data, u64 active_percent)
397398

398399
DEFINE_DEBUGFS_ATTRIBUTE(ivpu_dct_fops, dct_active_get, dct_active_set, "%llu\n");
399400

401+
static int priority_bands_show(struct seq_file *s, void *v)
402+
{
403+
struct ivpu_device *vdev = s->private;
404+
struct ivpu_hw_info *hw = vdev->hw;
405+
406+
for (int band = VPU_JOB_SCHEDULING_PRIORITY_BAND_IDLE;
407+
band < VPU_JOB_SCHEDULING_PRIORITY_BAND_COUNT; band++) {
408+
switch (band) {
409+
case VPU_JOB_SCHEDULING_PRIORITY_BAND_IDLE:
410+
seq_puts(s, "Idle: ");
411+
break;
412+
413+
case VPU_JOB_SCHEDULING_PRIORITY_BAND_NORMAL:
414+
seq_puts(s, "Normal: ");
415+
break;
416+
417+
case VPU_JOB_SCHEDULING_PRIORITY_BAND_FOCUS:
418+
seq_puts(s, "Focus: ");
419+
break;
420+
421+
case VPU_JOB_SCHEDULING_PRIORITY_BAND_REALTIME:
422+
seq_puts(s, "Realtime: ");
423+
break;
424+
}
425+
426+
seq_printf(s, "grace_period %9u process_grace_period %9u process_quantum %9u\n",
427+
hw->hws.grace_period[band], hw->hws.process_grace_period[band],
428+
hw->hws.process_quantum[band]);
429+
}
430+
431+
return 0;
432+
}
433+
434+
static int priority_bands_fops_open(struct inode *inode, struct file *file)
435+
{
436+
return single_open(file, priority_bands_show, inode->i_private);
437+
}
438+
439+
static ssize_t
440+
priority_bands_fops_write(struct file *file, const char __user *user_buf, size_t size, loff_t *pos)
441+
{
442+
struct seq_file *s = file->private_data;
443+
struct ivpu_device *vdev = s->private;
444+
char buf[64];
445+
u32 grace_period;
446+
u32 process_grace_period;
447+
u32 process_quantum;
448+
u32 band;
449+
int ret;
450+
451+
if (size >= sizeof(buf))
452+
return -EINVAL;
453+
454+
ret = simple_write_to_buffer(buf, sizeof(buf) - 1, pos, user_buf, size);
455+
if (ret < 0)
456+
return ret;
457+
458+
buf[ret] = '\0';
459+
ret = sscanf(buf, "%u %u %u %u", &band, &grace_period, &process_grace_period,
460+
&process_quantum);
461+
if (ret != 4)
462+
return -EINVAL;
463+
464+
if (band >= VPU_JOB_SCHEDULING_PRIORITY_BAND_COUNT)
465+
return -EINVAL;
466+
467+
vdev->hw->hws.grace_period[band] = grace_period;
468+
vdev->hw->hws.process_grace_period[band] = process_grace_period;
469+
vdev->hw->hws.process_quantum[band] = process_quantum;
470+
471+
return size;
472+
}
473+
474+
static const struct file_operations ivpu_hws_priority_bands_fops = {
475+
.owner = THIS_MODULE,
476+
.open = priority_bands_fops_open,
477+
.write = priority_bands_fops_write,
478+
.read = seq_read,
479+
.llseek = seq_lseek,
480+
.release = single_release,
481+
};
482+
400483
void ivpu_debugfs_init(struct ivpu_device *vdev)
401484
{
402485
struct dentry *debugfs_root = vdev->drm.debugfs_root;
@@ -419,6 +502,8 @@ void ivpu_debugfs_init(struct ivpu_device *vdev)
419502
&fw_trace_hw_comp_mask_fops);
420503
debugfs_create_file("fw_trace_level", 0200, debugfs_root, vdev,
421504
&fw_trace_level_fops);
505+
debugfs_create_file("hws_priority_bands", 0200, debugfs_root, vdev,
506+
&ivpu_hws_priority_bands_fops);
422507

423508
debugfs_create_file("reset_engine", 0200, debugfs_root, vdev,
424509
&ivpu_reset_engine_fops);
@@ -430,4 +515,8 @@ void ivpu_debugfs_init(struct ivpu_device *vdev)
430515
debugfs_root, vdev, &fw_profiling_freq_fops);
431516
debugfs_create_file("dct", 0644, debugfs_root, vdev, &ivpu_dct_fops);
432517
}
518+
519+
#ifdef CONFIG_FAULT_INJECTION
520+
fault_create_debugfs_attr("fail_hw", debugfs_root, &ivpu_hw_failure);
521+
#endif
433522
}

drivers/accel/ivpu/ivpu_drv.c

Lines changed: 28 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
// SPDX-License-Identifier: GPL-2.0-only
22
/*
3-
* Copyright (C) 2020-2024 Intel Corporation
3+
* Copyright (C) 2020-2025 Intel Corporation
44
*/
55

66
#include <linux/firmware.h>
77
#include <linux/module.h>
88
#include <linux/pci.h>
99
#include <linux/pm_runtime.h>
10+
#include <linux/workqueue.h>
1011
#include <generated/utsrelease.h>
1112

1213
#include <drm/drm_accel.h>
@@ -36,8 +37,6 @@
3637
#define DRIVER_VERSION_STR "1.0.0 " UTS_RELEASE
3738
#endif
3839

39-
static struct lock_class_key submitted_jobs_xa_lock_class_key;
40-
4140
int ivpu_dbg_mask;
4241
module_param_named(dbg_mask, ivpu_dbg_mask, int, 0644);
4342
MODULE_PARM_DESC(dbg_mask, "Driver debug mask. See IVPU_DBG_* macros.");
@@ -128,20 +127,18 @@ void ivpu_file_priv_put(struct ivpu_file_priv **link)
128127
kref_put(&file_priv->ref, file_priv_release);
129128
}
130129

131-
static int ivpu_get_capabilities(struct ivpu_device *vdev, struct drm_ivpu_param *args)
130+
bool ivpu_is_capable(struct ivpu_device *vdev, u32 capability)
132131
{
133-
switch (args->index) {
132+
switch (capability) {
134133
case DRM_IVPU_CAP_METRIC_STREAMER:
135-
args->value = 1;
136-
break;
134+
return true;
137135
case DRM_IVPU_CAP_DMA_MEMORY_RANGE:
138-
args->value = 1;
139-
break;
136+
return true;
137+
case DRM_IVPU_CAP_MANAGE_CMDQ:
138+
return vdev->fw->sched_mode == VPU_SCHEDULING_MODE_HW;
140139
default:
141-
return -EINVAL;
140+
return false;
142141
}
143-
144-
return 0;
145142
}
146143

147144
static int ivpu_get_param_ioctl(struct drm_device *dev, void *data, struct drm_file *file)
@@ -167,7 +164,7 @@ static int ivpu_get_param_ioctl(struct drm_device *dev, void *data, struct drm_f
167164
args->value = vdev->platform;
168165
break;
169166
case DRM_IVPU_PARAM_CORE_CLOCK_RATE:
170-
args->value = ivpu_hw_ratio_to_freq(vdev, vdev->hw->pll.max_ratio);
167+
args->value = ivpu_hw_dpu_max_freq_get(vdev);
171168
break;
172169
case DRM_IVPU_PARAM_NUM_CONTEXTS:
173170
args->value = ivpu_get_context_count(vdev);
@@ -201,7 +198,7 @@ static int ivpu_get_param_ioctl(struct drm_device *dev, void *data, struct drm_f
201198
args->value = vdev->hw->sku;
202199
break;
203200
case DRM_IVPU_PARAM_CAPABILITIES:
204-
ret = ivpu_get_capabilities(vdev, args);
201+
args->value = ivpu_is_capable(vdev, args->index);
205202
break;
206203
default:
207204
ret = -EINVAL;
@@ -310,6 +307,9 @@ static const struct drm_ioctl_desc ivpu_drm_ioctls[] = {
310307
DRM_IOCTL_DEF_DRV(IVPU_METRIC_STREAMER_GET_DATA, ivpu_ms_get_data_ioctl, 0),
311308
DRM_IOCTL_DEF_DRV(IVPU_METRIC_STREAMER_STOP, ivpu_ms_stop_ioctl, 0),
312309
DRM_IOCTL_DEF_DRV(IVPU_METRIC_STREAMER_GET_INFO, ivpu_ms_get_info_ioctl, 0),
310+
DRM_IOCTL_DEF_DRV(IVPU_CMDQ_CREATE, ivpu_cmdq_create_ioctl, 0),
311+
DRM_IOCTL_DEF_DRV(IVPU_CMDQ_DESTROY, ivpu_cmdq_destroy_ioctl, 0),
312+
DRM_IOCTL_DEF_DRV(IVPU_CMDQ_SUBMIT, ivpu_cmdq_submit_ioctl, 0),
313313
};
314314

315315
static int ivpu_wait_for_ready(struct ivpu_device *vdev)
@@ -421,6 +421,9 @@ void ivpu_prepare_for_reset(struct ivpu_device *vdev)
421421
{
422422
ivpu_hw_irq_disable(vdev);
423423
disable_irq(vdev->irq);
424+
flush_work(&vdev->irq_ipc_work);
425+
flush_work(&vdev->irq_dct_work);
426+
flush_work(&vdev->context_abort_work);
424427
ivpu_ipc_disable(vdev);
425428
ivpu_mmu_disable(vdev);
426429
}
@@ -453,7 +456,7 @@ static const struct drm_driver driver = {
453456
.postclose = ivpu_postclose,
454457

455458
.gem_create_object = ivpu_gem_create_object,
456-
.gem_prime_import_sg_table = drm_gem_shmem_prime_import_sg_table,
459+
.gem_prime_import = ivpu_gem_prime_import,
457460

458461
.ioctls = ivpu_drm_ioctls,
459462
.num_ioctls = ARRAY_SIZE(ivpu_drm_ioctls),
@@ -465,54 +468,6 @@ static const struct drm_driver driver = {
465468
.major = 1,
466469
};
467470

468-
static void ivpu_context_abort_invalid(struct ivpu_device *vdev)
469-
{
470-
struct ivpu_file_priv *file_priv;
471-
unsigned long ctx_id;
472-
473-
mutex_lock(&vdev->context_list_lock);
474-
475-
xa_for_each(&vdev->context_xa, ctx_id, file_priv) {
476-
if (!file_priv->has_mmu_faults || file_priv->aborted)
477-
continue;
478-
479-
mutex_lock(&file_priv->lock);
480-
ivpu_context_abort_locked(file_priv);
481-
file_priv->aborted = true;
482-
mutex_unlock(&file_priv->lock);
483-
}
484-
485-
mutex_unlock(&vdev->context_list_lock);
486-
}
487-
488-
static irqreturn_t ivpu_irq_thread_handler(int irq, void *arg)
489-
{
490-
struct ivpu_device *vdev = arg;
491-
u8 irq_src;
492-
493-
if (kfifo_is_empty(&vdev->hw->irq.fifo))
494-
return IRQ_NONE;
495-
496-
while (kfifo_get(&vdev->hw->irq.fifo, &irq_src)) {
497-
switch (irq_src) {
498-
case IVPU_HW_IRQ_SRC_IPC:
499-
ivpu_ipc_irq_thread_handler(vdev);
500-
break;
501-
case IVPU_HW_IRQ_SRC_MMU_EVTQ:
502-
ivpu_context_abort_invalid(vdev);
503-
break;
504-
case IVPU_HW_IRQ_SRC_DCT:
505-
ivpu_pm_dct_irq_thread_handler(vdev);
506-
break;
507-
default:
508-
ivpu_err_ratelimited(vdev, "Unknown IRQ source: %u\n", irq_src);
509-
break;
510-
}
511-
}
512-
513-
return IRQ_HANDLED;
514-
}
515-
516471
static int ivpu_irq_init(struct ivpu_device *vdev)
517472
{
518473
struct pci_dev *pdev = to_pci_dev(vdev->drm.dev);
@@ -524,12 +479,16 @@ static int ivpu_irq_init(struct ivpu_device *vdev)
524479
return ret;
525480
}
526481

482+
INIT_WORK(&vdev->irq_ipc_work, ivpu_ipc_irq_work_fn);
483+
INIT_WORK(&vdev->irq_dct_work, ivpu_pm_irq_dct_work_fn);
484+
INIT_WORK(&vdev->context_abort_work, ivpu_context_abort_work_fn);
485+
527486
ivpu_irq_handlers_init(vdev);
528487

529488
vdev->irq = pci_irq_vector(pdev, 0);
530489

531-
ret = devm_request_threaded_irq(vdev->drm.dev, vdev->irq, ivpu_hw_irq_handler,
532-
ivpu_irq_thread_handler, IRQF_NO_AUTOEN, DRIVER_NAME, vdev);
490+
ret = devm_request_irq(vdev->drm.dev, vdev->irq, ivpu_hw_irq_handler,
491+
IRQF_NO_AUTOEN, DRIVER_NAME, vdev);
533492
if (ret)
534493
ivpu_err(vdev, "Failed to request an IRQ %d\n", ret);
535494

@@ -617,7 +576,6 @@ static int ivpu_dev_init(struct ivpu_device *vdev)
617576
xa_init_flags(&vdev->context_xa, XA_FLAGS_ALLOC | XA_FLAGS_LOCK_IRQ);
618577
xa_init_flags(&vdev->submitted_jobs_xa, XA_FLAGS_ALLOC1);
619578
xa_init_flags(&vdev->db_xa, XA_FLAGS_ALLOC1);
620-
lockdep_set_class(&vdev->submitted_jobs_xa.xa_lock, &submitted_jobs_xa_lock_class_key);
621579
INIT_LIST_HEAD(&vdev->bo_list);
622580

623581
vdev->db_limit.min = IVPU_MIN_DB;
@@ -627,6 +585,10 @@ static int ivpu_dev_init(struct ivpu_device *vdev)
627585
if (ret)
628586
goto err_xa_destroy;
629587

588+
ret = drmm_mutex_init(&vdev->drm, &vdev->submitted_jobs_lock);
589+
if (ret)
590+
goto err_xa_destroy;
591+
630592
ret = drmm_mutex_init(&vdev->drm, &vdev->bo_list_lock);
631593
if (ret)
632594
goto err_xa_destroy;

drivers/accel/ivpu/ivpu_drv.h

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
#define IVPU_PLATFORM_SILICON 0
5959
#define IVPU_PLATFORM_SIMICS 2
6060
#define IVPU_PLATFORM_FPGA 3
61+
#define IVPU_PLATFORM_HSLE 4
6162
#define IVPU_PLATFORM_INVALID 8
6263

6364
#define IVPU_SCHED_MODE_AUTO -1
@@ -110,6 +111,7 @@ struct ivpu_wa_table {
110111
bool disable_clock_relinquish;
111112
bool disable_d0i3_msg;
112113
bool wp0_during_power_up;
114+
bool disable_d0i2;
113115
};
114116

115117
struct ivpu_hw_info;
@@ -142,9 +144,14 @@ struct ivpu_device {
142144
struct xa_limit db_limit;
143145
u32 db_next;
144146

147+
struct work_struct irq_ipc_work;
148+
struct work_struct irq_dct_work;
149+
struct work_struct context_abort_work;
150+
145151
struct mutex bo_list_lock; /* Protects bo_list */
146152
struct list_head bo_list;
147153

154+
struct mutex submitted_jobs_lock; /* Protects submitted_jobs */
148155
struct xarray submitted_jobs_xa;
149156
struct ivpu_ipc_consumer job_done_consumer;
150157

@@ -200,6 +207,9 @@ extern bool ivpu_force_snoop;
200207
#define IVPU_TEST_MODE_MIP_DISABLE BIT(6)
201208
#define IVPU_TEST_MODE_DISABLE_TIMEOUTS BIT(8)
202209
#define IVPU_TEST_MODE_TURBO BIT(9)
210+
#define IVPU_TEST_MODE_CLK_RELINQ_DISABLE BIT(10)
211+
#define IVPU_TEST_MODE_CLK_RELINQ_ENABLE BIT(11)
212+
#define IVPU_TEST_MODE_D0I2_DISABLE BIT(12)
203213
extern int ivpu_test_mode;
204214

205215
struct ivpu_file_priv *ivpu_file_priv_get(struct ivpu_file_priv *file_priv);
@@ -208,6 +218,7 @@ void ivpu_file_priv_put(struct ivpu_file_priv **link);
208218
int ivpu_boot(struct ivpu_device *vdev);
209219
int ivpu_shutdown(struct ivpu_device *vdev);
210220
void ivpu_prepare_for_reset(struct ivpu_device *vdev);
221+
bool ivpu_is_capable(struct ivpu_device *vdev, u32 capability);
211222

212223
static inline u8 ivpu_revision(struct ivpu_device *vdev)
213224
{
@@ -282,7 +293,8 @@ static inline bool ivpu_is_simics(struct ivpu_device *vdev)
282293

283294
static inline bool ivpu_is_fpga(struct ivpu_device *vdev)
284295
{
285-
return ivpu_get_platform(vdev) == IVPU_PLATFORM_FPGA;
296+
return ivpu_get_platform(vdev) == IVPU_PLATFORM_FPGA ||
297+
ivpu_get_platform(vdev) == IVPU_PLATFORM_HSLE;
286298
}
287299

288300
static inline bool ivpu_is_force_snoop_enabled(struct ivpu_device *vdev)

0 commit comments

Comments
 (0)