Author Topic: WHCM and alternate interface  (Read 15982 times)

wlcolman

  • Member
  • ***
  • Posts: 3
WHCM and alternate interface
« on: October 21, 2010, 06:02:24 pm »
Hello,

I'm developing a driver for an Internet stick (composite device). See the attached text file showing the complete configuration.

1) What is the purpose of the Wireless Handset Control Model class-specific interface?

2) The device offers an alternate interface for interface 0. Alternate 0 is the Wireless Handset Control Model class-specific interface. Alternate 1 is basically the same except it does not have any class-specific descriptors. When would I use the alternate interface and when would I use the default interface?

Thanks.

[attachment deleted by admin]

Jan Axelson

  • Administrator
  • Frequent Contributor
  • *****
  • Posts: 3033
    • Lakeview Research
Re: WHCM and alternate interface
« Reply #1 on: October 21, 2010, 10:36:13 pm »
I will assume this is an existing device and you have no access to the developers, who could answer your questions.

From the WMC110 spec:

6.1.2.1
WHCM Interface Descriptor
One interface descriptor with bInterfaceClass == COMM and bInterfaceSubClass == WHCM and bInterfaceProtocol == 0 shall be embedded in the configuration bundle for each wireless device.

Following the WHCM descriptor, a number of functional descriptors appear.

***

So without that descriptor, you don't have a CDC wireless handset control.

Interface 0, alternate setting 0 has a subordinate interface (interface 1). The subordinate interface has an isochronous endpoint and its own subordinate interface (2). Interface 3 also has an iso. endpoint.

Interface 0, alternate setting 1 has no subordinate interface.

A device's default configuration should request no isochronous bandwith, so perhaps the alternate setting enables the driver to configure the device with no iso. bandwidth when necessary.

However, the default interface is alternate setting zero, and the functional descriptors should follow the interface descriptor, so I would expect the three functional descriptors to follow alternate 1, not alternate zero. And I'm not sure how alternate 0 disables the iso. endpoint on interface 3.

Jan