mirror of
git://nv-tegra.nvidia.com/tegra/kernel-src/nv-kernel-display-driver.git
synced 2025-12-22 09:11:48 +03:00
6cd5d1b33d4d80772a8fec993f27ffa7704bf7bc - nvdisplay/README.md 12f1806bdc25917299525e0e48815306159de132 - nvdisplay/Makefile c2e810fc3453d74ee0493168dbf7981ba482acd3 - nvdisplay/SECURITY.md 7d577fdb9594ae572ff38fdda682a4796ab832ca - nvdisplay/COPYING 8c43da4fae8a0aeb374ce46ce19eb8c38b552ae4 - nvdisplay/src/nvidia-modeset/Makefile fb242aa7a53983118ee019415076033e596374af - nvdisplay/src/nvidia-modeset/kapi/interface/nvkms-kapi-private.h 009cd8e2b7ee8c0aeb05dac44cc84fc8f6f37c06 - nvdisplay/src/nvidia-modeset/kapi/interface/nvkms-kapi.h e48c2ec8145a6f2099dddb24d2900e3ae94ec02e - nvdisplay/src/nvidia-modeset/kapi/include/nvkms-kapi-internal.h 727bd77cfbc9ac4989c2ab7eec171ceb516510aa - nvdisplay/src/nvidia-modeset/kapi/include/nvkms-kapi-notifiers.h 01d943d6edb0c647c2b8dbc44460948665b03e7a - nvdisplay/src/nvidia-modeset/kapi/src/nvkms-kapi-notifiers.c f6875ef0da055900ef6ef1da5dc94cba2837e4d0 - nvdisplay/src/nvidia-modeset/kapi/src/nvkms-kapi-channelevent.c 394ea31caa5957cfb2c8bb8c3cc0e4703213fe7f - nvdisplay/src/nvidia-modeset/kapi/src/nvkms-kapi.c 2ea1436104463c5e3d177e8574c3b4298976d37e - nvdisplay/src/nvidia-modeset/interface/nvkms-ioctl.h 281fdc23f82d8bdb94b26d0093b444eb0c056f51 - nvdisplay/src/nvidia-modeset/interface/nvkms-sync.h 910255a4d92e002463175a28e38c3f24716fb654 - nvdisplay/src/nvidia-modeset/interface/nvkms-api-types.h 445a409950ab8f36cfa24d1dc73e59718d335263 - nvdisplay/src/nvidia-modeset/interface/nvkms-api.h 5c4c05e5a638888babb5a8af2f0a61c94ecd150b - nvdisplay/src/nvidia-modeset/interface/nvkms-format.h f5f3b11c78a8b0eef40c09e1751615a47f516edb - nvdisplay/src/nvidia-modeset/include/nvkms-hal.h ebafc51b2b274cd1818e471850a5efa9618eb17d - nvdisplay/src/nvidia-modeset/include/nvkms-prealloc.h 118d0ea84ff81de16fbdc2c7daf249ee5c82ed6e - nvdisplay/src/nvidia-modeset/include/nvkms-modepool.h d7861e2373ac04ffaf6c15caeba887f727aa41fb - nvdisplay/src/nvidia-modeset/include/nvkms-dma.h 9dd131355ed1e25a7cee7bfef00501cf6427ae92 - nvdisplay/src/nvidia-modeset/include/nvkms-private.h 412d8028a548e67e9ef85cb7d3f88385e70c56f9 - nvdisplay/src/nvidia-modeset/include/nvkms-console-restore.h 6b21a68e254becdd2641bc456f194f54c23abe51 - nvdisplay/src/nvidia-modeset/include/nvkms-framelock.h 71e8c5d3c4dfec6f2261654c3fc91210bff78da9 - nvdisplay/src/nvidia-modeset/include/nvkms-surface.h 16a2e187afedf93bade7967816b0723708544e0d - nvdisplay/src/nvidia-modeset/include/nvkms-modeset-workarea.h 8f1994f3f8d100ddcf8b23f5b24872bed939d885 - nvdisplay/src/nvidia-modeset/include/nvkms-vrr.h d3f5bc85b538a3a1d4c2389c81001be91205ec9f - nvdisplay/src/nvidia-modeset/include/nvkms-modeset-types.h 64af1df50d2a5b827c1c829a303844de20527522 - nvdisplay/src/nvidia-modeset/include/nvkms-rm.h 853d9005ec695cb5a1c7966a1f93fe0c9c8278cf - nvdisplay/src/nvidia-modeset/include/nvkms-hdmi.h 75e8a8747795fad89b4d2b662477e5454863dcc7 - nvdisplay/src/nvidia-modeset/include/nvkms-flip.h 70d9251f331bbf28f5c5bbdf939ebad94db9362d - nvdisplay/src/nvidia-modeset/include/nvkms-softfloat.h 4f5d723c80f607a0e5f797835d561795dbe40ada - nvdisplay/src/nvidia-modeset/include/nvkms-cursor.h 260b6ef87c755e55a803adad4ce49f2d57315f9a - nvdisplay/src/nvidia-modeset/include/nvkms-event.h 33dbf734c9757c2c40adb2fb185e964870217743 - nvdisplay/src/nvidia-modeset/include/nvkms-flip-workarea.h 182a47c12496b8b7da1c4fe7035d6b36d7316322 - nvdisplay/src/nvidia-modeset/include/nvkms-prealloc-types.h 867e3091a945d3d43b2f28393b40edeb9d27597b - nvdisplay/src/nvidia-modeset/include/nvkms-rmapi.h 8a6f26ccf2e563b78f6e189c999ba470ed35271d - nvdisplay/src/nvidia-modeset/include/nvkms-evo.h 9c90df1fa1b6dd33a7e330c47e94b5b9194ad419 - nvdisplay/src/nvidia-modeset/include/nvkms-3dvision.h c1c7047929aafc849a924c7fa9f8bc206b8e7524 - nvdisplay/src/nvidia-modeset/include/g_nvkms-evo-states.h 4020b2a0d4f177c143db40b33d122017416dfa2e - nvdisplay/src/nvidia-modeset/include/nvkms-evo1.h be6e0e97c1e7ffc0daa2f14ef7b05b9f9c11dc16 - nvdisplay/src/nvidia-modeset/include/nvkms-attributes.h d4889d903bf4de06d85e55b005206ed57f28af69 - nvdisplay/src/nvidia-modeset/include/nvkms-lut.h c1904d38785649d2614563d0cd7de28a15ce4486 - nvdisplay/src/nvidia-modeset/include/nvkms-modeset.h ef78e73ec9c0b8341bd83306d1f3b2c35e20c43a - nvdisplay/src/nvidia-modeset/include/nvkms-utils.h be3a1682574426c1bf75fcdf88278c18f2783c3f - nvdisplay/src/nvidia-modeset/include/nvkms-dpy.h c8f714e80dd4bb60ceab0c0c7e6a5b3304940946 - nvdisplay/src/nvidia-modeset/include/nvkms-types.h 20213d53bb52bf9f38400e35d7963d0f4db22f96 - nvdisplay/src/nvidia-modeset/include/nvkms-evo-states.h a8fbb7a071c0e7b326f384fed7547e7b6ec81c3e - nvdisplay/src/nvidia-modeset/include/dp/nvdp-timer.h 4625828efd425e1b29835ab91fcc3d2d85e92389 - nvdisplay/src/nvidia-modeset/include/dp/nvdp-connector-event-sink.h 17f6fbbd5e0a75faec21347b691f44dcb65c01aa - nvdisplay/src/nvidia-modeset/include/dp/nvdp-connector.h 52b6c19cce320677bd3a4dfcf1698b236f29e59e - nvdisplay/src/nvidia-modeset/include/dp/nvdp-device.h 8f22c278a5839d36f74f85469b2d927d9265cb80 - nvdisplay/src/nvidia-modeset/src/nvkms-utils.c b55665d7bceaad04bbf29a68f44536518302c3d6 - nvdisplay/src/nvidia-modeset/src/nvkms-evo2.c f8bdd07a27296ef6aab86cc9dbccf8df811fff24 - nvdisplay/src/nvidia-modeset/src/nvkms-modeset.c 673ad86616f9863766bfec0e118c918297d32010 - nvdisplay/src/nvidia-modeset/src/g_nvkms-evo-states.c c98f76bcfc7c654a619762ebc3a2599f9aa89f8d - nvdisplay/src/nvidia-modeset/src/nvkms-3dvision.c 94f4736acf7981cebfd74302a21f19cdbafa8d71 - nvdisplay/src/nvidia-modeset/src/nvkms-hdmi.c 85ddb19f89833ca57fd2deff2e2b4566e162a56c - nvdisplay/src/nvidia-modeset/src/nvkms-hal.c 07c2f10473e2fbe921b2781cc107b5e56e6373e3 - nvdisplay/src/nvidia-modeset/src/nvkms-attributes.c c2870190ca4c4d5b3a439386583d0a7c193d6263 - nvdisplay/src/nvidia-modeset/src/nvkms-hw-states.c c2d0e6bef0c4929a3ca4adfd74bd6168fa4aa000 - nvdisplay/src/nvidia-modeset/src/nvkms-framelock.c 5c79c271609ebcc739f8d73d7d47f0b376298438 - nvdisplay/src/nvidia-modeset/src/nvkms-rmapi-dgpu.c ab17e5b4cafa92aa03691a0c187ef8c9ae53fa59 - nvdisplay/src/nvidia-modeset/src/nvkms-cursor.c fc8182cc1f3af77125dbfa328996bcfe0387cc41 - nvdisplay/src/nvidia-modeset/src/nvkms-rm.c da726d20eea99a96af4c10aace88f419e8ee2a34 - nvdisplay/src/nvidia-modeset/src/nvkms-event.c 45230e56d29c98ea0f10f87c1b16ba70c96f24d5 - nvdisplay/src/nvidia-modeset/src/nvkms-evo3.c c799d52bdc792efc377fb5cd307b0eb445c44d6a - nvdisplay/src/nvidia-modeset/src/nvkms-cursor2.c 21c8184de2c9150c21ac5d6fba24e79e513a0a69 - nvdisplay/src/nvidia-modeset/src/nvkms-evo.c 574b1268ff83e4e5ed4da15609247a5c0ec8f51b - nvdisplay/src/nvidia-modeset/src/nvkms-console-restore.c 8415bcd6ab34e356374659e965790a0715ed7971 - nvdisplay/src/nvidia-modeset/src/nvkms-prealloc.c 5fb73f35841c41e7376531732cb12303224e61ad - nvdisplay/src/nvidia-modeset/src/nvkms-lut.c ec97ab37cdf2cec0283657c2c04a139a1a168337 - nvdisplay/src/nvidia-modeset/src/nvkms-modepool.c 05548338a73ade1b3c2ad1cebf1ab5eb16ef6c9b - nvdisplay/src/nvidia-modeset/src/nvkms-flip.c f27f52dc428a6adeb936c8cf99e1fc2d8b0ad667 - nvdisplay/src/nvidia-modeset/src/nvkms-dma.c e9626eee225e58ec2d5be756c5015775ca5e54b9 - nvdisplay/src/nvidia-modeset/src/nvkms-vrr.c 86da3c7c09354d2c49d95562aba15cbedb543d9b - nvdisplay/src/nvidia-modeset/src/nvkms-evo1.c 5acf19920d56793d96c80e8461b0d0213c871b34 - nvdisplay/src/nvidia-modeset/src/nvkms-surface.c 24156462f25922c8de5b5d2558db36b2e68b28ed - nvdisplay/src/nvidia-modeset/src/nvkms-dpy.c eb09642e8b5d9333699f817caaf20483c840b376 - nvdisplay/src/nvidia-modeset/src/nvkms.c 1918ca3aa611cd9dfc79d46d038ab22706f0b1ed - nvdisplay/src/nvidia-modeset/src/nvkms-cursor3.c 8af6062034d464f778969e26d3bf5a9b4cdaccf0 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-connector.cpp f2a05c29383bfc8631ad31909f31a8351501eb27 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-device.cpp 51af3c1ee6b74ee0c9add3fb7d50cbc502980789 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-evo-interface.hpp 69fed95ab3954dd5cb26590d02cd8ba09cdff1ac - nvdisplay/src/nvidia-modeset/src/dp/nvdp-connector-event-sink.hpp f96cd982b4c05351faa31d04ac30d6fa7c866bcb - nvdisplay/src/nvidia-modeset/src/dp/nvdp-timer.cpp f6c3e8bd4ee13970737e96f9d9a3e4d8afdf9695 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-evo-interface.cpp 31767fd551f3c89e5b00f54147b6a8e8fa3320e3 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-connector-event-sink.cpp 6b985fc50b5040ce1a81418bed73a60edb5d3289 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-timer.hpp 110ac212ee8832c3fa3c4f45d6d33eed0301e992 - nvdisplay/src/nvidia-modeset/src/dp/nvdp-host.cpp 17855f638fd09abfec7d188e49b396793a9f6106 - nvdisplay/src/nvidia-modeset/os-interface/include/nvkms.h 7d108165b4a7b6a44ac21460ea3bf4381fb48c5b - nvdisplay/src/nvidia-modeset/os-interface/include/nvidia-modeset-os-interface.h 381fba24abae75d98b3ada184ed0cd57335819a9 - nvdisplay/src/nvidia-modeset/lib/nvkms-format.c a0cc9f36fdd73c99ad8f264efa58043d42353b0a - nvdisplay/src/nvidia-modeset/lib/nvkms-sync.c b9fd15957f7ae5effeccb5d8adaa7434b43f44e1 - nvdisplay/src/common/softfloat/source/s_roundToUI64.c d0f8f08c225b60d88b6358d344404ba9df3038ec - nvdisplay/src/common/softfloat/source/s_normSubnormalF32Sig.c 824383b03952c611154bea0a862da2b9e2a43827 - nvdisplay/src/common/softfloat/source/s_subMagsF32.c 729e790328168c64d65a1355e990274c249bbb3a - nvdisplay/src/common/softfloat/source/f32_to_i32_r_minMag.c 68843a93e1f46195243ef1164f611b759cf19d17 - nvdisplay/src/common/softfloat/source/f32_le_quiet.c 4445b1fbbd507144f038fd939311ff95bc2cf5f1 - nvdisplay/src/common/softfloat/source/ui64_to_f64.c daeb408588738b3eb4c8b092d7f92ac597cf1fc6 - nvdisplay/src/common/softfloat/source/f32_rem.c aaf6ccb77a1a89fa055a0fb63513297b35e2e54b - nvdisplay/src/common/softfloat/source/f64_le_quiet.c 0bf499c0e3a54186fa32b38b310cc9d98ccdcfe3 - nvdisplay/src/common/softfloat/source/f32_eq.c 6fa7493285fe2f7fdc0ac056a6367e90327905c2 - nvdisplay/src/common/softfloat/source/f32_sub.c 54cbeb5872a86e822bda852ec15d3dcdad4511ce - nvdisplay/src/common/softfloat/source/f64_add.c d4b26dc407a891e9ff5324853f1845a99c5d5cd2 - nvdisplay/src/common/softfloat/source/f32_to_i32.c e4930e155580a0f5aa7f3694a6205bc9aebfe7aa - nvdisplay/src/common/softfloat/source/f32_to_f64.c 5a5e0d9f1ee7e8c0d1d4f9fbcf6eba330a5f1792 - nvdisplay/src/common/softfloat/source/f32_isSignalingNaN.c ce37cdce572a3b02d42120e81c4969b39d1a67b6 - nvdisplay/src/common/softfloat/source/f64_to_i32.c 5e6f9e120a17cc73297a35e4d57e4b9cbce01780 - nvdisplay/src/common/softfloat/source/s_mul64To128.c b22876b0695f58ee56143c9f461f1dde32fefbf3 - nvdisplay/src/common/softfloat/source/f64_to_ui64.c 23b76c1d0be64e27a6f7e2ea7b8919f1a45a8e7c - nvdisplay/src/common/softfloat/source/f32_to_ui32_r_minMag.c dde685423af544e5359efdb51b4bf9457c67fa3b - nvdisplay/src/common/softfloat/source/f32_sqrt.c 21a6232d93734b01692689258a3fdfbbf4ff089d - nvdisplay/src/common/softfloat/source/s_roundToUI32.c 0108fe6f0d394ad72083aff9bb58507f97a0b669 - nvdisplay/src/common/softfloat/source/ui32_to_f64.c 871cb1a4037d7b4e73cb20ad18390736eea7ae36 - nvdisplay/src/common/softfloat/source/f32_to_ui64_r_minMag.c 84b0a01ba2a667eb28b166d45bd91352ead83e69 - nvdisplay/src/common/softfloat/source/i64_to_f32.c d701741d8d6a92bb890e53deda1b795f5787f465 - nvdisplay/src/common/softfloat/source/f64_le.c 1ff879eca2a273293b5cd6048419b2d2d8063b93 - nvdisplay/src/common/softfloat/source/f64_mulAdd.c 00c612847b3bd227a006a4a2697df85866b80315 - nvdisplay/src/common/softfloat/source/s_mulAddF32.c da3b3f94a817909a3dc93ca5fa7675805c7979e0 - nvdisplay/src/common/softfloat/source/f64_isSignalingNaN.c bc992c88f3de09e3a82447cf06dbde7c6604f7f8 - nvdisplay/src/common/softfloat/source/f64_to_f32.c c29536f617d71fe30accac44b2f1df61c98a97dc - nvdisplay/src/common/softfloat/source/f64_div.c 50b3147f8413f0595a4c3d6e6eeab84c1ffecada - nvdisplay/src/common/softfloat/source/s_normRoundPackToF32.c 1484fc96d7731695bda674e99947280a86990997 - nvdisplay/src/common/softfloat/source/f32_to_i64.c b8c5ccc1e511637d8b2ba2657de4937b80c01c07 - nvdisplay/src/common/softfloat/source/f32_le.c 6f83fa864007e8227ae09bb36a7fdc18832d4445 - nvdisplay/src/common/softfloat/source/f32_mul.c 00ab2120f71117161d4f6daaa9b90a3036a99841 - nvdisplay/src/common/softfloat/source/f32_to_ui32.c 86fdc2472526375539216461732d1db6a9f85b55 - nvdisplay/src/common/softfloat/source/s_roundPackToF32.c 38bd00e9c4d2f1354c611404cca6209a6c417669 - nvdisplay/src/common/softfloat/source/s_countLeadingZeros64.c 2960704c290f29aae36b8fe006884d5c4abcabb4 - nvdisplay/src/common/softfloat/source/f32_div.c fd40a71c7ebf9d632a384fadf9487cfef4f3ea98 - nvdisplay/src/common/softfloat/source/s_shiftRightJam128.c c3ce12c227d25bc0de48fbcf914fc208e2448741 - nvdisplay/src/common/softfloat/source/f64_sub.c 29396b7c23941024a59d5ea06698d2fbc7e1a6ca - nvdisplay/src/common/softfloat/source/f64_to_i64.c 5c4ee32cc78efc718aaa60ec31d0b00b1bee3c2c - nvdisplay/src/common/softfloat/source/f64_to_ui64_r_minMag.c c951c9dffa123e4f77ed235eca49ef9b67f9f3d2 - nvdisplay/src/common/softfloat/source/s_subMagsF64.c d19ff7dfece53875f2d6c6f7dd9e7772f7b0b7ec - nvdisplay/src/common/softfloat/source/f32_to_i64_r_minMag.c dafa667ee5dd52c97fc0c3b7144f6b619406c225 - nvdisplay/src/common/softfloat/source/s_mulAddF64.c ab19c6b50c40b8089cb915226d4553d1aa902b0e - nvdisplay/src/common/softfloat/source/f64_to_i32_r_minMag.c 2e0fec421f4defd293cf55c5f3af7d91f4b7d2cc - nvdisplay/src/common/softfloat/source/ui64_to_f32.c fe06512577e642b09196d46430d038d027491e9f - nvdisplay/src/common/softfloat/source/f32_eq_signaling.c e7890082ce426d88b4ec93893da32e306478c0d1 - nvdisplay/src/common/softfloat/source/s_approxRecipSqrt32_1.c 296c40b0589536cb9af3231ad3dcd7f2baaa6887 - nvdisplay/src/common/softfloat/source/f64_lt.c fb062ecbe62a1f5878fd47f0c61490f2bde279dd - nvdisplay/src/common/softfloat/source/s_roundToI32.c ec1a797b11f6e846928a4a49a8756f288bda1dfa - nvdisplay/src/common/softfloat/source/i32_to_f64.c 0e9694d551848d88531f5461a9b3b91611652e9a - nvdisplay/src/common/softfloat/source/f64_to_ui32_r_minMag.c a94c8c2bd74633027e52e96f41d24714d8081eb4 - nvdisplay/src/common/softfloat/source/s_approxRecipSqrt_1Ks.c baa7af4eea226140c26ffe6ab02a863d07f729fb - nvdisplay/src/common/softfloat/source/f64_eq_signaling.c 577821f706c7de4ca327c1e2fcc34161c96c89f3 - nvdisplay/src/common/softfloat/source/f64_to_i64_r_minMag.c 5c1026617c588bcf5f1e59230bd5bb900600b9ac - nvdisplay/src/common/softfloat/source/f64_mul.c 0d8e42636a3409a647291fdb388001c2b11bba07 - nvdisplay/src/common/softfloat/source/f32_to_f16.c 9f4d355d85fbe998e243fe4c7bbf8ad23062b6e2 - nvdisplay/src/common/softfloat/source/i64_to_f64.c d9a86343e6cc75714f65f690082dd4b0ba724be9 - nvdisplay/src/common/softfloat/source/s_roundPackToF16.c 1a86a6948bf6768bd23a19f1f05d40968c1d2b15 - nvdisplay/src/common/softfloat/source/f64_rem.c e0ad81cfb5d2c0e74dc4ece9518ca15ffc77beaf - nvdisplay/src/common/softfloat/source/f32_roundToInt.c 50daf9186bc5d0180d1453c957164b136d5ffc89 - nvdisplay/src/common/softfloat/source/f64_eq.c 2db07bbb8242bc55a24ef483af6d648db0660de0 - nvdisplay/src/common/softfloat/source/f32_add.c 760fd7c257a1f915b61a1089b2acb143c18a082e - nvdisplay/src/common/softfloat/source/s_addMagsF64.c 4b37be398b3e73ae59245f03b2ba2394fc902b4d - nvdisplay/src/common/softfloat/source/s_normSubnormalF64Sig.c 69dc4cc63b2a9873a6eb636ee7cb704cbd502001 - nvdisplay/src/common/softfloat/source/f64_to_ui32.c 9266c83f3e50093cc45d7be6ab993a0e72af1685 - nvdisplay/src/common/softfloat/source/s_roundPackToF64.c 7c8e5ab3f9bf6b2764ce5fffe80b2674be566a12 - nvdisplay/src/common/softfloat/source/softfloat_state.c 9a5b93459ace2da23964da98617d6b18006fab86 - nvdisplay/src/common/softfloat/source/s_countLeadingZeros8.c 108eec2abf1cddb397ce9f652465c2e52f7c143b - nvdisplay/src/common/softfloat/source/f64_roundToInt.c 09cb0cdb90eb23b53cd9c1a76ba26021084710d1 - nvdisplay/src/common/softfloat/source/s_addMagsF32.c ae25eea499b3ea5bdd96c905fd0542da11083048 - nvdisplay/src/common/softfloat/source/s_normRoundPackToF64.c 2e5c29d842a8ebc5fbf987068dc9394cee609cc7 - nvdisplay/src/common/softfloat/source/f32_to_ui64.c 7bc81f5bc894118c08bfd52b59e010bc068ed762 - nvdisplay/src/common/softfloat/source/ui32_to_f32.c 513a7d1c3053fc119efcd8ae1bcc9652edc45315 - nvdisplay/src/common/softfloat/source/f32_lt.c bbc70102b30f152a560eb98e7a1a4b11b9ede85e - nvdisplay/src/common/softfloat/source/f64_sqrt.c 0adfa7e174cdb488bb22b06642e14e7fc6f49c67 - nvdisplay/src/common/softfloat/source/s_roundToI64.c ebb4f674b6213fec29761fc4e05c1e3ddeda6d17 - nvdisplay/src/common/softfloat/source/f32_mulAdd.c 29321080baa7eab86947ac825561fdcff54a0e43 - nvdisplay/src/common/softfloat/source/i32_to_f32.c 8e58f0258218475616ff4e6317516d40ad475626 - nvdisplay/src/common/softfloat/source/f32_lt_quiet.c 054b23a974fc8d0bab232be433c4e516e6c1250a - nvdisplay/src/common/softfloat/source/f64_lt_quiet.c 4cd1d6cfca3936a39aab9bc0eb622f5c7c848be1 - nvdisplay/src/common/softfloat/source/include/softfloat_types.h de09949a0ca5cd2a84b882b5b5c874d01d3ae11a - nvdisplay/src/common/softfloat/source/include/primitives.h f36c896cfa01f1de9f9420189319e4e00c7fc52a - nvdisplay/src/common/softfloat/source/include/internals.h 1ded4df85ff5fa904fa54c27d681265425be1658 - nvdisplay/src/common/softfloat/source/include/primitiveTypes.h 9645e179cf888bcd0e3836e8126b204b4b42b315 - nvdisplay/src/common/softfloat/source/include/softfloat.h 21a11759ed2afd746a47c4d78b67640c2d052165 - nvdisplay/src/common/softfloat/source/8086-SSE/s_commonNaNToF32UI.c 252c816378fddab616b1f2a61e9fedd549224483 - nvdisplay/src/common/softfloat/source/8086-SSE/s_commonNaNToF64UI.c 0cbae7a5abc336331d460cbd3640d2cda02af434 - nvdisplay/src/common/softfloat/source/8086-SSE/softfloat_raiseFlags.c a6d5c83f6a0542b33ac9c23ac65ef69002cfff9d - nvdisplay/src/common/softfloat/source/8086-SSE/s_propagateNaNF32UI.c 86cda6550cb02bbf595d1667573e4be83702a95e - nvdisplay/src/common/softfloat/source/8086-SSE/specialize.h d8b0c55a49c4fa0b040541db6d5ff634d7d103e7 - nvdisplay/src/common/softfloat/source/8086-SSE/s_propagateNaNF64UI.c 3d0dbc0a672d039a6346e1c21ddf87ffc9181978 - nvdisplay/src/common/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c d152bc457b655725185bdff42b36bb96d6e6715e - nvdisplay/src/common/softfloat/source/8086-SSE/s_commonNaNToF16UI.c 1dd1b424087d9c872684df0c1b4063b077992d5f - nvdisplay/src/common/softfloat/source/8086-SSE/s_f64UIToCommonNaN.c b882497ae393bf66a728dae395b64ac53602a1a5 - nvdisplay/src/common/softfloat/nvidia/nv-softfloat.h be9407a273620c0ba619b53ed72d59d52620c3e4 - nvdisplay/src/common/softfloat/nvidia/platform.h 70b155b0da07a92ede884a9cec715f67e6b5c3e8 - nvdisplay/src/common/displayport/src/dp_list.cpp 9f31213ab8037d7bb18c96a67d2630d61546544a - nvdisplay/src/common/displayport/src/dp_mst_edid.cpp c62ef84471074a9ed428b4a03e644885989b0b83 - nvdisplay/src/common/displayport/src/dp_evoadapter.cpp e874ffeaeb6deec57605bf91eaa2af116a9762bd - nvdisplay/src/common/displayport/src/dp_bitstream.cpp d63fed0074b22584686ad4d0cdaa4388b42194d6 - nvdisplay/src/common/displayport/src/dp_watermark.cpp 554e6b7dadbb68ac0f3d2e368ca3fd90832ea254 - nvdisplay/src/common/displayport/src/dp_discovery.cpp fea946e5320e7de8e9229bca8d4a6a14b9e8db59 - nvdisplay/src/common/displayport/src/dp_crc.cpp 4803cde0fffcf89fed46d6deaeba5c96c669a908 - nvdisplay/src/common/displayport/src/dp_messageheader.cpp 38fe8122aba8a1bc5745d81192ec7fc75934dd0d - nvdisplay/src/common/displayport/src/dp_deviceimpl.cpp 60994cb1131d4d37b2d3fce6cc59dfea5ebb4129 - nvdisplay/src/common/displayport/src/dp_connectorimpl.cpp a0d24a4bd71f999adbaa876168adef5a7d95f2b8 - nvdisplay/src/common/displayport/src/dp_configcaps.cpp 6fd536d1849ea4cce5d9b72d1dcbc1db9c818b4e - nvdisplay/src/common/displayport/src/dp_groupimpl.cpp 37eabb1ab51cb38660eb24e294c63c8320750b96 - nvdisplay/src/common/displayport/src/dp_sst_edid.cpp fa4f4869d3d63c0180f30ae3736600a6627284c6 - nvdisplay/src/common/displayport/src/dp_merger.cpp ac08ccd5c2e3fadf10ae53e46e582489d1579ed0 - nvdisplay/src/common/displayport/src/dp_edid.cpp c70d946adb4029b3476873887488748162b88b0b - nvdisplay/src/common/displayport/src/dp_messagecodings.cpp a5df56b2cf8df9d4d8ab6fa2b3521649ef09384a - nvdisplay/src/common/displayport/src/dp_wardatabase.cpp 1543bbaba8f3e149239cf44be3c0d080c624d5ba - nvdisplay/src/common/displayport/src/dp_buffer.cpp f56f92e32710b0342805b785d34ba1a9f2a54ed3 - nvdisplay/src/common/displayport/src/dp_guid.cpp 66e91795dc65e1bc13c545a84556d200c8eb7bd5 - nvdisplay/src/common/displayport/src/dp_messages.cpp f83b3c17e9f26651f12c8835a682abdd66aed3a2 - nvdisplay/src/common/displayport/src/dp_splitter.cpp 56ee9318a7b51a04baa1d25d7d9a798c733dc1bc - nvdisplay/src/common/displayport/src/dp_vrr.cpp d991afdb694634e9df756184b5951739fc3fd0ab - nvdisplay/src/common/displayport/src/dp_auxretry.cpp 719d2ddbfb8555636496cb5dd74ee6776059db92 - nvdisplay/src/common/displayport/src/dp_timer.cpp fe8007b3d98dad71b17595ecb67af77b198827a0 - nvdisplay/src/common/displayport/src/dptestutil/dp_testmessage.cpp 36e80dd13c5adc64c3adc9a931d5ebbf922e9502 - nvdisplay/src/common/displayport/inc/dp_groupimpl.h d876d77caef3541ae05f310857f3d32e642fba04 - nvdisplay/src/common/displayport/inc/dp_auxdefs.h 070b4f6216f19feebb6a67cbb9c3eb22dc60cf74 - nvdisplay/src/common/displayport/inc/dp_buffer.h cca426d571c6b01f7953180e2e550e55c629f0f4 - nvdisplay/src/common/displayport/inc/dp_auxretry.h e2075486b392d6b231f2f133922ac096ca4bc095 - nvdisplay/src/common/displayport/inc/dp_ringbuffer.h 80380945c76c58648756446435d615f74630f2da - nvdisplay/src/common/displayport/inc/dp_timeout.h 543efa25367763292067245cbc39c1382c35df77 - nvdisplay/src/common/displayport/inc/dp_discovery.h 0f747fdf03bebdcd86dbdf16d00ee2d044bc906c - nvdisplay/src/common/displayport/inc/dp_messages.h 2067e2ca3b86014c3e6dfc51d6574d87ae12d907 - nvdisplay/src/common/displayport/inc/dp_timer.h 325818d0a4d1b15447923e2ed92c938d293dc079 - nvdisplay/src/common/displayport/inc/dp_hostimp.h 7974abf146f1f14cd3e3854ef63ddf52ebbeb222 - nvdisplay/src/common/displayport/inc/dp_deviceimpl.h 3b74682e142e94b1c68bf619169f12e5805044bc - nvdisplay/src/common/displayport/inc/dp_watermark.h 78595e6262d5ab0e6232392dc0852feaf83c7585 - nvdisplay/src/common/displayport/inc/dp_auxbus.h 6e515f398e9ae1b603e49ec32576ccd0ce5d8828 - nvdisplay/src/common/displayport/inc/dp_messagecodings.h cdb1e7797c250b0a7c0449e2df5ce71e42b83432 - nvdisplay/src/common/displayport/inc/dp_merger.h f6e1b0850f5ed0f23f263d4104523d9290bb8669 - nvdisplay/src/common/displayport/inc/dp_vrr.h 07d22f84e6a386dad251761278a828dab64b6dd5 - nvdisplay/src/common/displayport/inc/dp_bitstream.h 78c6d7d85b47636fbb21153425ef90c6d0b2d4e2 - nvdisplay/src/common/displayport/inc/dp_configcaps.h 7b7d9a137027fbbedfc041465987fa4ed4198ce4 - nvdisplay/src/common/displayport/inc/dp_edid.h aeadcb0bc061b5db0fdf8aa67c1b5703976aa946 - nvdisplay/src/common/displayport/inc/dp_connector.h d1e8c84f279cb30978d32c784107c0247afa6e66 - nvdisplay/src/common/displayport/inc/dp_linkconfig.h b4d8c44957efc90ba97092987e6e43c48e85ac86 - nvdisplay/src/common/displayport/inc/dp_address.h 02b65d96a7a345eaa87042faf6dd94052235009c - nvdisplay/src/common/displayport/inc/dp_messageheader.h e02e5621eaea52a2266a86dcd587f4714680caf4 - nvdisplay/src/common/displayport/inc/dp_linkedlist.h 5dff32bd1018e2c5c2540ea7fb571dbea596d5b1 - nvdisplay/src/common/displayport/inc/dp_regkeydatabase.h 62d03d24af041276ba2abb96fa1634ae4f99ea8a - nvdisplay/src/common/displayport/inc/dp_connectorimpl.h 8f83883126b853c97e5859dafd98847ec54d36ac - nvdisplay/src/common/displayport/inc/dp_splitter.h 750ecc85242882a9e428d5a5cf1a64f418d59c5f - nvdisplay/src/common/displayport/inc/dp_object.h 4a098c4d09dedc33b86748d5fe9a30d097675e9f - nvdisplay/src/common/displayport/inc/dp_list.h 39aece5465100489867001bf57446bcfc4999c24 - nvdisplay/src/common/displayport/inc/dp_evoadapter.h 3eea80c74a22de43b6edad21ea5873c791e093e2 - nvdisplay/src/common/displayport/inc/dp_mainlink.h 11487c992494f502d1c48ff00982998504336800 - nvdisplay/src/common/displayport/inc/dp_internal.h 01f1dd58ed5bb12503fa45be7a6657cde0a857e2 - nvdisplay/src/common/displayport/inc/dp_guid.h e27519c72e533a69f7433638a1d292fb9df8772e - nvdisplay/src/common/displayport/inc/dp_crc.h 379d3933c90eaf9c35a0bad2bd6af960a321465f - nvdisplay/src/common/displayport/inc/dp_wardatabase.h 5bd3706ceea585df76a75dda7f9581b91ee8f998 - nvdisplay/src/common/displayport/inc/dp_tracing.h 020194b85245bad5de4dfe372a7ccb0c247d6ede - nvdisplay/src/common/displayport/inc/dptestutil/dp_testmessage.h 5ef40af650eb65b2c87572a1bbfe655d8821f2d5 - nvdisplay/src/common/unix/common/utils/nv_memory_tracker.c 26f2a36442266c5d2664d509ecfd31094a83e152 - nvdisplay/src/common/unix/common/utils/nv_vasprintf.c e903bbbecf4fb3085aaccca0628f0a0e4aba3e58 - nvdisplay/src/common/unix/common/utils/nv_mode_timings_utils.c bda08c8398f68ffc2866ebc390dc63a09a16b0b9 - nvdisplay/src/common/unix/common/utils/unix_rm_handle.c 07c675d22c4f0f4be6647b65b6487e2d6927c347 - nvdisplay/src/common/unix/common/utils/interface/nv_memory_tracker.h 667b361db93e35d12d979c47e4d7a68be9aa93b6 - nvdisplay/src/common/unix/common/utils/interface/nv_mode_timings_utils.h 8d9c4d69394b23d689a4aa6727eb3da1d383765a - nvdisplay/src/common/unix/common/utils/interface/unix_rm_handle.h 9e008270f277e243f9167ab50401602378a2a6e8 - nvdisplay/src/common/unix/common/utils/interface/nv_vasprintf.h 881cbcc7ed39ea9198279136205dbe40142be35e - nvdisplay/src/common/unix/common/inc/nv_assert.h 2476f128437c0520204e13a4ddd2239ff3f40c21 - nvdisplay/src/common/unix/common/inc/nv-float.h a8e49041c1b95431e604852ad0fa3612548e3c82 - nvdisplay/src/common/unix/common/inc/nv_dpy_id.h 1c947cfc8a133b00727104684764e5bb900c9d28 - nvdisplay/src/common/unix/common/inc/nv_mode_timings.h 83044eb5259200922f78ad3248fbc1d4de1ec098 - nvdisplay/src/common/unix/common/inc/nv_common_utils.h befb2c0bf0a31b61be5469575ce3c73a9204f4e9 - nvdisplay/src/common/sdk/nvidia/inc/nv_stdarg.h a31b82c454df785a1d7893af38e83443cfe6f2fc - nvdisplay/src/common/sdk/nvidia/inc/nvdisptypes.h 4b7414705ce10f0a1e312c36a43824b59d572661 - nvdisplay/src/common/sdk/nvidia/inc/nvmisc.h 1e7eec6561b04d2d21c3515987aaa116e9401c1f - nvdisplay/src/common/sdk/nvidia/inc/nv-kernel-interface-api.h eb42327a2b948b79edc04d9145c7aa5b2a2b420e - nvdisplay/src/common/sdk/nvidia/inc/nvlimits.h 3b12d770f8592b94a8c7774c372e80ad08c5774c - nvdisplay/src/common/sdk/nvidia/inc/nvi2c.h f28f98589e65b71e47dbcb2c4230538ae0545e75 - nvdisplay/src/common/sdk/nvidia/inc/cpuopsys.h 5d8de06378994201e91c2179d149c0edcd694900 - nvdisplay/src/common/sdk/nvidia/inc/nvstatuscodes.h 88399279bd5e31b6e77cb32c7ef6220ce529526b - nvdisplay/src/common/sdk/nvidia/inc/nv-hypervisor.h 91e9bc3214d6bb9b20bc8001d85fe8699df5184a - nvdisplay/src/common/sdk/nvidia/inc/nvos.h 50d31a6d133b0ea9230f9dc1b701ce16a88a7935 - nvdisplay/src/common/sdk/nvidia/inc/rs_access.h ae60d53603c7ddbbd72d4e16ce2951f3d42aed32 - nvdisplay/src/common/sdk/nvidia/inc/nverror.h ffa91e1110a5cc286ec44a7bda5461b2be941ea2 - nvdisplay/src/common/sdk/nvidia/inc/nv_vgpu_types.h af0bc90b3ad4767de53b8ff91e246fdab0146e8b - nvdisplay/src/common/sdk/nvidia/inc/nvsecurityinfo.h b249abc0a7d0c9889008e98cb2f8515a9d310b85 - nvdisplay/src/common/sdk/nvidia/inc/nvgputypes.h a9bf4969ae3e39cc315b6180ee7055e0ad1279c6 - nvdisplay/src/common/sdk/nvidia/inc/nvtypes.h 821a01976045d7c3d2ac35b0f115e90a9e95f8e8 - nvdisplay/src/common/sdk/nvidia/inc/nvimpshared.h 95bf694a98ba78d5a19e66463b8adda631e6ce4c - nvdisplay/src/common/sdk/nvidia/inc/nvstatus.h 9bca638f5832d831880f090c583fac6fc8cf6ee6 - nvdisplay/src/common/sdk/nvidia/inc/dpringbuffertypes.h a506a41b8dcf657fb39a740ffc1dfd83835d6c89 - nvdisplay/src/common/sdk/nvidia/inc/nvcfg_sdk.h 9f2e225f027f5a04d1104d29a0039cd2bb7dd85a - nvdisplay/src/common/sdk/nvidia/inc/nvfixedtypes.h 7c4aef225d174ecbe1130d63b8e8ff752bddf48e - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0041.h 5abe75cf18a2fede23529194b406c3cf742edced - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlxxxx.h 00e9a0ace4b59958a8b048229fb22b4d9e2f8864 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl90cd.h 1022bba330a71b92dcc81f47ba460209fcc70cd0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0002.h 7a0c878431a9b0d9dda117f165946b1cdf8ebbde - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0020.h 0639d6cd553994aff4195e8e7547eebf8e713145 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080.h b72318d58806bfd25f922107a606b222baa2e28c - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl30f1.h f779cd0470e428160fc590b590f2cd4855950058 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl402c.h 79204c26eb58ee812cc2f72ee1f6d4d7d93817c7 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080.h c8490da9f200f4dbbac7ebe636f3a83485f3001c - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073.h 9c6a4f1d864b5161564869b19f8cb2ce9d629c1d - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl003e.h e2d8133537e2687df022c6a966c55fbfea1974f3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0004.h 3449834cb8b8c630ab1de6df30503c846b26e86b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl90ec.h 39f5e838aa6ab007c56e7a59c7d2986d1a7aa34a - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ce.h bc22bf13b7d99ee6f80c30b569e084a2b03e385a - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080grmgr.h 3d8e37aa8485aadf55335d8f9f913273d90a2442 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080boardobjgrpclasses.h 5bdddb9a949a78443f83a7da81ad5fee8a300c44 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf_cf.h 774fd1e730d1d853bf97946f7ecd24c6648c7af4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080hshub.h 7d27fafff043d290b2ec1d2dddbecea2f1df4704 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gsp.h 6679d97e3852ed78ee44780408c523b94f426ca4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf_cf_pwr_model.h 82a2e7a2fc6501163d07870f3f640a591f4a8996 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080volt.h 4b8fa2ce546ae3f06b7dc61df3d534449cdb5b2d - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080clkavfs.h 1651ec548a2899391a05bc6463b3f7162c7807ab - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080internal.h 783db6da0b92b6b8ae26b180129beb0bccb13a5b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080thermal.h d51e47795dfe1fc0bae31b9379d6a39ac4d3080f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080bios.h 8ef946f1d7545277ef64891b45a29db44c4e9913 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fan.h 091f7bac99f5c786a64b6fa59d9d27af786bab10 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080acr.h c3a75647f5ca6cd7b456511af36a9de6d90329c3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvlink.h da220a5608a0e4c73fa0315b13e2b29d92b114e9 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080dmabuf.h a44d2f1b31b8ec124355018204909df19df09748 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080unix.h 2dd40e3e41d74de3865bc700acc9ab7e0540c647 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpio.h 7d3819683e9f562a87f36a3e23c043b2b6fd814e - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080rc.h 143c1c24ec926142d1f84dec7a543f2b98541545 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fuse.h 291f91212d5a37aae46a2944cf89f4b74b1d1809 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080pmgr.h 0ac7e4eb4d952c84c6f4e697cbfcb355069377c2 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080flcn.h 2a11fc0a499f8293b83e08572f5e6be04bd1da61 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpu.h 82364e263f43ea028c2d66db58887958bdef64b0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fb.h d084d99035f4cc34cd803ff4a5328b9e10ea77fc - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080boardobj.h f3a855fe7a91c2acf2be41629ce906996e01a9fc - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080perf.h 3966d65c9701bf97c807cf87838a08cda10f418d - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080tmr.h 22d828c87b223f937c589a0e863a25d95b734371 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080event.h 82aa4d6108ce6abebcbbc95afcb7a6350e287f5f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080i2c.h 18814de559257f07bad8a0a9006ac9751fcfa1cb - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ecc.h a1830232f18afe44230d6a8598c50b3fc7656089 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080nvd.h f97e7f88aa17788bbbebf55807e449c0ee016384 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080ucodefuzzer.h 3c7130d0613d3c8baef6b23bb63c6ee7a10ed21b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080cipher.h c0181e959c1ba5ebfc3f130c8764687b58453f9b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fla.h c4474dc1f53661c67d8fce5303dcc636d9ad3b8f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gpumon.h 1684a3a8111fd3d83363cebe68d016a54eaaf686 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080clk.h 27ad8b5c2406fcd572cd098dd215e93ae1db99e3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080mc.h e6f6beaed64167088608027b442f5449cff027c1 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080common.h 051dbfd1d5ff02b2771bc9b3fad8aaef29aab9ae - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080base.h 6b4418e269bb97b9996b05ea153ccd195c661e11 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080fifo.h 090f908931690302e3a2c77f3ce41c4de0c61efc - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080vfe.h 6834a9c75265c25adfb03f0b2dbfe0559f28cadf - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080dma.h 8855ee8bad2f2169ebd147e7ac77d9f1340cbad8 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080spi.h b2b6b3b413ae17af1afde2fc8672cd1bf48e7b19 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080illum.h 7c4e426dee0ae86c00b3bd10873a1a2bd94ed3b2 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080power.h 8a613db1c31724a577c4718752c15d9754882f48 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080lpwr.h e9d692b06c70951dbbd0663a89f822153bce1146 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080bus.h 72292c9844eaf24c38967dd4a879c0c0f070a0de - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080gr.h 1ebfe9f0f9a7d2dd2873df82bbc78b1ec982ca93 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl2080/ctrl2080pmumon.h f1dae17e75a24c28135cf073bf29f9609a2418e3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370rg.h 24782552a13f627e2e94ebb5f7021246a0c0dc53 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370verif.h 7f5548026751a8caaebc245945ccdc4bb037b566 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370chnc.h 7812ba094d95c1b6d65afc6a1d26930400b8b96f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370event.h 76c31150e2f589fbb96cfc06cdc6c1801e128656 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc370/ctrlc370base.h ad7604ced12ee18c569d2a7ebe71e185ebff3fd4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070system.h 2f92bebccb9da5246b19bd13ff0e6e79de79bc3b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070verif.h 209ef519cb73395cea7d66016448ebc3c6bf6fe4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070or.h 9031642283b59ee6d52e2e1ca54332df5c2f7acc - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070rg.h 91cccede5c4f26a6b6ca7ba4bc292f3d908a88d4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070base.h aec1b750866e34f9626e48c535336f93c5c246fa - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070seq.h 84fb76f9cff38c797b139cba40175717591d49df - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070common.h e10cbe4875736ef16072232789dd3f48647c022f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070impoverrides.h f523fe4a55a6a9d01f41f9f34ff149ed75b2e739 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070event.h f47136417885a729f9c5dee375ec9dec1bd170e0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl5070/ctrl5070chnc.h 4d9116d23d27a3fc39c366f2685243b83ef7d485 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000diag.h f7e56d494fea02515180f21b0f56ae0aff583be4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gpuacct.h 6e5b278451308efbb6911a8ab03b0feba504d035 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000client.h c905766589d17fcb99a5d73846ed61f7b7db56fe - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000event.h b66a45c83c84f6d458ef19fd7e0f972f2eabd109 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000vgpu.h abe79ad927e7c70b7c1a8eb687052a782efcd5f4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000nvd.h 2518a62952c72ee6f3447bc8dc417129f6ac26a4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000system.h 0ee647b929e55cf39da7e26ffc0f027676fa52fa - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000syncgpuboost.h 4a3e7d71b9169d703d9373ff80b02a63825a80e4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000unix.h 9373c51ca29afec3368fb5b8c2a2f05b0920f291 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gpu.h 382dc80790d870047db7cea957ef208d4439801e - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gspc.h 825f4d976c76d375803e42967fdab53e7814d18d - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000gsync.h ef180860a1ccbcb9f5d2f8a6656a345eef76a2a7 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000base.h 323fcc6af8c30d5ef292ae90810c5c2fa2009e20 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0000/ctrl0000proc.h b7b0360b1a6ca78267fa10f7adcd370da86513c3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080bsp.h 681c94b982e29049638814f6c1e4eb508f8b0bf3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080unix.h 76c9f104e04a8fd9e73e03ad59b2e72264c5f169 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080nvjpg.h d107e41878b5bc50a5c8b29684122c9589625a6f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080perf.h 64f849ed19609320461b8938f24f0b40fb1a35b0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080cipher.h bb4182eeea20779f62165d2d50ed209b6a07e54e - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080msenc.h b7f2957f506dc285acb87d41d34cfd60408b00ae - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080rc.h f4a4eeb35e15e0642d1bf4e2e5b31394f4cbbfa1 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080host.h 8dd5acedc0b1613314eb3fe9130a9c282bd49ca1 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080clk.h 6c34803c213ea0a28114bc921e1867cefebec088 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080dma.h 3646710984d5c3024d16f9ab346222ad6dfdb4f0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fifo.h f7435e356d54d682a949734574388abbe7ffe1d0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080base.h dac18fcaf5d652b21f84cfba455f4f5972e786c5 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080fb.h ea9aac6f0e23f0de444ac3919c35e4b78c18c942 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080bif.h c72f147e8fb78126d13567278239acfcd9b9cc1f - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080internal.h 862a17958488d69ca3e92c42ee1bed55cb299fa4 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080gpu.h 9e61da81ecdff15d63f9ae8a1c2f0960b820c65c - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0080/ctrl0080gr.h 440314f66374d35a1628ee8bd61836a80ab421eb - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dfp.h 1248e113751f8ed9e4111e86a7f7fb632b102eca - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073stereo.h 3dc187adc0a848e68f62a6a7eb99ac02ee6502cc - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dpu.h f3b81a241efe1224798b17c062e33936469c3c2b - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073internal.h 8fd661537cc4eb55c167b9daae404bfb82408bfe - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073svp.h 09dedebdcff3244ab8f607a7152e9116d821f9c1 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073specific.h 92be535d68a7f18088921faa3f1742298ad341c3 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073psr.h ccc48726d7da49cddc4d4f86d8dbd2ad585f7b38 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073base.h b921747a65c67fa093de08fa782c164d048824b0 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073system.h 7e0773f7bf13350a9fd25b0df4d6c45a55a008df - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073event.h f88f1c519a242dfa71221bdcdafc7deab14d8503 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrl0073/ctrl0073dp.h cf78a847e0882e1d164eccdb86ea033126019599 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc372/ctrlc372chnc.h 8294d43d202a9cd78367f2e69388a6c6f2c369f7 - nvdisplay/src/common/sdk/nvidia/inc/ctrl/ctrlc372/ctrlc372base.h 04ab1761d913030cb7485149ecd365f2f9c0f7da - nvdisplay/src/common/sdk/nvidia/inc/class/cl0005_notification.h ddbffcce44afa7c07924fd64a608f7f3fe608ccc - nvdisplay/src/common/sdk/nvidia/inc/class/cl0071.h e6818f1728a66a70080e87dac15a6f92dd875b4e - nvdisplay/src/common/sdk/nvidia/inc/class/cl927d.h dd4f75c438d19c27e52f25b36fc8ded1ce02133c - nvdisplay/src/common/sdk/nvidia/inc/class/cl917cswspare.h 28867d69a6ceac83da53a11a5e1ef87d9476f0be - nvdisplay/src/common/sdk/nvidia/inc/class/clc57d.h c61f8348c2978eef0a07191aaf92bd73e935f7bd - nvdisplay/src/common/sdk/nvidia/inc/class/clc67e.h 03ab4e08e8685696477b62eb1a825e5198d61b8a - nvdisplay/src/common/sdk/nvidia/inc/class/cl0080.h 05605d914edda157385e430ccdbeb3fcd8ad3c36 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9171.h 1efc9d4aa038f208cd19533f6188ac3a629bf31a - nvdisplay/src/common/sdk/nvidia/inc/class/cl917a.h 435a34753d445eb9711c7132d70bd26df2b8bdab - nvdisplay/src/common/sdk/nvidia/inc/class/cl917d.h 76c430d54887ed14cace9409712259e10f042b4c - nvdisplay/src/common/sdk/nvidia/inc/class/cl00c1.h 326dbbeb275b4fc29f6a7e2e42b32736474fec04 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9571.h 31939808cd46382b1c63bc1e0bd4af953302773f - nvdisplay/src/common/sdk/nvidia/inc/class/cl977d.h e0c9a155f829c158c02c21b49c083168f8b00cbe - nvdisplay/src/common/sdk/nvidia/inc/class/clc37dswspare.h 9bd9f416844d798f352fcc6c8aaf2c251253c068 - nvdisplay/src/common/sdk/nvidia/inc/class/cl90cd.h 941a031920c0b3bb16473a6a3d4ba8c52c1259d7 - nvdisplay/src/common/sdk/nvidia/inc/class/cl917e.h fb5ef3d6734a2ee6baba7981cdf6419d013cee85 - nvdisplay/src/common/sdk/nvidia/inc/class/clc671.h 38265d86eb7c771d2d3fc5102d53e6a170a7f560 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0041.h bb79bbd1b0a37283802bc59f184abe0f9ced08a5 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0040.h a26ddc6c62faac1ecd5c5f43499aab32c70f32cb - nvdisplay/src/common/sdk/nvidia/inc/class/clc67b.h b7a5b31a8c3606aa98ba823e37e21520b55ba95c - nvdisplay/src/common/sdk/nvidia/inc/class/cl402c.h a30755b3003023c093f8724cf9a2e0b0c301b586 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9010.h 02ff42b6686954e4571b8a318575372239db623b - nvdisplay/src/common/sdk/nvidia/inc/class/cl30f1_notification.h 6db83e33cb3432f34d4b55c3de222eaf793a90f0 - nvdisplay/src/common/sdk/nvidia/inc/class/cl00b1.h ccefba28a2c7979701f963f2c358b4414b84ca98 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9570.h 13f8e49349460ef0480b74a7043d0591cf3eb68f - nvdisplay/src/common/sdk/nvidia/inc/class/clc57b.h 36b0dd6de0d0b49d435a4662c35d1f4ae5b2b1bc - nvdisplay/src/common/sdk/nvidia/inc/class/cl9870.h bd27ceb75c4604fef53658f16a5012d97c1534b2 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9470.h 68c953956a63ef8f7f9bcbe71057af510f4597c1 - nvdisplay/src/common/sdk/nvidia/inc/class/clb0b5sw.h 5416c871e8d50a4e76cbad446030dbedbe1644fd - nvdisplay/src/common/sdk/nvidia/inc/class/cl00f2.h e63ed2e1ff3fe2a5b29cfc334d3da611db2aadf6 - nvdisplay/src/common/sdk/nvidia/inc/class/clc37dcrcnotif.h cb610aaae807d182b4a2ee46b9b43ebfa4a49a08 - nvdisplay/src/common/sdk/nvidia/inc/class/clc57e.h 861b9d7581eab4a2b8cc7269b5d0e0d1294048d1 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0005.h dec74b9cf8062f1a0a8bbeca58b4f98722fd94b0 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0076.h 4bbb861011139be1c76b521eaa7ae10951d5bf9a - nvdisplay/src/common/sdk/nvidia/inc/class/cl2081.h 8b75d2586151302d181f59d314b6b3f9f80b8986 - nvdisplay/src/common/sdk/nvidia/inc/class/clc573.h ab27db8414f1400a3f4d9011e83ac49628b4fe91 - nvdisplay/src/common/sdk/nvidia/inc/class/cl987d.h 02906b5ba8aab0736a38fd1f6d7b4f6026a5185b - nvdisplay/src/common/sdk/nvidia/inc/class/clc57esw.h ff47d8a4b4bdb3b9cd04ddb7666005ac7fcf2231 - nvdisplay/src/common/sdk/nvidia/inc/class/cl003e.h 4b8f95693f79a036317ab2f85e150c102ad782e9 - nvdisplay/src/common/sdk/nvidia/inc/class/cl84a0.h 545dd1899c6988ffe5f50300232bd862d915cd5b - nvdisplay/src/common/sdk/nvidia/inc/class/clc770.h 4a6444c347825e06bdd62401120553469f79c188 - nvdisplay/src/common/sdk/nvidia/inc/class/cl917dcrcnotif.h 78259dc2a70da76ef222ac2dc460fe3caa32457a - nvdisplay/src/common/sdk/nvidia/inc/class/clc37e.h 053e3c0de24348d3f7e7fe9cbd1743f46be7a978 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0004.h 9b2d08d7a37beea802642f807d40413c7f9a8212 - nvdisplay/src/common/sdk/nvidia/inc/class/clc37d.h ecc56a5803b85187aa95b788aedd4fa2262c1bb6 - nvdisplay/src/common/sdk/nvidia/inc/class/cl2080.h 2e3d5c71793820d90973d547d8afdf41ff989f89 - nvdisplay/src/common/sdk/nvidia/inc/class/clc67a.h 4d5ccf08ab73343343e0c804002a621996866161 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0092.h c5ef1b16b2bd2e33f52b71f2b78db789ebb844f0 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9770.h f5760f5054538f4ecf04d94fb1582a80a930bc29 - nvdisplay/src/common/sdk/nvidia/inc/class/clc673.h ba76ecbebe0ed71ea861ed7016abbfc16ced2df7 - nvdisplay/src/common/sdk/nvidia/inc/class/cl5070_notification.h 0285aed652c6aedd392092cdf2c7b28fde13a263 - nvdisplay/src/common/sdk/nvidia/inc/class/cl00fc.h 95ca0b08eed54d1c6dd76fdf9cf4715007df1b20 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0020.h d1a19dee52b3318714026f4fcc748cfa4681cd25 - nvdisplay/src/common/sdk/nvidia/inc/class/clc370.h 204feb997ba42deab327d570e5f12235d5160f00 - nvdisplay/src/common/sdk/nvidia/inc/class/clc57a.h bb8d15aee43e1feb76fddf80398e93fd805f1ddb - nvdisplay/src/common/sdk/nvidia/inc/class/cl2082.h ea10b0d938d9314638882fdc20b9158a193f7b08 - nvdisplay/src/common/sdk/nvidia/inc/class/cl5070.h e72a7871d872b2eb823cc67c0a7d4cafb3d0ca18 - nvdisplay/src/common/sdk/nvidia/inc/class/cl90ec.h 127f78d2bb92ef3f74effd00c2c67cf7db5382fe - nvdisplay/src/common/sdk/nvidia/inc/class/clc67d.h 158c98c8721d558ab64a025e6fdd04ce7a16ba9e - nvdisplay/src/common/sdk/nvidia/inc/class/cl947d.h bae36cac0a8d83003ded2305409192995d264d04 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0001.h da8d312d2fdc6012e354df4fa71ed62ae4aac369 - nvdisplay/src/common/sdk/nvidia/inc/class/cl927c.h c2600834921f8a6aad6a0404076fa76f9bc1c04d - nvdisplay/src/common/sdk/nvidia/inc/class/clc37b.h eac86d7180236683b86f980f89ec7ebfe6c85791 - nvdisplay/src/common/sdk/nvidia/inc/class/cl957d.h 026f66c4cc7baad36f1af740ae885dae58498e07 - nvdisplay/src/common/sdk/nvidia/inc/class/clc371.h 2f87e87bcf9f38017ad84417d332a6aa7022c88f - nvdisplay/src/common/sdk/nvidia/inc/class/cl9471.h 0d8975eec1e3222694e98eb69ddb2c01accf1ba6 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0000_notification.h b29ba657f62f8d8d28a8bdd2976ef3ac8aa6075f - nvdisplay/src/common/sdk/nvidia/inc/class/cl0073.h 92c2dab6bc48f32f46c6bbc282c63cb4ec7a50bf - nvdisplay/src/common/sdk/nvidia/inc/class/cl9170.h 15d1f928a9b3f36065e377e29367577ae92ab065 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0080_notification.h 11b19cb8d722146044ad5a12ae96c13ed5b122b6 - nvdisplay/src/common/sdk/nvidia/inc/class/cl917b.h a23967cf3b15eefe0cc37fef5d03dfc716770d85 - nvdisplay/src/common/sdk/nvidia/inc/class/clc372sw.h 11fd2de68ab82b81211aa20c66a9a6595199f673 - nvdisplay/src/common/sdk/nvidia/inc/class/cl9270.h b29ea3f13f501327c060b9ddfac5834ed396414a - nvdisplay/src/common/sdk/nvidia/inc/class/cl30f1.h 9db39be032023bff165cd9d36bee2466617015a5 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0002.h 593384ce8938ceeec46c782d6869eda3c7b8c274 - nvdisplay/src/common/sdk/nvidia/inc/class/cl900e.h 15136a724baab270914a01a8c0e8f2c2c83675b6 - nvdisplay/src/common/sdk/nvidia/inc/class/cl00c3.h 26c3ccc33328a66ad3bcfe999424dffda991264f - nvdisplay/src/common/sdk/nvidia/inc/class/clc670.h 509c56534ed6d48b06494bb22d3cf58d63254a05 - nvdisplay/src/common/sdk/nvidia/inc/class/clc574.h 060722ac6a529a379375bb399785cbf2380db4fd - nvdisplay/src/common/sdk/nvidia/inc/class/clc373.h 022e8405220e482f83629dd482efee81cc49f665 - nvdisplay/src/common/sdk/nvidia/inc/class/clc77f.h a7c7899429766c092ee3ecf5f672b75bef55216c - nvdisplay/src/common/sdk/nvidia/inc/class/cl9271.h 95d99f0805c8451f0f221483b3618e4dbd1e1dd8 - nvdisplay/src/common/sdk/nvidia/inc/class/cl90f1.h 1409efc057e4f0d55602f374ec006f9db7ad3926 - nvdisplay/src/common/sdk/nvidia/inc/class/cl0000.h 82c9df617999f93ebd9362851966f601b8131fdd - nvdisplay/src/common/sdk/nvidia/inc/class/clc570.h c2d8bb02052e80cd0d11695e734f5e05ab7faeb5 - nvdisplay/src/common/sdk/nvidia/inc/class/cl907dswspare.h b1133e9abe15cf7b22c04d9627afa2027e781b81 - nvdisplay/src/common/sdk/nvidia/inc/class/cl917c.h 866977d299eac812b41eb702a517e27bdc56e875 - nvdisplay/src/common/sdk/nvidia/inc/class/clc37a.h cf9d774335b85de8870320acce33e367af34d476 - nvdisplay/src/common/inc/nvUnixVersion.h b4c5d759f035b540648117b1bff6b1701476a398 - nvdisplay/src/common/inc/nvCpuUuid.h a27eb14c54c6acb647a95c264b90e25f07fc757e - nvdisplay/src/common/inc/nvBldVer.h f59a2759281341e56372d3cb37b16715944dd8e1 - nvdisplay/src/common/inc/nvPNPVendorIds.h ebccc5c2af2863509e957fe98b01d9a14d8b0367 - nvdisplay/src/common/inc/nv_list.h e015e955a05908d4a2202213353eac89f1b80ff6 - nvdisplay/src/common/inc/nvSha1.h 62e510fa46465f69e9c55fabf1c8124bee3091c4 - nvdisplay/src/common/inc/nvHdmiFrlCommon.h 4282574b39d1bcaf394b63aca8769bb52462b89b - nvdisplay/src/common/inc/nvBinSegment.h 764e5c4364922e3953b4db0411d1d3c3bdac99f4 - nvdisplay/src/common/inc/nvlog_defs.h 3bf0416186ee90833c727f01cc891bd568ea9d0f - nvdisplay/src/common/inc/nvVer.h b58ed1b4372a5c84d5f3755b7090b196179a2729 - nvdisplay/src/common/inc/nv_speculation_barrier.h 8f0d91e1a8f0d3474fb91dc3e6234e55d2c79fcc - nvdisplay/src/common/inc/rmosxfac.h b85b49fc4ed38a241c79731a02b3b040a654a52a - nvdisplay/src/common/inc/nvctassert.h 963aebc9ec7bcb9c445eee419f72289b21680cdd - nvdisplay/src/common/inc/hdmi_spec.h a346380cebac17412b4efc0aef2fad27c33b8fb5 - nvdisplay/src/common/inc/nvlog_inc2.h 5257e84f2048b01258c78cec70987f158f6b0c44 - nvdisplay/src/common/inc/nvlog_inc.h a26df21c3cc3eeb395428101f11da68386e0d72b - nvdisplay/src/common/inc/displayport/dpcd14.h 8159b4189c577d545c1280d7d905a2dc2ba29fa7 - nvdisplay/src/common/inc/displayport/dpcd.h 249d4f7317ce68c3ceb64e2b1ee257cc75eb002b - nvdisplay/src/common/inc/displayport/dpcd20.h 96b9560d322f43a980db5d6cc5072e9e81fdb9d2 - nvdisplay/src/common/inc/displayport/displayport.h d2b4cc6228c4b13ef77e47bf30326826c5662ed4 - nvdisplay/src/common/inc/swref/published/nv_ref.h 06aa739230c00998e039b0104e5d73da85c322fe - nvdisplay/src/common/inc/swref/published/nv_arch.h 38edc89fd4148b5b013b9e07081ba1e9b34516ac - nvdisplay/src/common/inc/swref/published/turing/tu102/kind_macros.h 86a59440492fd6f869aef3509f0e64a492b4550d - nvdisplay/src/common/inc/swref/published/turing/tu102/dev_mmu.h f9311a35f375c7453d99fdde3876440b54d4cb5a - nvdisplay/src/common/inc/swref/published/disp/v03_00/dev_disp.h 1ea0c3d6ea0c79c01accc7b25d15b421ab49a55d - nvdisplay/src/common/inc/swref/published/disp/v04_02/dev_disp.h 439ef00ffa340bd1b6506970d154a33ca4b64b4a - nvdisplay/src/common/modeset/timing/nvt_dmt.c f531475d8b978bca5b79d39d729b0c9986fe7b36 - nvdisplay/src/common/modeset/timing/nvtiming.h 1997adbf2f6f5be7eb6c7a88e6660391a85d891b - nvdisplay/src/common/modeset/timing/nvt_gtf.c 1290abde75d218ae24f930c3b011042a3f360c2e - nvdisplay/src/common/modeset/timing/displayid20.h b4813a5e854e75fb38f460e0c27dca8e1ce8dc21 - nvdisplay/src/common/modeset/timing/nvt_edid.c 58b68f1272b069bb7819cbe86fd9e19d8acd0571 - nvdisplay/src/common/modeset/timing/edid.h 0a04709ebdc4acb12038656c433e10c4e7096518 - nvdisplay/src/common/modeset/timing/nvt_edidext_displayid.c e66a20fc1579b0dd1392033089f97cf170e8cf10 - nvdisplay/src/common/modeset/timing/dpsdp.h 49df9034c1634d0a9588e5588efa832a71750a37 - nvdisplay/src/common/modeset/timing/nvt_cvt.c f75b1d98895bdccda0db2d8dd8feba53b88180c5 - nvdisplay/src/common/modeset/timing/displayid.h 4a2ad30f49ed92694b717a99ce7adeeb565e8a37 - nvdisplay/src/common/modeset/timing/nvt_edidext_861.c b5bd3a58b499216e4fe0e0c9c99525b07ac237dc - nvdisplay/src/common/modeset/timing/nvt_dsc_pps.c 95dae946088f21339299dae48eeafaab31b97b05 - nvdisplay/src/common/modeset/timing/nvtiming_pvt.h 28d7b753825d5f4a9402aff14488c125453e95c5 - nvdisplay/src/common/modeset/timing/nvt_tv.c cfaa569ac3d63484c86e8a8d7a483dd849f96be8 - nvdisplay/src/common/modeset/timing/nvt_edidext_displayid20.c 890d8c2898a3277b0fed360301c2dc2688724f47 - nvdisplay/src/common/modeset/timing/nvt_util.c ba9e382b24f57caa9dcf1c26a60b1f2070b1b9dd - nvdisplay/src/common/modeset/timing/nvt_displayid20.c 3023a58fd19d32280607d4027b09fe51fdb7a096 - nvdisplay/src/common/modeset/timing/nvt_dsc_pps.h 67db549636b67a32d646fb7fc6c8db2f13689ecc - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_9271.c e3be7ba45506c42d2fca87e9da45db75ced750ca - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_common.h e6d500269128cbd93790fe68fbcad5ba45c2ba7d - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_C371.c 15d54c86d78404639c7f151adc672e19472dcf4a - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt.c 443c0a4b17a0019e4de3032c93c5cac258529f01 - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_internal.h d2c79c8a4e914519d653d1f14f706ec4a1f787e8 - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_9171.c 7c2fe72426fa304315e169e91dc6c1c58b5422fd - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_0073.c 54a1b5e5aaf0848a72befc896ed12f1de433ad4f - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_9471.c 5e12a290fc91202e4ba9e823b6d8457594ed72d3 - nvdisplay/src/common/modeset/hdmipacket/nvhdmi_frlInterface.h 381e1b8aeaa8bd586c51db1f9b37d3634285c16a - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_class.h 9be7b7be94a35d1d9a04f269ff560dbbb7860a2a - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_9571.c f669280a5e86ba51b691e2609fa7d8c223bd85dc - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt_C671.c 90e8ce7638a28cd781b5d30df565116dc1cea9e8 - nvdisplay/src/common/modeset/hdmipacket/nvhdmipkt.h 2f60ba753549b232e1b995046a356dbe0eced04a - nvdisplay/src/common/shared/nvstatus/nvstatus.c 893c70c95809f463c7af6dc9c814527804fcdf53 - nvdisplay/src/nvidia/Makefile c5f16fdf43ca3d2845d120c219d1da11257072b0 - nvdisplay/src/nvidia/nv-kernel.ld 35da37c070544f565d0f1de82abc7569b5df06af - nvdisplay/src/nvidia/interface/nv_firmware_types.h bff92c9767308a13df1d0858d5f9c82af155679a - nvdisplay/src/nvidia/interface/nvacpitypes.h db0dc6915302888de06e3aa094d961cfe25e0059 - nvdisplay/src/nvidia/interface/nvrm_registry.h df4d313c66e75fa9f4a1ff8ea2c389a6ecd6eb3d - nvdisplay/src/nvidia/interface/acpigenfuncs.h d50ff73efaf5bc7e9cb3f67ed07ede01e8fad6f6 - nvdisplay/src/nvidia/interface/deprecated/rmapi_deprecated.h 059c1ab76a5f097593f0f8a79203e14a9cec6287 - nvdisplay/src/nvidia/interface/deprecated/rmapi_deprecated_utils.c 7df66a87c9498ae73c986e60fcb9cb1cbcd19e19 - nvdisplay/src/nvidia/kernel/inc/objrpc.h 1feab39692ea8796ac7675f4780dfd51e6e16326 - nvdisplay/src/nvidia/kernel/inc/objtmr.h 0cff83f4fdcc8d025cd68e0a12faaeead09fa03b - nvdisplay/src/nvidia/kernel/inc/tmr.h e4d88af4eb51d32288f913d90e490e329884970b - nvdisplay/src/nvidia/kernel/inc/vgpu/rpc_global_enums.h 961ed81de50e67eadf163a3a8008ce1fde1d880c - nvdisplay/src/nvidia/kernel/inc/vgpu/rpc_hal_stubs.h 31deee778df2651d3d21b4d9c8ab180b8dc1ff14 - nvdisplay/src/nvidia/kernel/inc/vgpu/rpc_vgpu.h 4db7387cc1ce08ccc62404b80b19c7f1b685e746 - nvdisplay/src/nvidia/kernel/inc/vgpu/rpc.h 28d6a6ae495d9bc032c084980ebf5d94448bcf29 - nvdisplay/src/nvidia/kernel/inc/vgpu/rpc_headers.h 410a759c949904b7ae1eecafb31143fad579c0a1 - nvdisplay/src/nvidia/generated/g_rs_client_nvoc.c 59a87763c6abdc54828f2785a7d90e43e607bc87 - nvdisplay/src/nvidia/generated/g_disp_inst_mem_nvoc.c cd833a822c1ce96c79135ba7221d24f347ceadb1 - nvdisplay/src/nvidia/generated/g_mem_mgr_nvoc.h 205490d6651110f28009e752fa286f818bed22fb - nvdisplay/src/nvidia/generated/g_syncpoint_mem_nvoc.h ceb4dd72148dfe4a0581631147e8d7636abfd61f - nvdisplay/src/nvidia/generated/g_chips2halspec_nvoc.h 3a5457a216d197af8f120c660690a55ee44bdd8e - nvdisplay/src/nvidia/generated/g_generic_engine_nvoc.c 87a5ae8e07103074020ba052ca45ab39e918d3bd - nvdisplay/src/nvidia/generated/g_resource_nvoc.c 76b1f545e3712a2f8e7c31b101acd9dd682c52f8 - nvdisplay/src/nvidia/generated/g_traceable_nvoc.c 4b9f2ee66b59181f226e1af5087db6ea80f1ee27 - nvdisplay/src/nvidia/generated/g_virt_mem_mgr_nvoc.h 162777624d03af2f17dfdc28bc35143e2ec6cdee - nvdisplay/src/nvidia/generated/g_os_nvoc.c 213ebb4fdfa3c2f64b5f998e2ad990e448d4a104 - nvdisplay/src/nvidia/generated/g_nv_debug_dump_nvoc.h 2b49950ba8f540ed4231c3334810edbb212bb859 - nvdisplay/src/nvidia/generated/g_client_resource_nvoc.h da3cc08f12ccee23bcb1c0d0c757b8bbcb81e4fd - nvdisplay/src/nvidia/generated/g_rs_server_nvoc.h 73a37ad59b9b13b61eb944748b6c2ba3cad7b630 - nvdisplay/src/nvidia/generated/g_traceable_nvoc.h 7523c2ee9228ad0e2fb3566b23b9720d7896afae - nvdisplay/src/nvidia/generated/g_eng_state_nvoc.c 6f3fc9676df77fa24c49140331b87ed5988ed57c - nvdisplay/src/nvidia/generated/rmconfig.h 6fd6953e4ae0af707376a40ea0e4f3e70872be7b - nvdisplay/src/nvidia/generated/g_os_desc_mem_nvoc.h a016a7d8e07389736c388cb973f3b2a177ea917d - nvdisplay/src/nvidia/generated/g_disp_capabilities_nvoc.c d32d0b65f5f76cb56ca7cd83c0adfe5cb5330924 - nvdisplay/src/nvidia/generated/g_resource_nvoc.h 285af0d0517cb191387a05ad596f74291ec81737 - nvdisplay/src/nvidia/generated/g_mem_desc_nvoc.h 9646d1c4d472ad800c7c93eec15cc03dd9201073 - nvdisplay/src/nvidia/generated/g_disp_objs_nvoc.h 88d336f88c9b72ec2c1352d4ebe00c0831eafbca - nvdisplay/src/nvidia/generated/g_sdk-structures.h 133e94f73c781709f407b03d8cdfdd8865c39b4b - nvdisplay/src/nvidia/generated/g_disp_sf_user_nvoc.c 73c598515eb7985c8f4cace0946ec9613960be6c - nvdisplay/src/nvidia/generated/g_gpu_group_nvoc.c e50c91a674508b23b072e0dd2edbf743f24b333d - nvdisplay/src/nvidia/generated/g_object_nvoc.c e48b8b6ba9da5630a7ade526acbb94e50d9b636d - nvdisplay/src/nvidia/generated/g_vaspace_nvoc.h b86536778197748c707c3e9e4c73c5fbcb037e32 - nvdisplay/src/nvidia/generated/g_generic_engine_nvoc.h b29061454e7d8daa0cef0787f12726d105faf5c4 - nvdisplay/src/nvidia/generated/g_gpu_resource_nvoc.c d405e01478d26ea99cc0012fa2d6e0021bbe6213 - nvdisplay/src/nvidia/generated/g_gpu_db_nvoc.c 2ab6933e07a84c64dfcbeef3b3f4e3f14249d8c8 - nvdisplay/src/nvidia/generated/g_tmr_nvoc.h 801eb295d07258ad70b99cb0fe85f3421690e0c4 - nvdisplay/src/nvidia/generated/g_rmconfig_private.h ffd4f01212709e321d4097e424fe5d32038f5d8b - nvdisplay/src/nvidia/generated/g_gpu_mgmt_api_nvoc.c 3b0e038829647cfe0d8807579db33416a420d1d2 - nvdisplay/src/nvidia/generated/g_chips2halspec.h 4302502637f5c4146cb963801258444f2d8173e1 - nvdisplay/src/nvidia/generated/g_allclasses.h 499a3d9c61a86b667cc77cf8653a71f7fe85078a - nvdisplay/src/nvidia/generated/g_nv_name_released.h 6263c1ceca0797d34a102f9846acd1fdef06fb60 - nvdisplay/src/nvidia/generated/g_resserv_nvoc.h ac3965eea078f1998c3a3041f14212578682e599 - nvdisplay/src/nvidia/generated/g_vaspace_nvoc.c 59c3612a596ad6b996c9d1506f9893bd1b5effee - nvdisplay/src/nvidia/generated/g_gpu_mgr_nvoc.c 21e3cf689d84b1a28e11f66cc68a0bc6713108b0 - nvdisplay/src/nvidia/generated/g_rs_server_nvoc.c e0988b45cf712f1a7662b6f822eaed3ffd9938f3 - nvdisplay/src/nvidia/generated/g_gpu_mgmt_api_nvoc.h 05cb2fed8648f07b54dc2e8bacbafb323ea8262e - nvdisplay/src/nvidia/generated/g_standard_mem_nvoc.h 3f5a391895fc900396bae68761fe9b4dcb382ec0 - nvdisplay/src/nvidia/generated/g_event_buffer_nvoc.h 2c28d729456749f16ae03fb48b1e416706762805 - nvdisplay/src/nvidia/generated/g_resource_fwd_decls_nvoc.h c370a103a4c1c9cf2df3763988e77ef8f7bc6afb - nvdisplay/src/nvidia/generated/g_gpu_db_nvoc.h 4f4acfdefc7b9a0cdfe2d5840cc18c9c33366053 - nvdisplay/src/nvidia/generated/g_object_nvoc.h 8e0e60f6d30bbed679c43b4997875989314ee88c - nvdisplay/src/nvidia/generated/g_dce_client_nvoc.c f42bfa3b5a801358d30f852625d8456290550f46 - nvdisplay/src/nvidia/generated/g_disp_inst_mem_nvoc.h e3c4822ac998ab5c7946919c85011f6172dc35ee - nvdisplay/src/nvidia/generated/g_mem_nvoc.c f4a5684d5a877b90c7ae7b66436117c6feb65f91 - nvdisplay/src/nvidia/generated/g_gpu_mgr_nvoc.h 0269da77a8db8efde1debc8236f2b3de2cd2597e - nvdisplay/src/nvidia/generated/g_eng_desc_nvoc.h edead99d125425ddf8f2fa4e4261b8cc3bf566fc - nvdisplay/src/nvidia/generated/g_standard_mem_nvoc.c 07a37ff685e68a703455e0ed7db7940697487ed2 - nvdisplay/src/nvidia/generated/g_system_nvoc.c ca042cfcdfe8cc8a141f8bb5c9e6c05d8a71b707 - nvdisplay/src/nvidia/generated/g_hda_codec_api_nvoc.h ddc0ac4e1d8b8aef15e147f1f85f8df37c196763 - nvdisplay/src/nvidia/generated/g_hal_register.h fb78615cde6323784f51d33f2acd61fd4030fee0 - nvdisplay/src/nvidia/generated/g_device_nvoc.c cb03502bf603c88b709ec803b60efd1d6f8e5ee1 - nvdisplay/src/nvidia/generated/g_rpc-structures.h 07fd5f5534a6d751107f582ba187c7a53a139954 - nvdisplay/src/nvidia/generated/g_rs_resource_nvoc.h abda8536d885be1422810c184b936bbc880972eb - nvdisplay/src/nvidia/generated/g_os_desc_mem_nvoc.c 14450b18d002d4e1786d4630ef4f1994c07ef188 - nvdisplay/src/nvidia/generated/g_odb.h 93f9738c0e8aa715592306ddf023adf6b548dcc4 - nvdisplay/src/nvidia/generated/g_nvh_state.h bd048add5f0781d90b55a5293881a2f59ace3070 - nvdisplay/src/nvidia/generated/g_binary_api_nvoc.h b82e5db65ad41764f456d6f924c89d76c165e48d - nvdisplay/src/nvidia/generated/g_system_nvoc.h 871fd0260ab9c164b8f6a7d1aba4563af622f1ac - nvdisplay/src/nvidia/generated/g_disp_channel_nvoc.h 23d16b4534103f24fac5bb86eb8bab40e5bcba57 - nvdisplay/src/nvidia/generated/g_hda_codec_api_nvoc.c 2239839c8a780a87e786439a49ab63e25d25001a - nvdisplay/src/nvidia/generated/g_rmconfig_util.h ac842d9de5eae74ef02b0a75259fb016b80c6eac - nvdisplay/src/nvidia/generated/g_disp_objs_nvoc.c f9bdef39159a8475626a0edcbc3a53505a0ff80a - nvdisplay/src/nvidia/generated/g_os_hal.h 53b2c39666e1da206d44d69d54009f20440503bc - nvdisplay/src/nvidia/generated/g_eng_state_nvoc.h fbcbeb92e46ba11ac26c04c9688b3ffcf10f5c53 - nvdisplay/src/nvidia/generated/g_prereq_tracker_nvoc.h b07c2c5e8df4de2bb9d242fd1606f1a57b8a742d - nvdisplay/src/nvidia/generated/g_io_vaspace_nvoc.c 6124890a54e529dff8b9d6ecf8f4bebe1e10a8a2 - nvdisplay/src/nvidia/generated/g_os_nvoc.h fa5e1c6001e60f77415d0a8f87c8b548b12e1217 - nvdisplay/src/nvidia/generated/g_mem_mgr_nvoc.c ab79a1418b65b9d65081456583169f516dd510c9 - nvdisplay/src/nvidia/generated/g_event_buffer_nvoc.c bfabd5155af3172e1c0a5a0b66721ff830c7b68f - nvdisplay/src/nvidia/generated/g_hypervisor_nvoc.h 3f581df19314b273244c4c42ea915ec8ef0d8ce2 - nvdisplay/src/nvidia/generated/g_rs_client_nvoc.h 376572489e0d4211663da22d5b0de7c7e740fb29 - nvdisplay/src/nvidia/generated/g_hal_mgr_nvoc.h a6174ad345cfdf926cbb4c86c7e8eeadfccb0ddf - nvdisplay/src/nvidia/generated/g_gpu_class_list.c c46cae4a17181c48bafc01237b83537df61c41ae - nvdisplay/src/nvidia/generated/g_hal_nvoc.c 958d9a2cddc91edfafb5c2f3d9622443ac49a6ef - nvdisplay/src/nvidia/generated/g_objtmr_nvoc.c 12776c69191b583ffcf0914697cf41802f52ef01 - nvdisplay/src/nvidia/generated/g_hal_archimpl.h 41784541b2e9ee778b52e686288fe492c0276fec - nvdisplay/src/nvidia/generated/g_hal_mgr_nvoc.c dec0f585ca46dc8e1aae49c8ea58db5a415de65c - nvdisplay/src/nvidia/generated/g_rpc-message-header.h b5ddae1e6960b13101aa38b2edc0610aed438ede - nvdisplay/src/nvidia/generated/g_gpu_nvoc.c de97c5afdc34cb9aff23c3ba166e21f660cf1f47 - nvdisplay/src/nvidia/generated/g_hal.h 182602832a033b3e2d5f88d4ba8febe63eeb2f9e - nvdisplay/src/nvidia/generated/g_client_resource_nvoc.c 47b7744ddd01b821bf2fd25fdb25c8d6d55ee01d - nvdisplay/src/nvidia/generated/g_prereq_tracker_nvoc.c d792fbb20b6ca5f2d62addf6a94b0c5027ae15fe - nvdisplay/src/nvidia/generated/g_subdevice_nvoc.h 40c937ca657bda9c0b67bd24c5047d39e596c16c - nvdisplay/src/nvidia/generated/g_disp_channel_nvoc.c f6f40d568bcf2ae89547ad054f9b5357bac366ab - nvdisplay/src/nvidia/generated/g_event_nvoc.h 0dae533422e24d91a29c82d7be619160bbb6f6be - nvdisplay/src/nvidia/generated/g_context_dma_nvoc.h 09597f23d6a5440258656be81e7e6709390128f8 - nvdisplay/src/nvidia/generated/g_hal_private.h 46c1a2066ead316ea69c60dc323bdb649bc11c0f - nvdisplay/src/nvidia/generated/g_binary_api_nvoc.c 8915f69e67e1f3a809a5479e36280df06ce8dd90 - nvdisplay/src/nvidia/generated/g_system_mem_nvoc.c 7c1b36cca9e8bf1fe18284685a6a80620df348cb - nvdisplay/src/nvidia/generated/g_client_nvoc.h 0f3140b5eae77a6055f32a91cb13b026bbb23905 - nvdisplay/src/nvidia/generated/g_kern_disp_nvoc.h 81a6a28692f50efeebecad125de0585dd711ff36 - nvdisplay/src/nvidia/generated/g_device_nvoc.h 1d66bab50a7d39faa2b0fec469a4512d2c7610d5 - nvdisplay/src/nvidia/generated/g_rmconfig_util.c c4fde03d5939b0eef108fde9c2f10661568f22a9 - nvdisplay/src/nvidia/generated/g_mem_nvoc.h cba2c17804f6f2062dc5d75583e4a03e03016d1d - nvdisplay/src/nvidia/generated/g_disp_capabilities_nvoc.h b378d336af4d5cb4b1fb13b85042fad1fe02f4cc - nvdisplay/src/nvidia/generated/g_journal_nvoc.h 7bb406aa863430507bdf07b5f3e519c0d756220a - nvdisplay/src/nvidia/generated/g_rs_resource_nvoc.c 4fe5357eabd0c5e351fb965ceead308240f68eb1 - nvdisplay/src/nvidia/generated/g_objtmr_nvoc.h e449382e19e4dcfcf0aec0babe5a1c8ce2f4249b - nvdisplay/src/nvidia/generated/g_kern_disp_nvoc.c f8e842add67dc070cc011ea103fc56cfd81c8b9a - nvdisplay/src/nvidia/generated/g_chips2halspec_nvoc.c c3b4c6a1b90a1547e229bb2973eb19c01e1d0055 - nvdisplay/src/nvidia/generated/g_dce_client_nvoc.h cc635daf3d7a9a176580951841b82e9eb0d6f5ad - nvdisplay/src/nvidia/generated/g_kernel_head_nvoc.c cb02e66e5fc06aa340ab460c977961701e9ba295 - nvdisplay/src/nvidia/generated/g_subdevice_nvoc.c 079ac6d2a90bd2fc9413e092a729202dbc5f724a - nvdisplay/src/nvidia/generated/g_system_mem_nvoc.h 1bdccdbabf5ae52fd65b829c35079bb7a8734939 - nvdisplay/src/nvidia/generated/g_tmr_nvoc.c 42d784e8b478bbf48293a805aa227f0abdf1923b - nvdisplay/src/nvidia/generated/g_event_nvoc.c cc71518b4151dc2ee0592bbd2866d437043d0e1a - nvdisplay/src/nvidia/generated/g_kernel_head_nvoc.h ad50b3dbe1685eefe51c4fc296f3eade70789dfb - nvdisplay/src/nvidia/generated/g_gpu_resource_nvoc.h df070e15630a11b2f4b64d52228fa5a6e7ab2aa9 - nvdisplay/src/nvidia/generated/g_gpu_halspec_nvoc.h e0b8f64c042dcbb6340552cb3517dabdeb490f1b - nvdisplay/src/nvidia/generated/g_hal_nvoc.h 65d1ace1e68c9b39cce6db61aa8b86ee47a0ae4b - nvdisplay/src/nvidia/generated/g_gpu_halspec_nvoc.c d04adc777f547ae6d1369cf4c94963e5abf90b86 - nvdisplay/src/nvidia/generated/g_context_dma_nvoc.c 63e9d0416d5ca1fdf547b5fba9ec76e54690c9dc - nvdisplay/src/nvidia/generated/g_ref_count_nvoc.h e839f8a5ebef5f28818bb5824bd7c52320db9a74 - nvdisplay/src/nvidia/generated/g_disp_sf_user_nvoc.h 757b3ecf94d0c8914a32c4bd302f8ccfa4027856 - nvdisplay/src/nvidia/generated/g_syncpoint_mem_nvoc.c fa785f8138598af783aefecf10b141d524e6bb42 - nvdisplay/src/nvidia/generated/g_virt_mem_mgr_nvoc.c f9bdef39159a8475626a0edcbc3a53505a0ff80a - nvdisplay/src/nvidia/generated/g_os_private.h 0b15dd4515c5e436a659883a48e62bf3c68bf439 - nvdisplay/src/nvidia/generated/g_gpu_nvoc.h 7b0201852361118f277ee7cc6dd16212c0192f71 - nvdisplay/src/nvidia/generated/g_gpu_group_nvoc.h d614f90730e2ee78bc3aae47b4e7976500e166e7 - nvdisplay/src/nvidia/generated/g_io_vaspace_nvoc.h 3d3385445934719abda1fefd4eb0762937be0e61 - nvdisplay/src/nvidia/generated/g_client_nvoc.c 003e3012e87b8f8f655749db88141d74660e8d8e - nvdisplay/src/nvidia/src/kernel/gpu_mgr/gpu_mgr.c a5a31b9b62e6d19b934411995c315d4fdac71ca0 - nvdisplay/src/nvidia/src/kernel/gpu_mgr/gpu_db.c 37d1e3dd86e6409b8e461f90386e013194c9e4d1 - nvdisplay/src/nvidia/src/kernel/gpu_mgr/gpu_mgmt_api.c ed24c0406c85dc27f0fca1bac8b0dcb7a60dca2d - nvdisplay/src/nvidia/src/kernel/gpu_mgr/gpu_group.c 4e1be780ac696a61f056933e5550040a2d42c6bd - nvdisplay/src/nvidia/src/kernel/gpu/gpu_device_mapping.c 9515ea68cdac85989e4d53d4c1251115291708dd - nvdisplay/src/nvidia/src/kernel/gpu/gpu.c 08be13ced6566aced2f3446bb657dae8efb41fbe - nvdisplay/src/nvidia/src/kernel/gpu/gpu_rmapi.c 671286de97aa63201a363fd7a22c92ee8afe4c7c - nvdisplay/src/nvidia/src/kernel/gpu/eng_state.c 6fa4ba2da905692cd39ec09054f2bd6621aa2a7a - nvdisplay/src/nvidia/src/kernel/gpu/gpu_resource_desc.c 5a97d4f8ce101908f1a67ffe9cc8ed00b6bf43b2 - nvdisplay/src/nvidia/src/kernel/gpu/gpu_resource.c 77573c8518ac7622211c4bdd16524d369cc14b96 - nvdisplay/src/nvidia/src/kernel/gpu/device_ctrl.c f6b4e40b638faf9770b632b404170e1ceb949be5 - nvdisplay/src/nvidia/src/kernel/gpu/gpu_gspclient.c 1653c7b99cfc86db6692d9d8d6de19f1b24b9071 - nvdisplay/src/nvidia/src/kernel/gpu/gpu_uuid.c caf2b80fa0f01b9a3efcd8326bf6375455f2e1b9 - nvdisplay/src/nvidia/src/kernel/gpu/gpu_access.c 0824d200569def5bf480f2a5127911ed0ea881e6 - nvdisplay/src/nvidia/src/kernel/gpu/device_share.c 89543f7085fbc2ca01b5a8baae33b5de921c79e9 - nvdisplay/src/nvidia/src/kernel/gpu/gpu_t234d_kernel.c db44a803d81d42bfaf84f7ea1e09dc53c662acef - nvdisplay/src/nvidia/src/kernel/gpu/gpu_timeout.c fa854efc5cdf4d167dee13302ee8377191624d95 - nvdisplay/src/nvidia/src/kernel/gpu/device.c acb2a62fb60e08eb6d16518c43c974783139813b - nvdisplay/src/nvidia/src/kernel/gpu/timer/timer.c 834efbfff64c0d01272e49a08bd6196e341985a8 - nvdisplay/src/nvidia/src/kernel/gpu/timer/timer_ostimer.c ef2a3848e0302c09869a34eba1333d19a17acc56 - nvdisplay/src/nvidia/src/kernel/gpu/dce_client/dce_client_rpc.c 2c66e086bb149fb1b9ca8f860566a3f5e391b2f3 - nvdisplay/src/nvidia/src/kernel/gpu/dce_client/dce_client.c 1f4d15f959df38f4f6ea48c7b10fc859c6e04b12 - nvdisplay/src/nvidia/src/kernel/gpu/audio/hda_codec_api.c 5be208cc0e1eae1f85f00bb0b502fdba74d6656c - nvdisplay/src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_timer_kernel.c 086e9a51757c3989dfe0bf89ca6c0b9c7734104a - nvdisplay/src/nvidia/src/kernel/gpu/subdevice/generic_engine.c a64c51c515eb76208a822f1f623d11e2edd8d7ac - nvdisplay/src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_gpu_kernel.c a54628e9d2733c6d0470e1e73bca1573e6486ab3 - nvdisplay/src/nvidia/src/kernel/gpu/subdevice/subdevice_ctrl_event_kernel.c 56be7a21457145c3c6b2df7beb4c828b7bd1a3b4 - nvdisplay/src/nvidia/src/kernel/gpu/subdevice/subdevice.c 0918cada217ca1883527fe805fc30babf7b8038d - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_channel.c 3abbef0a6fc95d6f7c7c5a16cbbbb51aaa457cc0 - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_sf_user.c 19447ad30b3fc2ee308bcc45e3409bafa5defe0d - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_object_kern_ctrl_minimal.c 8cd12c2da71acede5046c772f14aff7cbd88af12 - nvdisplay/src/nvidia/src/kernel/gpu/disp/kern_disp.c e1a6dfb38025abeb5adfda929f61eb6ee44b5c84 - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_common_kern_ctrl_minimal.c dd0bd914c6c7bfeabdd9fe87fb984702e0765624 - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_objs.c ed25b1e99b860468bbf22c10177e0ba99c73894f - nvdisplay/src/nvidia/src/kernel/gpu/disp/disp_capabilities.c 01e8b56f7677f5cb7f950d9aa9bd37d04153085b - nvdisplay/src/nvidia/src/kernel/gpu/disp/inst_mem/disp_inst_mem.c 629566bf98be863b12e6dc6aab53d8f5ea13988c - nvdisplay/src/nvidia/src/kernel/gpu/disp/inst_mem/arch/v03/disp_inst_mem_0300.c e26ade846573c08f7494f17a233b8a9e14685329 - nvdisplay/src/nvidia/src/kernel/gpu/disp/head/kernel_head.c 8a418dce9fbeb99d5d6e175ed8c88811866f3450 - nvdisplay/src/nvidia/src/kernel/gpu/disp/arch/v04/kern_disp_0402.c b41502d73d7781496845377cebd0d445b8ca9dc6 - nvdisplay/src/nvidia/src/kernel/gpu/disp/arch/v03/kern_disp_0300.c 0e4c2d88b61a0cf63045fe70e5ba2c81c44e37af - nvdisplay/src/nvidia/src/kernel/gpu/arch/t23x/kern_gpu_t234d.c d4a07d1c6beb7ddb229ed6e5374343b6ce916d84 - nvdisplay/src/nvidia/src/kernel/gpu/mem_mgr/mem_desc.c bc2b57acc8fa8644615168e3ddbaf7ac161a7a04 - nvdisplay/src/nvidia/src/kernel/gpu/mem_mgr/context_dma.c d6e1bd038fa0eff5d3684a5a2c766fdac77f1198 - nvdisplay/src/nvidia/src/kernel/gpu/mem_mgr/mem_utils.c 2bb921b462c4b50d1f42b39b4728374c7433c8cb - nvdisplay/src/nvidia/src/kernel/gpu/mem_mgr/arch/turing/mem_mgr_tu102_base.c af4ffa4b423e07cf40eb863c11dbf515c7104874 - nvdisplay/src/nvidia/src/kernel/os/os_timer.c 63e5e17280d865ace8cdd8eb8a2598d3d7830ad7 - nvdisplay/src/nvidia/src/kernel/os/os_sanity.c 1793e056a0afcc5e1f5bb58b207b49c5f1556eca - nvdisplay/src/nvidia/src/kernel/os/os_stubs.c 8e5af753de1725dd919185c29d03ccb0934fab6e - nvdisplay/src/nvidia/src/kernel/os/os_init.c c0822891f614e6ec847acb971e68aad8847e0cd7 - nvdisplay/src/nvidia/src/kernel/core/locks_common.c fe91b43c37b64472450cc25329d2dea74d2a9fcf - nvdisplay/src/nvidia/src/kernel/core/locks_minimal.c 7b9c95f912b203c68b6ba1f62470dffee4b4efe3 - nvdisplay/src/nvidia/src/kernel/core/thread_state.c c68f2c96bfc6fce483a332a5824656d72986a145 - nvdisplay/src/nvidia/src/kernel/core/system.c 37000b419d23a8b052fc1218f09815fafb1d89c9 - nvdisplay/src/nvidia/src/kernel/core/hal_mgr.c 8eac3ea49f9a53063f7106211e5236372d87bdaf - nvdisplay/src/nvidia/src/kernel/core/hal/info_block.c 677c655b0b8e86bdab13cdd4044de38647b00eec - nvdisplay/src/nvidia/src/kernel/core/hal/hal.c b9eabee9140c62385d070628948af0dcda3b0b1a - nvdisplay/src/nvidia/src/kernel/core/hal/hals_all.c b3a29311cc22e2dae686f8ed2df6bc828aa826cf - nvdisplay/src/nvidia/src/kernel/diagnostics/profiler.c 70507a8d43797eb3cdc13408ae8635f4a2eebce0 - nvdisplay/src/nvidia/src/kernel/diagnostics/nvlog_printf.c ea7be8a55a3310aa1c3926ed69c86a6491925e08 - nvdisplay/src/nvidia/src/kernel/diagnostics/nvlog.c 8e40d2f35828468f34cf6863f9bf99c20dbfc827 - nvdisplay/src/nvidia/src/kernel/rmapi/rmapi_cache.c 6f46dd43e4b3f2ad803a4c9492cb927aebffc1f0 - nvdisplay/src/nvidia/src/kernel/rmapi/client_resource.c 2279fd14aab9b5f20b8fc21f04dd0fca41e418c9 - nvdisplay/src/nvidia/src/kernel/rmapi/event_notification.c 38d0205b68ea2c82709b42eb7e8b9cf92cec8828 - nvdisplay/src/nvidia/src/kernel/rmapi/rmapi_stubs.c 820b6e63c2b11b0764305c483142f626b6f72038 - nvdisplay/src/nvidia/src/kernel/rmapi/rpc_common.c 78f1e379c3d1df9e34baba77f78f48b8585bdc74 - nvdisplay/src/nvidia/src/kernel/rmapi/event_buffer.c 68cc7b258f934097e9dc31a38e7e3bf2ce2fe5d1 - nvdisplay/src/nvidia/src/kernel/rmapi/event.c 277441b3da96fc01199f1d2f5102490e2e6cd830 - nvdisplay/src/nvidia/src/kernel/rmapi/control.c ac6a5b3adf15eac4a7bd9ae24981f6f5fc727097 - nvdisplay/src/nvidia/src/kernel/rmapi/deprecated_context.h f89e982b0e31a1898e1e4749c9a8ae9f0bb59a0c - nvdisplay/src/nvidia/src/kernel/rmapi/deprecated_context.c f2c7d77e4183994d7ee414e2a87745fcd23d995e - nvdisplay/src/nvidia/src/kernel/rmapi/mapping_cpu.c 569f56831cde7bdc528ac2e543eea485025ec6f0 - nvdisplay/src/nvidia/src/kernel/rmapi/client.c 2f89b9059467e7f67a6a52c46aecae5cb0364ab6 - nvdisplay/src/nvidia/src/kernel/rmapi/binary_api.c 46aa43b18480d2eb7519b2dcd0fe6a68c79b8881 - nvdisplay/src/nvidia/src/kernel/rmapi/resource.c c3820fa4bb1192a9317ca834aeee3434c7eb8059 - nvdisplay/src/nvidia/src/kernel/rmapi/rmapi.c ddaf2b8e424df9147a4e2fecf3942b64b1d2b001 - nvdisplay/src/nvidia/src/kernel/rmapi/entry_points.c 5f194ba056b018a8194c16b0bbb6e49c1b80a996 - nvdisplay/src/nvidia/src/kernel/rmapi/param_copy.c 11a547cbfdbce000a6e5edf48492f5b930ddbdca - nvdisplay/src/nvidia/src/kernel/rmapi/rs_utils.c e40f6742084cd04252f3ec8b8499a26547b478bc - nvdisplay/src/nvidia/src/kernel/rmapi/mapping.c d92267a3394ded5d7d218530fd16ce00a920b1d6 - nvdisplay/src/nvidia/src/kernel/rmapi/alloc_free.c bc83726df04c30d02a1852a10a22c77fdb3ef7a7 - nvdisplay/src/nvidia/src/kernel/rmapi/resource_desc.h 59d42b6a123b062237b3b6ca382211e35057ef1e - nvdisplay/src/nvidia/src/kernel/rmapi/resource_list.h 05669e008dfd89e5c81381e6c60230c1fe17a876 - nvdisplay/src/nvidia/src/kernel/rmapi/resource_desc.c 3a0f999e390d93b0db8272f55fbec56f6b055fe4 - nvdisplay/src/nvidia/src/kernel/rmapi/rmapi_utils.c 81f66675295315cfc52be225c2e9ee912b56fbac - nvdisplay/src/nvidia/src/kernel/rmapi/sharing.c b441ee824e9c15c82956254704949317024ceb41 - nvdisplay/src/nvidia/src/kernel/rmapi/entry_points.h 94acdcebee0cdcbf359b15803ec841e5284e1ff2 - nvdisplay/src/nvidia/src/kernel/mem_mgr/vaspace.c 5b9048e62581a3fbb0227d1a46c4ee8d8397bf5b - nvdisplay/src/nvidia/src/kernel/mem_mgr/mem_mgr_internal.h 623dad3ec0172ed7b3818caece0db5687d587ff3 - nvdisplay/src/nvidia/src/kernel/mem_mgr/os_desc_mem.c 6aa752ae480e883d077de842f02444151947f82f - nvdisplay/src/nvidia/src/kernel/mem_mgr/virt_mem_mgr.c 64bd2007101cbf718beb707898e85f40071ae405 - nvdisplay/src/nvidia/src/kernel/mem_mgr/syncpoint_mem.c 9d9fcd87d784a758659b6cc8a522eaf9beac4b6c - nvdisplay/src/nvidia/src/kernel/mem_mgr/standard_mem.c 079893039c2802e1b0e6fcab5d0ee0e4dc608c84 - nvdisplay/src/nvidia/src/kernel/mem_mgr/io_vaspace.c 15f3290908931a9e4d74b0c0ec9e460956e39089 - nvdisplay/src/nvidia/src/kernel/mem_mgr/system_mem.c 956b7871a267b7d381d1cd7d4689ef1aec1da415 - nvdisplay/src/nvidia/src/kernel/mem_mgr/mem.c 78cbb6428372c25eba0ccf8c08e7d36d18e4bae8 - nvdisplay/src/nvidia/src/lib/base_utils.c 6d5915924b4e26a5e7592427e34b77596162d0fe - nvdisplay/src/nvidia/src/lib/zlib/inflate.c 595a6238b9f04887dd418be43ff31f3e7ca6b121 - nvdisplay/src/nvidia/src/libraries/containers/map.c 057ad074f6252f7809a88f918986d7d5aacff568 - nvdisplay/src/nvidia/src/libraries/containers/queue.c 4418c0344b64740050ff8ef6ee085f0687a323d4 - nvdisplay/src/nvidia/src/libraries/containers/list.c 2389c9dd3b13fd2ff26d2d1342c515579079bc71 - nvdisplay/src/nvidia/src/libraries/containers/multimap.c f0ce913eb568f85e6e1c1b8965f2cd2b98e81928 - nvdisplay/src/nvidia/src/libraries/containers/eheap/eheap_old.c 2975e5cecee2c1fd5f69a8ffc20a49016e83025c - nvdisplay/src/nvidia/src/libraries/containers/btree/btree.c 8ed5171254e51e59fc5586e729793831165b8c0c - nvdisplay/src/nvidia/src/libraries/tls/tls.c 206dda159ecbc0340ac9329250302c76a504e5a8 - nvdisplay/src/nvidia/src/libraries/prereq_tracker/prereq_tracker.c 9c40bfebe2c57b972683e45dc15f358aaa2280f8 - nvdisplay/src/nvidia/src/libraries/eventbuffer/eventbufferproducer.c 836ba8b401fb6b6fcf4ccde1b644ebaefc3d8ee1 - nvdisplay/src/nvidia/src/libraries/ioaccess/ioaccess.c 66e79047600e0a40c50e709c6c82402d9b205ad0 - nvdisplay/src/nvidia/src/libraries/nvport/crypto/crypto_random_xorshift.c f0c486c1ad0f7d9516b13a02d52b4d857d8865b1 - nvdisplay/src/nvidia/src/libraries/nvport/util/util_compiler_switch.c a045a19d750d48387640ab659bb30f724c34b8c8 - nvdisplay/src/nvidia/src/libraries/nvport/util/util_unix_kernel_os.c 87ac95cf569bb550adb3577c6a6658d094c59999 - nvdisplay/src/nvidia/src/libraries/nvport/util/util_gcc_clang.c 2fa76d2d5ba7212f826b656aa683223a470e484c - nvdisplay/src/nvidia/src/libraries/nvport/core/core.c 9b69fbf3efea6ba58f9ba7cb0189c9264c994657 - nvdisplay/src/nvidia/src/libraries/nvport/sync/sync_common.h b55b7b59f35d848d5a3b43d63da4d2f7b0af5d3e - nvdisplay/src/nvidia/src/libraries/nvport/sync/sync_unix_kernel_os.c 6f6c83e9ee6d91fc8700e5015440f2bc72e6600b - nvdisplay/src/nvidia/src/libraries/nvport/sync/sync_rwlock.c 6dd0c5f2384610ea075642d8e403ddd8c8db371a - nvdisplay/src/nvidia/src/libraries/nvport/sync/inc/sync_unix_kernel_os_def.h 7416712aa964befcf8fede86e5a604871a2d00b8 - nvdisplay/src/nvidia/src/libraries/nvport/sync/inc/sync_rwlock_def.h da86b765702196eb0011ac9d14873fbc1589d48b - nvdisplay/src/nvidia/src/libraries/nvport/thread/thread_unix_kernel_os.c a305654bafc883ad28a134a04e83bbd409e0fc06 - nvdisplay/src/nvidia/src/libraries/nvport/cpu/cpu_common.h 7cdc50ee31b9cde14c0ce6fcd390c5d4564e433d - nvdisplay/src/nvidia/src/libraries/nvport/cpu/cpu_common.c 8f41e7127a65102f0035c03536c701b7ecdaa909 - nvdisplay/src/nvidia/src/libraries/nvport/string/string_generic.c caff00b37e7f58fde886abcc2737c08526fa089e - nvdisplay/src/nvidia/src/libraries/nvport/memory/memory_generic.h b6d6074ca77856fc5fe4ff1534c08c023ee592a4 - nvdisplay/src/nvidia/src/libraries/nvport/memory/memory_unix_kernel_os.c b528ef8e238dd2c22c6549057b54fe33039c6473 - nvdisplay/src/nvidia/src/libraries/nvport/memory/memory_tracking.c d0ae6d7a363db3fdf54ae1a760630b52a2019637 - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_resource.c 1f2e9d09e658474b36d0b0ecd9380d0d2bcc86b2 - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_domain.c 0c9581aa68a77cb9977a7fbcfd2077ccb618206e - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_access_rights.c 883ad1cf4ed1714eb74d44d3b9a41d6a4723b650 - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_server.c d48d51a880fced52ad6e323d984e872ccf9ef3bd - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_client.c dac54d97b38ad722198ec918668f175dc5122e4e - nvdisplay/src/nvidia/src/libraries/resserv/src/rs_access_map.c cade0f7049cdb2ab423a073887ed20ba1abdb17e - nvdisplay/src/nvidia/src/libraries/utils/nvassert.c d3e5f13be70c8e458401ec9bdad007dfadedcc11 - nvdisplay/src/nvidia/src/libraries/nvbitvector/nvbitvector.c 8a4e2aec6fc01ce1133cfc7ef80b6363c5394208 - nvdisplay/src/nvidia/src/libraries/nvoc/src/runtime.c d1089d8ee0ffcdbf73a42d7c4edb90769aa79d8c - nvdisplay/src/nvidia/arch/nvalloc/common/inc/nvrangetypes.h 499e72dad20bcc283ee307471f8539b315211da4 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-unix-nvos-params-wrappers.h 1e89b4a52a5cdc6cac511ff148c7448d53cf5d5c - nvdisplay/src/nvidia/arch/nvalloc/unix/include/os_custom.h 2f5fec803685c61c13f7955baaed056b5524652c - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-ioctl.h fbcbb81ae14e8bfde0d665ad20f9cab9b0bbd9c3 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv.h 1b53bbf5f8452b8057ff2dd7828947a047db38d0 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv_escape.h 3a26838c4edd3525daa68ac6fc7b06842dc6fc07 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-gpu-info.h 285ab886f5fad5caf3f6bd0b0c7102bd4c4300bd - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-reg.h e3679844971ecc4447259fb1bdf4fafbbdff2395 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/osapi.h 4750735d6f3b334499c81d499a06a654a052713d - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-caps.h aba0bd796d932fa19e8fad55ed683ae57d68bffb - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-priv.h 1d8b347e4b92c340a0e9eac77e0f63b9fb4ae977 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-ioctl-numbers.h 9c7b09c55aabbd670c860bdaf8ec9e8ff254b5e9 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/nv-kernel-rmapi-ops.h cc3b2163238b2a8acb7e3ca213fb1ae6c5f0a409 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/osfuncs.h 40cb3c112bbcb6ae83a9186d0c9fa1857cf6a126 - nvdisplay/src/nvidia/arch/nvalloc/unix/include/os-interface.h ddfedb3b81feb09ea9daadf1a7f63f6309ee6e3b - nvdisplay/src/nvidia/arch/nvalloc/unix/include/rmobjexportimport.h 006e77a594ae98067059ad3d7e93821316859063 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/os-hypervisor-stubs.c 9d9035afd7af31f30cdbf2d4c75e5e09180f0981 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/osunix.c 49dc935d4475b572478c63324f0832c972a4277d - nvdisplay/src/nvidia/arch/nvalloc/unix/src/os.c 532366fd9a288a812eca78b92b304ba3625f8c0a - nvdisplay/src/nvidia/arch/nvalloc/unix/src/exports-stubs.c 54b912b640bdcae42f38c41694eb20abcaad61a7 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/osmemdesc.c 690927567b5344c8030e2c52d91f824bb94e956c - nvdisplay/src/nvidia/arch/nvalloc/unix/src/registry.c fb5272f3d0e465aedbc99ddcabb1c6c428837a6e - nvdisplay/src/nvidia/arch/nvalloc/unix/src/rmobjexportimport.c 5940d8e83cd0014e3222952eab29eebaaad19b86 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/osapi.c 6ebda7ea5b17b7b9bfa9387fc838db9f0c3405a5 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/osinit.c f134270af5ecd7c5ba91bf5228fe3166b101dd6e - nvdisplay/src/nvidia/arch/nvalloc/unix/src/escape.c b5b409625fde1b640e4e93276e35248f0fccfa4c - nvdisplay/src/nvidia/arch/nvalloc/unix/src/gcc_helper.c 21ac9d6932199ce0755dbead297eb03c9900f8c9 - nvdisplay/src/nvidia/arch/nvalloc/unix/src/power-management-tegra.c 8ef620afdf720259cead00d20fae73d31e59c2f7 - nvdisplay/src/nvidia/inc/kernel/virtualization/hypervisor/hypervisor.h 5b151d0d97b83c9fb76b76c476947f9e15e774ad - nvdisplay/src/nvidia/inc/kernel/gpu_mgr/gpu_mgr.h ea32018e3464bb1ac792e39227badf482fa2dc67 - nvdisplay/src/nvidia/inc/kernel/gpu_mgr/gpu_group.h 2c48d7335bdb0b7ea88b78216c0aeab2e11e00c1 - nvdisplay/src/nvidia/inc/kernel/gpu_mgr/gpu_mgmt_api.h e188d9f2d042ffe029b96d8fbb16c79a0fc0fb01 - nvdisplay/src/nvidia/inc/kernel/gpu_mgr/gpu_db.h 76b24227c65570898c19e16bf35b2cad143f3d05 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu.h cf3d1427394c425c543e253adf443192ca613762 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_access.h ce3302c1890e2f7990434f7335cb619b12dee854 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_resource_desc.h bf894a769c46d5d173e3875cd9667bb3fe82feb9 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_timeout.h c33ab6494c9423c327707fce2bcb771328984a3c - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_halspec.h 6b27c9edf93f29a31787d9acaaefb2cefc31e7d4 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_device_mapping.h f17b704f2489ffedcc057d4a6da77c42ece42923 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_resource.h 1938fd2511213c8003864d879cf1c41ae1169a5f - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_uuid.h 61c7d3ac2dc61ee81abd743a6536a439592ee162 - nvdisplay/src/nvidia/inc/kernel/gpu/gpu_child_list.h 0e8353854e837f0ef0fbf0d5ff5d7a25aa1eef7c - nvdisplay/src/nvidia/inc/kernel/gpu/eng_state.h 426c6ab6cecc3b1ba540b01309d1603301a86db1 - nvdisplay/src/nvidia/inc/kernel/gpu/eng_desc.h ce4e0f7177f46f4fc507a68b635e5395a3f7dde6 - nvdisplay/src/nvidia/inc/kernel/gpu/dce_client/dce_client.h 97d0a067e89251672f191788abe81cf26dcb335f - nvdisplay/src/nvidia/inc/kernel/gpu/device/device.h 1e3bebe46b7f2f542eedace554a4156b3afb51f1 - nvdisplay/src/nvidia/inc/kernel/gpu/audio/hda_codec_api.h 24d01769b39a6dd62574a95fad64443b05872151 - nvdisplay/src/nvidia/inc/kernel/gpu/subdevice/subdevice.h efc50bb2ff6ccf1b7715fd413ca680034920758e - nvdisplay/src/nvidia/inc/kernel/gpu/subdevice/generic_engine.h 61711ed293ee6974a6ed9a8a3732ae5fedcdc666 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/kern_disp_max.h 576216219d27aa887beeccefc22bcead4d1234d7 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/kern_disp.h 51a209575d3e3fe8feb7269ece7df0846e18ca2a - nvdisplay/src/nvidia/inc/kernel/gpu/disp/kern_disp_type.h 74bc902cd00b17da3a1dfa7fd3ebc058de439b76 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/disp_channel.h be7da8d1106ee14ff808d86abffb86794299b2df - nvdisplay/src/nvidia/inc/kernel/gpu/disp/disp_objs.h b39826404d84e0850aa3385691d8dde6e30d70d4 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/disp_sf_user.h 277a2719f8c063037c6a9ed55ade2b1cb17f48ae - nvdisplay/src/nvidia/inc/kernel/gpu/disp/disp_capabilities.h 5179f01acf7e9e251552dc17c0dcd84f7d341d82 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/inst_mem/disp_inst_mem.h f758ea5f9cbd23a678290ef0b8d98d470e3499e0 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/vblank_callback/vblank.h 9a33a37c6cea9bad513aa14c942c689f28f7c0d8 - nvdisplay/src/nvidia/inc/kernel/gpu/disp/head/kernel_head.h 889ba18a43cc2b5c5e970a90ddcb770ce873b785 - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/mem_desc.h a29f55d5fbc90dade83df3ef3263018633675284 - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/virt_mem_allocator_common.h 6756126ddd616d6393037bebf371fceacaf3a9f1 - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/context_dma.h b52e6a0499640e651aa4200b2c8a1653df04a420 - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/mem_utils.h 20416f7239833dcaa743bbf988702610e9251289 - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/mem_mgr.h 82abc2458910250c1a912e023f37e87c1c9bbb9e - nvdisplay/src/nvidia/inc/kernel/gpu/mem_mgr/heap_base.h ccca322d29ae171ee81c95d58e31f1c109429ae7 - nvdisplay/src/nvidia/inc/kernel/gpu/gsp/message_queue.h 408c0340350b813c3cba17fd36171075e156df72 - nvdisplay/src/nvidia/inc/kernel/os/os.h af25180a08db4d5d20afd09f948b15d8c4d2d738 - nvdisplay/src/nvidia/inc/kernel/os/os_fixed_mode_timings_props.h e5b881419bc00d925eba9f8493f6b36cf3ce7ca7 - nvdisplay/src/nvidia/inc/kernel/os/os_stub.h c8496199cd808ed4c79d8e149961e721ad96714e - nvdisplay/src/nvidia/inc/kernel/os/capability.h cda75171ca7d8bf920aab6d56ef9aadec16fd15d - nvdisplay/src/nvidia/inc/kernel/os/nv_memory_type.h 5e9928552086947b10092792db4a8c4c57a84adf - nvdisplay/src/nvidia/inc/kernel/platform/acpi_common.h 2f05394872ffa95d700b7822489fa59f74ad5819 - nvdisplay/src/nvidia/inc/kernel/platform/sli/sli.h b5859c7862fb3eeb266f7213845885789801194a - nvdisplay/src/nvidia/inc/kernel/core/system.h cbfff1f06eecc99fb5a1c82d43397043058f02fc - nvdisplay/src/nvidia/inc/kernel/core/printf.h 37f267155ddfc3db38f110dbb0397f0463d055ff - nvdisplay/src/nvidia/inc/kernel/core/strict.h bdc4ab675c6f6c4bd77c3aaf08aa5c865b186802 - nvdisplay/src/nvidia/inc/kernel/core/hal.h f929d43974893cd155ab2f5f77606f0040fe3e39 - nvdisplay/src/nvidia/inc/kernel/core/locks.h b00302aec7e4f4e3b89a2f699f8b1f18fc17b1ba - nvdisplay/src/nvidia/inc/kernel/core/hal_mgr.h bffae4da6a1f9b7dc7c879587fd674b49b46dac1 - nvdisplay/src/nvidia/inc/kernel/core/core.h 457c02092adfc1587d6e3cd866e28c567acbc43a - nvdisplay/src/nvidia/inc/kernel/core/info_block.h b319914c97f9978488e8fb049d39c72ed64fd4d2 - nvdisplay/src/nvidia/inc/kernel/core/thread_state.h ed496ab6e8b64d3398f929146e908c5a453a03d9 - nvdisplay/src/nvidia/inc/kernel/core/prelude.h 3a28bf1692efb34d2161907c3781401951cc2d4f - nvdisplay/src/nvidia/inc/kernel/diagnostics/journal_structs.h 7e75b5d99376fba058b31996d49449f8fe62d3f0 - nvdisplay/src/nvidia/inc/kernel/diagnostics/profiler.h 7615ac3a83d0ad23b2160ff8ad90bec9eb1f3c6c - nvdisplay/src/nvidia/inc/kernel/diagnostics/journal.h b259f23312abe56d34a8f0da36ef549ef60ba5b0 - nvdisplay/src/nvidia/inc/kernel/diagnostics/nv_debug_dump.h fd780f85cb1cd0fd3914fa31d1bd4933437b791d - nvdisplay/src/nvidia/inc/kernel/diagnostics/tracer.h c6efd51b8b8447829a0867cd7fb7a5a5a2fb1e3d - nvdisplay/src/nvidia/inc/kernel/diagnostics/traceable.h 2b23f2dbd8f3f63a17a1b63ebb40a2fd7fd8801a - nvdisplay/src/nvidia/inc/kernel/rmapi/alloc_size.h b4bae9ea958b4d014908459e08c93319784c47dd - nvdisplay/src/nvidia/inc/kernel/rmapi/event.h 99a27d87c7f1487f8df5781d284c2e9a83525892 - nvdisplay/src/nvidia/inc/kernel/rmapi/binary_api.h 2baec15f4c68a9c59dd107a0db288e39914e6737 - nvdisplay/src/nvidia/inc/kernel/rmapi/client.h f3028fbcafe73212a94d295951122b532ff5445b - nvdisplay/src/nvidia/inc/kernel/rmapi/rs_utils.h f19dad1746e639d866c700c2f871fcc0144f2e5e - nvdisplay/src/nvidia/inc/kernel/rmapi/control.h 4453fe6463e3155063f2bdbf36f44697606a80a5 - nvdisplay/src/nvidia/inc/kernel/rmapi/client_resource.h 497492340cea19a93b62da69ca2000b811c8f5d6 - nvdisplay/src/nvidia/inc/kernel/rmapi/event_buffer.h ac9288d75555180c1d5dd6dd7e0e11fb57a967f2 - nvdisplay/src/nvidia/inc/kernel/rmapi/exports.h c9cb08c7c73c0bdd75a320640d16bf4b4defe873 - nvdisplay/src/nvidia/inc/kernel/rmapi/mapping_list.h 255c28b9bd27098382bace05af3ad7f195d12895 - nvdisplay/src/nvidia/inc/kernel/rmapi/rmapi_utils.h f1713ecc0b3e58e46c346409dbf4630aa6f7f3ed - nvdisplay/src/nvidia/inc/kernel/rmapi/param_copy.h 5f60ac544252b894ac7ecc0c6dc4446e6275eae5 - nvdisplay/src/nvidia/inc/kernel/rmapi/rmapi.h 61e3704cd51161c9804cb168d5ce4553b7311973 - nvdisplay/src/nvidia/inc/kernel/rmapi/resource.h a92dbf2870fe0df245ea8967f2f6a68f5075ecaf - nvdisplay/src/nvidia/inc/kernel/rmapi/resource_fwd_decls.h a5f49a031db4171228a27482d091283e84632ace - nvdisplay/src/nvidia/inc/kernel/mem_mgr/system_mem.h 0ce5d6370c086d2944b2e8d31ff72a510d98dc8f - nvdisplay/src/nvidia/inc/kernel/mem_mgr/virt_mem_mgr.h d15991bc770c5ab41fe746995294c5213efa056b - nvdisplay/src/nvidia/inc/kernel/mem_mgr/io_vaspace.h 02d6a37ef1bb057604cb98a905fa02429f200c96 - nvdisplay/src/nvidia/inc/kernel/mem_mgr/mem.h 5ae08b2077506cbc41e40e1b3672e615ce9d910f - nvdisplay/src/nvidia/inc/kernel/mem_mgr/vaspace.h 4c386104eaead66c66df11258c3f1182b46e96ee - nvdisplay/src/nvidia/inc/kernel/mem_mgr/syncpoint_mem.h 2d4afabd63699feec3aea5e89601db009fc51a08 - nvdisplay/src/nvidia/inc/kernel/mem_mgr/standard_mem.h 1a08e83fd6f0a072d6887c60c529e29211bcd007 - nvdisplay/src/nvidia/inc/kernel/mem_mgr/os_desc_mem.h 5fd1da24ae8263c43dc5dada4702564b6f0ca3d9 - nvdisplay/src/nvidia/inc/os/dce_rm_client_ipc.h 04dba2b7a6a360f3e855a7d6a7484ddcdfb90c19 - nvdisplay/src/nvidia/inc/lib/base_utils.h fff3ebc8527b34f8c463daad4d20ee5e33321344 - nvdisplay/src/nvidia/inc/lib/ref_count.h f8d9eb5f6a6883de962b63b4b7de35c01b20182f - nvdisplay/src/nvidia/inc/lib/protobuf/prb.h 601edb7333b87349d791d430f1cac84fb6fbb919 - nvdisplay/src/nvidia/inc/lib/zlib/inflate.h 9255fff39d7422ca4a56ba5ab60866779201d3e8 - nvdisplay/src/nvidia/inc/libraries/poolalloc.h 8dd7f2d9956278ed036bbc288bff4dde86a9b509 - nvdisplay/src/nvidia/inc/libraries/eventbufferproducer.h 3924b67e6d63e9a15876331c695daaf679454b05 - nvdisplay/src/nvidia/inc/libraries/containers/list.h 4cd6b110470da3aee29e999e096ca582104fab21 - nvdisplay/src/nvidia/inc/libraries/containers/queue.h 969cbac56935a80fafd7cceff157b27e623f9429 - nvdisplay/src/nvidia/inc/libraries/containers/multimap.h 65a237b66732aafe39bc4a14d87debd2b094fb83 - nvdisplay/src/nvidia/inc/libraries/containers/map.h 1dacc1c1efc757c12e4c64eac171474a798b86fd - nvdisplay/src/nvidia/inc/libraries/containers/eheap_old.h a28ab42de95e4878fb46e19d7b965c23f92b3213 - nvdisplay/src/nvidia/inc/libraries/containers/btree.h c9e75f7b02241ededa5328a4f559e70dec60d159 - nvdisplay/src/nvidia/inc/libraries/containers/type_safety.h e08146f5de1596f5337c49cfbe180e30e880dedb - nvdisplay/src/nvidia/inc/libraries/nvlog/nvlog.h 7239704e6fe88b9d75984fb5e9f4b5706502d7f3 - nvdisplay/src/nvidia/inc/libraries/nvlog/nvlog_printf.h d2c035e67e295b8f33f0fc52d9c30e43c5d7c2ba - nvdisplay/src/nvidia/inc/libraries/nvlog/internal/nvlog_printf_internal.h bdb558ee8f782e6be06fc262820f6bd9ce75bd51 - nvdisplay/src/nvidia/inc/libraries/tls/tls.h 56b8bae7756ed36d0831f76f95033f74eaab01db - nvdisplay/src/nvidia/inc/libraries/prereq_tracker/prereq_tracker.h b795f5cb77ecd2cc407102900b63977cfb34bbfd - nvdisplay/src/nvidia/inc/libraries/ioaccess/ioaccess.h 2805fad632acad045044e0b8417de88032177300 - nvdisplay/src/nvidia/inc/libraries/nvport/string.h 3ac7ddf3d402f3fd20cffe9d4e93f457de319605 - nvdisplay/src/nvidia/inc/libraries/nvport/sync.h a1d93b6ec8ff01a3c2651e772a826ee11a7781d7 - nvdisplay/src/nvidia/inc/libraries/nvport/util.h 22420ad669a9809602f111385b7840556e58ecff - nvdisplay/src/nvidia/inc/libraries/nvport/cpu.h 46345715dde843be2890b33f191b2f3b69385e0d - nvdisplay/src/nvidia/inc/libraries/nvport/memory.h 147d47ef4bd860394d1d8ae82c68d97887e2898b - nvdisplay/src/nvidia/inc/libraries/nvport/core.h 3dcee4e110f4c571e7f49fae2f2d0630d008a906 - nvdisplay/src/nvidia/inc/libraries/nvport/nvport.h 6ad1beaa2783a57330240d47b373930cd36ca5d0 - nvdisplay/src/nvidia/inc/libraries/nvport/crypto.h 3e656d5ed1f5df898ec444921ce77a40ead66b28 - nvdisplay/src/nvidia/inc/libraries/nvport/atomic.h b93c2532babf176f7b91735682e7d7cdc41f96f8 - nvdisplay/src/nvidia/inc/libraries/nvport/debug.h 6d698ca4fc5e48c525f214a57e1de0cc4aa9e36b - nvdisplay/src/nvidia/inc/libraries/nvport/thread.h 2487ffc1eb1e50b27ba07e0581da543d80bdaa72 - nvdisplay/src/nvidia/inc/libraries/nvport/safe.h aafca30178f49676f640be9c6d34f623a3e3a9a4 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/safe_generic.h 31f2042e852f074970644903335af5ffa2b59c38 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/memory_tracking.h eedda5c4b0611c3b95f726b0a2db4b0a23b7b1cf - nvdisplay/src/nvidia/inc/libraries/nvport/inline/atomic_gcc.h 2a76929dc6b0e8624d02002600bc454cc851dee4 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/atomic_clang.h 23afbd04f4e4b3301edcfdec003c8e936d898e38 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/debug_unix_kernel_os.h a8c9b83169aceb5f97d9f7a411db449496dc18f6 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/util_generic.h 1d6a239ed6c8dab1397f056a81ff456141ec7f9c - nvdisplay/src/nvidia/inc/libraries/nvport/inline/util_valist.h 600ad8781585e87df49ab1aaa39a07c8e8de74f5 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/util_gcc_clang.h 0747ee16c7e6c726f568867d0fbbad411c8795c8 - nvdisplay/src/nvidia/inc/libraries/nvport/inline/sync_tracking.h 2dec1c73507f66736674d203cc4a00813ccb11bc - nvdisplay/src/nvidia/inc/libraries/resserv/rs_domain.h cd033fe116a41285a979e629a2ee7b11ec99369f - nvdisplay/src/nvidia/inc/libraries/resserv/rs_access_rights.h 841ddca998b570feb1d59b50d644c8f2b59ae8e9 - nvdisplay/src/nvidia/inc/libraries/resserv/rs_client.h bacdb2c1a1dbf182a0a3be15efa0a5f83365118f - nvdisplay/src/nvidia/inc/libraries/resserv/rs_resource.h df174d6b4f718ef699ca6f38c16aaeffa111ad3c - nvdisplay/src/nvidia/inc/libraries/resserv/rs_access_map.h 89ece4711626bf1e4197c69bd5754e2798214d76 - nvdisplay/src/nvidia/inc/libraries/resserv/resserv.h a0d3d164eb92280353cdc4458d2561aae8a68c1d - nvdisplay/src/nvidia/inc/libraries/resserv/rs_server.h ba3c81e9eae32eefbf81818b48fdf6ccd7e73163 - nvdisplay/src/nvidia/inc/libraries/utils/nvmacro.h 167f49cccc912430bb6b3cb77395f665a32cc8be - nvdisplay/src/nvidia/inc/libraries/utils/nvbitvector.h 1ed5d8ae82f37112b163187fa48d2720957e6bdf - nvdisplay/src/nvidia/inc/libraries/utils/nvassert.h 18321894aa7631b491ea39edc2d45d1028cdc9c6 - nvdisplay/src/nvidia/inc/libraries/utils/nvprintf.h e53d5fc9b66dbec4c947224050866cec30b2f537 - nvdisplay/src/nvidia/inc/libraries/utils/nvrange.h 398e4cd63852a18da6e42b920eacd927a2c38bc0 - nvdisplay/src/nvidia/inc/libraries/utils/nv_enum.h 62a18f19f79512ebccdf286068e0b557c7926e13 - nvdisplay/src/nvidia/inc/libraries/nvoc/runtime.h 00433b51c4d6254fd4dfc3dcd9b4ad59e485e7c0 - nvdisplay/src/nvidia/inc/libraries/nvoc/object.h 664ff0e10e893923b70425fa49c9c48ed0735573 - nvdisplay/src/nvidia/inc/libraries/nvoc/rtti.h 1b28bd0ee2e560ca2854a73a3ee5fb1cf713d013 - nvdisplay/src/nvidia/inc/libraries/nvoc/utility.h 5cadc87ba685991c7d4c6d453dcc9a2cca4398bf - nvdisplay/src/nvidia/inc/libraries/nvoc/prelude.h 0b1508742a1c5a04b6c3a4be1b48b506f4180848 - nvdisplay/kernel-open/dkms.conf 9bb6ebf912480ef87d369b10de8dc9e800711651 - nvdisplay/kernel-open/Kbuild 4f4410c3c8db46e5a98d7a35f7d909a49de6cb43 - nvdisplay/kernel-open/Makefile 90d4457b6fec29378645d5932ad82d706942f4a6 - nvdisplay/kernel-open/conftest.sh 0b7e063481a0e195c6e91a4d3464c4792c684f03 - nvdisplay/kernel-open/nvidia-modeset/nv-kthread-q.c 2ea1436104463c5e3d177e8574c3b4298976d37e - nvdisplay/kernel-open/nvidia-modeset/nvkms-ioctl.h 07a2d5fa54ff88a0cb30c0945ef3c33ca630a490 - nvdisplay/kernel-open/nvidia-modeset/nvidia-modeset.Kbuild 17855f638fd09abfec7d188e49b396793a9f6106 - nvdisplay/kernel-open/nvidia-modeset/nvkms.h 7d108165b4a7b6a44ac21460ea3bf4381fb48c5b - nvdisplay/kernel-open/nvidia-modeset/nvidia-modeset-os-interface.h c181ab9960b0c01a7672bc1fe1bc8870f1e8856d - nvdisplay/kernel-open/nvidia-modeset/nvidia-modeset-linux.c b02c378ac0521c380fc2403f0520949f785b1db6 - nvdisplay/kernel-open/common/inc/nv-dmabuf.h befb2c0bf0a31b61be5469575ce3c73a9204f4e9 - nvdisplay/kernel-open/common/inc/nv_stdarg.h 6337f595602bce9d76559de1be90553b52f405d8 - nvdisplay/kernel-open/common/inc/nv-proto.h 4b7414705ce10f0a1e312c36a43824b59d572661 - nvdisplay/kernel-open/common/inc/nvmisc.h 5fd1da24ae8263c43dc5dada4702564b6f0ca3d9 - nvdisplay/kernel-open/common/inc/dce_rm_client_ipc.h 1e7eec6561b04d2d21c3515987aaa116e9401c1f - nvdisplay/kernel-open/common/inc/nv-kernel-interface-api.h 35da37c070544f565d0f1de82abc7569b5df06af - nvdisplay/kernel-open/common/inc/nv_firmware_types.h b4c5d759f035b540648117b1bff6b1701476a398 - nvdisplay/kernel-open/common/inc/nvCpuUuid.h 2f5fec803685c61c13f7955baaed056b5524652c - nvdisplay/kernel-open/common/inc/nv-ioctl.h df0420a5e3576e5a8b77a7bcefa6888ad62d6fd7 - nvdisplay/kernel-open/common/inc/nv.h 42ece56d0459eb9f27b2497de48f08360c4f7f6b - nvdisplay/kernel-open/common/inc/nvlimits.h e3362c33fe6c7cdec013eceac31e8f6f38dc465f - nvdisplay/kernel-open/common/inc/nv_uvm_types.h d721fca5f2317b9b325dedcbfba51c00d0b23648 - nvdisplay/kernel-open/common/inc/nv-linux.h 59d537c1d1b284a9d52277aff87c237e3ec2c99d - nvdisplay/kernel-open/common/inc/nv-procfs-utils.h 3b12d770f8592b94a8c7774c372e80ad08c5774c - nvdisplay/kernel-open/common/inc/nvi2c.h 82940edf4650b9be67275d3a360ef4e63387a0a7 - nvdisplay/kernel-open/common/inc/cpuopsys.h 256b5dc6f28738b3ce656c984f01d8f3e13e9faa - nvdisplay/kernel-open/common/inc/nv-pgprot.h c06b2748cd7c8f86b5864d5e9abe6ecf0ab622f0 - nvdisplay/kernel-open/common/inc/nv-hash.h 4b1a6c372a531b0d3e0a4e9815dde74cb222447c - nvdisplay/kernel-open/common/inc/rm-gpu-ops.h 5d8de06378994201e91c2179d149c0edcd694900 - nvdisplay/kernel-open/common/inc/nvstatuscodes.h 910255a4d92e002463175a28e38c3f24716fb654 - nvdisplay/kernel-open/common/inc/nvkms-api-types.h 880e45b68b19fdb91ac94991f0e6d7fc3b406b1f - nvdisplay/kernel-open/common/inc/nv-pci-types.h c57259130166701bf6d5e5bb1968397716d29fc0 - nvdisplay/kernel-open/common/inc/nv-platform.h 3a26838c4edd3525daa68ac6fc7b06842dc6fc07 - nvdisplay/kernel-open/common/inc/nv-gpu-info.h 88399279bd5e31b6e77cb32c7ef6220ce529526b - nvdisplay/kernel-open/common/inc/nv-hypervisor.h 003b2cbe3d82e467c09371aee86e48d65ae6c29b - nvdisplay/kernel-open/common/inc/nv-ioctl-numa.h fdbaee144adb26c00776b802560e15f775ed5aef - nvdisplay/kernel-open/common/inc/nv-mm.h 009cd8e2b7ee8c0aeb05dac44cc84fc8f6f37c06 - nvdisplay/kernel-open/common/inc/nvkms-kapi.h 5c4c05e5a638888babb5a8af2f0a61c94ecd150b - nvdisplay/kernel-open/common/inc/nvkms-format.h ea98628370602119afb1a065ff954784757ddb10 - nvdisplay/kernel-open/common/inc/os_dsi_panel_props.h 1d17329caf26cdf931122b3c3b7edf4932f43c38 - nvdisplay/kernel-open/common/inc/nv-msi.h e4a4f57abb8769d204468b2f5000c81f5ea7c92f - nvdisplay/kernel-open/common/inc/nv-procfs.h 4a8b7f3cc65fa530670f510796bef51cf8c4bb6b - nvdisplay/kernel-open/common/inc/nv-register-module.h 4750735d6f3b334499c81d499a06a654a052713d - nvdisplay/kernel-open/common/inc/nv-caps.h b249abc0a7d0c9889008e98cb2f8515a9d310b85 - nvdisplay/kernel-open/common/inc/nvgputypes.h 1d8b347e4b92c340a0e9eac77e0f63b9fb4ae977 - nvdisplay/kernel-open/common/inc/nv-ioctl-numbers.h 8c041edbf4ed4fefdfd8006252cf542e34aa617b - nvdisplay/kernel-open/common/inc/nvtypes.h d25291d32caef187daf3589ce4976e4fa6bec70d - nvdisplay/kernel-open/common/inc/nv-time.h 349696856890bdbe76f457376648522b35f874ef - nvdisplay/kernel-open/common/inc/nvimpshared.h e20882a9b14f2bf887e7465d3f238e5ac17bc2f5 - nvdisplay/kernel-open/common/inc/nv_speculation_barrier.h 95bf694a98ba78d5a19e66463b8adda631e6ce4c - nvdisplay/kernel-open/common/inc/nvstatus.h c75bfc368c6ce3fc2c1a0c5062834e90d822b365 - nvdisplay/kernel-open/common/inc/nv-memdbg.h b642fb649ce2ba17f37c8aa73f61b38f99a74986 - nvdisplay/kernel-open/common/inc/nv-retpoline.h 143051f69a53db0e7c5d2f846a9c14d666e264b4 - nvdisplay/kernel-open/common/inc/nv-kref.h 60ef64c0f15526ae2d786e5cec07f28570f0663b - nvdisplay/kernel-open/common/inc/conftest.h 94ad0ba9fd6eb21445baec4fddd7c67a30cceefa - nvdisplay/kernel-open/common/inc/nv-pci.h f3e0f71abf34300d322e313adcd4fcbde9aa6f87 - nvdisplay/kernel-open/common/inc/nv-kthread-q.h 84e9b6cba7ba26ef4032666f769c5b43fa510aad - nvdisplay/kernel-open/common/inc/nv-list-helpers.h 906329ae5773732896e6fe94948f7674d0b04c17 - nvdisplay/kernel-open/common/inc/os_gpio.h c45b2faf17ca2a205c56daa11e3cb9d864be2238 - nvdisplay/kernel-open/common/inc/nv-modeset-interface.h 7b2e2e6ff278acddc6980b330f68e374f38e0a6c - nvdisplay/kernel-open/common/inc/nv-timer.h 423282211355a8cb20bff268166885ac90e2986c - nvdisplay/kernel-open/common/inc/nv_uvm_interface.h 3100c536eb4c81ae913b92d4bc5905e752301311 - nvdisplay/kernel-open/common/inc/os-interface.h 80fcb510fad25cb7a017139f487da1843b7cfcbd - nvdisplay/kernel-open/common/inc/nv-lock.h cda75171ca7d8bf920aab6d56ef9aadec16fd15d - nvdisplay/kernel-open/common/inc/os/nv_memory_type.h 61eadfa0f5b44a3d95e4d2d42d79321fc909c661 - nvdisplay/kernel-open/nvidia/nv-clk.c 07f95171c241880c472a630d1ee38fb222be4d59 - nvdisplay/kernel-open/nvidia/nvidia-sources.Kbuild e903f50b2624f33807214973558b9ff380bd68e0 - nvdisplay/kernel-open/nvidia/nv-platform.c 0b7e063481a0e195c6e91a4d3464c4792c684f03 - nvdisplay/kernel-open/nvidia/nv-kthread-q.c ee894ec530acbd765c04aec93c1c312d42210aeb - nvdisplay/kernel-open/nvidia/nv-ipc-soc.c 26c3971ea7afb4b7f237db9ab1c321c3de814518 - nvdisplay/kernel-open/nvidia/nv-p2p.c 95ae148b016e4111122c2d9f8f004b53e78998f3 - nvdisplay/kernel-open/nvidia/nv-memdbg.c fbae5663e3c278d8206d07ec6446ca4c2781795f - nvdisplay/kernel-open/nvidia/nv-ibmnpu.h d4f2cac6234e5ad337c254875a26d17372f28162 - nvdisplay/kernel-open/nvidia/os-interface.c 978d00b0d319c5ad5c0d3732b0e44f4ac0ac9a4c - nvdisplay/kernel-open/nvidia/nv_gpu_ops.h 4eee7319202366822e17d29ecec9f662c075e7ac - nvdisplay/kernel-open/nvidia/nv-rsync.c 84d84563c003d3f568068e7322ce314387a6f579 - nvdisplay/kernel-open/nvidia/nv-caps.c d11ab03a617b29efcf00f85e24ebce60f91cf82c - nvdisplay/kernel-open/nvidia/nv-backlight.c 0ce95e5ed52d6d6ca2bb6aac33ca8f197145ec45 - nvdisplay/kernel-open/nvidia/nv-procfs-utils.c 218aac0c408be15523a2d0b70fdbdadd7e1a2e48 - nvdisplay/kernel-open/nvidia/nv-imp.c 8bedc7374d7a43250e49fb09139c511b489d45e3 - nvdisplay/kernel-open/nvidia/nv-pci-table.h 68d781e929d103e6fa55fa92b5d4f933fbfb6526 - nvdisplay/kernel-open/nvidia/nv-report-err.h 94c406f36836c3396b0ca08b4ff71496666b9c43 - nvdisplay/kernel-open/nvidia/os-usermap.c dc39c4ee87f4dc5f5ccc179a98e07ddb82bb8bce - nvdisplay/kernel-open/nvidia/nv-modeset-interface.c 06e7ec77cd21c43f900984553a4960064753e444 - nvdisplay/kernel-open/nvidia/nv-platform-pm.c dc165103f9196f5f9e97433ec32ef6dded86d4bb - nvdisplay/kernel-open/nvidia/os-registry.c 7b1bd10726481626dd51f4eebb693794561c20f6 - nvdisplay/kernel-open/nvidia/nv-host1x.c e2b0e4ef01bb28ff6dcc10cb44570e185ce82df0 - nvdisplay/kernel-open/nvidia/nv-reg.h c5cfba80ea122c9078f2d44f1538144747d7931b - nvdisplay/kernel-open/nvidia/nv.c fc566df59becef7bc7511ae62a9a97b1532a5af2 - nvdisplay/kernel-open/nvidia/nv-frontend.c d9221522e02e18b037b8929fbc075dc3c1e58654 - nvdisplay/kernel-open/nvidia/nv-pci-table.c a392fa800565c8345b07af5132db7078b914d59f - nvdisplay/kernel-open/nvidia/os-pci.c 9999872b1513360d8ecf6c0894f81c63e7d435e9 - nvdisplay/kernel-open/nvidia/nv-dma.c 98c1be29932b843453567d4ada2f9912ea4523d7 - nvdisplay/kernel-open/nvidia/nv-vm.c 2c0d17f9babe897435c7dfa43adb96020f45da2b - nvdisplay/kernel-open/nvidia/nv-dsi-parse-panel-props.c cf90d9ea3abced81d182ab3c4161e1b5d3ad280d - nvdisplay/kernel-open/nvidia/nv-rsync.h 6d4fbea733fdcd92fc6a8a5884e8bb359f9e8abd - nvdisplay/kernel-open/nvidia/rmp2pdefines.h 805042e7cdb9663a0d3ca3064baeec8aa8eb3688 - nvdisplay/kernel-open/nvidia/nv-ibmnpu.c 5f2e279a4abe0dabd478b1589be67df18de4b09d - nvdisplay/kernel-open/nvidia/nv-i2c.c b71bf4426322ab59e78e2a1500509a5f4b2b71ab - nvdisplay/kernel-open/nvidia/nv-pat.h 64f1c96761f6d9e7e02ab049dd0c810196568036 - nvdisplay/kernel-open/nvidia/nv-pat.c cded6e9b6324fd429b865173596c8e549a682bba - nvdisplay/kernel-open/nvidia/nv_uvm_interface.c 9b701fe42a0e87d62c58b15c553086a608e89f7b - nvdisplay/kernel-open/nvidia/nv-frontend.h 02b1936dd9a9e30141245209d79b8304b7f12eb9 - nvdisplay/kernel-open/nvidia/nv-cray.c 5ac10d9b20ccd37e1e24d4a81b8ac8f83db981e4 - nvdisplay/kernel-open/nvidia/nv-vtophys.c 9a0f445fda73c69e1bee7f6b121cbed33fcb01bf - nvdisplay/kernel-open/nvidia/nv-mmap.c a3626bf1b80a81c14408c5181e8bd27696df2caf - nvdisplay/kernel-open/nvidia/nv-pci.c 495bcdff3847ff67ba4bbf9af23729eb66eed487 - nvdisplay/kernel-open/nvidia/nv-acpi.c 0b0ec8d75dfece909db55136731196162c4152d5 - nvdisplay/kernel-open/nvidia/nv-dmabuf.c c7f1aaa6a5f3a3cdf1e5f80adf40b3c9f185fb94 - nvdisplay/kernel-open/nvidia/nv-report-err.c c1ebcfec42f7898dd9d909eacd439d288b80523f - nvdisplay/kernel-open/nvidia/os-mlock.c 3ee953312a6a246d65520fc4a65407f448d1d2b8 - nvdisplay/kernel-open/nvidia/nv-gpio.c 7ac10bc4b3b1c5a261388c3f5f9ce0e9b35d7b44 - nvdisplay/kernel-open/nvidia/nv-usermap.c 027fd0ab218eb98abe2b66d05f10b14ebb57e7a3 - nvdisplay/kernel-open/nvidia/nv-nano-timer.c f179d308e984ff44a82f6e1c6007624f1ac916ba - nvdisplay/kernel-open/nvidia/nv-procfs.c 24fd035338936c76fda8faeb0d8b1cd59875db92 - nvdisplay/kernel-open/nvidia/nvidia.Kbuild d844fcaa5b02f1d1a753965a336287148b2ce689 - nvdisplay/kernel-open/nvidia/nv-p2p.h fbfa2125b2bac1953af6d6fd99352898e516a686 - nvdisplay/kernel-open/nvidia/nv-msi.c 99642b76e9a84b5a1d2e2f4a8c7fb7bcd77a44fd - nvdisplay/kernel-open/nvidia-drm/nvidia-drm.h 66b33e4ac9abe09835635f6776c1222deefad741 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-fb.h 23586447526d9ffedd7878b6cf5ba00139fadb5e - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-user-memory.h 6d65ea9f067e09831a8196022bfe00a145bec270 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-dma-buf.h 708d02c8bcdfb12e4d55896e667821357c8251ec - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-priv.h 2911436a80d67074106c507871f4b480aa307237 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-helper.c 5008845a531207899830bcf4568c3463ad0ea6bc - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-drv.c 892cac6dd51ccfde68b3c29a5676504f93ee8cd7 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-format.c e362c64aa67b47becdbf5c8ba2a245e135adeedf - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-dma-buf.c 492a1b0b02dcd2d60f05ac670daeeddcaa4b0da5 - nvdisplay/kernel-open/nvidia-drm/nvidia-dma-resv-helper.h 355126d65ea1472ce3b278066811d4fb764354ec - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-user-memory.c d862cc13c29bbce52f6b380b7a0a45a07fe9cbac - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-encoder.c 40b5613d1fbbe6b74bff67a5d07974ad321f75f0 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-utils.h 1e05d0ff4e51a10fa3fcd6519dc915bf13aa69c0 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-helper.h ab63f2a971db8bf10585b1a05fe0e3ca180ad6c7 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-os-interface.h 8bedc7374d7a43250e49fb09139c511b489d45e3 - nvdisplay/kernel-open/nvidia-drm/nv-pci-table.h 5209eba37913f5d621a13091783622759706e6e3 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-fb.c 044071d60c8cc8ea66c6caaf1b70fe01c4081ad3 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-conftest.h 8b2063f0cc2e328f4f986c2ce556cfb626c89810 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-utils.c 45ec9fd1abfe9a0c7f9ffaf665014cec89c9e7e6 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-crtc.h dc0fe38909e2f38e919495b7b4f21652a035a3ee - nvdisplay/kernel-open/nvidia-drm/nvidia-drm.c b775af5899366845f9b87393d17a0ab0f1f6a725 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem.c c8982ace6fc79f75c092662902c0c61371195f0c - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-linux.c 97b6c56b1407de976898e0a8b5a8f38a5211f8bb - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-format.h d9221522e02e18b037b8929fbc075dc3c1e58654 - nvdisplay/kernel-open/nvidia-drm/nv-pci-table.c e4efab24f90d397c270568abb337ab815a447fec - nvdisplay/kernel-open/nvidia-drm/nvidia-dma-fence-helper.h ef03d0ae581cc0326abe6054249791f8c0faa9a8 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-prime-fence.c 8c95aa7ab01dd928974ce7880a532557209bd8e0 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem.h 7129c765da5bfb77788441fed39b46dc7dc0fa8e - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-nvkms-memory.c bb1f2105d19b50634d46a92ade7fc5f709ec25d3 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-crtc.c 6528efa1f8061678b8543c5c0be8761cab860858 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-modeset.h cbcd6e13d84ea6b52db12eda98be38e321888eb0 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-prime-fence.h e4bb0073eb9d6f965923bb9874e4714518850a27 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-connector.h eca70b3b8146903ec678a60eebb0462e6ccf4569 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-encoder.h 3c9a013abdc787a1022b11099af4277c37cd666b - nvdisplay/kernel-open/nvidia-drm/nvidia-drm.Kbuild 59bb05ef214b5c5f2fe3cf70142dabd47ea70650 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-ioctl.h fa8d8d10ae773bb7db3b3ce1df545de0e04c937e - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-connector.c a7bc26c1078e95f9ff49c164f3652787adf1fef3 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-modeset.c c294224282118c70cd546ae024a95479ad9b1de4 - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-gem-nvkms-memory.h 9a882b31b2acc9e1ad3909c0061eee536e648aae - nvdisplay/kernel-open/nvidia-drm/nvidia-drm-drv.h Change-Id: I368f44a420ad10223c4de7cc06f0917298301ce4
6068 lines
214 KiB
Bash
Executable File
6068 lines
214 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
PATH="${PATH}:/bin:/sbin:/usr/bin"
|
|
|
|
# make sure we are in the directory containing this script
|
|
SCRIPTDIR=`dirname $0`
|
|
cd $SCRIPTDIR
|
|
|
|
CC="$1"
|
|
ARCH=$2
|
|
ISYSTEM=`$CC -print-file-name=include 2> /dev/null`
|
|
SOURCES=$3
|
|
HEADERS=$SOURCES/include
|
|
OUTPUT=$4
|
|
XEN_PRESENT=1
|
|
PREEMPT_RT_PRESENT=0
|
|
KERNEL_ARCH="$ARCH"
|
|
|
|
if [ "$ARCH" = "i386" -o "$ARCH" = "x86_64" ]; then
|
|
if [ -d "$SOURCES/arch/x86" ]; then
|
|
KERNEL_ARCH="x86"
|
|
fi
|
|
fi
|
|
|
|
# VGX_BUILD parameter defined only for VGX builds (vGPU Host driver)
|
|
# VGX_KVM_BUILD parameter defined only vGPU builds on KVM hypervisor
|
|
# GRID_BUILD parameter defined only for GRID builds (GRID Guest driver)
|
|
# GRID_BUILD_CSP parameter defined only for GRID CSP builds (GRID Guest driver for CSPs)
|
|
|
|
test_xen() {
|
|
#
|
|
# Determine if the target kernel is a Xen kernel. It used to be
|
|
# sufficient to check for CONFIG_XEN, but the introduction of
|
|
# modular para-virtualization (CONFIG_PARAVIRT, etc.) and
|
|
# Xen guest support, it is no longer possible to determine the
|
|
# target environment at build time. Therefore, if both
|
|
# CONFIG_XEN and CONFIG_PARAVIRT are present, text_xen() treats
|
|
# the kernel as a stand-alone kernel.
|
|
#
|
|
if ! test_configuration_option CONFIG_XEN ||
|
|
test_configuration_option CONFIG_PARAVIRT; then
|
|
XEN_PRESENT=0
|
|
fi
|
|
}
|
|
|
|
append_conftest() {
|
|
#
|
|
# Echo data from stdin: this is a transitional function to make it easier
|
|
# to port conftests from drivers with parallel conftest generation to
|
|
# older driver versions
|
|
#
|
|
|
|
while read LINE; do
|
|
echo ${LINE}
|
|
done
|
|
}
|
|
|
|
translate_and_preprocess_header_files() {
|
|
# Inputs:
|
|
# $1: list of relative file paths
|
|
#
|
|
# This routine creates an upper case, underscore version of each of the
|
|
# relative file paths, and uses that as the token to either define or
|
|
# undefine in a C header file. For example, linux/fence.h becomes
|
|
# NV_LINUX_FENCE_H_PRESENT, and that is either defined or undefined, in the
|
|
# output (which goes to stdout, just like the rest of this file).
|
|
|
|
# -MG or -MD can interfere with the use of -M and -M -MG for testing file
|
|
# existence; filter out any occurrences from CFLAGS. CFLAGS is intentionally
|
|
# wrapped with whitespace in the input to sed(1) so the regex can match zero
|
|
# or more occurrences of "-MD" or "-MG", surrounded by whitespace to avoid
|
|
# accidental matches with tokens that happen to contain either of those
|
|
# strings, without special handling of the beginning or the end of the line.
|
|
TEST_CFLAGS=`echo "-E -M $CFLAGS " | sed -e 's/\( -M[DG]\)* / /g'`
|
|
|
|
for file in $@; do
|
|
local file_define=NV_`echo $file | tr '/.' '_' | tr '-' '_' | tr 'a-z' 'A-Z'`_PRESENT
|
|
|
|
CODE="#include <$file>"
|
|
|
|
if echo "$CODE" | $CC $TEST_CFLAGS - > /dev/null 2>&1; then
|
|
echo "#define $file_define"
|
|
else
|
|
# If preprocessing failed, it could have been because the header
|
|
# file under test is not present, or because it is present but
|
|
# depends upon the inclusion of other header files. Attempting
|
|
# preprocessing again with -MG will ignore a missing header file
|
|
# but will still fail if the header file is present.
|
|
if echo "$CODE" | $CC $TEST_CFLAGS -MG - > /dev/null 2>&1; then
|
|
echo "#undef $file_define"
|
|
else
|
|
echo "#define $file_define"
|
|
fi
|
|
fi
|
|
done
|
|
}
|
|
|
|
test_headers() {
|
|
#
|
|
# Determine which header files (of a set that may or may not be
|
|
# present) are provided by the target kernel.
|
|
#
|
|
FILES="asm/system.h"
|
|
FILES="$FILES drm/drmP.h"
|
|
FILES="$FILES drm/drm_auth.h"
|
|
FILES="$FILES drm/drm_gem.h"
|
|
FILES="$FILES drm/drm_crtc.h"
|
|
FILES="$FILES drm/drm_atomic.h"
|
|
FILES="$FILES drm/drm_atomic_helper.h"
|
|
FILES="$FILES drm/drm_encoder.h"
|
|
FILES="$FILES drm/drm_atomic_uapi.h"
|
|
FILES="$FILES drm/drm_drv.h"
|
|
FILES="$FILES drm/drm_framebuffer.h"
|
|
FILES="$FILES drm/drm_connector.h"
|
|
FILES="$FILES drm/drm_probe_helper.h"
|
|
FILES="$FILES drm/drm_blend.h"
|
|
FILES="$FILES drm/drm_fourcc.h"
|
|
FILES="$FILES drm/drm_prime.h"
|
|
FILES="$FILES drm/drm_plane.h"
|
|
FILES="$FILES drm/drm_vblank.h"
|
|
FILES="$FILES drm/drm_file.h"
|
|
FILES="$FILES drm/drm_ioctl.h"
|
|
FILES="$FILES drm/drm_device.h"
|
|
FILES="$FILES drm/drm_mode_config.h"
|
|
FILES="$FILES dt-bindings/interconnect/tegra_icc_id.h"
|
|
FILES="$FILES generated/autoconf.h"
|
|
FILES="$FILES generated/compile.h"
|
|
FILES="$FILES generated/utsrelease.h"
|
|
FILES="$FILES linux/efi.h"
|
|
FILES="$FILES linux/kconfig.h"
|
|
FILES="$FILES linux/platform/tegra/mc_utils.h"
|
|
FILES="$FILES linux/semaphore.h"
|
|
FILES="$FILES linux/printk.h"
|
|
FILES="$FILES linux/ratelimit.h"
|
|
FILES="$FILES linux/prio_tree.h"
|
|
FILES="$FILES linux/log2.h"
|
|
FILES="$FILES linux/of.h"
|
|
FILES="$FILES linux/bug.h"
|
|
FILES="$FILES linux/sched.h"
|
|
FILES="$FILES linux/sched/mm.h"
|
|
FILES="$FILES linux/sched/signal.h"
|
|
FILES="$FILES linux/sched/task.h"
|
|
FILES="$FILES linux/sched/task_stack.h"
|
|
FILES="$FILES xen/ioemu.h"
|
|
FILES="$FILES linux/fence.h"
|
|
FILES="$FILES linux/dma-resv.h"
|
|
FILES="$FILES soc/tegra/chip-id.h"
|
|
FILES="$FILES soc/tegra/fuse.h"
|
|
FILES="$FILES soc/tegra/tegra_bpmp.h"
|
|
FILES="$FILES video/nv_internal.h"
|
|
FILES="$FILES linux/platform/tegra/dce/dce-client-ipc.h"
|
|
FILES="$FILES linux/nvhost.h"
|
|
FILES="$FILES linux/nvhost_t194.h"
|
|
FILES="$FILES linux/host1x-next.h"
|
|
FILES="$FILES asm/book3s/64/hash-64k.h"
|
|
FILES="$FILES asm/set_memory.h"
|
|
FILES="$FILES asm/prom.h"
|
|
FILES="$FILES asm/powernv.h"
|
|
FILES="$FILES linux/atomic.h"
|
|
FILES="$FILES asm/barrier.h"
|
|
FILES="$FILES asm/opal-api.h"
|
|
FILES="$FILES sound/hdaudio.h"
|
|
FILES="$FILES asm/pgtable_types.h"
|
|
FILES="$FILES linux/stringhash.h"
|
|
FILES="$FILES linux/dma-map-ops.h"
|
|
FILES="$FILES rdma/peer_mem.h"
|
|
FILES="$FILES sound/hda_codec.h"
|
|
FILES="$FILES linux/dma-buf.h"
|
|
FILES="$FILES linux/time.h"
|
|
FILES="$FILES linux/platform_device.h"
|
|
FILES="$FILES linux/mutex.h"
|
|
FILES="$FILES linux/reset.h"
|
|
FILES="$FILES linux/of_platform.h"
|
|
FILES="$FILES linux/of_device.h"
|
|
FILES="$FILES linux/of_gpio.h"
|
|
FILES="$FILES linux/gpio.h"
|
|
FILES="$FILES linux/gpio/consumer.h"
|
|
FILES="$FILES linux/interconnect.h"
|
|
FILES="$FILES linux/pm_runtime.h"
|
|
FILES="$FILES linux/clk.h"
|
|
FILES="$FILES linux/clk-provider.h"
|
|
FILES="$FILES linux/ioasid.h"
|
|
FILES="$FILES linux/stdarg.h"
|
|
FILES="$FILES linux/iosys-map.h"
|
|
FILES="$FILES asm/coco.h"
|
|
|
|
translate_and_preprocess_header_files $FILES
|
|
}
|
|
|
|
build_cflags() {
|
|
BASE_CFLAGS="-O2 -D__KERNEL__ \
|
|
-DKBUILD_BASENAME=\"#conftest$$\" -DKBUILD_MODNAME=\"#conftest$$\" \
|
|
-nostdinc -isystem $ISYSTEM"
|
|
|
|
if [ "$OUTPUT" != "$SOURCES" ]; then
|
|
OUTPUT_CFLAGS="-I$OUTPUT/include2 -I$OUTPUT/include"
|
|
if [ -f "$OUTPUT/include/generated/autoconf.h" ]; then
|
|
AUTOCONF_FILE="$OUTPUT/include/generated/autoconf.h"
|
|
else
|
|
AUTOCONF_FILE="$OUTPUT/include/linux/autoconf.h"
|
|
fi
|
|
else
|
|
if [ -f "$HEADERS/generated/autoconf.h" ]; then
|
|
AUTOCONF_FILE="$HEADERS/generated/autoconf.h"
|
|
else
|
|
AUTOCONF_FILE="$HEADERS/linux/autoconf.h"
|
|
fi
|
|
fi
|
|
|
|
test_xen
|
|
|
|
if [ "$XEN_PRESENT" != "0" ]; then
|
|
MACH_CFLAGS="-I$HEADERS/asm/mach-xen"
|
|
fi
|
|
|
|
SOURCE_HEADERS="$HEADERS"
|
|
SOURCE_ARCH_HEADERS="$SOURCES/arch/$KERNEL_ARCH/include"
|
|
OUTPUT_HEADERS="$OUTPUT/include"
|
|
OUTPUT_ARCH_HEADERS="$OUTPUT/arch/$KERNEL_ARCH/include"
|
|
|
|
# Look for mach- directories on this arch, and add it to the list of
|
|
# includes if that platform is enabled in the configuration file, which
|
|
# may have a definition like this:
|
|
# #define CONFIG_ARCH_<MACHUPPERCASE> 1
|
|
for _mach_dir in `ls -1d $SOURCES/arch/$KERNEL_ARCH/mach-* 2>/dev/null`; do
|
|
_mach=`echo $_mach_dir | \
|
|
sed -e "s,$SOURCES/arch/$KERNEL_ARCH/mach-,," | \
|
|
tr 'a-z' 'A-Z'`
|
|
grep "CONFIG_ARCH_$_mach \+1" $AUTOCONF_FILE > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$_mach_dir/include"
|
|
fi
|
|
done
|
|
|
|
if [ "$ARCH" = "arm" ]; then
|
|
MACH_CFLAGS="$MACH_CFLAGS -D__LINUX_ARM_ARCH__=7"
|
|
fi
|
|
|
|
# Add the mach-default includes (only found on x86/older kernels)
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCE_HEADERS/asm-$KERNEL_ARCH/mach-default"
|
|
MACH_CFLAGS="$MACH_CFLAGS -I$SOURCE_ARCH_HEADERS/asm/mach-default"
|
|
|
|
CFLAGS="$BASE_CFLAGS $MACH_CFLAGS $OUTPUT_CFLAGS -include $AUTOCONF_FILE"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS/uapi"
|
|
CFLAGS="$CFLAGS -I$SOURCE_HEADERS/xen"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_HEADERS/generated/uapi"
|
|
CFLAGS="$CFLAGS -I$SOURCE_ARCH_HEADERS"
|
|
CFLAGS="$CFLAGS -I$SOURCE_ARCH_HEADERS/uapi"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_ARCH_HEADERS/generated"
|
|
CFLAGS="$CFLAGS -I$OUTPUT_ARCH_HEADERS/generated/uapi"
|
|
|
|
if [ -n "$BUILD_PARAMS" ]; then
|
|
CFLAGS="$CFLAGS -D$BUILD_PARAMS"
|
|
fi
|
|
|
|
# Check if gcc supports asm goto and set CC_HAVE_ASM_GOTO if it does.
|
|
# Older kernels perform this check and set this flag in Kbuild, and since
|
|
# conftest.sh runs outside of Kbuild it ends up building without this flag.
|
|
# Starting with commit e9666d10a5677a494260d60d1fa0b73cc7646eb3 this test
|
|
# is done within Kconfig, and the preprocessor flag is no longer needed.
|
|
|
|
GCC_GOTO_SH="$SOURCES/build/gcc-goto.sh"
|
|
|
|
if [ -f "$GCC_GOTO_SH" ]; then
|
|
# Newer versions of gcc-goto.sh don't print anything on success, but
|
|
# this is okay, since it's no longer necessary to set CC_HAVE_ASM_GOTO
|
|
# based on the output of those versions of gcc-goto.sh.
|
|
if [ `/bin/sh "$GCC_GOTO_SH" "$CC"` = "y" ]; then
|
|
CFLAGS="$CFLAGS -DCC_HAVE_ASM_GOTO"
|
|
fi
|
|
fi
|
|
|
|
#
|
|
# If CONFIG_HAVE_FENTRY is enabled and gcc supports -mfentry flags then set
|
|
# CC_USING_FENTRY and add -mfentry into cflags.
|
|
#
|
|
# linux/ftrace.h file indirectly gets included into the conftest source and
|
|
# fails to get compiled, because conftest.sh runs outside of Kbuild it ends
|
|
# up building without -mfentry and CC_USING_FENTRY flags.
|
|
#
|
|
grep "CONFIG_HAVE_FENTRY \+1" $AUTOCONF_FILE > /dev/null 2>&1
|
|
if [ $? -eq 0 ]; then
|
|
echo "" > conftest$$.c
|
|
|
|
$CC -mfentry -c -x c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
CFLAGS="$CFLAGS -mfentry -DCC_USING_FENTRY"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
CONFTEST_PREAMBLE="#include \"conftest/headers.h\"
|
|
#if defined(NV_LINUX_KCONFIG_H_PRESENT)
|
|
#include <linux/kconfig.h>
|
|
#endif
|
|
#if defined(NV_GENERATED_AUTOCONF_H_PRESENT)
|
|
#include <generated/autoconf.h>
|
|
#else
|
|
#include <linux/autoconf.h>
|
|
#endif
|
|
#if defined(CONFIG_XEN) && \
|
|
defined(CONFIG_XEN_INTERFACE_VERSION) && !defined(__XEN_INTERFACE_VERSION__)
|
|
#define __XEN_INTERFACE_VERSION__ CONFIG_XEN_INTERFACE_VERSION
|
|
#endif
|
|
#if defined(CONFIG_KASAN) && defined(CONFIG_ARM64)
|
|
#if defined(CONFIG_KASAN_SW_TAGS)
|
|
#define KASAN_SHADOW_SCALE_SHIFT 4
|
|
#else
|
|
#define KASAN_SHADOW_SCALE_SHIFT 3
|
|
#endif
|
|
#endif"
|
|
|
|
test_configuration_option() {
|
|
#
|
|
# Check to see if the given configuration option is defined
|
|
#
|
|
|
|
get_configuration_option $1 >/dev/null 2>&1
|
|
|
|
return $?
|
|
|
|
}
|
|
|
|
set_configuration() {
|
|
#
|
|
# Set a specific configuration option. This function is called to always
|
|
# enable a configuration, in order to verify whether the test code for that
|
|
# configuration is no longer required and the corresponding
|
|
# conditionally-compiled code in the driver can be removed.
|
|
#
|
|
DEF="$1"
|
|
|
|
if [ "$3" = "" ]
|
|
then
|
|
VAL=""
|
|
CAT="$2"
|
|
else
|
|
VAL="$2"
|
|
CAT="$3"
|
|
fi
|
|
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
}
|
|
|
|
unset_configuration() {
|
|
#
|
|
# Un-set a specific configuration option. This function is called to
|
|
# always disable a configuration, in order to verify whether the test
|
|
# code for that configuration is no longer required and the corresponding
|
|
# conditionally-compiled code in the driver can be removed.
|
|
#
|
|
DEF="$1"
|
|
CAT="$2"
|
|
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
}
|
|
|
|
compile_check_conftest() {
|
|
#
|
|
# Compile the current conftest C file and check+output the result
|
|
#
|
|
CODE="$1"
|
|
DEF="$2"
|
|
VAL="$3"
|
|
CAT="$4"
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
$CODE" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
if [ "${CAT}" = "functions" ]; then
|
|
#
|
|
# The logic for "functions" compilation tests is inverted compared to
|
|
# other compilation steps: if the function is present, the code
|
|
# snippet will fail to compile because the function call won't match
|
|
# the prototype. If the function is not present, the code snippet
|
|
# will produce an object file with the function as an unresolved
|
|
# symbol.
|
|
#
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
else
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
fi
|
|
return
|
|
else
|
|
if [ "${CAT}" = "functions" ]; then
|
|
echo "#define ${DEF} ${VAL}" | append_conftest "${CAT}"
|
|
else
|
|
echo "#undef ${DEF}" | append_conftest "${CAT}"
|
|
fi
|
|
return
|
|
fi
|
|
}
|
|
|
|
export_symbol_present_conftest() {
|
|
#
|
|
# Check Module.symvers to see whether the given symbol is present.
|
|
#
|
|
|
|
SYMBOL="$1"
|
|
TAB=' '
|
|
|
|
if grep -e "${TAB}${SYMBOL}${TAB}.*${TAB}EXPORT_SYMBOL.*\$" \
|
|
"$OUTPUT/Module.symvers" >/dev/null 2>&1; then
|
|
echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_$SYMBOL 1" |
|
|
append_conftest "symbols"
|
|
else
|
|
# May be a false negative if Module.symvers is absent or incomplete,
|
|
# or if the Module.symvers format changes.
|
|
echo "#define NV_IS_EXPORT_SYMBOL_PRESENT_$SYMBOL 0" |
|
|
append_conftest "symbols"
|
|
fi
|
|
}
|
|
|
|
export_symbol_gpl_conftest() {
|
|
#
|
|
# Check Module.symvers to see whether the given symbol is present and its
|
|
# export type is GPL-only (including deprecated GPL-only symbols).
|
|
#
|
|
|
|
SYMBOL="$1"
|
|
TAB=' '
|
|
|
|
if grep -e "${TAB}${SYMBOL}${TAB}.*${TAB}EXPORT_\(UNUSED_\)*SYMBOL_GPL\$" \
|
|
"$OUTPUT/Module.symvers" >/dev/null 2>&1; then
|
|
echo "#define NV_IS_EXPORT_SYMBOL_GPL_$SYMBOL 1" |
|
|
append_conftest "symbols"
|
|
else
|
|
# May be a false negative if Module.symvers is absent or incomplete,
|
|
# or if the Module.symvers format changes.
|
|
echo "#define NV_IS_EXPORT_SYMBOL_GPL_$SYMBOL 0" |
|
|
append_conftest "symbols"
|
|
fi
|
|
}
|
|
|
|
get_configuration_option() {
|
|
#
|
|
# Print the value of given configuration option, if defined
|
|
#
|
|
RET=1
|
|
OPTION=$1
|
|
|
|
OLD_FILE="linux/autoconf.h"
|
|
NEW_FILE="generated/autoconf.h"
|
|
FILE=""
|
|
|
|
if [ -f $HEADERS/$NEW_FILE -o -f $OUTPUT/include/$NEW_FILE ]; then
|
|
FILE=$NEW_FILE
|
|
elif [ -f $HEADERS/$OLD_FILE -o -f $OUTPUT/include/$OLD_FILE ]; then
|
|
FILE=$OLD_FILE
|
|
fi
|
|
|
|
if [ -n "$FILE" ]; then
|
|
#
|
|
# We are looking at a configured source tree; verify
|
|
# that its configuration includes the given option
|
|
# via a compile check, and print the option's value.
|
|
#
|
|
|
|
if [ -f $HEADERS/$FILE ]; then
|
|
INCLUDE_DIRECTORY=$HEADERS
|
|
elif [ -f $OUTPUT/include/$FILE ]; then
|
|
INCLUDE_DIRECTORY=$OUTPUT/include
|
|
else
|
|
return 1
|
|
fi
|
|
|
|
echo "#include <$FILE>
|
|
#ifndef $OPTION
|
|
#error $OPTION not defined!
|
|
#endif
|
|
|
|
$OPTION
|
|
" > conftest$$.c
|
|
|
|
$CC -E -P -I$INCLUDE_DIRECTORY -o conftest$$ conftest$$.c > /dev/null 2>&1
|
|
|
|
if [ -e conftest$$ ]; then
|
|
tr -d '\r\n\t ' < conftest$$
|
|
RET=$?
|
|
fi
|
|
|
|
rm -f conftest$$.c conftest$$
|
|
else
|
|
CONFIG=$OUTPUT/.config
|
|
if [ -f $CONFIG ] && grep "^$OPTION=" $CONFIG; then
|
|
grep "^$OPTION=" $CONFIG | cut -f 2- -d "="
|
|
RET=$?
|
|
fi
|
|
fi
|
|
|
|
return $RET
|
|
|
|
}
|
|
|
|
check_for_ib_peer_memory_symbols() {
|
|
local kernel_dir="$1"
|
|
local module_symvers="${kernel_dir}/Module.symvers"
|
|
|
|
local sym_ib_register="ib_register_peer_memory_client"
|
|
local sym_ib_unregister="ib_unregister_peer_memory_client"
|
|
local tab=' '
|
|
|
|
# Return 0 for true(no errors), 1 for false
|
|
if [ ! -f "${module_symvers}" ]; then
|
|
return 1
|
|
fi
|
|
|
|
if grep -e "${tab}${sym_ib_register}${tab}.*${tab}EXPORT_SYMBOL.*\$" \
|
|
"${module_symvers}" > /dev/null 2>&1 &&
|
|
grep -e "${tab}${sym_ib_unregister}${tab}.*${tab}EXPORT_SYMBOL.*\$" \
|
|
"${module_symvers}" > /dev/null 2>&1; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
compile_test() {
|
|
case "$1" in
|
|
set_memory_uc)
|
|
#
|
|
# Determine if the set_memory_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_memory_uc(void) {
|
|
set_memory_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_MEMORY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_memory_array_uc)
|
|
#
|
|
# Determine if the set_memory_array_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_memory_array_uc(void) {
|
|
set_memory_array_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_MEMORY_ARRAY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
sysfs_slab_unlink)
|
|
#
|
|
# Determine if the sysfs_slab_unlink() function is present.
|
|
#
|
|
# This test is useful to check for the presence a fix for the deferred
|
|
# kmem_cache destroy feature (see nvbug: 2543505).
|
|
#
|
|
# Added by commit d50d82faa0c9 ("slub: fix failure when we delete and
|
|
# create a slab cache") in 4.18 (2018-06-27).
|
|
#
|
|
CODE="
|
|
#include <linux/slab.h>
|
|
void conftest_sysfs_slab_unlink(void) {
|
|
sysfs_slab_unlink();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SYSFS_SLAB_UNLINK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
list_is_first)
|
|
#
|
|
# Determine if the list_is_first() function is present.
|
|
#
|
|
# Added by commit 70b44595eafe ("mm, compaction: use free lists
|
|
# to quickly locate a migration source") in 5.1 (2019-03-05)
|
|
#
|
|
CODE="
|
|
#include <linux/list.h>
|
|
void conftest_list_is_first(void) {
|
|
list_is_first();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_LIST_IS_FIRST_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_pages_uc)
|
|
#
|
|
# Determine if the set_pages_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_pages_uc(void) {
|
|
set_pages_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_PAGES_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
set_pages_array_uc)
|
|
#
|
|
# Determine if the set_pages_array_uc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
# set_pages_array_uc() was added by commit
|
|
# 0f3507555f6fa4acbc85a646d6e8766230db38fc ("x86, CPA: Add
|
|
# set_pages_arrayuc and set_pages_array_wb") in v2.6.30-rc1 (Thu Mar
|
|
# 19 14:51:15 2009)
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#if defined(NV_ASM_SET_MEMORY_H_PRESENT)
|
|
#if defined(NV_ASM_PGTABLE_TYPES_H_PRESENT)
|
|
#include <asm/pgtable_types.h>
|
|
#endif
|
|
#include <asm/set_memory.h>
|
|
#else
|
|
#include <asm/cacheflush.h>
|
|
#endif
|
|
void conftest_set_pages_array_uc(void) {
|
|
set_pages_array_uc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_PAGES_ARRAY_UC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
flush_cache_all)
|
|
#
|
|
# Determine if flush_cache_all() function is present
|
|
#
|
|
# flush_cache_all() was removed by commit id
|
|
# 68234df4ea79 ("arm64: kill flush_cache_all()") in 4.2 (2015-04-20)
|
|
# for aarch64
|
|
#
|
|
CODE="
|
|
#include <asm/cacheflush.h>
|
|
int conftest_flush_cache_all(void) {
|
|
return flush_cache_all();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_FLUSH_CACHE_ALL_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_get_domain_bus_and_slot)
|
|
#
|
|
# Determine if the pci_get_domain_bus_and_slot() function
|
|
# is present.
|
|
#
|
|
# Added by commit 3c299dc22635 ("PCI: add
|
|
# pci_get_domain_bus_and_slot function") in 2.6.33.
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_get_domain_bus_and_slot(void) {
|
|
pci_get_domain_bus_and_slot();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_GET_DOMAIN_BUS_AND_SLOT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_bus_address)
|
|
#
|
|
# Determine if the pci_bus_address() function is
|
|
# present.
|
|
#
|
|
# Added by commit 06cf56e497c8 ("PCI: Add pci_bus_address() to
|
|
# get bus address of a BAR") in v3.14
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_bus_address(void) {
|
|
pci_bus_address();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_BUS_ADDRESS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
hash__remap_4k_pfn)
|
|
#
|
|
# Determine if the hash__remap_4k_pfn() function is
|
|
# present.
|
|
#
|
|
# Added by commit 6cc1a0ee4ce2 ("powerpc/mm/radix: Add radix
|
|
# callback for pmd accessors") in v4.7 (committed 2016-04-29).
|
|
# Present only in arch/powerpc
|
|
#
|
|
CODE="
|
|
#if defined(NV_ASM_BOOK3S_64_HASH_64K_H_PRESENT)
|
|
#include <linux/mm.h>
|
|
#include <asm/book3s/64/hash-64k.h>
|
|
#endif
|
|
void conftest_hash__remap_4k_pfn(void) {
|
|
hash__remap_4k_pfn();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_HASH__REMAP_4K_PFN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
register_cpu_notifier)
|
|
#
|
|
# Determine if register_cpu_notifier() is present
|
|
#
|
|
# Removed by commit 530e9b76ae8f ("cpu/hotplug: Remove obsolete
|
|
# cpu hotplug register/unregister functions") in v4.10
|
|
# (2016-12-21)
|
|
#
|
|
CODE="
|
|
#include <linux/cpu.h>
|
|
void conftest_register_cpu_notifier(void) {
|
|
register_cpu_notifier();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_REGISTER_CPU_NOTIFIER_PRESENT" "" "functions"
|
|
;;
|
|
|
|
cpuhp_setup_state)
|
|
#
|
|
# Determine if cpuhp_setup_state() is present
|
|
#
|
|
# Added by commit 5b7aa87e0482 ("cpu/hotplug: Implement
|
|
# setup/removal interface") in v4.6 (commited 2016-02-26)
|
|
#
|
|
# It is used as a replacement for register_cpu_notifier
|
|
CODE="
|
|
#include <linux/cpu.h>
|
|
void conftest_cpuhp_setup_state(void) {
|
|
cpuhp_setup_state();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_CPUHP_SETUP_STATE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_cache)
|
|
#
|
|
# Determine if the ioremap_cache() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_cache(void) {
|
|
ioremap_cache();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_CACHE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioremap_wc)
|
|
#
|
|
# Determine if the ioremap_wc() function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <asm/io.h>
|
|
void conftest_ioremap_wc(void) {
|
|
ioremap_wc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOREMAP_WC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
file_operations)
|
|
# 'ioctl' field removed by commit b19dd42faf41
|
|
# ("bkl: Remove locked .ioctl file operation") in v2.6.36
|
|
CODE="
|
|
#include <linux/fs.h>
|
|
int conftest_file_operations(void) {
|
|
return offsetof(struct file_operations, ioctl);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_FILE_OPERATIONS_HAS_IOCTL" "" "types"
|
|
;;
|
|
|
|
sg_alloc_table)
|
|
#
|
|
# sg_alloc_table_from_pages added by commit efc42bc98058
|
|
# ("scatterlist: add sg_alloc_table_from_pages function") in v3.6
|
|
#
|
|
CODE="
|
|
#include <linux/scatterlist.h>
|
|
void conftest_sg_alloc_table_from_pages(void) {
|
|
sg_alloc_table_from_pages();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SG_ALLOC_TABLE_FROM_PAGES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
efi_enabled)
|
|
#
|
|
# Added in 2.6.12 as a variable
|
|
#
|
|
# Determine if the efi_enabled symbol is present (as a variable),
|
|
# or if the efi_enabled() function is present and how many
|
|
# arguments it takes.
|
|
#
|
|
# Converted from a variable to a function by commit 83e68189745a
|
|
# ("efi: Make 'efi_enabled' a function to query EFI facilities")
|
|
# in v3.8
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_LINUX_EFI_H_PRESENT)
|
|
#include <linux/efi.h>
|
|
#endif
|
|
int conftest_efi_enabled(void) {
|
|
return efi_enabled(0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_EFI_ENABLED_PRESENT" | append_conftest "functions"
|
|
echo "#define NV_EFI_ENABLED_ARGUMENT_COUNT 1" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#define NV_EFI_ENABLED_PRESENT" | append_conftest "symbols"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dom0_kernel_present)
|
|
# Add config parameter if running on DOM0.
|
|
if [ -n "$VGX_BUILD" ]; then
|
|
echo "#define NV_DOM0_KERNEL_PRESENT" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_DOM0_KERNEL_PRESENT" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
nvidia_vgpu_kvm_build)
|
|
# Add config parameter if running on KVM host.
|
|
if [ -n "$VGX_KVM_BUILD" ]; then
|
|
echo "#define NV_VGPU_KVM_BUILD" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_VGPU_KVM_BUILD" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
vfio_register_notifier)
|
|
#
|
|
# Check number of arguments required.
|
|
#
|
|
# New parameters added by commit 22195cbd3451 ("vfio:
|
|
# vfio_register_notifier: classify iommu notifier") in v4.10
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/vfio.h>
|
|
int conftest_vfio_register_notifier(void) {
|
|
return vfio_register_notifier((struct device *) NULL, (struct notifier_block *) NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_VFIO_NOTIFIER_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#define NV_VFIO_NOTIFIER_ARGUMENT_COUNT 4" | append_conftest "functions"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
vfio_info_add_capability_has_cap_type_id_arg)
|
|
#
|
|
# Check if vfio_info_add_capability() has cap_type_id parameter.
|
|
#
|
|
# Removed by commit dda01f787df9 ("vfio: Simplify capability
|
|
# helper") in v4.16 (2017-12-12)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
int vfio_info_add_capability(struct vfio_info_cap *caps,
|
|
int cap_type_id,
|
|
void *cap_type) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_INFO_ADD_CAPABILITY_HAS_CAP_TYPE_ID_ARGS" "" "types"
|
|
;;
|
|
|
|
vmbus_channel_has_ringbuffer_page)
|
|
#
|
|
# Check if ringbuffer_page field exist in vmbus_channel structure
|
|
#
|
|
# Changed in commit 52a42c2a90226dc61c99bbd0cb096deeb52c334b
|
|
# ("vmbus: keep pointer to ring buffer page") in v5.0 (2018-09-14)
|
|
#
|
|
|
|
CODE="
|
|
#include <linux/hyperv.h>
|
|
|
|
int conftest_vmbus_channel_has_ringbuffer_page(void) {
|
|
return offsetof(struct vmbus_channel, ringbuffer_page);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMBUS_CHANNEL_HAS_RING_BUFFER_PAGE" "" "types"
|
|
;;
|
|
|
|
nvidia_grid_build)
|
|
if [ -n "$GRID_BUILD" ]; then
|
|
echo "#define NV_GRID_BUILD" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_GRID_BUILD" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
nvidia_grid_csp_build)
|
|
if [ -n "$GRID_BUILD_CSP" ]; then
|
|
echo "#define NV_GRID_BUILD_CSP $GRID_BUILD_CSP" | append_conftest "generic"
|
|
else
|
|
echo "#undef NV_GRID_BUILD_CSP" | append_conftest "generic"
|
|
fi
|
|
return
|
|
;;
|
|
|
|
vm_fault_has_address)
|
|
#
|
|
# Determine if the 'vm_fault' structure has an 'address', or a
|
|
# 'virtual_address' field. The .virtual_address field was
|
|
# effectively renamed to .address:
|
|
#
|
|
# 'address' added by commit 82b0f8c39a38 ("mm: join
|
|
# struct fault_env and vm_fault") in v4.10 (2016-12-14)
|
|
#
|
|
# 'virtual_address' removed by commit 1a29d85eb0f1 ("mm: use
|
|
# vmf->address instead of of vmf->virtual_address") in v4.10
|
|
# (2016-12-14)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
int conftest_vm_fault_has_address(void) {
|
|
return offsetof(struct vm_fault, address);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VM_FAULT_HAS_ADDRESS" "" "types"
|
|
;;
|
|
|
|
kmem_cache_has_kobj_remove_work)
|
|
#
|
|
# Determine if the 'kmem_cache' structure has 'kobj_remove_work'.
|
|
#
|
|
# 'kobj_remove_work' was added by commit 3b7b314053d02 ("slub: make
|
|
# sysfs file removal asynchronous") in v4.12 (2017-06-23). This
|
|
# commit introduced a race between kmem_cache destroy and create
|
|
# which we need to workaround in our driver (see nvbug: 2543505).
|
|
# Also see comment for sysfs_slab_unlink conftest.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/slub_def.h>
|
|
int conftest_kmem_cache_has_kobj_remove_work(void) {
|
|
return offsetof(struct kmem_cache, kobj_remove_work);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_KMEM_CACHE_HAS_KOBJ_REMOVE_WORK" "" "types"
|
|
;;
|
|
|
|
mdev_uuid)
|
|
#
|
|
# Determine if mdev_uuid() function is present or not
|
|
#
|
|
# Added by commit 99e3123e3d72 ("vfio-mdev: Make mdev_device
|
|
# private and abstract interfaces") in v4.10
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_uuid() {
|
|
mdev_uuid();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_UUID_PRESENT" "" "functions"
|
|
|
|
#
|
|
# Determine if mdev_uuid() returns 'const guid_t *'.
|
|
#
|
|
# mdev_uuid() function prototype updated to return 'const guid_t *'
|
|
# by commit 278bca7f318e ("vfio-mdev: Switch to use new generic UUID
|
|
# API") in v5.1 (2019-01-10).
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
const guid_t *conftest_mdev_uuid_return_guid_ptr(struct mdev_device *mdev) {
|
|
return mdev_uuid(mdev);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_UUID_RETURN_GUID_PTR" "" "types"
|
|
;;
|
|
|
|
mdev_dev)
|
|
#
|
|
# Determine if mdev_dev() function is present or not
|
|
#
|
|
# Added by commit 99e3123e3d72 ("vfio-mdev: Make mdev_device
|
|
# private and abstract interfaces") in v4.10
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_dev() {
|
|
mdev_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_get_type_group_id)
|
|
#
|
|
# Determine if mdev_get_type_group_id() function is present or not
|
|
#
|
|
# Added by commit 15fcc44be0c7a ("vfio/mdev: Add
|
|
# mdev/mtype_get_type_group_id()") in v5.13
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_get_type_group_id() {
|
|
mdev_get_type_group_id();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_GET_TYPE_GROUP_ID_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_parent)
|
|
#
|
|
# Determine if the struct mdev_parent type is present.
|
|
#
|
|
# Added by commit 42930553a7c1 ("vfio-mdev: de-polute the
|
|
# namespace, rename parent_device & parent_ops") in v4.10
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
struct mdev_parent_ops conftest_mdev_parent;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_OPS_STRUCT_PRESENT" "" "types"
|
|
;;
|
|
|
|
mdev_parent_dev)
|
|
#
|
|
# Determine if mdev_parent_dev() function is present or not
|
|
#
|
|
# Added by commit 9372e6feaafb ("vfio-mdev: Make mdev_parent
|
|
# private") in v4.10
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_parent_dev() {
|
|
mdev_parent_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_PARENT_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_from_dev)
|
|
#
|
|
# Determine if mdev_from_dev() function is present or not.
|
|
#
|
|
# Added by commit 99e3123e3d72 ("vfio-mdev: Make mdev_device
|
|
# private and abstract interfaces") in v4.10 (2016-12-30)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_from_dev() {
|
|
mdev_from_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_FROM_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mdev_set_iommu_device)
|
|
#
|
|
# Determine if mdev_set_iommu_device() function is present or not.
|
|
#
|
|
# Added by commit 8ac13175cbe9 ("vfio/mdev: Add iommu related member
|
|
# in mdev_device) in v5.1 (2019-04-12)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/mdev.h>
|
|
void conftest_mdev_set_iommu_device() {
|
|
mdev_set_iommu_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MDEV_SET_IOMMU_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_irq_vector_helpers)
|
|
#
|
|
# Determine if pci_alloc_irq_vectors(), pci_free_irq_vectors()
|
|
# functions are present or not.
|
|
#
|
|
# Added by commit aff171641d181ea573 (PCI: Provide sensible IRQ
|
|
# vector alloc/free routines) (2016-07-12)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
#include <linux/msi.h>
|
|
void conftest_pci_irq_vector_helpers() {
|
|
pci_alloc_irq_vectors();
|
|
pci_free_irq_vectors ();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_IRQ_VECTOR_HELPERS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
|
|
vfio_device_gfx_plane_info)
|
|
#
|
|
# determine if the 'struct vfio_device_gfx_plane_info' type is present.
|
|
#
|
|
# Added by commit e20eaa2382e7 ("vfio: ABI for mdev display
|
|
# dma-buf operation") in v4.16 (2017-11-23)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
struct vfio_device_gfx_plane_info info;"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_GFX_PLANE_INFO_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_device_migration_info)
|
|
#
|
|
# determine if the 'struct vfio_device_migration_info' type is present.
|
|
#
|
|
# Proposed interface for vGPU Migration
|
|
# ("[PATCH v3 0/5] Add migration support for VFIO device ")
|
|
# https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05176.html
|
|
# Upstreamed commit a8a24f3f6e38 (vfio: UAPI for migration interface
|
|
# for device state) in v5.8 (2020-05-29)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
struct vfio_device_migration_info info;"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_MIGRATION_INFO_PRESENT" "" "types"
|
|
;;
|
|
|
|
vfio_device_migration_has_start_pfn)
|
|
#
|
|
# Determine if the 'vfio_device_migration_info' structure has
|
|
# a 'start_pfn' field.
|
|
#
|
|
# This member was present in proposed interface for vGPU Migration
|
|
# ("[PATCH v3 0/5] Add migration support for VFIO device ")
|
|
# https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05176.html
|
|
# which is not present in upstreamed commit a8a24f3f6e38 (vfio: UAPI
|
|
# for migration interface for device state) in v5.8 (2020-05-29)
|
|
#
|
|
CODE="
|
|
#include <linux/vfio.h>
|
|
int conftest_vfio_device_migration_has_start_pfn(void) {
|
|
return offsetof(struct vfio_device_migration_info, start_pfn);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VFIO_DEVICE_MIGRATION_HAS_START_PFN" "" "types"
|
|
;;
|
|
|
|
drm_available)
|
|
# Determine if the DRM subsystem is usable
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
#if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE)
|
|
#error DRM not enabled
|
|
#endif
|
|
|
|
void conftest_drm_available(void) {
|
|
struct drm_driver drv;
|
|
|
|
/* 2013-10-02 1bb72532ac260a2d3982b40bdd4c936d779d0d16 */
|
|
(void)drm_dev_alloc;
|
|
|
|
/* 2013-10-02 c22f0ace1926da399d9a16dfaf09174c1b03594c */
|
|
(void)drm_dev_register;
|
|
|
|
/* 2013-10-02 c3a49737ef7db0bdd4fcf6cf0b7140a883e32b2a */
|
|
(void)drm_dev_unregister;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
drm_dev_unref)
|
|
#
|
|
# Determine if drm_dev_unref() is present.
|
|
# If it isn't, we use drm_dev_free() instead.
|
|
#
|
|
# drm_dev_free was added by commit 0dc8fe5985e0 ("drm: introduce
|
|
# drm_dev_free() to fix error paths") in v3.13 (2013-10-02)
|
|
#
|
|
# Renamed to drm_dev_unref by commit 099d1c290e2e
|
|
# ("drm: provide device-refcount") in v3.15 (2014-01-29)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
void conftest_drm_dev_unref(void) {
|
|
drm_dev_unref();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DEV_UNREF_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pde_data)
|
|
#
|
|
# Determine if the pde_data() function is present.
|
|
#
|
|
# The commit c28198889c15 removed the function
|
|
# 'PDE_DATA()', and replaced it with 'pde_data()'
|
|
# ("proc: remove PDE_DATA() completely") in v5.17-rc1.
|
|
#
|
|
CODE="
|
|
#include <linux/proc_fs.h>
|
|
void conftest_pde_data(void) {
|
|
pde_data();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PDE_DATA_LOWER_CASE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
get_num_physpages)
|
|
#
|
|
# Determine if the get_num_physpages() function is
|
|
# present.
|
|
#
|
|
# Added by commit 7ee3d4e8cd56 ("mm: introduce helper function
|
|
# mem_init_print_info() to simplify mem_init()") in v3.11
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_get_num_physpages(void) {
|
|
get_num_physpages(NULL);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_GET_NUM_PHYSPAGES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
proc_remove)
|
|
#
|
|
# Determine if the proc_remove() function is present.
|
|
#
|
|
# Added by commit a8ca16ea7b0a ("proc: Supply a function to
|
|
# remove a proc entry by PDE") in v3.10
|
|
#
|
|
CODE="
|
|
#include <linux/proc_fs.h>
|
|
void conftest_proc_remove(void) {
|
|
proc_remove();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PROC_REMOVE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
backing_dev_info)
|
|
#
|
|
# Determine if the 'address_space' structure has
|
|
# a 'backing_dev_info' field.
|
|
#
|
|
# Removed by commit b83ae6d42143 ("fs: remove
|
|
# mapping->backing_dev_info") in v4.0
|
|
#
|
|
CODE="
|
|
#include <linux/fs.h>
|
|
int conftest_backing_dev_info(void) {
|
|
return offsetof(struct address_space, backing_dev_info);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADDRESS_SPACE_HAS_BACKING_DEV_INFO" "" "types"
|
|
;;
|
|
|
|
address_space)
|
|
#
|
|
# Determine if the 'address_space' structure has
|
|
# a 'tree_lock' field of type rwlock_t.
|
|
#
|
|
# 'tree_lock' was changed to spinlock_t by commit 19fd6231279b
|
|
# ("mm: spinlock tree_lock") in v2.6.27
|
|
#
|
|
# It was removed altogether by commit b93b016313b3 ("page cache:
|
|
# use xa_lock") in v4.17
|
|
#
|
|
CODE="
|
|
#include <linux/fs.h>
|
|
int conftest_address_space(void) {
|
|
struct address_space as;
|
|
rwlock_init(&as.tree_lock);
|
|
return offsetof(struct address_space, tree_lock);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADDRESS_SPACE_HAS_RWLOCK_TREE_LOCK" "" "types"
|
|
;;
|
|
|
|
address_space_init_once)
|
|
#
|
|
# Determine if address_space_init_once is present.
|
|
#
|
|
# Added by commit 2aa15890f3c1 ("mm: prevent concurrent
|
|
# unmap_mapping_range() on the same inode") in v2.6.38
|
|
#
|
|
# If not present, it will be defined in uvm-linux.h.
|
|
#
|
|
CODE="
|
|
#include <linux/fs.h>
|
|
void conftest_address_space_init_once(void) {
|
|
address_space_init_once();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADDRESS_SPACE_INIT_ONCE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
kuid_t)
|
|
#
|
|
# Determine if the 'kuid_t' type is present.
|
|
#
|
|
# Added by commit 7a4e7408c5ca ("userns: Add kuid_t and kgid_t
|
|
# and associated infrastructure in uidgid.h") in v3.5
|
|
#
|
|
CODE="
|
|
#include <linux/sched.h>
|
|
kuid_t conftest_kuid_t;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_KUID_T_PRESENT" "" "types"
|
|
;;
|
|
|
|
pm_vt_switch_required)
|
|
#
|
|
# Determine if the pm_vt_switch_required() function is present.
|
|
#
|
|
# Added by commit f43f627d2f17 ("PM: make VT switching to the
|
|
# suspend console optional v3") in v3.10
|
|
#
|
|
CODE="
|
|
#include <linux/pm.h>
|
|
void conftest_pm_vt_switch_required(void) {
|
|
pm_vt_switch_required();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PM_VT_SWITCH_REQUIRED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
xen_ioemu_inject_msi)
|
|
# Determine if the xen_ioemu_inject_msi() function is present.
|
|
CODE="
|
|
#if defined(NV_XEN_IOEMU_H_PRESENT)
|
|
#include <linux/kernel.h>
|
|
#include <xen/interface/xen.h>
|
|
#include <xen/hvm.h>
|
|
#include <xen/ioemu.h>
|
|
#endif
|
|
void conftest_xen_ioemu_inject_msi(void) {
|
|
xen_ioemu_inject_msi();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_XEN_IOEMU_INJECT_MSI" "" "functions"
|
|
;;
|
|
|
|
phys_to_dma)
|
|
#
|
|
# Determine if the phys_to_dma function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_phys_to_dma(void) {
|
|
phys_to_dma();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PHYS_TO_DMA_PRESENT" "" "functions"
|
|
;;
|
|
|
|
|
|
dma_attr_macros)
|
|
#
|
|
# Determine if the NV_DMA_ATTR_SKIP_CPU_SYNC_PRESENT macro present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_attr_macros(void) {
|
|
int ret;
|
|
ret = DMA_ATTR_SKIP_CPU_SYNC();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_DMA_ATTR_SKIP_CPU_SYNC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_map_page_attrs)
|
|
#
|
|
# Determine if the dma_map_page_attrs function is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_map_page_attrs(void) {
|
|
dma_map_page_attrs();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_MAP_PAGE_ATTRS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_ops)
|
|
#
|
|
# Determine if the 'dma_ops' structure is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_ops(void) {
|
|
(void)dma_ops;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_OPS_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
swiotlb_dma_ops)
|
|
#
|
|
# Determine if the 'swiotlb_dma_ops' structure is present.
|
|
# It does not exist on all architectures.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_ops(void) {
|
|
(void)swiotlb_dma_ops;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SWIOTLB_DMA_OPS_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
get_dma_ops)
|
|
#
|
|
# Determine if the get_dma_ops() function is present.
|
|
#
|
|
# The structure was made available to all architectures by commit
|
|
# e1c7e324539a ("dma-mapping: always provide the dma_map_ops
|
|
# based implementation") in v4.5
|
|
#
|
|
# Commit 0a0f0d8be76d ("dma-mapping: split <linux/dma-mapping.h>")
|
|
# in v5.10-rc1 (2020-09-22), moved get_dma_ops() function
|
|
# prototype from <linux/dma-mapping.h> to <linux/dma-map-ops.h>.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_DMA_MAP_OPS_H_PRESENT)
|
|
#include <linux/dma-map-ops.h>
|
|
#else
|
|
#include <linux/dma-mapping.h>
|
|
#endif
|
|
void conftest_get_dma_ops(void) {
|
|
get_dma_ops();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_GET_DMA_OPS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
noncoherent_swiotlb_dma_ops)
|
|
#
|
|
# Determine if the 'noncoherent_swiotlb_dma_ops' symbol is present.
|
|
# This API only exists on ARM64.
|
|
#
|
|
# Added by commit 7363590d2c46 ("arm64: Implement coherent DMA API
|
|
# based on swiotlb") in v3.15
|
|
#
|
|
# Removed by commit 9d3bfbb4df58 ("arm64: Combine coherent and
|
|
# non-coherent swiotlb dma_ops") in v4.0
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_noncoherent_swiotlb_dma_ops(void) {
|
|
(void)noncoherent_swiotlb_dma_ops;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NONCOHERENT_SWIOTLB_DMA_OPS_PRESENT" "" "symbols"
|
|
;;
|
|
|
|
dma_map_resource)
|
|
#
|
|
# Determine if the dma_map_resource() function is present.
|
|
#
|
|
# Added by commit 6f3d87968f9c ("dma-mapping: add
|
|
# dma_{map,unmap}_resource") in v4.9 (2016-08-10)
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_map_resource(void) {
|
|
dma_map_resource();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_MAP_RESOURCE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
write_cr4)
|
|
#
|
|
# Determine if the write_cr4() function is present.
|
|
#
|
|
CODE="
|
|
#include <asm/processor.h>
|
|
void conftest_write_cr4(void) {
|
|
write_cr4();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_WRITE_CR4_PRESENT" "" "functions"
|
|
;;
|
|
|
|
nvhost_dma_fence_unpack)
|
|
#
|
|
# Determine if the nvhost_dma_fence_unpack function is present.
|
|
# This is only present in NVIDIA Tegra downstream kernels.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_NVHOST_H_PRESENT)
|
|
#include <linux/nvhost.h>
|
|
#endif
|
|
void conftest_nvhost_dma_fence_unpack(void) {
|
|
nvhost_dma_fence_unpack();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NVHOST_DMA_FENCE_UNPACK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_get_property)
|
|
#
|
|
# Determine if the of_get_property function is present.
|
|
#
|
|
# Support for kernels without CONFIG_OF defined added by commit
|
|
# 89272b8c0d42 ("dt: add empty of_get_property for non-dt") in v3.1
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not and
|
|
# define/undefine NV_LINUX_OF_H_USABLE depending upon status of inclusion
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_get_property() {
|
|
of_get_property();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_GET_PROPERTY_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
echo "#undef NV_OF_GET_PROPERTY_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
of_find_node_by_phandle)
|
|
#
|
|
# Determine if the of_find_node_by_phandle function is present.
|
|
#
|
|
# Support for kernels without CONFIG_OF defined added by commit
|
|
# ce16b9d23561 ("of: define of_find_node_by_phandle for
|
|
# !CONFIG_OF") in v4.2
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not and
|
|
# define/undefine NV_LINUX_OF_H_USABLE depending upon status of inclusion.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_find_node_by_phandle() {
|
|
of_find_node_by_phandle();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_FIND_NODE_BY_PHANDLE_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
echo "#undef NV_OF_FIND_NODE_BY_PHANDLE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
of_node_to_nid)
|
|
#
|
|
# Determine if of_node_to_nid is present
|
|
#
|
|
# Dummy implementation added by commit 559e2b7ee7a1
|
|
# ("of: Provide default of_node_to_nid() implementation.") in v2.6.36
|
|
#
|
|
# Real implementation added by commit 298535c00a2c
|
|
# ("of, numa: Add NUMA of binding implementation.") in v4.7
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not and
|
|
# define/undefine NV_LINUX_OF_H_USABLE depending upon status of inclusion.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
CODE="
|
|
#include <linux/version.h>
|
|
#include <linux/utsname.h>
|
|
#include <linux/of.h>
|
|
void conftest_of_node_to_nid() {
|
|
of_node_to_nid();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_NODE_TO_NID_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
echo "#undef NV_OF_NODE_TO_NID_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
pnv_pci_get_npu_dev)
|
|
#
|
|
# Determine if the pnv_pci_get_npu_dev function is present.
|
|
#
|
|
# Added by commit 5d2aa710e697 ("powerpc/powernv: Add support
|
|
# for Nvlink NPUs") in v4.5
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pnv_pci_get_npu_dev() {
|
|
pnv_pci_get_npu_dev();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PNV_PCI_GET_NPU_DEV_PRESENT" "" "functions"
|
|
;;
|
|
|
|
kernel_write)
|
|
#
|
|
# Determine if the function kernel_write() is present.
|
|
#
|
|
# First exported by commit 7bb307e894d5 ("export kernel_write(),
|
|
# convert open-coded instances") in v3.9
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/fs.h>
|
|
void conftest_kernel_write(void) {
|
|
kernel_write();
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#undef NV_KERNEL_WRITE_PRESENT" | append_conftest "function"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#define NV_KERNEL_WRITE_PRESENT" | append_conftest "function"
|
|
|
|
#
|
|
# Determine the pos argument type, which was changed by
|
|
# commit e13ec939e96b1 (fs: fix kernel_write prototype) on
|
|
# 9/1/2017.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/fs.h>
|
|
ssize_t kernel_write(struct file *file, const void *buf,
|
|
size_t count, loff_t *pos)
|
|
{
|
|
return 0;
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_KERNEL_WRITE_HAS_POINTER_POS_ARG" | append_conftest "function"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_KERNEL_WRITE_HAS_POINTER_POS_ARG" | append_conftest "function"
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
kernel_read_has_pointer_pos_arg)
|
|
#
|
|
# Determine the pos argument type, which was changed by
|
|
# commit bdd1d2d3d251c (fs: fix kernel_read prototype) on
|
|
# 9/1/2017.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/fs.h>
|
|
ssize_t kernel_read(struct file *file, void *buf, size_t count,
|
|
loff_t *pos)
|
|
{
|
|
return 0;
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_KERNEL_READ_HAS_POINTER_POS_ARG" | append_conftest "function"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_KERNEL_READ_HAS_POINTER_POS_ARG" | append_conftest "function"
|
|
fi
|
|
;;
|
|
|
|
vm_insert_pfn_prot)
|
|
#
|
|
# Determine if vm_insert_pfn_prot function is present
|
|
#
|
|
# Added by commit 1745cbc5d0de ("mm: Add vm_insert_pfn_prot()") in
|
|
# v3.16.59
|
|
#
|
|
# Removed by commit f5e6d1d5f8f3 ("mm: introduce
|
|
# vmf_insert_pfn_prot()") in v4.20.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vm_insert_pfn_prot() {
|
|
vm_insert_pfn_prot();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VM_INSERT_PFN_PROT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vmf_insert_pfn_prot)
|
|
#
|
|
# Determine if vmf_insert_pfn_prot function is present
|
|
#
|
|
# Added by commit f5e6d1d5f8f3 ("mm: introduce
|
|
# vmf_insert_pfn_prot()") in v4.20.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vmf_insert_pfn_prot() {
|
|
vmf_insert_pfn_prot();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMF_INSERT_PFN_PROT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_atomic_available)
|
|
#
|
|
# Determine if the DRM atomic modesetting subsystem is usable
|
|
#
|
|
# Added by commit 036ef5733ba4
|
|
# ("drm/atomic: Allow drivers to subclass drm_atomic_state, v3") in
|
|
# v4.2 (2018-05-18).
|
|
#
|
|
# Make conftest more robust by adding test for
|
|
# drm_atomic_set_mode_prop_for_crtc(), this function added by
|
|
# commit 955f3c334f0f ("drm/atomic: Add MODE_ID property") in v4.2
|
|
# (2015-05-25). If the DRM atomic modesetting subsystem is
|
|
# back ported to Linux kernel older than v4.2, then commit
|
|
# 955f3c334f0f must be back ported in order to get NVIDIA-DRM KMS
|
|
# support.
|
|
# Commit 72fdb40c1a4b ("drm: extract drm_atomic_uapi.c") in v4.20
|
|
# (2018-09-05), moved drm_atomic_set_mode_prop_for_crtc() function
|
|
# prototype from drm/drm_atomic.h to drm/drm_atomic_uapi.h.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_atomic.h>
|
|
#if !defined(CONFIG_DRM) && !defined(CONFIG_DRM_MODULE)
|
|
#error DRM not enabled
|
|
#endif
|
|
void conftest_drm_atomic_modeset_available(void) {
|
|
size_t a;
|
|
|
|
a = offsetof(struct drm_mode_config_funcs, atomic_state_alloc);
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#include <drm/drm_atomic.h>
|
|
#if defined(NV_DRM_DRM_ATOMIC_UAPI_H_PRESENT)
|
|
#include <drm/drm_atomic_uapi.h>
|
|
#endif
|
|
void conftest_drm_atomic_set_mode_prop_for_crtc(void) {
|
|
drm_atomic_set_mode_prop_for_crtc();
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#undef NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
else
|
|
echo "#define NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
fi
|
|
else
|
|
echo "#undef NV_DRM_ATOMIC_MODESET_AVAILABLE" | append_conftest "generic"
|
|
fi
|
|
;;
|
|
|
|
drm_bus_present)
|
|
#
|
|
# Determine if the 'struct drm_bus' type is present.
|
|
#
|
|
# Added by commit 8410ea3b95d1 ("drm: rework PCI/platform driver
|
|
# interface.") in v2.6.39 (2010-12-15)
|
|
#
|
|
# Removed by commit c5786fe5f1c5 ("drm: Goody bye, drm_bus!")
|
|
# in v3.18 (2014-08-29)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
void conftest_drm_bus_present(void) {
|
|
struct drm_bus bus;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_BUS_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_bus_has_bus_type)
|
|
#
|
|
# Determine if the 'drm_bus' structure has a 'bus_type' field.
|
|
#
|
|
# Added by commit 8410ea3b95d1 ("drm: rework PCI/platform driver
|
|
# interface.") in v2.6.39 (2010-12-15)
|
|
#
|
|
# Removed by commit 42b21049fc26 ("drm: kill drm_bus->bus_type")
|
|
# in v3.16 (2013-11-03)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_bus_has_bus_type(void) {
|
|
return offsetof(struct drm_bus, bus_type);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_BUS_HAS_BUS_TYPE" "" "types"
|
|
;;
|
|
|
|
drm_bus_has_get_irq)
|
|
#
|
|
# Determine if the 'drm_bus' structure has a 'get_irq' field.
|
|
#
|
|
# Added by commit 8410ea3b95d1 ("drm: rework PCI/platform
|
|
# driver interface.") in v2.6.39 (2010-12-15)
|
|
#
|
|
# Removed by commit b2a21aa25a39 ("drm: remove bus->get_irq
|
|
# implementations") in v3.16 (2013-11-03)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_bus_has_get_irq(void) {
|
|
return offsetof(struct drm_bus, get_irq);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_BUS_HAS_GET_IRQ" "" "types"
|
|
;;
|
|
|
|
drm_bus_has_get_name)
|
|
#
|
|
# Determine if the 'drm_bus' structure has a 'get_name' field.
|
|
#
|
|
# Added by commit 8410ea3b95d1 ("drm: rework PCI/platform driver
|
|
# interface.") in v2.6.39 (2010-12-15)
|
|
#
|
|
# removed by commit 9de1b51f1fae ("drm: remove drm_bus->get_name")
|
|
# in v3.16 (2013-11-03)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_bus_has_get_name(void) {
|
|
return offsetof(struct drm_bus, get_name);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_BUS_HAS_GET_NAME" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_device_list)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'device_list' field.
|
|
#
|
|
# Renamed from device_list to legacy_device_list by commit
|
|
# b3f2333de8e8 ("drm: restrict the device list for shadow
|
|
# attached drivers") in v3.14 (2013-12-11)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_device_list(void) {
|
|
return offsetof(struct drm_driver, device_list);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_DEVICE_LIST" "" "types"
|
|
;;
|
|
|
|
|
|
drm_driver_has_legacy_dev_list)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'legacy_dev_list' field.
|
|
#
|
|
# Renamed from device_list to legacy_device_list by commit
|
|
# b3f2333de8e8 ("drm: restrict the device list for shadow
|
|
# attached drivers") in v3.14 (2013-12-11)
|
|
#
|
|
# The commit 57bb1ee60340 ("drm: Compile out legacy chunks from
|
|
# struct drm_device") compiles out the legacy chunks like
|
|
# drm_driver::legacy_dev_list.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_legacy_dev_list(void) {
|
|
return offsetof(struct drm_driver, legacy_dev_list);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_LEGACY_DEV_LIST" "" "types"
|
|
;;
|
|
|
|
jiffies_to_timespec)
|
|
#
|
|
# Determine if jiffies_to_timespec() is present
|
|
#
|
|
# removed by commit 751addac78b6
|
|
# ("y2038: remove obsolete jiffies conversion functions")
|
|
# in v5.6-rc1 (2019-12-13).
|
|
CODE="
|
|
#include <linux/jiffies.h>
|
|
void conftest_jiffies_to_timespec(void){
|
|
jiffies_to_timespec();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_JIFFIES_TO_TIMESPEC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_init_function_args)
|
|
#
|
|
# Determine if these functions:
|
|
# drm_universal_plane_init()
|
|
# drm_crtc_init_with_planes()
|
|
# drm_encoder_init()
|
|
# have a 'name' argument, which was added by these commits:
|
|
# drm_universal_plane_init: 2015-12-09 b0b3b7951114315d65398c27648705ca1c322faa
|
|
# drm_crtc_init_with_planes: 2015-12-09 f98828769c8838f526703ef180b3088a714af2f9
|
|
# drm_encoder_init: 2015-12-09 13a3d91f17a5f7ed2acd275d18b6acfdb131fb15
|
|
#
|
|
# Additionally determine whether drm_universal_plane_init() has a
|
|
# 'format_modifiers' argument, which was added by:
|
|
# 2017-07-23 e6fc3b68558e4c6d8d160b5daf2511b99afa8814
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
|
|
int conftest_drm_crtc_init_with_planes_has_name_arg(void) {
|
|
return
|
|
drm_crtc_init_with_planes(
|
|
NULL, /* struct drm_device *dev */
|
|
NULL, /* struct drm_crtc *crtc */
|
|
NULL, /* struct drm_plane *primary */
|
|
NULL, /* struct drm_plane *cursor */
|
|
NULL, /* const struct drm_crtc_funcs *funcs */
|
|
NULL); /* const char *name */
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_INIT_WITH_PLANES_HAS_NAME_ARG" "" "types"
|
|
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_ENCODER_H_PRESENT)
|
|
#include <drm/drm_encoder.h>
|
|
#endif
|
|
|
|
int conftest_drm_encoder_init_has_name_arg(void) {
|
|
return
|
|
drm_encoder_init(
|
|
NULL, /* struct drm_device *dev */
|
|
NULL, /* struct drm_encoder *encoder */
|
|
NULL, /* const struct drm_encoder_funcs *funcs */
|
|
DRM_MODE_ENCODER_NONE, /* int encoder_type */
|
|
NULL); /* const char *name */
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ENCODER_INIT_HAS_NAME_ARG" "" "types"
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_PLANE_H_PRESENT)
|
|
#include <drm/drm_plane.h>
|
|
#endif
|
|
|
|
int conftest_drm_universal_plane_init_has_format_modifiers_arg(void) {
|
|
return
|
|
drm_universal_plane_init(
|
|
NULL, /* struct drm_device *dev */
|
|
NULL, /* struct drm_plane *plane */
|
|
0, /* unsigned long possible_crtcs */
|
|
NULL, /* const struct drm_plane_funcs *funcs */
|
|
NULL, /* const uint32_t *formats */
|
|
0, /* unsigned int format_count */
|
|
NULL, /* const uint64_t *format_modifiers */
|
|
DRM_PLANE_TYPE_PRIMARY,
|
|
NULL); /* const char *name */
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
|
|
echo "#define NV_DRM_UNIVERSAL_PLANE_INIT_HAS_FORMAT_MODIFIERS_ARG" | append_conftest "types"
|
|
echo "#define NV_DRM_UNIVERSAL_PLANE_INIT_HAS_NAME_ARG" | append_conftest "types"
|
|
else
|
|
echo "#undef NV_DRM_UNIVERSAL_PLANE_INIT_HAS_FORMAT_MODIFIERS_ARG" | append_conftest "types"
|
|
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_PLANE_H_PRESENT)
|
|
#include <drm/drm_plane.h>
|
|
#endif
|
|
|
|
int conftest_drm_universal_plane_init_has_name_arg(void) {
|
|
return
|
|
drm_universal_plane_init(
|
|
NULL, /* struct drm_device *dev */
|
|
NULL, /* struct drm_plane *plane */
|
|
0, /* unsigned long possible_crtcs */
|
|
NULL, /* const struct drm_plane_funcs *funcs */
|
|
NULL, /* const uint32_t *formats */
|
|
0, /* unsigned int format_count */
|
|
DRM_PLANE_TYPE_PRIMARY,
|
|
NULL); /* const char *name */
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_UNIVERSAL_PLANE_INIT_HAS_NAME_ARG" "" "types"
|
|
fi
|
|
;;
|
|
|
|
vzalloc)
|
|
#
|
|
# Determine if the vzalloc function is present
|
|
#
|
|
# Added by commit e1ca7788dec6 ("mm: add vzalloc() and
|
|
# vzalloc_node() helpers") in v2.6.37 (2010-10-26)
|
|
#
|
|
CODE="
|
|
#include <linux/vmalloc.h>
|
|
void conftest_vzalloc() {
|
|
vzalloc();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VZALLOC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_driver_has_set_busid)
|
|
#
|
|
# Determine if the drm_driver structure has a 'set_busid' callback
|
|
# field.
|
|
#
|
|
# Added by commit 915b4d11b8b9 ("drm: add driver->set_busid()
|
|
# callback") in v3.18 (2014-08-29)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_set_busid(void) {
|
|
return offsetof(struct drm_driver, set_busid);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_SET_BUSID" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_prime_res_obj)
|
|
#
|
|
# Determine if the drm_driver structure has a 'gem_prime_res_obj'
|
|
# callback field.
|
|
#
|
|
# Added by commit 3aac4502fd3f ("dma-buf: use reservation
|
|
# objects") in v3.17 (2014-07-01).
|
|
#
|
|
# Removed by commit 51c98747113e (drm/prime: Ditch
|
|
# gem_prime_res_obj hook) in v5.4.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_gem_prime_res_obj(void) {
|
|
return offsetof(struct drm_driver, gem_prime_res_obj);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_RES_OBJ" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_connectors_changed)
|
|
#
|
|
# Determine if the crtc_state has a 'connectors_changed' field.
|
|
#
|
|
# Added by commit fc596660dd4e ("drm/atomic: add
|
|
# connectors_changed to separate it from mode_changed, v2")
|
|
# in v4.3 (2015-07-21)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
void conftest_drm_crtc_state_has_connectors_changed(void) {
|
|
struct drm_crtc_state foo;
|
|
(void)foo.connectors_changed;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_CONNECTORS_CHANGED" "" "types"
|
|
;;
|
|
|
|
drm_reinit_primary_mode_group)
|
|
#
|
|
# Determine if the function drm_reinit_primary_mode_group() is
|
|
# present.
|
|
#
|
|
# Added by commit 2390cd11bfbe ("drm/crtc: add interface to
|
|
# reinitialise the legacy mode group") in v3.17 (2014-06-05)
|
|
#
|
|
# Removed by commit 3fdefa399e46 ("drm: gc now dead
|
|
# mode_group code") in v4.3 (2015-07-09)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
void conftest_drm_reinit_primary_mode_group(void) {
|
|
drm_reinit_primary_mode_group();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_REINIT_PRIMARY_MODE_GROUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
wait_on_bit_lock_argument_count)
|
|
#
|
|
# Determine how many arguments wait_on_bit_lock takes.
|
|
#
|
|
# Changed by commit 743162013d40 ("sched: Remove proliferation
|
|
# of wait_on_bit() action functions") in v3.17 (2014-07-07)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/wait.h>
|
|
void conftest_wait_on_bit_lock(void) {
|
|
wait_on_bit_lock(NULL, 0, 0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
return
|
|
fi
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/wait.h>
|
|
void conftest_wait_on_bit_lock(void) {
|
|
wait_on_bit_lock(NULL, 0, NULL, 0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_WAIT_ON_BIT_LOCK_ARGUMENT_COUNT 4" | append_conftest "functions"
|
|
return
|
|
fi
|
|
echo "#error wait_on_bit_lock() conftest failed!" | append_conftest "functions"
|
|
;;
|
|
|
|
bitmap_clear)
|
|
#
|
|
# Determine if the bitmap_clear function is present
|
|
#
|
|
# Added by commit c1a2a962a2ad ("bitmap: introduce bitmap_set,
|
|
# bitmap_clear, bitmap_find_next_zero_area") in v2.6.33
|
|
# (2009-12-15)
|
|
#
|
|
CODE="
|
|
#include <linux/bitmap.h>
|
|
void conftest_bitmap_clear() {
|
|
bitmap_clear();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_BITMAP_CLEAR_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_stop_and_remove_bus_device)
|
|
#
|
|
# Determine if the pci_stop_and_remove_bus_device() function is present.
|
|
#
|
|
# Added by commit 210647af897a ("PCI: Rename pci_remove_bus_device
|
|
# to pci_stop_and_remove_bus_device") in v3.4 (2012-02-25)
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <linux/pci.h>
|
|
void conftest_pci_stop_and_remove_bus_device() {
|
|
pci_stop_and_remove_bus_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_STOP_AND_REMOVE_BUS_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_remove_bus_device)
|
|
#
|
|
# Determine if the pci_remove_bus_device() function is present.
|
|
# Added before Linux-2.6.12-rc2 2005-04-16
|
|
# Because we support builds on non-PCI platforms, we still need
|
|
# to check for this function's presence.
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <linux/pci.h>
|
|
void conftest_pci_remove_bus_device() {
|
|
pci_remove_bus_device();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_REMOVE_BUS_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_helper_mode_fill_fb_struct | drm_helper_mode_fill_fb_struct_has_const_mode_cmd_arg)
|
|
#
|
|
# Determine if the drm_helper_mode_fill_fb_struct function takes
|
|
# 'dev' argument.
|
|
#
|
|
# The drm_helper_mode_fill_fb_struct() has been updated to
|
|
# take 'dev' parameter by commit a3f913ca9892 ("drm: Pass 'dev'
|
|
# to drm_helper_mode_fill_fb_struct()") in v4.11 (2016-12-14)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_crtc_helper.h>
|
|
void drm_helper_mode_fill_fb_struct(struct drm_device *dev,
|
|
struct drm_framebuffer *fb,
|
|
const struct drm_mode_fb_cmd2 *mode_cmd)
|
|
{
|
|
return;
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_DEV_ARG" | append_conftest "function"
|
|
echo "#define NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG" | append_conftest "function"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_DEV_ARG" | append_conftest "function"
|
|
|
|
#
|
|
# Determine if the drm_mode_fb_cmd2 pointer argument is const in
|
|
# drm_mode_config_funcs::fb_create and drm_helper_mode_fill_fb_struct().
|
|
#
|
|
# The drm_mode_fb_cmd2 pointer through this call chain was made
|
|
# const by commit 1eb83451ba55 ("drm: Pass the user drm_mode_fb_cmd2
|
|
# as const to .fb_create()") in v4.5 (2015-11-11)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_crtc_helper.h>
|
|
void drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
|
|
const struct drm_mode_fb_cmd2 *mode_cmd)
|
|
{
|
|
return;
|
|
}" > conftest$$.c;
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG" | append_conftest "function"
|
|
rm -f conftest$$.o
|
|
else
|
|
echo "#undef NV_DRM_HELPER_MODE_FILL_FB_STRUCT_HAS_CONST_MODE_CMD_ARG" | append_conftest "function"
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
mm_context_t)
|
|
#
|
|
# Determine if the 'mm_context_t' data type is present
|
|
# and if it has an 'id' member.
|
|
# It does not exist on all architectures.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
int conftest_mm_context_t(void) {
|
|
return offsetof(mm_context_t, id);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_MM_CONTEXT_T_HAS_ID" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_MM_CONTEXT_T_HAS_ID" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
pci_dev_has_ats_enabled)
|
|
#
|
|
# Determine if the 'pci_dev' data type has a 'ats_enabled' member.
|
|
#
|
|
# Added by commit d544d75ac96aa ("PCI: Embed ATS info directly
|
|
# into struct pci_dev") in v4.3-rc1 (2015-08-14)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
int conftest_pci_dev_ats_enabled_t(void) {
|
|
return ((struct pci_dev *)0)->ats_enabled;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_DEV_HAS_ATS_ENABLED" "" "types"
|
|
;;
|
|
|
|
mt_device_gre)
|
|
#
|
|
# Determine if MT_DEVICE_GRE flag is present.
|
|
#
|
|
# MT_DEVICE_GRE flag is removed by commit 58cc6b72a21274
|
|
# ("arm64: mm: Remove unused support for Device-GRE memory type") in v5.14-rc1
|
|
# (2021-06-01).
|
|
#
|
|
CODE="
|
|
#include <asm/memory.h>
|
|
unsigned int conftest_mt_device_gre(void) {
|
|
return MT_DEVICE_GRE;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MT_DEVICE_GRE_PRESENT" "" "types"
|
|
;;
|
|
|
|
get_user_pages)
|
|
#
|
|
# Conftest for get_user_pages()
|
|
#
|
|
# Use long type for get_user_pages and unsigned long for nr_pages
|
|
# by commit 28a35716d317 ("mm: use long type for page counts
|
|
# in mm_populate() and get_user_pages()") in v3.9 (2013-02-22)
|
|
#
|
|
# Removed struct task_struct *tsk & struct mm_struct *mm from
|
|
# get_user_pages by commit cde70140fed8 ("mm/gup: Overload
|
|
# get_user_pages() functions") in v4.6 (2016-02-12)
|
|
#
|
|
# Replaced get_user_pages6 with get_user_pages by commit
|
|
# c12d2da56d0e ("mm/gup: Remove the macro overload API migration
|
|
# helpers from the get_user*() APIs") in v4.6 (2016-04-04)
|
|
#
|
|
# Replaced write and force parameters with gup_flags by
|
|
# commit 768ae309a961 ("mm: replace get_user_pages() write/force
|
|
# parameters with gup_flags") in v4.9 (2016-10-13)
|
|
#
|
|
# linux-4.4.168 cherry-picked commit 768ae309a961 without
|
|
# c12d2da56d0e which is covered in Conftest #3.
|
|
#
|
|
|
|
#
|
|
# This function sets the NV_GET_USER_PAGES_* macros as per the below
|
|
# passing conftest's
|
|
#
|
|
set_get_user_pages_defines () {
|
|
if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" ]; then
|
|
echo "#define NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" ]; then
|
|
echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" ]; then
|
|
echo "#define NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_HAS_ARGS_FLAGS" ]; then
|
|
echo "#define NV_GET_USER_PAGES_HAS_ARGS_FLAGS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_HAS_ARGS_FLAGS" | append_conftest "functions"
|
|
fi
|
|
}
|
|
|
|
# Conftest #1: Check if get_user_pages accepts 6 arguments.
|
|
# Return if true.
|
|
# Fall through to conftest #2 on failure.
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages(unsigned long start,
|
|
unsigned long nr_pages,
|
|
int write,
|
|
int force,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_WRITE_FORCE"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# Conftest #2: Check if get_user_pages has gup_flags instead of
|
|
# write and force parameters. And that gup doesn't accept a
|
|
# task_struct and mm_struct as its first arguments.
|
|
# Return if available.
|
|
# Fall through to conftest #3 on failure.
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages(unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_FLAGS"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# Conftest #3: Check if get_user_pages has gup_flags instead of
|
|
# write and force parameters AND that gup has task_struct and
|
|
# mm_struct as its first arguments.
|
|
# Return if available.
|
|
# Fall through to default case if absent.
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_FLAGS"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
set_get_user_pages_defines "NV_GET_USER_PAGES_HAS_ARGS_TSK_WRITE_FORCE"
|
|
|
|
return
|
|
;;
|
|
|
|
get_user_pages_remote)
|
|
#
|
|
# Determine if the function get_user_pages_remote() is
|
|
# present and has write/force/locked/tsk parameters.
|
|
#
|
|
# get_user_pages_remote() was added by commit 1e9877902dc7
|
|
# ("mm/gup: Introduce get_user_pages_remote()") in v4.6 (2016-02-12)
|
|
#
|
|
# get_user_pages[_remote]() write/force parameters
|
|
# replaced with gup_flags by commits 768ae309a961 ("mm: replace
|
|
# get_user_pages() write/force parameters with gup_flags") and
|
|
# commit 9beae1ea8930 ("mm: replace get_user_pages_remote()
|
|
# write/force parameters with gup_flags") in v4.9 (2016-10-13)
|
|
#
|
|
# get_user_pages_remote() added 'locked' parameter by
|
|
# commit 5b56d49fc31d ("mm: add locked parameter to
|
|
# get_user_pages_remote()") in v4.10 (2016-12-14)
|
|
#
|
|
# get_user_pages_remote() removed 'tsk' parameter by
|
|
# commit 64019a2e467a ("mm/gup: remove task_struct pointer for
|
|
# all gup code") in v5.9-rc1 (2020-08-11).
|
|
#
|
|
|
|
#
|
|
# This function sets the NV_GET_USER_PAGES_REMOTE_* macros as per
|
|
# the below passing conftest's
|
|
#
|
|
set_get_user_pages_remote_defines () {
|
|
if [ "$1" = "" ]; then
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" ]; then
|
|
echo "#define NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED" | append_conftest "functions"
|
|
fi
|
|
}
|
|
|
|
# conftest #1: check if get_user_pages_remote() is available
|
|
# return if not available.
|
|
# Fall through to conftest #2 if it is present
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
void conftest_get_user_pages_remote(void) {
|
|
get_user_pages_remote();
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines ""
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
#
|
|
# conftest #2: check if get_user_pages_remote() has write and
|
|
# force arguments. Return if these arguments are present
|
|
# Fall through to conftest #3 if these args are absent.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
int write,
|
|
int force,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_WRITE_FORCE"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
#
|
|
# conftest #3: check if get_user_pages_remote() has gpu_flags
|
|
# arguments. Return if these arguments are present
|
|
# Fall through to conftest #4 if these args are absent.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gpu_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
#
|
|
# conftest #4: check if get_user_pages_remote() has locked argument
|
|
# Return if these arguments are present. Fall through to conftest #5
|
|
# if these args are absent.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_TSK_FLAGS_LOCKED"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
#
|
|
# conftest #5: check if get_user_pages_remote() does not take
|
|
# tsk argument.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long get_user_pages_remote(struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_get_user_pages_remote_defines "NV_GET_USER_PAGES_REMOTE_HAS_ARGS_FLAGS_LOCKED"
|
|
rm -f conftest$$.o
|
|
fi
|
|
;;
|
|
|
|
pin_user_pages)
|
|
#
|
|
# Determine if the function pin_user_pages() is present.
|
|
# Presence of pin_user_pages() also implies the presence of
|
|
# unpin-user_page(). Both were added in the v5.6-rc1
|
|
#
|
|
# pin_user_pages() was added by commit eddb1c228f7951d399240
|
|
# ("mm/gup: introduce pin_user_pages*() and FOLL_PIN") in
|
|
# v5.6-rc1 (2020-01-30)
|
|
|
|
# conftest #1: check if pin_user_pages() is available
|
|
# return if not available.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_pin_user_pages(void) {
|
|
pin_user_pages();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PIN_USER_PAGES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pin_user_pages_remote)
|
|
# Determine if the function pin_user_pages_remote() is present
|
|
#
|
|
# pin_user_pages_remote() was added by commit eddb1c228f7951d399240
|
|
# ("mm/gup: introduce pin_user_pages*() and FOLL_PIN")
|
|
# in v5.6 (2020-01-30)
|
|
|
|
# pin_user_pages_remote() removed 'tsk' parameter by
|
|
# commit 64019a2e467a ("mm/gup: remove task_struct pointer for
|
|
# all gup code") in v5.9-rc1 (2020-08-11).
|
|
|
|
#
|
|
# This function sets the NV_PIN_USER_PAGES_REMOTE_* macros as per
|
|
# the below passing conftest's
|
|
#
|
|
set_pin_user_pages_remote_defines () {
|
|
if [ "$1" = "" ]; then
|
|
echo "#undef NV_PIN_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_PIN_USER_PAGES_REMOTE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
|
|
if [ "$1" = "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK" ]; then
|
|
echo "#define NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK" | append_conftest "functions"
|
|
else
|
|
echo "#undef NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK" | append_conftest "functions"
|
|
fi
|
|
}
|
|
|
|
# conftest #1: check if pin_user_pages_remote() is available
|
|
# return if not available.
|
|
# Fall through to conftest #2 if it is present
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
void conftest_pin_user_pages_remote(void) {
|
|
pin_user_pages_remote();
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_remote_defines ""
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
# conftest #2: Check if pin_user_pages_remote() has tsk argument
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/mm.h>
|
|
long pin_user_pages_remote(struct task_struct *tsk,
|
|
struct mm_struct *mm,
|
|
unsigned long start,
|
|
unsigned long nr_pages,
|
|
unsigned int gup_flags,
|
|
struct page **pages,
|
|
struct vm_area_struct **vmas,
|
|
int *locked) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
set_pin_user_pages_remote_defines "NV_PIN_USER_PAGES_REMOTE_HAS_ARGS_TSK"
|
|
rm -f conftest$$.o
|
|
else
|
|
set_pin_user_pages_remote_defines "NV_PIN_USER_PAGES_REMOTE_PRESENT"
|
|
fi
|
|
;;
|
|
|
|
usleep_range)
|
|
#
|
|
# Determine if the function usleep_range() is present.
|
|
#
|
|
# Added by commit 5e7f5a178bba ("timer: Added usleep_range timer")
|
|
# in v2.6.36 (2010-08-04)
|
|
#
|
|
CODE="
|
|
#include <linux/delay.h>
|
|
void conftest_usleep_range(void) {
|
|
usleep_range();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_USLEEP_RANGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
radix_tree_empty)
|
|
#
|
|
# Determine if the function radix_tree_empty() is present.
|
|
#
|
|
# Added by commit e9256efcc8e3 ("radix-tree: introduce
|
|
# radix_tree_empty") in v4.7 (2016-05-20)
|
|
#
|
|
CODE="
|
|
#include <linux/radix-tree.h>
|
|
int conftest_radix_tree_empty(void) {
|
|
radix_tree_empty();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_RADIX_TREE_EMPTY_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_gem_object_lookup)
|
|
#
|
|
# Determine the number of arguments of drm_gem_object_lookup().
|
|
#
|
|
# First argument of type drm_device removed by commit
|
|
# a8ad0bd84f98 ("drm: Remove unused drm_device from
|
|
# drm_gem_object_lookup()") in v4.7 (2016-05-09)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
|
#include <drm/drm_gem.h>
|
|
#endif
|
|
void conftest_drm_gem_object_lookup(void) {
|
|
drm_gem_object_lookup(NULL, NULL, 0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DRM_GEM_OBJECT_LOOKUP_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#define NV_DRM_GEM_OBJECT_LOOKUP_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
drm_master_drop_has_from_release_arg)
|
|
#
|
|
# Determine if drm_driver::master_drop() has 'from_release' argument.
|
|
#
|
|
# Last argument 'bool from_release' has been removed by commit
|
|
# d6ed682eba54 ("drm: Refactor drop/set master code a bit")
|
|
# in v4.8 (2016-06-21)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
void conftest_drm_master_drop_has_from_release_arg(struct drm_driver *drv) {
|
|
drv->master_drop(NULL, NULL, false);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_MASTER_DROP_HAS_FROM_RELEASE_ARG" "" "types"
|
|
;;
|
|
|
|
drm_atomic_state_ref_counting)
|
|
#
|
|
# Determine if functions drm_atomic_state_get/put() are
|
|
# present.
|
|
#
|
|
# Added by commit 0853695c3ba4 ("drm: Add reference counting to
|
|
# drm_atomic_state") in v4.10 (2016-10-14)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_ATOMIC_H_PRESENT)
|
|
#include <drm/drm_atomic.h>
|
|
#endif
|
|
void conftest_drm_atomic_state_get(void) {
|
|
drm_atomic_state_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_STATE_REF_COUNTING_PRESENT" "" "functions"
|
|
;;
|
|
|
|
vm_ops_fault_removed_vma_arg)
|
|
#
|
|
# Determine if vma.vm_ops.fault takes (vma, vmf), or just (vmf)
|
|
# args. Acronym key:
|
|
# vma: struct vm_area_struct
|
|
# vm_ops: struct vm_operations_struct
|
|
# vmf: struct vm_fault
|
|
#
|
|
# The redundant vma arg was removed from BOTH vma.vm_ops.fault and
|
|
# vma.vm_ops.page_mkwrite by commit 11bac8000449 ("mm, fs: reduce
|
|
# fault, page_mkwrite, and pfn_mkwrite to take only vmf") in
|
|
# v4.11 (2017-02-24)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vm_ops_fault_removed_vma_arg(void) {
|
|
struct vm_operations_struct vm_ops;
|
|
struct vm_fault *vmf;
|
|
(void)vm_ops.fault(vmf);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VM_OPS_FAULT_REMOVED_VMA_ARG" "" "types"
|
|
;;
|
|
|
|
pnv_npu2_init_context)
|
|
#
|
|
# Determine if the pnv_npu2_init_context() function is
|
|
# present and the signature of its callback.
|
|
#
|
|
# Added by commit 1ab66d1fbada ("powerpc/powernv: Introduce
|
|
# address translation services for Nvlink2") in v4.12
|
|
# (2017-04-03).
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_ASM_POWERNV_H_PRESENT)
|
|
#include <linux/pci.h>
|
|
#include <asm/powernv.h>
|
|
#endif
|
|
void conftest_pnv_npu2_init_context(void) {
|
|
pnv_npu2_init_context();
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#undef NV_PNV_NPU2_INIT_CONTEXT_PRESENT" | append_conftest "functions"
|
|
echo "#undef NV_PNV_NPU2_INIT_CONTEXT_CALLBACK_RETURNS_VOID" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
echo "#define NV_PNV_NPU2_INIT_CONTEXT_PRESENT" | append_conftest "functions"
|
|
|
|
# Check the callback signature
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_ASM_POWERNV_H_PRESENT)
|
|
#include <linux/pci.h>
|
|
#include <asm/powernv.h>
|
|
#endif
|
|
|
|
struct npu_context *pnv_npu2_init_context(struct pci_dev *gpdev,
|
|
unsigned long flags,
|
|
void (*cb)(struct npu_context *, void *),
|
|
void *priv) {
|
|
return NULL;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_PNV_NPU2_INIT_CONTEXT_CALLBACK_RETURNS_VOID" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
fi
|
|
|
|
echo "#undef NV_PNV_NPU2_INIT_CONTEXT_CALLBACK_RETURNS_VOID" | append_conftest "functions"
|
|
;;
|
|
|
|
of_get_ibm_chip_id)
|
|
#
|
|
# Determine if the of_get_ibm_chip_id() function is present.
|
|
#
|
|
# Added by commit b130e7c04f11 ("powerpc: export
|
|
# of_get_ibm_chip_id function") in v4.2 (2015-05-07)
|
|
#
|
|
CODE="
|
|
#include <linux/version.h>
|
|
#if defined(NV_ASM_PROM_H_PRESENT)
|
|
#include <asm/prom.h>
|
|
#endif
|
|
void conftest_of_get_ibm_chip_id(void) {
|
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0)
|
|
of_get_ibm_chip_id();
|
|
#endif
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_GET_IBM_CHIP_ID_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_driver_unload_has_int_return_type)
|
|
#
|
|
# Determine if drm_driver::unload() returns integer value
|
|
#
|
|
# Changed to void by commit 11b3c20bdd15 ("drm: Change the return
|
|
# type of the unload hook to void") in v4.11 (2017-01-06)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_unload_has_int_return_type(struct drm_driver *drv) {
|
|
return drv->unload(NULL /* dev */);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_UNLOAD_HAS_INT_RETURN_TYPE" "" "types"
|
|
;;
|
|
|
|
is_export_symbol_present_*)
|
|
export_symbol_present_conftest $(echo $1 | cut -f5- -d_)
|
|
;;
|
|
|
|
is_export_symbol_gpl_*)
|
|
export_symbol_gpl_conftest $(echo $1 | cut -f5- -d_)
|
|
;;
|
|
|
|
drm_atomic_helper_crtc_destroy_state_has_crtc_arg)
|
|
#
|
|
# Determine if __drm_atomic_helper_crtc_destroy_state() has 'crtc'
|
|
# argument.
|
|
#
|
|
# 'crtc' argument removed by commit ec2dc6a0fe38 ("drm: Drop crtc
|
|
# argument from __drm_atomic_helper_crtc_destroy_state") in v4.7
|
|
# (2016-05-09)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_ATOMIC_HELPER_H_PRESENT)
|
|
#include <drm/drm_atomic_helper.h>
|
|
#endif
|
|
void conftest_drm_atomic_helper_crtc_destroy_state_has_crtc_arg(void) {
|
|
__drm_atomic_helper_crtc_destroy_state(NULL, NULL);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_CRTC_DESTROY_STATE_HAS_CRTC_ARG" "" "types"
|
|
;;
|
|
|
|
drm_atomic_helper_plane_destroy_state_has_plane_arg)
|
|
#
|
|
# Determine if __drm_atomic_helper_plane_destroy_state has
|
|
# 'plane' argument.
|
|
#
|
|
# 'plane' argument removed by commit 2f701695fd3a (drm: Drop plane
|
|
# argument from __drm_atomic_helper_plane_destroy_state") in v4.7
|
|
# (2016-05-09)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_ATOMIC_HELPER_H_PRESENT)
|
|
#include <drm/drm_atomic_helper.h>
|
|
#endif
|
|
void conftest_drm_atomic_helper_plane_destroy_state_has_plane_arg(void) {
|
|
__drm_atomic_helper_plane_destroy_state(NULL, NULL);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_PLANE_DESTROY_STATE_HAS_PLANE_ARG" "" "types"
|
|
;;
|
|
|
|
drm_atomic_helper_connector_dpms)
|
|
#
|
|
# Determine if the function drm_atomic_helper_connector_dpms() is present.
|
|
#
|
|
# Removed by commit 7d902c05b480 ("drm: Nuke
|
|
# drm_atomic_helper_connector_dpms") in v4.14 (2017-07-25)
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_ATOMIC_HELPER_H_PRESENT)
|
|
#include <drm/drm_atomic_helper.h>
|
|
#endif
|
|
void conftest_drm_atomic_helper_connector_dpms(void) {
|
|
drm_atomic_helper_connector_dpms();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_CONNECTOR_DPMS_PRESENT" "" "functions"
|
|
;;
|
|
|
|
get_backlight_device_by_name)
|
|
#
|
|
# Determine if the get_backlight_device_by_name() function is present
|
|
#
|
|
CODE="
|
|
#include <linux/backlight.h>
|
|
int conftest_get_backlight_device_by_name(void) {
|
|
return get_backlight_device_by_name();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_GET_BACKLIGHT_DEVICE_BY_NAME_PRESENT" "" "functions"
|
|
;;
|
|
|
|
timer_setup)
|
|
#
|
|
# Determine if the function timer_setup() is present.
|
|
#
|
|
# Added by commit 686fef928bba ("timer: Prepare to change timer
|
|
# callback argument type") in v4.14 (2017-09-28)
|
|
#
|
|
CODE="
|
|
#include <linux/timer.h>
|
|
int conftest_timer_setup(void) {
|
|
return timer_setup();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_TIMER_SETUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
radix_tree_replace_slot)
|
|
#
|
|
# Determine if the radix_tree_replace_slot() function is
|
|
# present and how many arguments it takes.
|
|
#
|
|
# root parameter added to radix_tree_replace_slot (but the symbol
|
|
# was not exported) by commit 6d75f366b924 ("lib: radix-tree:
|
|
# check accounting of existing slot replacement users") in v4.10
|
|
# (2016-12-12)
|
|
#
|
|
# radix_tree_replace_slot symbol export added by commit
|
|
# 10257d719686 ("EXPORT_SYMBOL radix_tree_replace_slot") in v4.11
|
|
# (2017-01-11)
|
|
#
|
|
CODE="
|
|
#include <linux/radix-tree.h>
|
|
#include <linux/version.h>
|
|
void conftest_radix_tree_replace_slot(void) {
|
|
#if (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)) || (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0))
|
|
radix_tree_replace_slot();
|
|
#endif
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_RADIX_TREE_REPLACE_SLOT_PRESENT" "" "functions"
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/radix-tree.h>
|
|
void conftest_radix_tree_replace_slot(void) {
|
|
radix_tree_replace_slot(NULL, NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
return
|
|
fi
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/radix-tree.h>
|
|
void conftest_radix_tree_replace_slot(void) {
|
|
radix_tree_replace_slot(NULL, NULL, NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_RADIX_TREE_REPLACE_SLOT_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
return
|
|
else
|
|
echo "#error radix_tree_replace_slot() conftest failed!" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
kthread_create_on_node)
|
|
#
|
|
# Determine if kthread_create_on_node is available
|
|
#
|
|
# kthread_create_on_node was added in by commit 207205a2ba26
|
|
# ("kthread: NUMA aware kthread_create_on_node()") in v2.6.39
|
|
# (2011-03-22).
|
|
#
|
|
CODE="
|
|
#include <linux/kthread.h>
|
|
void kthread_create_on_node_conftest(void) {
|
|
(void)kthread_create_on_node();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_KTHREAD_CREATE_ON_NODE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
cpumask_of_node)
|
|
#
|
|
# Determine whether cpumask_of_node is available.
|
|
#
|
|
# ARM support for cpumask_of_node() lagged until commit 1a2db300348b
|
|
# ("arm64, numa: Add NUMA support for arm64 platforms.") in v4.7
|
|
# (2016-04-08)
|
|
#
|
|
CODE="
|
|
#include <asm/topology.h>
|
|
void conftest_cpumask_of_node(void) {
|
|
(void)cpumask_of_node();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CPUMASK_OF_NODE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_mode_object_find_has_file_priv_arg)
|
|
#
|
|
# Determine if drm_mode_object_find() has 'file_priv' arguments.
|
|
#
|
|
# Updated to take 'file_priv' argument by commit 418da17214ac
|
|
# ("drm: Pass struct drm_file * to __drm_mode_object_find [v2]")
|
|
# in v4.15 (2017-03-14)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_mode_object.h>
|
|
void conftest_drm_mode_object_find_has_file_priv_arg(
|
|
struct drm_device *dev,
|
|
struct drm_file *file_priv,
|
|
uint32_t id,
|
|
uint32_t type) {
|
|
(void)drm_mode_object_find(dev, file_priv, id, type);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_MODE_OBJECT_FIND_HAS_FILE_PRIV_ARG" | append_conftest "types"
|
|
;;
|
|
|
|
pci_enable_msix_range)
|
|
#
|
|
# Determine if the pci_enable_msix_range() function is present.
|
|
#
|
|
# Added by commit 302a2523c277 ("PCI/MSI: Add
|
|
# pci_enable_msi_range() and pci_enable_msix_range()") in v3.14
|
|
# (2013-12-30)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_enable_msix_range(void) {
|
|
pci_enable_msix_range();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_ENABLE_MSIX_RANGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_buf_owner)
|
|
#
|
|
# Determine if the dma_buf struct has an owner member.
|
|
#
|
|
# Added by commit 9abdffe286c1 ("dma-buf: add ref counting for
|
|
# module as exporter") in v4.2 (2015-05-05)
|
|
#
|
|
CODE="
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_owner(void) {
|
|
return offsetof(struct dma_buf, owner);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_BUF_OWNER_PRESENT" "" "types"
|
|
;;
|
|
|
|
dma_buf_export_args)
|
|
#
|
|
# Determine argument count for dma_buf_export().
|
|
#
|
|
# 4 arguments added by commit d15bd7ee445d
|
|
# ("dma-buf: Introduce dma buffer sharing mechanism")
|
|
# in v3.3 (2011-12-26)
|
|
#
|
|
# Additional argument added by commit 3aac4502fd3f
|
|
# ("dma-buf: use reservation objects") in v3.17 (2014-07-01).
|
|
#
|
|
# Parameters wrapped in a single struct dma_buf_export_info by commit:
|
|
# d8fbe341beb6("dma-buf: cleanup dma_buf_export() to make it easily extensible")
|
|
# in v4.1 (2015-01-23).
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
struct dma_buf* conftest_dma_buf_export(void) {
|
|
return dma_buf_export(NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DMA_BUF_EXPORT_ARGUMENT_COUNT 1" | append_conftest "functions"
|
|
return
|
|
fi
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
struct dma_buf* conftest_dma_buf_export(void) {
|
|
return dma_buf_export(NULL, NULL, 0, 0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DMA_BUF_EXPORT_ARGUMENT_COUNT 4" | append_conftest "functions"
|
|
return
|
|
fi
|
|
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
struct dma_buf* conftest_dma_buf_export(void) {
|
|
return dma_buf_export(NULL, NULL, 0, 0, NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DMA_BUF_EXPORT_ARGUMENT_COUNT 5" | append_conftest "functions"
|
|
return
|
|
fi
|
|
echo "#error dma_buf_export() conftest failed!" | append_conftest "functions"
|
|
;;
|
|
|
|
dma_buf_ops_has_kmap)
|
|
#
|
|
# Determine if .kmap exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit fc13020e086b
|
|
# ("dma-buf: add support for kernel cpu access") in v3.4 (2012-03-20)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_kmap(void) {
|
|
return offsetof(struct dma_buf_ops, kmap);
|
|
}
|
|
int conftest_dma_buf_ops_has_kunmap(void) {
|
|
return offsetof(struct dma_buf_ops, kunmap);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_KMAP" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_KMAP" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_ops_has_kmap_atomic)
|
|
#
|
|
# Determine if .kmap_atomic exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit fc13020e086b
|
|
# ("dma-buf: add support for kernel cpu access")in v3.4 (2012-03-20)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_kmap_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, kmap_atomic);
|
|
}
|
|
int conftest_dma_buf_ops_has_kunmap_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, kunmap_atomic);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_KMAP_ATOMIC" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_KMAP_ATOMIC" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_ops_has_map)
|
|
#
|
|
# Determine if .map exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit f9b67f0014cb
|
|
# ("dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro")
|
|
# in v4.12 (2017-04-19)
|
|
#
|
|
# Removed as a mandatory callback by commit f82aab2d521e
|
|
# ("dma-buf: Remove requirement for ops->map() from dma_buf_export")
|
|
# in v4.20 (2018-08-07)
|
|
#
|
|
# Completely removed from dma-buf by commit 4337ebbbbda3
|
|
# ("dma-buf: Remove kernel map/unmap hooks") in v5.6 (2019-11-18)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_map(void) {
|
|
return offsetof(struct dma_buf_ops, map);
|
|
}
|
|
int conftest_dma_buf_ops_has_unmap(void) {
|
|
return offsetof(struct dma_buf_ops, unmap);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_MAP" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_MAP" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_ops_has_map_atomic)
|
|
#
|
|
# Determine if map_atomic/unmap_atomic exists in dma_buf_ops.
|
|
# In some kernels, this is a mandatory callback.
|
|
#
|
|
# Added by commit f9b67f0014cb
|
|
# ("dma-buf: Rename dma-ops to prevent conflict with kunmap_atomic macro")
|
|
# in v4.12 (2017-04-19)
|
|
#
|
|
# Removed by commit f664a5269542
|
|
# ("dma-buf: remove kmap_atomic interface") in v4.19 (2018-05-28)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_ops_has_map_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, map_atomic);
|
|
}
|
|
int conftest_dma_buf_ops_has_unmap_atomic(void) {
|
|
return offsetof(struct dma_buf_ops, unmap_atomic);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_OPS_HAS_MAP_ATOMIC" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_OPS_HAS_MAP_ATOMIC" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_has_dynamic_attachment)
|
|
#
|
|
# Determine if the function dma_buf_attachment_is_dynamic()
|
|
# is present.
|
|
#
|
|
# Added by commit: 15fd552d186c
|
|
# ("dma-buf: change DMA-buf locking convention v3") in v5.5 (2018-07-03)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
bool conftest_dma_buf_attachment_is_dynamic(void) {
|
|
return dma_buf_attachment_is_dynamic(NULL);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT" | append_conftest "functions"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
dma_buf_attachment_has_peer2peer)
|
|
#
|
|
# Determine if peer2peer is present in struct dma_buf_attachment.
|
|
# peer2peer being true indicates that a dma-buf importer is able
|
|
# to handle peer resources not backed by struct page.
|
|
#
|
|
# Added by commit: 09606b5446c2
|
|
# ("dma-buf: add peer2peer flag") in v5.8 (2018-03-22)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/dma-buf.h>
|
|
int conftest_dma_buf_peer2peer(void) {
|
|
return offsetof(struct dma_buf_attachment, peer2peer);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER" | append_conftest "types"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#undef NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER" | append_conftest "types"
|
|
return
|
|
fi
|
|
;;
|
|
|
|
drm_connector_funcs_have_mode_in_name)
|
|
#
|
|
# Determine if _mode_ is present in connector function names. We
|
|
# only test drm_mode_connector_attach_encoder() and assume the
|
|
# other functions are changed in sync.
|
|
#
|
|
# drm_mode_connector_attach_encoder() was renamed to
|
|
# drm_connector_attach_encoder() by commit cde4c44d8769 ("drm:
|
|
# drop _mode_ from drm_mode_connector_attach_encoder") in v4.19
|
|
# (2018-07-09)
|
|
#
|
|
# drm_mode_connector_update_edid_property() was renamed by commit
|
|
# c555f02371c3 ("drm: drop _mode_ from update_edit_property()")
|
|
# in v4.19 (2018-07-09).
|
|
#
|
|
# The other DRM functions were renamed by commit 97e14fbeb53f
|
|
# ("drm: drop _mode_ from remaining connector functions") in v4.19
|
|
# (2018-07-09)
|
|
#
|
|
# Note that drm_connector.h by introduced by commit 522171951761
|
|
# ("drm: Extract drm_connector.[hc]") in v4.9 (2016-08-12)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_connector.h>
|
|
void conftest_drm_connector_funcs_have_mode_in_name(void) {
|
|
drm_mode_connector_attach_encoder();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_FUNCS_HAVE_MODE_IN_NAME" "" "functions"
|
|
;;
|
|
|
|
|
|
node_states_n_memory)
|
|
#
|
|
# Determine if the N_MEMORY constant exists.
|
|
#
|
|
# Added by commit 8219fc48adb3 ("mm: node_states: introduce
|
|
# N_MEMORY") in v3.8 (2012-12-12).
|
|
#
|
|
CODE="
|
|
#include <linux/nodemask.h>
|
|
int conftest_node_states_n_memory(void) {
|
|
return N_MEMORY;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NODE_STATES_N_MEMORY_PRESENT" "" "types"
|
|
;;
|
|
|
|
vm_fault_t)
|
|
#
|
|
# Determine if vm_fault_t is present
|
|
#
|
|
# Added by commit 1c8f422059ae5da07db7406ab916203f9417e396 ("mm:
|
|
# change return type to vm_fault_t") in v4.17 (2018-04-05)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
vm_fault_t conftest_vm_fault_t;
|
|
"
|
|
compile_check_conftest "$CODE" "NV_VM_FAULT_T_IS_PRESENT" "" "types"
|
|
;;
|
|
|
|
vmf_insert_pfn)
|
|
#
|
|
# Determine if the function vmf_insert_pfn() is
|
|
# present.
|
|
#
|
|
# Added by commit 1c8f422059ae5da07db7406ab916203f9417e396 ("mm:
|
|
# change return type to vm_fault_t") in v4.17 (2018-04-05)
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_vmf_insert_pfn(void) {
|
|
vmf_insert_pfn();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMF_INSERT_PFN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_framebuffer_get)
|
|
#
|
|
# Determine if the function drm_framebuffer_get() is present.
|
|
#
|
|
# Added by commit a4a69da06bc1 ("drm: Introduce
|
|
# drm_framebuffer_{get,put}()") in v4.12 (2017-02-28).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_FRAMEBUFFER_H_PRESENT)
|
|
#include <drm/drm_framebuffer.h>
|
|
#endif
|
|
|
|
void conftest_drm_framebuffer_get(void) {
|
|
drm_framebuffer_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FRAMEBUFFER_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_gem_object_get)
|
|
#
|
|
# Determine if the function drm_gem_object_get() is present.
|
|
#
|
|
# Added by commit e6b62714e87c ("drm: Introduce
|
|
# drm_gem_object_{get,put}()") in v4.12 (2017-02-28).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
|
#include <drm/drm_gem.h>
|
|
#endif
|
|
void conftest_drm_gem_object_get(void) {
|
|
drm_gem_object_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_dev_put)
|
|
#
|
|
# Determine if the function drm_dev_put() is present.
|
|
#
|
|
# Added by commit 9a96f55034e4 ("drm: introduce drm_dev_{get/put}
|
|
# functions") in v4.15 (2017-09-26).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
void conftest_drm_dev_put(void) {
|
|
drm_dev_put();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DEV_PUT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_connector_list_iter)
|
|
#
|
|
# Determine if the drm_connector_list_iter struct is present.
|
|
#
|
|
# Added by commit 613051dac40da1751ab269572766d3348d45a197 ("drm:
|
|
# locking&new iterators for connector_list") in v4.11 (2016-12-14).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_connector.h>
|
|
int conftest_drm_connector_list_iter(void) {
|
|
struct drm_connector_list_iter conn_iter;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_LIST_ITER_PRESENT" "" "types"
|
|
|
|
#
|
|
# Determine if the function drm_connector_list_iter_get() is
|
|
# renamed to drm_connector_list_iter_begin().
|
|
#
|
|
# Renamed by b982dab1e66d2b998e80a97acb6eaf56518988d3 (drm: Rename
|
|
# connector list iterator API) in v4.12 (2017-02-28).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_CONNECTOR_H_PRESENT)
|
|
#include <drm/drm_connector.h>
|
|
#endif
|
|
void conftest_drm_connector_list_iter_begin(void) {
|
|
drm_connector_list_iter_begin();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_LIST_ITER_BEGIN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_atomic_helper_swap_state_has_stall_arg)
|
|
#
|
|
# Determine if drm_atomic_helper_swap_state() has 'stall' argument.
|
|
#
|
|
# drm_atomic_helper_swap_state() function prototype updated to take
|
|
# 'state' and 'stall' arguments by commit
|
|
# 5e84c2690b805caeff3b4c6c9564c7b8de54742d (drm/atomic-helper:
|
|
# Massage swap_state signature somewhat)
|
|
# in v4.8 (2016-06-10).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_atomic_helper.h>
|
|
void conftest_drm_atomic_helper_swap_state_has_stall_arg(
|
|
struct drm_atomic_state *state,
|
|
bool stall) {
|
|
(void)drm_atomic_helper_swap_state(state, stall);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_SWAP_STATE_HAS_STALL_ARG" | append_conftest "types"
|
|
|
|
#
|
|
# Determine if drm_atomic_helper_swap_state() returns int.
|
|
#
|
|
# drm_atomic_helper_swap_state() function prototype
|
|
# updated to return int by commit
|
|
# c066d2310ae9bbc695c06e9237f6ea741ec35e43 (drm/atomic: Change
|
|
# drm_atomic_helper_swap_state to return an error.) in v4.14
|
|
# (2017-07-11).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_atomic_helper.h>
|
|
int conftest_drm_atomic_helper_swap_state_return_int(
|
|
struct drm_atomic_state *state,
|
|
bool stall) {
|
|
return drm_atomic_helper_swap_state(state, stall);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ATOMIC_HELPER_SWAP_STATE_RETURN_INT" | append_conftest "types"
|
|
;;
|
|
|
|
pm_runtime_available)
|
|
#
|
|
# Determine if struct dev_pm_info has the 'usage_count' field.
|
|
#
|
|
# This was added to the kernel in commit 5e928f77a09a0 in v2.6.32
|
|
# (2008-08-18), but originally were dependent on CONFIG_PM_RUNTIME,
|
|
# which was folded into the more generic CONFIG_PM in commit
|
|
# d30d819dc8310 in v3.19 (2014-11-27).
|
|
# Rather than attempt to select the appropriate CONFIG option,
|
|
# simply check if this member is present.
|
|
#
|
|
CODE="
|
|
#include <linux/pm.h>
|
|
void pm_runtime_conftest(void) {
|
|
struct dev_pm_info dpmi;
|
|
atomic_set(&dpmi.usage_count, 1);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PM_RUNTIME_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
device_driver_of_match_table)
|
|
#
|
|
# Determine if the device_driver struct has an of_match_table member.
|
|
#
|
|
# of_match_table was added by commit 597b9d1e44e9 ("drivercore:
|
|
# Add of_match_table to the common device drivers") in v2.6.35
|
|
# (2010-04-13).
|
|
#
|
|
CODE="
|
|
#include <linux/device.h>
|
|
int conftest_device_driver_of_match_table(void) {
|
|
return offsetof(struct device_driver, of_match_table);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEVICE_DRIVER_OF_MATCH_TABLE_PRESENT" "" "types"
|
|
;;
|
|
|
|
device_of_node)
|
|
#
|
|
# Determine if the device struct has an of_node member.
|
|
#
|
|
# of_node member was added by commit d706c1b05027 ("driver-core:
|
|
# Add device node pointer to struct device") in v2.6.35
|
|
# (2010-04-13).
|
|
#
|
|
CODE="
|
|
#include <linux/device.h>
|
|
int conftest_device_of_node(void) {
|
|
return offsetof(struct device, of_node);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEVICE_OF_NODE_PRESENT" "" "types"
|
|
;;
|
|
|
|
dev_is_pci)
|
|
#
|
|
# Determine if the dev_is_pci() macro is present.
|
|
#
|
|
# dev_is_pci() macro was added by commit fb8a0d9d1bfd ("pci: Add
|
|
# SR-IOV convenience functions and macros") in v2.6.34
|
|
# (2010-02-10).
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_dev_is_pci(void) {
|
|
if(dev_is_pci()) {}
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEV_IS_PCI_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_find_matching_node)
|
|
#
|
|
# Determine if the of_find_matching_node() function is present.
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not and
|
|
# define/undefine NV_LINUX_OF_H_USABLE depending upon status of inclusion.
|
|
#
|
|
# of_find_matching_node was added by commit 283029d16a88
|
|
# ("[POWERPC] Add of_find_matching_node() helper function") in
|
|
# v2.6.25 (2008-01-09).
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_find_matching_node() {
|
|
of_find_matching_node();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_FIND_MATCHING_NODE_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_LINUX_OF_H_USABLE" | append_conftest "generic"
|
|
echo "#undef NV_OF_FIND_MATCHING_NODE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
dma_direct_map_resource)
|
|
#
|
|
# Determine whether dma_is_direct() exists.
|
|
#
|
|
# dma_is_direct() was added by commit 356da6d0cde3 ("dma-mapping:
|
|
# bypass indirect calls for dma-direct") in 5.1 (2018-12-06).
|
|
#
|
|
# If dma_is_direct() does exist, then we assume that
|
|
# dma_direct_map_resource() exists. Both functions were added
|
|
# as part of the same patchset.
|
|
#
|
|
# The presence of dma_is_direct() and dma_direct_map_resource()
|
|
# means that dma_direct can perform DMA mappings itself.
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_is_direct(void) {
|
|
dma_is_direct();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_IS_DIRECT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
tegra_get_platform)
|
|
#
|
|
# Determine if tegra_get_platform() function is present
|
|
#
|
|
CODE="
|
|
#if defined NV_SOC_TEGRA_CHIP_ID_H_PRESENT
|
|
#include <soc/tegra/chip-id.h>
|
|
#elif defined(NV_SOC_TEGRA_FUSE_H_PRESENT)
|
|
#include <soc/tegra/fuse.h>
|
|
#endif
|
|
void conftest_tegra_get_platform(void) {
|
|
tegra_get_platform(0);
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_TEGRA_GET_PLATFORM_PRESENT" "" "functions"
|
|
;;
|
|
|
|
tegra_bpmp_send_receive)
|
|
#
|
|
# Determine if tegra_bpmp_send_receive() function is present
|
|
#
|
|
CODE="
|
|
#if defined NV_SOC_TEGRA_TEGRA_BPMP_H_PRESENT
|
|
#include <soc/tegra/tegra_bpmp.h>
|
|
#endif
|
|
int conftest_tegra_bpmp_send_receive(
|
|
int mrq,
|
|
void *ob_data,
|
|
int ob_sz,
|
|
void *ib_data,
|
|
int ib_sz) {
|
|
return tegra_bpmp_send_receive(mrq, ob_data, ob_sz, ib_data, ib_sz);
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_TEGRA_BPMP_SEND_RECEIVE" "" "functions"
|
|
;;
|
|
|
|
drm_alpha_blending_available)
|
|
#
|
|
# Determine if the DRM subsystem supports alpha blending
|
|
#
|
|
# This conftest using "generic" rather than "functions" because
|
|
# with the logic of "functions" the presence of
|
|
# *either*_alpha_property or _blend_mode_property would be enough
|
|
# to cause NV_DRM_ALPHA_BLENDING_AVAILABLE to be defined.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_BLEND_H_PRESENT)
|
|
#include <drm/drm_blend.h>
|
|
#endif
|
|
void conftest_drm_alpha_blending_available(void) {
|
|
/* 2018-04-11 ae0e28265e216dad11d4cbde42fc15e92919af78 */
|
|
(void)drm_plane_create_alpha_property;
|
|
|
|
/* 2018-08-23 a5ec8332d4280500544e316f76c04a7adc02ce03 */
|
|
(void)drm_plane_create_blend_mode_property;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ALPHA_BLENDING_AVAILABLE" "" "generic"
|
|
;;
|
|
|
|
drm_rotation_available)
|
|
#
|
|
# Determine if the DRM subsystem supports rotation.
|
|
#
|
|
# drm_plane_create_rotation_property() was added on 2016-09-26 by
|
|
# d138dd3c0c70979215f3184cf36f95875e37932e (drm: Add support for
|
|
# optional per-plane rotation property) in linux kernel. Presence
|
|
# of it is sufficient to say that DRM subsystem support rotation.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_BLEND_H_PRESENT)
|
|
#include <drm/drm_blend.h>
|
|
#endif
|
|
void conftest_drm_rotation_available(void) {
|
|
drm_plane_create_rotation_property();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_ROTATION_AVAILABLE" "" "functions"
|
|
;;
|
|
|
|
drm_driver_prime_flag_present)
|
|
#
|
|
# Determine whether driver feature flag DRIVER_PRIME is present.
|
|
#
|
|
# The DRIVER_PRIME flag was added by commit 3248877ea179 (drm:
|
|
# base prime/dma-buf support (v5)) in v3.4 (2011-11-25) and is
|
|
# removed by commit 0424fdaf883a (drm/prime: Actually remove
|
|
# DRIVER_PRIME everywhere) on 2019-06-17.
|
|
#
|
|
# DRIVER_PRIME definition moved from drmP.h to drm_drv.h by
|
|
# commit 85e634bce01a (drm: Extract drm_drv.h) in v4.10
|
|
# (2016-11-14).
|
|
#
|
|
# DRIVER_PRIME define is changed to enum value by commit
|
|
# 0e2a933b02c9 (drm: Switch DRIVER_ flags to an enum) in v5.1
|
|
# (2019-01-29).
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
unsigned int drm_driver_prime_flag_present_conftest(void) {
|
|
return DRIVER_PRIME;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_PRIME_FLAG_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_connector_for_each_possible_encoder)
|
|
#
|
|
# Determine the number of arguments of the
|
|
# drm_connector_for_each_possible_encoder() macro.
|
|
#
|
|
# drm_connector_for_each_possible_encoder() is added by commit
|
|
# 83aefbb887b5 (drm: Add drm_connector_for_each_possible_encoder())
|
|
# in v4.19. The definition and prorotype is changed to take only
|
|
# two arguments connector and encoder, by commit 62afb4ad425a
|
|
# (drm/connector: Allow max possible encoders to attach to a
|
|
# connector) in v5.5rc1.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_CONNECTOR_H_PRESENT)
|
|
#include <drm/drm_connector.h>
|
|
#endif
|
|
|
|
void conftest_drm_connector_for_each_possible_encoder(
|
|
struct drm_connector *connector,
|
|
struct drm_encoder *encoder,
|
|
int i) {
|
|
|
|
drm_connector_for_each_possible_encoder(connector, encoder, i) {
|
|
}
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
echo "#define NV_DRM_CONNECTOR_FOR_EACH_POSSIBLE_ENCODER_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
rm -f conftest$$.o
|
|
return
|
|
else
|
|
echo "#define NV_DRM_CONNECTOR_FOR_EACH_POSSIBLE_ENCODER_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
mmu_notifier_ops_invalidate_range)
|
|
#
|
|
# Determine if the mmu_notifier_ops struct has the
|
|
# 'invalidate_range' member.
|
|
#
|
|
# struct mmu_notifier_ops.invalidate_range was added by commit
|
|
# 0f0a327fa12cd55de5e7f8c05a70ac3d047f405e ("mmu_notifier: add the
|
|
# callback for mmu_notifier_invalidate_range()") in v3.19
|
|
# (2014-11-13).
|
|
CODE="
|
|
#include <linux/mmu_notifier.h>
|
|
int conftest_mmu_notifier_ops_invalidate_range(void) {
|
|
return offsetof(struct mmu_notifier_ops, invalidate_range);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MMU_NOTIFIER_OPS_HAS_INVALIDATE_RANGE" "" "types"
|
|
;;
|
|
|
|
drm_format_num_planes)
|
|
#
|
|
# Determine if drm_format_num_planes() function is present.
|
|
#
|
|
# The drm_format_num_planes() function was added by commit
|
|
# d0d110e09629 drm: Add drm_format_num_planes() utility function in
|
|
# v3.3 (2011-12-20). Prototype was moved from drm_crtc.h to
|
|
# drm_fourcc.h by commit ae4df11a0f53 (drm: Move format-related
|
|
# helpers to drm_fourcc.c) in v4.8 (2016-06-09).
|
|
# drm_format_num_planes() has been removed by commit 05c452c115bf
|
|
# (drm: Remove users of drm_format_num_planes) removed v5.3
|
|
# (2019-05-16).
|
|
#
|
|
CODE="
|
|
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_FOURCC_H_PRESENT)
|
|
#include <drm/drm_fourcc.h>
|
|
#endif
|
|
|
|
void conftest_drm_format_num_planes(void) {
|
|
drm_format_num_planes();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FORMAT_NUM_PLANES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_gem_object_has_resv)
|
|
#
|
|
# Determine if the 'drm_gem_object' structure has a 'resv' field.
|
|
#
|
|
# A 'resv' filed in the 'drm_gem_object' structure, is added by
|
|
# commit 1ba627148ef5 (drm: Add reservation_object to
|
|
# drm_gem_object) in v5.2.
|
|
#
|
|
CODE="$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
|
#include <drm/drm_gem.h>
|
|
#endif
|
|
|
|
int conftest_drm_gem_object_has_resv(void) {
|
|
return offsetof(struct drm_gem_object, resv);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_HAS_RESV" "" "types"
|
|
;;
|
|
|
|
proc_ops)
|
|
#
|
|
# Determine if the 'struct proc_ops' type is present.
|
|
#
|
|
# Added by commit d56c0d45f0e2 ("proc: decouple proc from VFS with
|
|
# "struct proc_ops"") in 5.6-rc1
|
|
#
|
|
CODE="
|
|
#include <linux/proc_fs.h>
|
|
|
|
struct proc_ops p_ops;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_PROC_OPS_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_async_flip)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has a 'async_flip'
|
|
# field.
|
|
#
|
|
# Commit 4d85f45c73a2 (drm/atomic: Rename crtc_state->pageflip_flags
|
|
# to async_flip) replaced 'pageflip_flags' by 'async_flip' in v5.4.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
|
|
int conftest_drm_crtc_state_has_async_flip(void) {
|
|
return offsetof(struct drm_crtc_state, async_flip);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_ASYNC_FLIP" "" "types"
|
|
;;
|
|
|
|
drm_crtc_state_has_pageflip_flags)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has a
|
|
# 'pageflip_flags' field.
|
|
#
|
|
# 'pageflip_flags' added by commit 6cbe5c466d73 (drm/atomic: Save
|
|
# flip flags in drm_crtc_state) in v4.12. Commit 4d85f45c73a2
|
|
# (drm/atomic: Rename crtc_state->pageflip_flags to async_flip)
|
|
# replaced 'pageflip_flags' by 'async_flip' in v5.4.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
|
|
int conftest_drm_crtc_state_has_pageflip_flags(void) {
|
|
return offsetof(struct drm_crtc_state, pageflip_flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_PAGEFLIP_FLAGS" "" "types"
|
|
;;
|
|
|
|
ktime_get_raw_ts64)
|
|
#
|
|
# Determine if ktime_get_raw_ts64() is present
|
|
#
|
|
# Added by commit fb7fcc96a86cf ("timekeeping: Standardize on
|
|
# ktime_get_*() naming") in 4.18 (2018-04-27)
|
|
#
|
|
CODE="
|
|
#include <linux/ktime.h>
|
|
void conftest_ktime_get_raw_ts64(void){
|
|
ktime_get_raw_ts64();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_KTIME_GET_RAW_TS64_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ktime_get_real_ts64)
|
|
#
|
|
# Determine if ktime_get_real_ts64() is present
|
|
#
|
|
# Added by commit d6d29896c665d ("timekeeping: Provide timespec64
|
|
# based interfaces") in 3.17 (2014-07-16)
|
|
#
|
|
CODE="
|
|
#include <linux/ktime.h>
|
|
void conftest_ktime_get_real_ts64(void){
|
|
ktime_get_real_ts64();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_KTIME_GET_REAL_TS64_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_format_modifiers_present)
|
|
#
|
|
# Determine whether the base DRM format modifier support is present.
|
|
#
|
|
# This will show up in a few places:
|
|
#
|
|
# -Definition of the format modifier constructor macro, which
|
|
# we can use to reconstruct our bleeding-edge format modifiers
|
|
# when the local kernel headers don't include them.
|
|
#
|
|
# -The first set of format modifier vendor macros, including the
|
|
# poorly named "NV" vendor, which was later renamed "NVIDIA".
|
|
#
|
|
# -the "modifier[]" member of the AddFB2 ioctl's parameter
|
|
# structure.
|
|
#
|
|
# All these were added by commit e3eb3250d84e (drm: add support for
|
|
# tiled/compressed/etc modifier in addfb2) in 4.1-rc1 (2015-02-05).
|
|
CODE="
|
|
#include <drm/drm_mode.h>
|
|
#include <drm/drm_fourcc.h>
|
|
int conftest_fourcc_fb_modifiers(void) {
|
|
u64 my_fake_mod = fourcc_mod_code(INTEL, 0);
|
|
(void)my_fake_mod;
|
|
return offsetof(struct drm_mode_fb_cmd2, modifier);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_FORMAT_MODIFIERS_PRESENT" "" "types"
|
|
|
|
;;
|
|
|
|
timespec64)
|
|
#
|
|
# Determine if struct timespec64 is present
|
|
# Added by commit 361a3bf00582 ("time64: Add time64.h header and
|
|
# define struct timespec64") in 3.17 (2014-07-16)
|
|
#
|
|
CODE="
|
|
#include <linux/time.h>
|
|
|
|
struct timespec64 ts64;
|
|
"
|
|
compile_check_conftest "$CODE" "NV_TIMESPEC64_PRESENT" "" "types"
|
|
|
|
;;
|
|
|
|
vmalloc_has_pgprot_t_arg)
|
|
#
|
|
# Determine if __vmalloc has the 'pgprot' argument.
|
|
#
|
|
# The third argument to __vmalloc, page protection
|
|
# 'pgprot_t prot', was removed by commit 88dca4ca5a93
|
|
# (mm: remove the pgprot argument to __vmalloc)
|
|
# in v5.8-rc1 (2020-06-01).
|
|
CODE="
|
|
#include <linux/vmalloc.h>
|
|
|
|
void conftest_vmalloc_has_pgprot_t_arg(void) {
|
|
pgprot_t prot;
|
|
(void)__vmalloc(0, 0, prot);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VMALLOC_HAS_PGPROT_T_ARG" "" "types"
|
|
|
|
;;
|
|
|
|
mm_has_mmap_lock)
|
|
#
|
|
# Determine if the 'mm_struct' structure has a 'mmap_lock' field.
|
|
#
|
|
# Kernel commit da1c55f1b272 ("mmap locking API: rename mmap_sem
|
|
# to mmap_lock") replaced the field 'mmap_sem' by 'mmap_lock'
|
|
# in v5.8-rc1 (2020-06-08).
|
|
CODE="
|
|
#include <linux/mm_types.h>
|
|
|
|
int conftest_mm_has_mmap_lock(void) {
|
|
return offsetof(struct mm_struct, mmap_lock);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MM_HAS_MMAP_LOCK" "" "types"
|
|
;;
|
|
|
|
full_name_hash)
|
|
#
|
|
# Determine how many arguments full_name_hash takes.
|
|
#
|
|
# Changed by commit 8387ff2577e ("vfs: make the string hashes salt
|
|
# the hash") in v4.8 (2016-06-10)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/stringhash.h>
|
|
void conftest_full_name_hash(void) {
|
|
full_name_hash(NULL, NULL, 0);
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_FULL_NAME_HASH_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_FULL_NAME_HASH_ARGUMENT_COUNT 2" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
hlist_for_each_entry)
|
|
#
|
|
# Determine how many arguments hlist_for_each_entry takes.
|
|
#
|
|
# Changed by commit b67bfe0d42c ("hlist: drop the node parameter
|
|
# from iterators") in v3.9 (2013-02-28)
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/list.h>
|
|
void conftest_hlist_for_each_entry(void) {
|
|
struct hlist_head *head;
|
|
struct dummy
|
|
{
|
|
struct hlist_node hlist;
|
|
};
|
|
struct dummy *pos;
|
|
hlist_for_each_entry(pos, head, hlist) {}
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_HLIST_FOR_EACH_ENTRY_ARGUMENT_COUNT 3" | append_conftest "functions"
|
|
else
|
|
echo "#define NV_HLIST_FOR_EACH_ENTRY_ARGUMENT_COUNT 4" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
drm_vma_offset_exact_lookup_locked)
|
|
#
|
|
# Determine if the drm_vma_offset_exact_lookup_locked() function
|
|
# is present.
|
|
#
|
|
# Added by commit 2225cfe46bcc ("drm/gem: Use kref_get_unless_zero
|
|
# for the weak mmap references") in v4.4
|
|
#
|
|
CODE="
|
|
#include <drm/drm_vma_manager.h>
|
|
void conftest_drm_vma_offset_exact_lookup_locked(void) {
|
|
drm_vma_offset_exact_lookup_locked();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_VMA_OFFSET_EXACT_LOOKUP_LOCKED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_vma_node_is_allowed_has_tag_arg)
|
|
#
|
|
# Determine if drm_vma_node_is_allowed() has 'tag' arguments of
|
|
# 'struct drm_file *' type.
|
|
#
|
|
# Updated to take 'tag' argument by commit d9a1f0b4eb60 ("drm: use
|
|
# drm_file to tag vm-bos") in v4.9
|
|
#
|
|
CODE="
|
|
#include <drm/drm_vma_manager.h>
|
|
bool drm_vma_node_is_allowed(struct drm_vma_offset_node *node,
|
|
struct drm_file *tag) {
|
|
return true;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_VMA_NODE_IS_ALLOWED_HAS_TAG_ARG" | append_conftest "types"
|
|
;;
|
|
|
|
drm_vma_offset_node_has_readonly)
|
|
#
|
|
# Determine if the 'drm_vma_offset_node' structure has a 'readonly'
|
|
# field.
|
|
#
|
|
# Added by commit 3e977ac6179b ("drm/i915: Prevent writing into a
|
|
# read-only object via a GGTT mmap") in v4.19.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_vma_manager.h>
|
|
|
|
int conftest_drm_vma_offset_node_has_readonly(void) {
|
|
return offsetof(struct drm_vma_offset_node, readonly);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_VMA_OFFSET_NODE_HAS_READONLY" "" "types"
|
|
|
|
;;
|
|
|
|
pci_enable_atomic_ops_to_root)
|
|
# pci_enable_atomic_ops_to_root was added by
|
|
# commit 430a23689dea ("PCI: Add pci_enable_atomic_ops_to_root()")
|
|
# in v4.16-rc1 (2018-01-05)
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
void conftest_pci_enable_atomic_ops_to_root(void) {
|
|
pci_enable_atomic_ops_to_root();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_PCI_ENABLE_ATOMIC_OPS_TO_ROOT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
kvmalloc)
|
|
#
|
|
# Determine if kvmalloc() is present
|
|
#
|
|
# Added by commit a7c3e901a46ff54c016d040847eda598a9e3e653 ("mm:
|
|
# introduce kv[mz]alloc helpers") in v4.12 (2017-05-08).
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_kvmalloc(void){
|
|
kvmalloc();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_KVMALLOC_PRESENT" "" "functions"
|
|
|
|
;;
|
|
|
|
drm_gem_object_put_unlocked)
|
|
#
|
|
# Determine if the function drm_gem_object_put_unlocked() is present.
|
|
#
|
|
# In v5.9-rc1, commit 2f4dd13d4bb8 ("drm/gem: add
|
|
# drm_gem_object_put helper") removes drm_gem_object_put_unlocked()
|
|
# function and replace its definition by transient macro. Commit
|
|
# ab15d56e27be ("drm: remove transient
|
|
# drm_gem_object_put_unlocked()") finally removes
|
|
# drm_gem_object_put_unlocked() macro.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_GEM_H_PRESENT)
|
|
#include <drm/drm_gem.h>
|
|
#endif
|
|
void conftest_drm_gem_object_put_unlocked(void) {
|
|
drm_gem_object_put_unlocked();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_PUT_UNLOCK_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_display_mode_has_vrefresh)
|
|
#
|
|
# Determine if the 'drm_display_mode' structure has a 'vrefresh'
|
|
# field.
|
|
#
|
|
# Removed by commit 0425662fdf05 ("drm: Nuke mode->vrefresh") in
|
|
# v5.9-rc1.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_modes.h>
|
|
|
|
int conftest_drm_display_mode_has_vrefresh(void) {
|
|
return offsetof(struct drm_display_mode, vrefresh);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DISPLAY_MODE_HAS_VREFRESH" "types"
|
|
|
|
;;
|
|
|
|
drm_driver_master_set_has_int_return_type)
|
|
#
|
|
# Determine if drm_driver::master_set() returns integer value
|
|
#
|
|
# Changed to void by commit 907f53200f98 ("drm: vmwgfx: remove
|
|
# drm_driver::master_set() return type") in v5.9-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_master_set_has_int_return_type(struct drm_driver *drv,
|
|
struct drm_device *dev, struct drm_file *file_priv, bool from_open) {
|
|
|
|
return drv->master_set(dev, file_priv, from_open);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_SET_MASTER_HAS_INT_RETURN_TYPE" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_free_object)
|
|
#
|
|
# Determine if the 'drm_driver' structure has a 'gem_free_object'
|
|
# function pointer.
|
|
#
|
|
# drm_driver::gem_free_object is removed by commit 1a9458aeb8eb
|
|
# ("drm: remove drm_driver::gem_free_object") in v5.9-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
int conftest_drm_driver_has_gem_free_object(void) {
|
|
return offsetof(struct drm_driver, gem_free_object);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_FREE_OBJECT" "" "types"
|
|
;;
|
|
|
|
vga_tryget)
|
|
#
|
|
# Determine if vga_tryget() is present
|
|
#
|
|
# vga_tryget() was removed by commit f369bc3f9096 ("vgaarb: mark
|
|
# vga_tryget static") in v5.9-rc1 (2020-08-01).
|
|
#
|
|
CODE="
|
|
#include <linux/vgaarb.h>
|
|
void conftest_vga_tryget(void) {
|
|
vga_tryget();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_VGA_TRYGET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_channel_state)
|
|
#
|
|
# Determine if pci_channel_state enum type is present.
|
|
#
|
|
# pci_channel_state was removed by commit 16d79cd4e23b ("PCI: Use
|
|
# 'pci_channel_state_t' instead of 'enum pci_channel_state'") in
|
|
# v5.9-rc1 (2020-07-02).
|
|
#
|
|
CODE="
|
|
#include <linux/pci.h>
|
|
|
|
enum pci_channel_state state;
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_CHANNEL_STATE_PRESENT" "" "types"
|
|
;;
|
|
|
|
pgprot_decrypted)
|
|
#
|
|
# Determine if the macro 'pgprot_decrypted()' is present.
|
|
#
|
|
# Added by commit 21729f81ce8a ("x86/mm: Provide general kernel
|
|
# support for memory encryption") in v4.14 (2017-07-18)
|
|
CODE="
|
|
#include <asm/pgtable.h>
|
|
|
|
void conftest_pgprot_decrypted(void)
|
|
if(pgprot_decrypted()) {}
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PGPROT_DECRYPTED_PRESENT" "" "functions"
|
|
|
|
;;
|
|
|
|
cc_mkdec)
|
|
#
|
|
# Determine if cc_mkdec() is present.
|
|
#
|
|
# cc_mkdec() by commit b577f542f93c ("x86/coco: Add API to handle
|
|
# encryption mask) in v5.18-rc1 (2022-02-22).
|
|
#
|
|
CODE="
|
|
#if defined(NV_ASM_COCO_H_PRESENT)
|
|
#include <asm/coco.h>
|
|
#endif
|
|
|
|
void conftest_cc_mkdec(void) {
|
|
cc_mkdec();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_CC_MKDEC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_prime_pages_to_sg_has_drm_device_arg)
|
|
#
|
|
# Determine if drm_prime_pages_to_sg() has 'dev' argument.
|
|
#
|
|
# drm_prime_pages_to_sg() is updated to take 'dev' argument by commit
|
|
# 707d561f77b5 ("drm: allow limiting the scatter list size.").
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
#if defined(NV_DRM_DRM_PRIME_H_PRESENT)
|
|
#include <drm/drm_prime.h>
|
|
#endif
|
|
|
|
struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
|
|
struct page **pages,
|
|
unsigned int nr_pages) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_PRIME_PAGES_TO_SG_HAS_DRM_DEVICE_ARG" "" "types"
|
|
;;
|
|
|
|
drm_driver_has_gem_prime_callbacks)
|
|
#
|
|
# Determine if drm_driver structure has the GEM and PRIME callback
|
|
# function pointers.
|
|
#
|
|
# The GEM and PRIME callback are removed from drm_driver
|
|
# structure, by commit d693def4fd1c ("drm: Remove obsolete GEM and
|
|
# PRIME callbacks from struct drm_driver").
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DRV_H_PRESENT)
|
|
#include <drm/drm_drv.h>
|
|
#endif
|
|
|
|
void conftest_drm_driver_has_gem_and_prime_callbacks(void) {
|
|
struct drm_driver drv;
|
|
|
|
drv.gem_prime_pin = 0;
|
|
drv.gem_prime_get_sg_table = 0;
|
|
drv.gem_prime_vmap = 0;
|
|
drv.gem_prime_vunmap = 0;
|
|
drv.gem_vm_ops = 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DRIVER_HAS_GEM_PRIME_CALLBACKS" "" "types"
|
|
;;
|
|
|
|
drm_crtc_atomic_check_has_atomic_state_arg)
|
|
#
|
|
# Determine if drm_crtc_helper_funcs::atomic_check takes 'state'
|
|
# argument of 'struct drm_atomic_state' type.
|
|
#
|
|
# The commit 29b77ad7b9ca ("drm/atomic: Pass the full state to CRTC
|
|
# atomic_check") passed the full atomic state to
|
|
# drm_crtc_helper_funcs::atomic_check()
|
|
#
|
|
# To test the signature of drm_crtc_helper_funcs::atomic_check(),
|
|
# declare a function prototype with typeof ::atomic_check(), and then
|
|
# define the corresponding function implementation with the expected
|
|
# signature. Successful compilation indicates that ::atomic_check()
|
|
# has the expected signature.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_modeset_helper_vtables.h>
|
|
|
|
static const struct drm_crtc_helper_funcs *funcs;
|
|
typeof(*funcs->atomic_check) conftest_drm_crtc_atomic_check_has_atomic_state_arg;
|
|
|
|
int conftest_drm_crtc_atomic_check_has_atomic_state_arg(
|
|
struct drm_crtc *crtc, struct drm_atomic_state *state) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
else
|
|
echo "#undef NV_DRM_CRTC_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
fi
|
|
;;
|
|
|
|
drm_gem_object_vmap_has_map_arg)
|
|
#
|
|
# Determine if drm_gem_object_funcs::vmap takes 'map'
|
|
# argument of 'struct dma_buf_map' type.
|
|
#
|
|
# The commit 49a3f51dfeee ("drm/gem: Use struct dma_buf_map in GEM
|
|
# vmap ops and convert GEM backends") update
|
|
# drm_gem_object_funcs::vmap to take 'map' argument.
|
|
#
|
|
CODE="
|
|
#include <drm/drm_gem.h>
|
|
int conftest_drm_gem_object_vmap_has_map_arg(
|
|
struct drm_gem_object *obj, struct dma_buf_map *map) {
|
|
return obj->funcs->vmap(obj, map);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_GEM_OBJECT_VMAP_HAS_MAP_ARG" "" "types"
|
|
;;
|
|
|
|
set_close_on_exec)
|
|
#
|
|
# __set_close_on_exec(() was added by
|
|
# commit 1dce27c5aa67 ("Wrap accesses to the fd_sets")
|
|
# in v3.4-rc1 (2012-02-19)
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <linux/fdtable.h>
|
|
void conftest_set_close_on_exec(void) {
|
|
__set_close_on_exec();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SET_CLOSE_ON_EXEC_PRESENT" "" "functions"
|
|
;;
|
|
|
|
iterate_fd)
|
|
#
|
|
# iterate_fd() was added by
|
|
# commit c3c073f808b2 ("new helper: iterate_fd()")
|
|
# in v3.7-rc1 (2012-09-26)
|
|
#
|
|
CODE="
|
|
#include <linux/types.h>
|
|
#include <linux/fdtable.h>
|
|
void conftest_iterate_fd(void) {
|
|
iterate_fd();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ITERATE_FD_PRESENT" "" "functions"
|
|
;;
|
|
|
|
seq_read_iter)
|
|
#
|
|
# Determine if seq_read_iter() is present
|
|
#
|
|
# seq_read_iter() was added by commit d4d50710a8b4 ("seq_file:
|
|
# add seq_read_iter") in v5.10-rc1 (2020-11-04).
|
|
#
|
|
CODE="
|
|
#include <linux/seq_file.h>
|
|
void conftest_seq_read_iter(void) {
|
|
seq_read_iter();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SEQ_READ_ITER_PRESENT" "" "functions"
|
|
;;
|
|
|
|
pci_class_multimedia_hd_audio)
|
|
#
|
|
# Determine if 'PCI_CLASS_MULTIMEDIA_HD_AUDIO' macro is present
|
|
# in <linux/pci_ids.h>.
|
|
#
|
|
# The commit 07f4f97d7b4b ("vga_switcheroo: Use device link for HDA
|
|
# controller") has moved 'PCI_CLASS_MULTIMEDIA_HD_AUDIO' macro from
|
|
# <sound/hdaudio.h> to <linux/pci_ids.h> in v4.17-rc1 (2018-03-03).
|
|
#
|
|
CODE="
|
|
#include <linux/pci_ids.h>
|
|
unsigned int conftest_pci_class_multimedia_hd_audio(void) {
|
|
return PCI_CLASS_MULTIMEDIA_HD_AUDIO;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_PCI_CLASS_MULTIMEDIA_HD_AUDIO_PRESENT" "" "generic"
|
|
;;
|
|
|
|
sg_page_iter_page)
|
|
#
|
|
# Determine if sg_page_iter_page() is present
|
|
#
|
|
# sg_page_iter_page() was added by commit 2db76d7c3c6db
|
|
# ("lib/scatterlist: sg_page_iter: support sg lists w/o backing
|
|
# pages") in v3.10-rc1 (2013-05-11).
|
|
#
|
|
CODE="
|
|
#include <linux/scatterlist.h>
|
|
void conftest_sg_page_iter_page(void) {
|
|
sg_page_iter_page();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_SG_PAGE_ITER_PAGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
unsafe_follow_pfn)
|
|
#
|
|
# Determine if unsafe_follow_pfn() is present.
|
|
#
|
|
# unsafe_follow_pfn() was added by commit 69bacee7f9ad
|
|
# ("mm: Add unsafe_follow_pfn") in v5.13-rc1.
|
|
#
|
|
CODE="
|
|
#include <linux/mm.h>
|
|
void conftest_unsafe_follow_pfn(void) {
|
|
unsafe_follow_pfn();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_UNSAFE_FOLLOW_PFN_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_plane_atomic_check_has_atomic_state_arg)
|
|
#
|
|
# Determine if drm_plane_helper_funcs::atomic_check takes 'state'
|
|
# argument of 'struct drm_atomic_state' type.
|
|
#
|
|
# The commit 7c11b99a8e58 ("drm/atomic: Pass the full state to
|
|
# planes atomic_check") passed the full atomic state to
|
|
# drm_plane_helper_funcs::atomic_check()
|
|
#
|
|
# To test the signature of drm_plane_helper_funcs::atomic_check(),
|
|
# declare a function prototype with typeof ::atomic_check(), and then
|
|
# define the corresponding function implementation with the expected
|
|
# signature. Successful compilation indicates that ::atomic_check()
|
|
# has the expected signature.
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <drm/drm_modeset_helper_vtables.h>
|
|
|
|
static const struct drm_plane_helper_funcs *funcs;
|
|
typeof(*funcs->atomic_check) conftest_drm_plane_atomic_check_has_atomic_state_arg;
|
|
|
|
int conftest_drm_plane_atomic_check_has_atomic_state_arg(
|
|
struct drm_plane *plane, struct drm_atomic_state *state) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
echo "#define NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
else
|
|
echo "#undef NV_DRM_PLANE_ATOMIC_CHECK_HAS_ATOMIC_STATE_ARG" | append_conftest "types"
|
|
fi
|
|
;;
|
|
|
|
ib_peer_memory_symbols)
|
|
#
|
|
# Determine if the following symbols exist in Module.symvers:
|
|
# 1. ib_register_peer_memory_client
|
|
# 2. ib_unregister_peer_memory_client
|
|
# The conftest first checks in the kernel's own Module.symvers in
|
|
# the regular path. If the symbols are not found there, it's possible
|
|
# that MOFED is installed and check for these symbols in MOFED's
|
|
# Module.symvers whose path is different from the kernel's symvers.
|
|
#
|
|
# Note: KERNELRELEASE and ARCH are defined by Kbuild and automatically
|
|
# passed down to conftest.sh as env vars.
|
|
|
|
MLNX_OFED_KERNEL_DIR=/usr/src/ofa_kernel
|
|
VAR_DKMS_SOURCES_DIR=$(test -d /var/lib/dkms/mlnx-ofed-kernel &&
|
|
ls -d /var/lib/dkms/mlnx-ofed-kernel/*/build 2>/dev/null)
|
|
|
|
if check_for_ib_peer_memory_symbols "$OUTPUT" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/$ARCH/$KERNELRELEASE" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/$KERNELRELEASE" || \
|
|
check_for_ib_peer_memory_symbols "$MLNX_OFED_KERNEL_DIR/default" || \
|
|
check_for_ib_peer_memory_symbols "$VAR_DKMS_SOURCES_DIR"; then
|
|
echo "#define NV_MLNX_IB_PEER_MEM_SYMBOLS_PRESENT" | append_conftest "symbols"
|
|
else
|
|
echo "#undef NV_MLNX_IB_PEER_MEM_SYMBOLS_PRESENT" | append_conftest "symbols"
|
|
fi
|
|
;;
|
|
|
|
add_memory_driver_managed)
|
|
#
|
|
# Determine if the add_memory_driver_managed function is present
|
|
#
|
|
# Added by commit 7b7b27214bba ("mm/memory_hotplug: introduce
|
|
# add_memory_driver_managed()") in v5.8-rc1 (2020-06-05)
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
void conftest_add_memory_driver_managed() {
|
|
add_memory_driver_managed();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADD_MEMORY_DRIVER_MANAGED_PRESENT" "" "functions"
|
|
;;
|
|
|
|
add_memory_driver_managed_has_mhp_flags_arg)
|
|
#
|
|
# Check if add_memory_driver_managed() has mhp_flags arg.
|
|
#
|
|
# Added by commit b6117199787c ("mm/memory_hotplug: prepare passing flags to
|
|
# add_memory() and friends") in v5.10-rc1 (2020-10-16)
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
int add_memory_driver_managed(int nid, u64 start, u64 size,
|
|
const char *resource_name,
|
|
mhp_t mhp_flags) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_ADD_MEMORY_DRIVER_MANAGED_HAS_MHP_FLAGS_ARG" "" "types"
|
|
;;
|
|
|
|
remove_memory_has_nid_arg)
|
|
#
|
|
# Check if remove_memory() has nid parameter.
|
|
#
|
|
# Removed by commit e1c158e4956612e7 ("mm/memory_hotplug: remove nid
|
|
# parameter from remove_memory() and friends") in v5.15-rc1 (2021-09-09)
|
|
#
|
|
CODE="
|
|
#include <linux/memory_hotplug.h>
|
|
int remove_memory(int nid, u64 start, u64 size) {
|
|
return 0;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_REMOVE_MEMORY_HAS_NID_ARG" "" "types"
|
|
;;
|
|
|
|
|
|
device_property_read_u64)
|
|
#
|
|
# Determine if the device_property_read_u64 function is present
|
|
#
|
|
# Added by commit b31384fa5de37a1 ("Driver core: Unified device
|
|
# properties interface for platform firmware") in v3.19-rc1 (2014-11-05)
|
|
#
|
|
CODE="
|
|
#include <linux/acpi.h>
|
|
void conftest_device_property_read_u64() {
|
|
device_property_read_u64();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEVICE_PROPERTY_READ_U64_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_property_count_elems_of_size)
|
|
#
|
|
# Determine if of_property_count_elems_of_size is present
|
|
#
|
|
# Added by commit 1df09bcof (" Move OF property and graph API from
|
|
# base.c to property.c"
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not,
|
|
# depending on that check, for of_property_count_elems_of_size
|
|
# presence
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_property_count_elems_of_size() {
|
|
of_property_count_elems_of_size();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_PROPERTY_COUNT_ELEMS_OF_SIZE_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_OF_PROPERTY_COUNT_ELEMS_OF_SIZE_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
of_property_read_variable_u8_array)
|
|
#
|
|
# Determine if of_property_read_variable_u8_array is present
|
|
#
|
|
# Added by commit 1df09bcof (" Move OF property and graph API from
|
|
# base.c to property.c"
|
|
#
|
|
# Test if linux/of.h header file inclusion is successful or not,
|
|
# depending on that, check for of_property_read_variable_u8_array
|
|
# presence
|
|
#
|
|
echo "$CONFTEST_PREAMBLE
|
|
#include <linux/of.h>
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
CODE="
|
|
#include <linux/of.h>
|
|
void conftest_of_property_read_variable_u8_array() {
|
|
of_property_read_variable_u8_array();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_PROPERTY_READ_VARIABLE_U8_ARRAY_PRESENT" "" "functions"
|
|
else
|
|
echo "#undef NV_OF_PROPERTY_READ_VARIABLE_U8_ARRAY_PRESENT" | append_conftest "functions"
|
|
fi
|
|
;;
|
|
|
|
devm_of_platform_populate)
|
|
#
|
|
# Determine if devm_of_platform_populate() function is present
|
|
#
|
|
# Added by commit 38b0b21of (add devm_ functions for populate and
|
|
# depopulate")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_OF_PLATFORM_H_PRESENT)
|
|
#include <linux/of_platform.h>
|
|
#endif
|
|
void conftest_devm_of_platform_populate(void)
|
|
{
|
|
devm_of_platform_populate(NULL, NULL);
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVM_OF_PLATFORM_POPULATE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_dma_configure)
|
|
#
|
|
# Determine if of_dma_configure() function is present
|
|
#
|
|
# Added by commit 591c1eeof ("configure the platform device
|
|
# dma parameters")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_OF_DEVICE_H_PRESENT)
|
|
#include <linux/of_device.h>
|
|
#endif
|
|
void conftest_of_dma_configure(void)
|
|
{
|
|
of_dma_configure();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_DMA_CONFIGURE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
icc_get)
|
|
#
|
|
# Determine if icc_get() function is present
|
|
#
|
|
# Added by commit 11f1cec ("interconnect: Add generic on-chip
|
|
# interconnect API")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_get(void)
|
|
{
|
|
icc_get();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
icc_set_bw)
|
|
#
|
|
# Determine if icc_set_bw() function is present
|
|
#
|
|
# Added by commit 11f1cec ("interconnect: Add generic on-chip
|
|
# interconnect API")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_set_bw(void)
|
|
{
|
|
icc_set_bw();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_SET_BW_PRESENT" "" "functions"
|
|
;;
|
|
|
|
icc_put)
|
|
#
|
|
# Determine if icc_put() function is present
|
|
#
|
|
# Added by commit 11f1cec ("interconnect: Add generic on-chip
|
|
# interconnect API")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_INTERCONNECT_H_PRESENT)
|
|
#include <linux/interconnect.h>
|
|
#endif
|
|
void conftest_icc_put(void)
|
|
{
|
|
icc_put();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_ICC_PUT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
i2c_new_client_device)
|
|
#
|
|
# Determine if i2c_new_client_device() function is present
|
|
#
|
|
# Added by commit 390fd04i2c ("remove deprecated i2c_new_device API")
|
|
#
|
|
CODE="
|
|
#include <linux/i2c.h>
|
|
void conftest_i2c_new_client_device(void)
|
|
{
|
|
i2c_new_client_device();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_I2C_NEW_CLIENT_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
i2c_unregister_device)
|
|
#
|
|
# Determine if i2c_unregister_device() function is present
|
|
#
|
|
# Added by commit 9c1600ei2c ("Add i2c_board_info and i2c_new_device()")
|
|
#
|
|
CODE="
|
|
#include <linux/i2c.h>
|
|
void conftest_i2c_unregister_device(void)
|
|
{
|
|
i2c_unregister_device();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_I2C_UNREGISTER_DEVICE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
of_get_named_gpio)
|
|
#
|
|
# Determine if of_get_named_gpio() function is present
|
|
#
|
|
# Added by commit a6b0919 ("of/gpio: Add new method for getting gpios
|
|
# under different property names")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_OF_GPIO_H_PRESENT)
|
|
#include <linux/of_gpio.h>
|
|
#endif
|
|
void conftest_of_get_named_gpio(void)
|
|
{
|
|
of_get_named_gpio();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_OF_GET_NAME_GPIO_PRESENT" "" "functions"
|
|
;;
|
|
|
|
devm_gpio_request_one)
|
|
#
|
|
# Determine if devm_gpio_request_one() function is present
|
|
#
|
|
# Added by commit 09d71ff (gpiolib: Implement devm_gpio_request_one()")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_devm_gpio_request_one(void)
|
|
{
|
|
devm_gpio_request_one();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_DEVM_GPIO_REQUEST_ONE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
gpio_direction_input)
|
|
#
|
|
# Determine if gpio_direction_input() function is present
|
|
#
|
|
# Added by commit c7caf86 (gpio: remove gpio_ensure_requested()")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_gpio_direction_input(void)
|
|
{
|
|
gpio_direction_input();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_GPIO_DIRECTION_INPUT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
gpio_direction_output)
|
|
#
|
|
# Determine if gpio_direction_output() function is present
|
|
#
|
|
# Added by commit c7caf86 (gpio: remove gpio_ensure_requested()")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_gpio_direction_output(void)
|
|
{
|
|
gpio_direction_output();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_GPIO_DIRECTION_OUTPUT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
gpio_get_value)
|
|
#
|
|
# Determine if gpio_get_value() function is present
|
|
#
|
|
# Added by commit 7563bbf ("gpiolib/arches: Centralise bolierplate
|
|
# asm/gpio.h")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_gpio_get_value(void)
|
|
{
|
|
gpio_get_value();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_GPIO_GET_VALUE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
gpio_set_value)
|
|
#
|
|
# Determine if gpio_set_value() function is present
|
|
#
|
|
# Added by commit 7563bbf ("gpiolib/arches: Centralise bolierplate
|
|
# asm/gpio.h")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_gpio_set_value(void)
|
|
{
|
|
gpio_set_value();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_GPIO_SET_VALUE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
gpio_to_irq)
|
|
#
|
|
# Determine if gpio_to_irq() function is present
|
|
#
|
|
# Added by commit 7563bbf ("gpiolib/arches: Centralise bolierplate
|
|
# asm/gpio.h")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_GPIO_H_PRESENT)
|
|
#include <linux/gpio.h>
|
|
#endif
|
|
void conftest_gpio_to_irq(void)
|
|
{
|
|
gpio_to_irq();
|
|
}
|
|
"
|
|
|
|
compile_check_conftest "$CODE" "NV_GPIO_TO_IRQ_PRESENT" "" "functions"
|
|
;;
|
|
|
|
migrate_vma_setup)
|
|
#
|
|
# Determine if migrate_vma_setup() function is present
|
|
#
|
|
# migrate_vma_setup() function was added by commit
|
|
# a7d1f22bb74f32cf3cd93f52776007e161f1a738 ("mm: turn migrate_vma
|
|
# upside down) in v5.4.
|
|
# (2019-08-20).
|
|
CODE="
|
|
#include <linux/migrate.h>
|
|
int conftest_migrate_vma_setup(void) {
|
|
migrate_vma_setup();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MIGRATE_VMA_SETUP_PRESENT" "" "functions"
|
|
;;
|
|
|
|
migrate_vma_added_flags)
|
|
#
|
|
# Determine if migrate_vma structure has flags
|
|
#
|
|
# flags were added to struct migrate_vma by commit
|
|
# 5143192cd410c4fc83be09a2e73423765aee072b ("mm/migrate: add a flags
|
|
# parameter to_migrate_vma) in v5.9.
|
|
# (2020-07-28).
|
|
CODE="
|
|
#include <linux/migrate.h>
|
|
int conftest_migrate_vma_added_flags(void) {
|
|
return offsetof(struct migrate_vma, flags);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MIGRATE_VMA_FLAGS_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_device_has_pdev)
|
|
#
|
|
# Determine if the 'drm_device' structure has a 'pdev' field.
|
|
#
|
|
# Removed by commit b347e04452ff ("drm: Remove pdev field from
|
|
# struct drm_device") in v5.14-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRMP_H_PRESENT)
|
|
#include <drm/drmP.h>
|
|
#endif
|
|
|
|
#if defined(NV_DRM_DRM_DEVICE_H_PRESENT)
|
|
#include <drm/drm_device.h>
|
|
#endif
|
|
|
|
int conftest_drm_device_has_pdev(void) {
|
|
return offsetof(struct drm_device, pdev);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_DEVICE_HAS_PDEV" "" "types"
|
|
;;
|
|
|
|
make_device_exclusive_range)
|
|
#
|
|
# Determine if the make_device_exclusive_range() function is present
|
|
#
|
|
# make_device_exclusive_range() function was added by commit
|
|
# b756a3b5e7ead ("mm: device exclusive memory access") in v5.14
|
|
# (2021-06-30).
|
|
CODE="
|
|
#include <linux/rmap.h>
|
|
int conftest_make_device_exclusive_range(void) {
|
|
make_device_exclusive_range();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MAKE_DEVICE_EXCLUSIVE_RANGE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
ioasid_get)
|
|
#
|
|
# Determine if ioasid_get() function is present
|
|
#
|
|
# ioasid_get() function was added by commit
|
|
# cb4789b0d19ff231ce9f73376a023341300aed96 (iommu/ioasid: Add ioasidreferences) in v5.11.
|
|
# (2020-11-23).
|
|
CODE="
|
|
#if defined(NV_LINUX_IOASID_H_PRESENT)
|
|
#include <linux/ioasid.h>
|
|
#endif
|
|
void conftest_ioasid_get(void) {
|
|
ioasid_get();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_IOASID_GET_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_crtc_state_has_no_vblank)
|
|
#
|
|
# Determine if the 'drm_crtc_state' structure has 'no_vblank'.
|
|
#
|
|
# drm_crtc_state::no_vblank was added by commit b25c60af7a877
|
|
# ("drm/crtc: Add a generic infrastructure to fake VBLANK events")
|
|
# in 4.18.0-rc3 (2018-07-03).
|
|
#
|
|
CODE="
|
|
#include <drm/drm_crtc.h>
|
|
void conftest_drm_crtc_state_has_no_vblank(void) {
|
|
struct drm_crtc_state foo;
|
|
(void)foo.no_vblank;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CRTC_STATE_HAS_NO_VBLANK" "" "types"
|
|
;;
|
|
|
|
drm_mode_config_has_allow_fb_modifiers)
|
|
#
|
|
# Determine if the 'drm_mode_config' structure has
|
|
# an 'allow_fb_modifiers' field.
|
|
#
|
|
# an 'allow_fb_modifiers' field in the 'drm_mode_config' structure,
|
|
# is added by commit e3eb3250d84e ("drm: add support for
|
|
# tiled/compressed/etc modifier in addfb2") in v4.1, and removed by
|
|
# commit 3d082157a242 ("drm: remove allow_fb_modifiers") in v5.18-rc1.
|
|
#
|
|
# The 'struct drm_mode_config' definition, is moved to
|
|
# drm_mode_config.h file by commit 28575f165d36 ("drm: Extract
|
|
# drm_mode_config.[hc]") in v4.10.
|
|
#
|
|
CODE="$CONFTEST_PREAMBLE
|
|
#if defined(NV_DRM_DRM_MODE_CONFIG_H_PRESENT)
|
|
#include <drm/drm_mode_config.h>
|
|
#else
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
int conftest_drm_mode_config_has_allow_fb_modifiers(void) {
|
|
return offsetof(struct drm_mode_config, allow_fb_modifiers);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_MODE_CONFIG_HAS_ALLOW_FB_MODIFIERS" "" "types"
|
|
;;
|
|
|
|
dma_set_mask_and_coherent)
|
|
#
|
|
# Determine if dma_set_mask_and_coherent function is present.
|
|
# Added by commit 4aa806b771d1 ("DMA-API: provide a helper to set both DMA
|
|
# and coherent DMA masks") in v3.13 (2013-06-26).
|
|
#
|
|
CODE="
|
|
#include <linux/dma-mapping.h>
|
|
void conftest_dma_set_mask_and_coherent(void) {
|
|
dma_set_mask_and_coherent();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_SET_MASK_AND_COHERENT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
drm_has_hdr_output_metadata)
|
|
#
|
|
# Determine if drm_mode.h has 'hdr_output_metadata' structure.
|
|
#
|
|
# struct hdr_output_metadata was added by commit fbb5d0353c62d
|
|
# ("drm: Add HDR source metadata property") in 5.1.0-rc5
|
|
# (2019-05-16)
|
|
#
|
|
CODE="
|
|
#include <drm/drm_mode.h>
|
|
void conftest_drm_has_hdr_output_metadata(void) {
|
|
struct hdr_output_metadata foo;
|
|
(void)foo;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_HAS_HDR_OUTPUT_METADATA" "" "types"
|
|
;;
|
|
|
|
uts_release)
|
|
#
|
|
# print the kernel's UTS_RELEASE string.
|
|
#
|
|
echo "#include <generated/utsrelease.h>
|
|
UTS_RELEASE" > conftest$$.c
|
|
|
|
$CC $CFLAGS -E -P conftest$$.c
|
|
rm -f conftest$$.c
|
|
;;
|
|
|
|
platform_irq_count)
|
|
#
|
|
# Determine if the platform_irq_count() function is present
|
|
#
|
|
# platform_irq_count was added by commit
|
|
# 4b83555d5098e73cf2c5ca7f86c17ca0ba3b968e ("driver-core: platform: Add platform_irq_count()")
|
|
# in 4.5-rc1 (2016-01-07)
|
|
#
|
|
CODE="
|
|
#include <linux/platform_device.h>
|
|
int conftest_platform_irq_count(void) {
|
|
return platform_irq_count();
|
|
}"
|
|
compile_check_conftest "$CODE" "NV_PLATFORM_IRQ_COUNT_PRESENT" "" "functions"
|
|
;;
|
|
|
|
devm_clk_bulk_get_all)
|
|
#
|
|
# Determine if devm_clk_bulk_get_all() function is present
|
|
#
|
|
# Added by commit f08c2e286 ("clk: add managed version of clk_bulk_get_all")
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_CLK_H_PRESENT)
|
|
#include <linux/clk.h>
|
|
#endif
|
|
void conftest_devm_clk_bulk_get_all(void)
|
|
{
|
|
devm_clk_bulk_get_all();
|
|
}
|
|
"
|
|
compile_check_conftest "$CODE" "NV_DEVM_CLK_BULK_GET_ALL_PRESENT" "" "functions"
|
|
;;
|
|
|
|
mmget_not_zero)
|
|
#
|
|
# Determine if mmget_not_zero() function is present
|
|
#
|
|
# mmget_not_zero() function was added by commit
|
|
# d2005e3f41d4f9299e2df6a967c8beb5086967a9 ("userfaultfd: don't pin
|
|
# the user memory in userfaultfd_file_create()") in v4.7
|
|
# (2016-05-20) in linux/sched.h but then moved to linux/sched/mm.h
|
|
# by commit 68e21be2916b359fd8afb536c1911dc014cfd03e
|
|
# ("sched/headers: Move task->mm handling methods to
|
|
# <linux/sched/mm.h>") in v4.11 (2017-02-01).
|
|
CODE="
|
|
#if defined(NV_LINUX_SCHED_MM_H_PRESENT)
|
|
#include <linux/sched/mm.h>
|
|
#elif defined(NV_LINUX_SCHED_H_PRESENT)
|
|
#include <linux/sched.h>
|
|
#endif
|
|
void conftest_mmget_not_zero(void) {
|
|
mmget_not_zero();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_MMGET_NOT_ZERO_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_resv_add_fence)
|
|
#
|
|
# Determine if the dma_resv_add_fence() function is present.
|
|
#
|
|
# dma_resv_add_excl_fence() and dma_resv_add_shared_fence() were
|
|
# removed and replaced with dma_resv_add_fence() by commit
|
|
# 73511edf8b19 ("dma-buf: specify usage while adding fences to
|
|
# dma_resv obj v7") in linux-next, expected in v5.19-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_DMA_RESV_H_PRESENT)
|
|
#include <linux/dma-resv.h>
|
|
#endif
|
|
void conftest_dma_resv_add_fence(void) {
|
|
dma_resv_add_fence();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_RESV_ADD_FENCE_PRESENT" "" "functions"
|
|
;;
|
|
|
|
dma_resv_reserve_fences)
|
|
#
|
|
# Determine if the dma_resv_reserve_fences() function is present.
|
|
#
|
|
# dma_resv_reserve_shared() was removed and replaced with
|
|
# dma_resv_reserve_fences() by commit c8d4c18bfbc4
|
|
# ("dma-buf/drivers: make reserving a shared slot mandatory v4") in
|
|
# linux-next, expected in v5.19-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_LINUX_DMA_RESV_H_PRESENT)
|
|
#include <linux/dma-resv.h>
|
|
#endif
|
|
void conftest_dma_resv_reserve_fences(void) {
|
|
dma_resv_reserve_fences();
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DMA_RESV_RESERVE_FENCES_PRESENT" "" "functions"
|
|
;;
|
|
|
|
reservation_object_reserve_shared_has_num_fences_arg)
|
|
#
|
|
# Determine if reservation_object_reserve_shared() has 'num_fences'
|
|
# argument.
|
|
#
|
|
# reservation_object_reserve_shared() function prototype was updated
|
|
# to take 'num_fences' argument by commit ca05359f1e64 ("dma-buf:
|
|
# allow reserving more than one shared fence slot") in v4.21-rc1
|
|
# (2018-12-14).
|
|
#
|
|
CODE="
|
|
#include <linux/reservation.h>
|
|
void conftest_reservation_object_reserve_shared_has_num_fences_arg(
|
|
struct reservation_object *obj,
|
|
unsigned int num_fences) {
|
|
(void) reservation_object_reserve_shared(obj, num_fences);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_RESERVATION_OBJECT_RESERVE_SHARED_HAS_NUM_FENCES_ARG" "" "types"
|
|
;;
|
|
|
|
num_registered_fb)
|
|
#
|
|
# Determine if 'num_registered_fb' variable is present.
|
|
#
|
|
# 'num_registered_fb' was removed by commit 5727dcfd8486
|
|
# ("fbdev: Make registered_fb[] private to fbmem.c) for
|
|
# v5.20 linux-next (2022-07-27).
|
|
#
|
|
CODE="
|
|
#include <linux/fb.h>
|
|
int conftest_num_registered_fb(void) {
|
|
return num_registered_fb;
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_NUM_REGISTERED_FB_PRESENT" "" "types"
|
|
;;
|
|
|
|
drm_connector_has_override_edid)
|
|
#
|
|
# Determine if 'struct drm_connector' has an 'override_edid' member.
|
|
#
|
|
# Removed by commit 90b575f52c6ab ("drm/edid: detach debugfs EDID
|
|
# override from EDID property update") in linux-next, expected in
|
|
# v6.2-rc1.
|
|
#
|
|
CODE="
|
|
#if defined(NV_DRM_DRM_CRTC_H_PRESENT)
|
|
#include <drm/drm_crtc.h>
|
|
#endif
|
|
#if defined(NV_DRM_DRM_CONNECTOR_H_PRESENT)
|
|
#include <drm/drm_connector.h>
|
|
#endif
|
|
int conftest_drm_connector_has_override_edid(void) {
|
|
return offsetof(struct drm_connector, override_edid);
|
|
}"
|
|
|
|
compile_check_conftest "$CODE" "NV_DRM_CONNECTOR_HAS_OVERRIDE_EDID" "" "types"
|
|
;;
|
|
|
|
# When adding a new conftest entry, please use the correct format for
|
|
# specifying the relevant upstream Linux kernel commit.
|
|
#
|
|
# <function> was added|removed|etc by commit <sha> ("<commit message")
|
|
# in <kernel-version> (<commit date>).
|
|
|
|
*)
|
|
# Unknown test name given
|
|
echo "Error: unknown conftest '$1' requested" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
case "$5" in
|
|
cc_sanity_check)
|
|
#
|
|
# Check if the selected compiler can create object files
|
|
# in the current environment.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
echo "int cc_sanity_check(void) {
|
|
return 0;
|
|
}" > conftest$$.c
|
|
|
|
$CC -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ ! -f conftest$$.o ]; then
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
fi
|
|
if [ "$CC" != "cc" ]; then
|
|
echo "The C compiler '$CC' does not appear to be able to"
|
|
echo "create object files. Please make sure you have "
|
|
echo "your Linux distribution's libc development package"
|
|
echo "installed and that '$CC' is a valid C compiler";
|
|
echo "name."
|
|
else
|
|
echo "The C compiler '$CC' does not appear to be able to"
|
|
echo "create executables. Please make sure you have "
|
|
echo "your Linux distribution's gcc and libc development"
|
|
echo "packages installed."
|
|
fi
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
echo "*** Failed CC sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
rm -f conftest$$.o
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
cc_version_check)
|
|
#
|
|
# Verify that the same compiler major and minor version is
|
|
# used for the kernel and kernel module. A mismatch condition is
|
|
# not considered fatal, so this conftest returns a success status
|
|
# code, even if it fails. Failure of the test can be distinguished
|
|
# by testing for empty (success) versus non-empty (failure) output.
|
|
#
|
|
# Some gcc version strings that have proven problematic for parsing
|
|
# in the past:
|
|
#
|
|
# gcc.real (GCC) 3.3 (Debian)
|
|
# gcc-Version 3.3 (Debian)
|
|
# gcc (GCC) 3.1.1 20020606 (Debian prerelease)
|
|
# version gcc 3.2.3
|
|
#
|
|
# As of this writing, GCC uses a version number as x.y.z and below
|
|
# are the typical version strings seen with various distributions.
|
|
# gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
|
|
# gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)
|
|
# gcc (GCC) 8.3.1 20190507 (Red Hat 8.3.1-4)
|
|
# gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1)
|
|
# gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0
|
|
# gcc (Ubuntu 7.5.0-3ubuntu1~16.04) 7.5.0
|
|
# gcc (Debian 8.3.0-6) 8.3.0
|
|
# aarch64-linux-gcc.br_real (Buildroot 2020.08-14-ge5a2a90) 9.3.0, GNU ld (GNU Binutils) 2.33.1
|
|
#
|
|
# In order to extract GCC version correctly for version strings
|
|
# like the last one above, we first check for x.y.z and if that
|
|
# fails, we fallback to x.y format.
|
|
VERBOSE=$6
|
|
|
|
kernel_compile_h=$OUTPUT/include/generated/compile.h
|
|
|
|
if [ ! -f ${kernel_compile_h} ]; then
|
|
# The kernel's compile.h file is not present, so there
|
|
# isn't a convenient way to identify the compiler version
|
|
# used to build the kernel.
|
|
IGNORE_CC_MISMATCH=1
|
|
fi
|
|
|
|
if [ -n "$IGNORE_CC_MISMATCH" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
kernel_cc_string=`cat ${kernel_compile_h} | \
|
|
grep LINUX_COMPILER | cut -f 2 -d '"'`
|
|
|
|
kernel_cc_version=`echo ${kernel_cc_string} | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+' | head -n 1`
|
|
if [ -z "${kernel_cc_version}" ]; then
|
|
kernel_cc_version=`echo ${kernel_cc_string} | grep -o '[0-9]\+\.[0-9]\+' | head -n 1`
|
|
fi
|
|
kernel_cc_major=`echo ${kernel_cc_version} | cut -d '.' -f 1`
|
|
kernel_cc_minor=`echo ${kernel_cc_version} | cut -d '.' -f 2`
|
|
|
|
echo "
|
|
#if (__GNUC__ != ${kernel_cc_major}) || (__GNUC_MINOR__ != ${kernel_cc_minor})
|
|
#error \"cc version mismatch\"
|
|
#endif
|
|
" > conftest$$.c
|
|
|
|
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
|
|
rm -f conftest$$.c
|
|
|
|
if [ -f conftest$$.o ]; then
|
|
rm -f conftest$$.o
|
|
exit 0;
|
|
else
|
|
#
|
|
# The gcc version check failed
|
|
#
|
|
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "";
|
|
echo "Warning: Compiler version check failed:";
|
|
echo "";
|
|
echo "The major and minor number of the compiler used to";
|
|
echo "compile the kernel:";
|
|
echo "";
|
|
echo "${kernel_cc_string}";
|
|
echo "";
|
|
echo "does not match the compiler used here:";
|
|
echo "";
|
|
$CC --version
|
|
echo "";
|
|
echo "It is recommended to set the CC environment variable";
|
|
echo "to the compiler that was used to compile the kernel.";
|
|
echo ""
|
|
echo "To skip the test and silence this warning message, set";
|
|
echo "the IGNORE_CC_MISMATCH environment variable to \"1\".";
|
|
echo "However, mixing compiler versions between the kernel";
|
|
echo "and kernel modules can result in subtle bugs that are";
|
|
echo "difficult to diagnose.";
|
|
echo "";
|
|
echo "*** Failed CC version check. ***";
|
|
echo "";
|
|
elif [ "$VERBOSE" = "just_msg" ]; then
|
|
echo "Warning: The kernel was built with ${kernel_cc_string}, but the" \
|
|
"current compiler version is `$CC --version | head -n 1`.";
|
|
fi
|
|
exit 0;
|
|
fi
|
|
;;
|
|
|
|
xen_sanity_check)
|
|
#
|
|
# Check if the target kernel is a Xen kernel. If so, exit, since
|
|
# the RM doesn't currently support Xen.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$IGNORE_XEN_PRESENCE" -o -n "$VGX_BUILD" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
test_xen
|
|
|
|
if [ "$XEN_PRESENT" != "0" ]; then
|
|
echo "The kernel you are installing for is a Xen kernel!";
|
|
echo "";
|
|
echo "The NVIDIA driver does not currently support Xen kernels. If ";
|
|
echo "you are using a stock distribution kernel, please install ";
|
|
echo "a variant of this kernel without Xen support; if this is a ";
|
|
echo "custom kernel, please install a standard Linux kernel. Then ";
|
|
echo "try installing the NVIDIA kernel module again.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed Xen sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
preempt_rt_sanity_check)
|
|
#
|
|
# Check if the target kernel has the PREEMPT_RT patch set applied. If
|
|
# so, exit, since the RM doesn't support this configuration.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$IGNORE_PREEMPT_RT_PRESENCE" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
if test_configuration_option CONFIG_PREEMPT_RT; then
|
|
PREEMPT_RT_PRESENT=1
|
|
elif test_configuration_option CONFIG_PREEMPT_RT_FULL; then
|
|
PREEMPT_RT_PRESENT=1
|
|
fi
|
|
|
|
if [ "$PREEMPT_RT_PRESENT" != "0" ]; then
|
|
echo "The kernel you are installing for is a PREEMPT_RT kernel!";
|
|
echo "";
|
|
echo "The NVIDIA driver does not support real-time kernels. If you ";
|
|
echo "are using a stock distribution kernel, please install ";
|
|
echo "a variant of this kernel that does not have the PREEMPT_RT ";
|
|
echo "patch set applied; if this is a custom kernel, please ";
|
|
echo "install a standard Linux kernel. Then try installing the ";
|
|
echo "NVIDIA kernel module again.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed PREEMPT_RT sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
|
|
patch_check)
|
|
#
|
|
# Check for any "official" patches that may have been applied and
|
|
# construct a description table for reporting purposes.
|
|
#
|
|
PATCHES=""
|
|
|
|
for PATCH in patch-*.h; do
|
|
if [ -f $PATCH ]; then
|
|
echo "#include \"$PATCH\""
|
|
PATCHES="$PATCHES "`echo $PATCH | sed -s 's/patch-\(.*\)\.h/\1/'`
|
|
fi
|
|
done
|
|
|
|
echo "static struct {
|
|
const char *short_description;
|
|
const char *description;
|
|
} __nv_patches[] = {"
|
|
for i in $PATCHES; do
|
|
echo "{ \"$i\", NV_PATCH_${i}_DESCRIPTION },"
|
|
done
|
|
echo "{ NULL, NULL } };"
|
|
|
|
exit 0
|
|
;;
|
|
|
|
compile_tests)
|
|
#
|
|
# Run a series of compile tests to determine the set of interfaces
|
|
# and features available in the target kernel.
|
|
#
|
|
shift 5
|
|
|
|
CFLAGS=$1
|
|
shift
|
|
|
|
for i in $*; do compile_test $i; done
|
|
|
|
for file in conftest*.d; do
|
|
rm -f $file > /dev/null 2>&1
|
|
done
|
|
|
|
exit 0
|
|
;;
|
|
|
|
dom0_sanity_check)
|
|
#
|
|
# Determine whether running in DOM0.
|
|
#
|
|
VERBOSE=$6
|
|
|
|
if [ -n "$VGX_BUILD" ]; then
|
|
if [ -f /proc/xen/capabilities ]; then
|
|
if [ "`cat /proc/xen/capabilities`" == "control_d" ]; then
|
|
exit 0
|
|
fi
|
|
else
|
|
echo "The kernel is not running in DOM0.";
|
|
echo "";
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed DOM0 sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
fi
|
|
exit 1
|
|
fi
|
|
;;
|
|
vgpu_kvm_sanity_check)
|
|
#
|
|
# Determine whether we are running a vGPU on KVM host.
|
|
#
|
|
VERBOSE=$6
|
|
iommu=CONFIG_VFIO_IOMMU_TYPE1
|
|
mdev=CONFIG_VFIO_MDEV
|
|
kvm=CONFIG_KVM_VFIO
|
|
VFIO_IOMMU_PRESENT=0
|
|
VFIO_MDEV_PRESENT=0
|
|
KVM_PRESENT=0
|
|
|
|
if [ -n "$VGX_KVM_BUILD" ]; then
|
|
if (test_configuration_option ${iommu} || test_configuration_option ${iommu}_MODULE); then
|
|
VFIO_IOMMU_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${mdev} || test_configuration_option ${mdev}_MODULE); then
|
|
VFIO_MDEV_PRESENT=1
|
|
fi
|
|
|
|
if (test_configuration_option ${kvm} || test_configuration_option ${kvm}_MODULE); then
|
|
KVM_PRESENT=1
|
|
fi
|
|
|
|
if [ "$VFIO_IOMMU_PRESENT" != "0" ] &&
|
|
[ "$VFIO_MDEV_PRESENT" != "0" ] &&
|
|
[ "$KVM_PRESENT" != "0" ] ; then
|
|
exit 0
|
|
else
|
|
echo "Below CONFIG options are missing on the kernel for installing";
|
|
echo "NVIDIA vGPU driver on KVM host";
|
|
if [ "$VFIO_IOMMU_PRESENT" = "0" ]; then
|
|
echo "CONFIG_VFIO_IOMMU_TYPE1";
|
|
fi
|
|
|
|
if [ "$VFIO_MDEV_PRESENT" = "0" ]; then
|
|
echo "CONFIG_VFIO_MDEV";
|
|
fi
|
|
|
|
if [ "$KVM_PRESENT" = "0" ]; then
|
|
echo "CONFIG_KVM";
|
|
fi
|
|
echo "Please install the kernel with above CONFIG options set, then";
|
|
echo "try installing again";
|
|
echo "";
|
|
|
|
if [ "$VERBOSE" = "full_output" ]; then
|
|
echo "*** Failed vGPU on KVM sanity check. Bailing out! ***";
|
|
echo "";
|
|
fi
|
|
fi
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|
|
;;
|
|
test_configuration_option)
|
|
#
|
|
# Check to see if the given config option is set.
|
|
#
|
|
OPTION=$6
|
|
|
|
test_configuration_option $OPTION
|
|
exit $?
|
|
;;
|
|
|
|
get_configuration_option)
|
|
#
|
|
# Get the value of the given config option.
|
|
#
|
|
OPTION=$6
|
|
|
|
get_configuration_option $OPTION
|
|
exit $?
|
|
;;
|
|
|
|
|
|
guess_module_signing_hash)
|
|
#
|
|
# Determine the best cryptographic hash to use for module signing,
|
|
# to the extent that is possible.
|
|
#
|
|
|
|
HASH=$(get_configuration_option CONFIG_MODULE_SIG_HASH)
|
|
|
|
if [ $? -eq 0 ] && [ -n $HASH ]; then
|
|
echo $HASH
|
|
exit 0
|
|
else
|
|
for SHA in 512 384 256 224 1; do
|
|
if test_configuration_option CONFIG_MODULE_SIG_SHA$SHA; then
|
|
echo sha$SHA
|
|
exit 0
|
|
fi
|
|
done
|
|
fi
|
|
exit 1
|
|
;;
|
|
|
|
|
|
test_kernel_headers)
|
|
#
|
|
# Check for the availability of certain kernel headers
|
|
#
|
|
|
|
CFLAGS=$6
|
|
|
|
test_headers
|
|
|
|
for file in conftest*.d; do
|
|
rm -f $file > /dev/null 2>&1
|
|
done
|
|
|
|
exit $?
|
|
;;
|
|
|
|
|
|
build_cflags)
|
|
#
|
|
# Generate CFLAGS for use in the compile tests
|
|
#
|
|
|
|
build_cflags
|
|
echo $CFLAGS
|
|
exit 0
|
|
;;
|
|
|
|
module_symvers_sanity_check)
|
|
#
|
|
# Check whether Module.symvers exists and contains at least one
|
|
# EXPORT_SYMBOL* symbol from vmlinux
|
|
#
|
|
|
|
if [ -n "$IGNORE_MISSING_MODULE_SYMVERS" ]; then
|
|
exit 0
|
|
fi
|
|
|
|
TAB=' '
|
|
|
|
if [ -f "$OUTPUT/Module.symvers" ] && \
|
|
grep -e "^[^${TAB}]*${TAB}[^${TAB}]*${TAB}\+vmlinux" \
|
|
"$OUTPUT/Module.symvers" >/dev/null 2>&1; then
|
|
exit 0
|
|
fi
|
|
|
|
echo "The Module.symvers file is missing, or does not contain any"
|
|
echo "symbols exported from the kernel. This could cause the NVIDIA"
|
|
echo "kernel modules to be built against a configuration that does"
|
|
echo "not accurately reflect the actual target kernel."
|
|
echo "The Module.symvers file check can be disabled by setting the"
|
|
echo "environment variable IGNORE_MISSING_MODULE_SYMVERS to 1."
|
|
|
|
exit 1
|
|
;;
|
|
esac
|