X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FUSB%2FCore%2Fusb_lowlevel.c;h=1eba637fedd288facc405718a9028d17b615f84c;hb=1ba64c63a4a3a8ce27155f9463f0442ea7f7dc89;hp=3450bd805d042506b89b78c2276bc7d2b3d897c1;hpb=8bfd42a027bc3332c06c93216ae6aaea02cb4126;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/USB/Core/usb_lowlevel.c b/KernelLand/Modules/USB/Core/usb_lowlevel.c index 3450bd80..1eba637f 100644 --- a/KernelLand/Modules/USB/Core/usb_lowlevel.c +++ b/KernelLand/Modules/USB/Core/usb_lowlevel.c @@ -78,16 +78,12 @@ int USB_int_ReadDescriptor(tUSBDevice *Dev, int Endpoint, int Type, int Index, i int dest = Dev->Address*16 + Endpoint; req.ReqType = 0x80; - switch( Type & 0xF00 ) - { - case 0x000: req.ReqType |= (0 << 5); break; // Standard - case 0x100: req.ReqType |= (1 << 5); break; // Class - case 0x200: req.ReqType |= (2 << 5); break; // Vendor - } + req.ReqType |= ((Type >> 8) & 0x3) << 5; // Bits 5/6 + req.ReqType |= (Type >> 12) & 3; // Destination (Device, Interface, Endpoint, Other); req.Request = 6; // GET_DESCRIPTOR req.Value = LittleEndian16( ((Type & 0xFF) << 8) | (Index & 0xFF) ); - req.Index = LittleEndian16( 0 ); // TODO: Language ID + req.Index = LittleEndian16( 0 ); // TODO: Language ID / Interface req.Length = LittleEndian16( Length ); Dev->Host->HostDef->SendSETUP(