Linux Kernel and USB

How usb subsystem is implemented in linux kernel, as of kernel.org kernel v2.6.30-rc7

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=shortlog;h=v2.6.30-rc7

Directory Structure:

.
|– Kconfig
|– Makefile
|– README
|– atm
|   |–
|   `–
|– c67x00
|   |–
|   `–
|– class
|   |–
|   `–
|– core
|   |–
|   `–
|– gadget
|   |–
|   `–
|– host
|   |–
|   `– whci
|       |–
|       `–
|– image
|   |–
|   `–
|– misc
|   |–
|   |– sisusbvga
|   |   |–
|   |   `–
|   |–
|   `–
|– mon
|   |–
|   `–
|– musb
|   |–
|   `–
|– otg
|   |–
|   `–
|– serial
|   |–
|   `–
|– storage
|   |–
|   `–
|– usb-skeleton.c
`– wusbcore
|   |–
|   `–
16 directories, 415 files

READ  Analysing Linux memory utilisation using proc meminfo file

==============================================================================

How “String Descriptor’s” are manupulated and handled in kernel?

Spec reference:

Host Side:

Device Side:

What is Language Id, where is it in spec, and kernel?
URL reference:

http://www.usb.org/developers/docs/

http://www.usb.org/developers/docs/USB_LANGIDs.pdf

Language Identifiers: They are composed of a 10-bit (9-0) Primary Language Identifier and a 6-bit (15-10) Sublanguage Identifier.

Lets take a most famous example of language Id ox0409 English US. For this Primary language identifier is 0x09 (LANG_ENGLISH – English) and Sub-language Identifier is 0x01(SUBLANG_ENGLISH_US – English(US)), So

Language Identifier (0x0409)= Sublanguage Identifier(00 0001b)+Primary Language Identifier(00 0000 1001b)

Leave a Reply

Your email address will not be published. Required fields are marked *