@@ -670,6 +670,22 @@ PATCHER_GENERIC_PATCH
670670 .Limit = 4096
671671};
672672
673+ STATIC
674+ PATCHER_GENERIC_PATCH
675+ mRemoveUsbLimitIoP1Patch1Tahoe = {
676+ .Comment = DEBUG_POINTER ("RemoveUsbLimitIoP1 part 1" ),
677+ .Base = "__ZN16AppleUSBHostPort15setPortLocationEv" ,
678+ .Find = mRemoveUsbLimitIoP1Find1 ,
679+ .Mask = NULL ,
680+ .Replace = mRemoveUsbLimitIoP1Replace1 ,
681+ .ReplaceMask = NULL ,
682+ .Size = sizeof (mRemoveUsbLimitIoP1Replace1 ),
683+ .Count = 1 ,
684+ .Skip = 0 ,
685+ .Limit = 4096
686+ };
687+
688+
673689STATIC
674690CONST UINT8
675691 mRemoveUsbLimitIoP1Find2 [] = {
@@ -740,12 +756,35 @@ PatchUsbXhciPortLimit1 (
740756 return EFI_NOT_FOUND ;
741757 }
742758
743- Status = PatcherApplyGenericPatch (Patcher , & mRemoveUsbLimitIoP1Patch1 );
744- if (EFI_ERROR (Status )) {
745- DEBUG ((DEBUG_INFO , "OCAK: [FAIL] Failed to apply port patch com.apple.iokit.IOUSBHostFamily part 1 - %r\n" , Status ));
746- } else {
747- DEBUG ((DEBUG_INFO , "OCAK: [OK] Patch success port com.apple.iokit.IOUSBHostFamily part 1\n" ));
748- }
759+ // Status = PatcherApplyGenericPatch (Patcher, &mRemoveUsbLimitIoP1Patch1);
760+ // if (EFI_ERROR (Status)) {
761+ // DEBUG ((DEBUG_INFO, "OCAK: [FAIL] Failed to apply port patch com.apple.iokit.IOUSBHostFamily part 1 - %r\n", Status));
762+ // } else {
763+ // DEBUG ((DEBUG_INFO, "OCAK: [OK] Patch success port com.apple.iokit.IOUSBHostFamily part 1\n"));
764+ // }
765+
766+
767+ // For macOS 26.0 (Darwin 25.0.0) and above use Tahoe-specific patch,
768+ // otherwise use the original patch.
769+ //
770+ if (OcMatchDarwinVersion (KernelVersion , KERNEL_VERSION_TAHOE_MIN , 0 )) {
771+ Status = PatcherApplyGenericPatch (Patcher , & mRemoveUsbLimitIoP1Patch1Tahoe );
772+ if (EFI_ERROR (Status )) {
773+ DEBUG ((DEBUG_INFO , "OCAK: [FAIL] Failed to apply Tahoe port patch com.apple.iokit.IOUSBHostFamily part 1 - %r\n" , Status ));
774+ } else {
775+ DEBUG ((DEBUG_INFO , "OCAK: [OK] Patch success Tahoe port com.apple.iokit.IOUSBHostFamily part 1\n" ));
776+ }
777+ } else {
778+ DEBUG ((DEBUG_INFO , "OCAK: [OK] Patch success port com.apple.iokit.IOUSBHostFamily part 1\n" ));
779+ Status = PatcherApplyGenericPatch (Patcher , & mRemoveUsbLimitIoP1Patch1 );
780+ if (EFI_ERROR (Status )) {
781+ DEBUG ((DEBUG_INFO , "OCAK: [FAIL] Failed to apply pre-Tahoe port patch com.apple.iokit.IOUSBHostFamily part 1 - %r\n" , Status ));
782+ } else {
783+ DEBUG ((DEBUG_INFO , "OCAK: [OK] Patch success pre-Tahoe port com.apple.iokit.IOUSBHostFamily part 1\n" ));
784+ }
785+ }
786+
787+
749788
750789 //
751790 // The following patch is only needed on macOS 11.1 (Darwin 20.2.0) and above; skip it otherwise.
0 commit comments