backported ep0 changes
backport: endpoint direction based on endpoint descriptor
backport: fifo read/write changes