| 3859 | } |
| 3860 | |
| 3861 | UINT32 FIXUSB (UINT8 *dsdt, UINT32 len) |
| 3862 | { |
| 3863 | UINT32 i, j, k; |
| 3864 | UINT32 Size, size1, size2, size3; //, size4; |
| 3865 | UINT32 adr=0, adr1=0; |
| 3866 | INT32 sizeoffset; |
| 3867 | AML_CHUNK* root; |
| 3868 | AML_CHUNK* root1; |
| 3869 | AML_CHUNK* met; |
| 3870 | AML_CHUNK* pack; |
| 3871 | AML_CHUNK *met1, *met2; |
| 3872 | AML_CHUNK* pack1; |
| 3873 | CHAR8 *USBDATA1; |
| 3874 | CHAR8 *USBDATA2; |
| 3875 | CHAR8 *USBDATA3; |
| 3876 | // CHAR8 *USBDATA4; |
| 3877 | |
| 3878 | DBG("Start USB Fix\n"); |
| 3879 | //DBG("len = 0x%08X\n", len); |
| 3880 | |
| 3881 | root = aml_create_node(NULL); |
| 3882 | root1 = aml_create_node(NULL); |
| 3883 | |
| 3884 | // add Method(_DSM,4,NotSerialized) for USB |
| 3885 | met = aml_add_method(root, "_DSM", 4); |
| 3886 | met2 = aml_add_store(met); |
| 3887 | pack = aml_add_package(met2); |
| 3888 | if (!CustProperties(pack, DEV_USB)) { |
| 3889 | aml_add_string(pack, "device-id"); |
| 3890 | aml_add_byte_buffer(pack, (/* CONST*/ UINT8*)&USBID[0], 4); |
| 3891 | aml_add_string(pack, "built-in"); |
| 3892 | aml_add_byte_buffer(pack, dataBuiltin, sizeof(dataBuiltin)); |
| 3893 | aml_add_string(pack, "device_type"); |
| 3894 | if (USBIntel) { |
| 3895 | aml_add_string_buffer(pack, "UHCI"); |
| 3896 | } else if (USBNForce) { |
| 3897 | aml_add_string_buffer(pack, "OHCI"); |
| 3898 | } |
| 3899 | if (gSettings.InjectClockID) { |
| 3900 | aml_add_string(pack, "AAPL,clock-id"); |
| 3901 | aml_add_byte_buffer(pack, dataBuiltin, 1); |
| 3902 | } |
| 3903 | } |
| 3904 | |
| 3905 | aml_add_local0(met2); |
| 3906 | aml_add_buffer(met, dtgp_1, sizeof(dtgp_1)); |
| 3907 | // finish Method(_DSM,4,NotSerialized) |
| 3908 | aml_calculate_size(root); |
| 3909 | |
| 3910 | USBDATA1 = (__typeof__(USBDATA1))AllocateZeroPool(root->Size); |
| 3911 | size1 = root->Size; |
| 3912 | // DBG("USB1 code size = 0x%08X\n", size1); |
| 3913 | aml_write_node(root, USBDATA1, 0); |
| 3914 | aml_destroy_node(root); |
| 3915 | |
| 3916 | // add Method(_DSM,4,NotSerialized) for USB2 |
| 3917 | met1 = aml_add_method(root1, "_DSM", 4); |
| 3918 | met2 = aml_add_store(met1); |
no test coverage detected