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

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

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)

Android Android Commands Android Java Applications Application Libraries Bash / Shell Scripts Bluetooth driver Build Frameworks Commands and Packages Core Kernel C Programs Development Environment Setup Documents / Books Errors & Failures File Systems Framebuffer / Display Driver git Go Language Programs Hardware Platforms Home JAVA Programs Kernel & Device Drivers Kernel Booting and Porting Linux, OS Concepts and Networking Linux Device Drivers Linux Host, Ubuntu, SysAdmin Linux Kernel Linux Networking Middleware Libraries, HAL NDK / Middleware / HAL Network Driver OS Concepts PHP Procfs Filesystem Programming Languages RaspberryPi Scripting and Automation Search Engine Optimisation ( SEO ) Socurce Code Management ( SCM ) System Administration, Security Testing and Debugging Uncategorized Userspace Utilities Web design and development Wordpress Yocto / Bitbake / Openembedded

Leave a Reply