VirtualBox

Changeset 52743 in vbox for trunk


Ignore:
Timestamp:
Sep 15, 2014 7:25:29 AM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
96089
Message:

Main/USB: Fix darwin assertion on Macbooks with USB 3.0 (Superspeed) ports and devices, introduce new device speed enum value for USB 3.0 devices

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/usb.h

    r44528 r52743  
    6868    /** Variable speed - USB 2.5 / wireless. */
    6969    USBDEVICESPEED_VARIABLE,
     70    /** Super speed - USB 3.0 (5Gbit/s). */
     71    USBDEVICESPEED_SUPER,
    7072    /** The usual 32-bit hack. */
    7173    USBDEVICESPEED_32BIT_HACK = 0x7fffffff
  • trunk/src/VBox/Main/src-server/HostUSBDeviceImpl.cpp

    r51498 r52743  
    231231        *aPortVersion = mUsb->bcdUSB >> 8;
    232232    else
    233         *aPortVersion = (mUsb->enmSpeed == USBDEVICESPEED_HIGH) ? 2 : 1;
     233    {
     234        switch (mUsb->enmSpeed)
     235        {
     236            case USBDEVICESPEED_SUPER:
     237                *aPortVersion = 3;
     238                break;
     239            case USBDEVICESPEED_HIGH:
     240                *aPortVersion = 2;
     241                break;
     242            case USBDEVICESPEED_FULL:
     243            case USBDEVICESPEED_LOW:
     244            case USBDEVICESPEED_VARIABLE:
     245                *aPortVersion = 1;
     246                break;
     247            default:
     248                AssertMsgFailed(("Invalid USB speed: %d\n", mUsb->enmSpeed));
     249                *aPortVersion = 1;
     250        }
     251    }
    234252
    235253    return S_OK;
  • trunk/src/VBox/Main/src-server/darwin/iokit.cpp

    r51578 r52743  
    973973                uint8_t bSpeed;
    974974                AssertBreak(darwinDictGetU8(PropsRef,  CFSTR(kUSBDevicePropertySpeed),  &bSpeed));
    975                 Assert(bSpeed <= 2);
    976                 pCur->enmSpeed = bSpeed == 2 ? USBDEVICESPEED_HIGH
     975                Assert(bSpeed <= 3);
     976                pCur->enmSpeed = bSpeed == 3 ? USBDEVICESPEED_SUPER
     977                               : bSpeed == 2 ? USBDEVICESPEED_HIGH
    977978                               : bSpeed == 1 ? USBDEVICESPEED_FULL
    978979                               : bSpeed == 0 ? USBDEVICESPEED_LOW
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette