usb gadget: Add config for UVC in init
The UVC gadget requires some setup in configfs before it can be used by the gadget HAL. This CL adds that setup to usb specific init.rc file. Currently, UVC is setup to advertise mjpeg streams at 720p and 1080p at 60, 30, 24, and 15 fps each. Bug: 242344221 Test: Manually tested that UVC is correctly set up on boot. Change-Id: Ic597e5a1ec1bd31d73899e5a885f8cb0d0753bd5
This commit is contained in:
parent
eafdae6687
commit
0dceb53c11
1 changed files with 132 additions and 0 deletions
|
@ -71,6 +71,45 @@ on early-boot
|
||||||
# acm function for uwb
|
# acm function for uwb
|
||||||
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
mkdir /config/usb_gadget/g1/functions/acm.uwb0
|
||||||
|
|
||||||
|
# uvc function
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/function_name "Android Webcam"
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket 3072
|
||||||
|
# write /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst 5
|
||||||
|
# write /config/usb_gadget/g1/functions/uvc.0/streaming_interval 2
|
||||||
|
# setup control params
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/control/header/h /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||||
|
# advertise 720p resolution for webcam encoded as mjpeg
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight 720
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth 1280
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize 1843200
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval 333333
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval "166666
|
||||||
|
333333
|
||||||
|
416666
|
||||||
|
666666"
|
||||||
|
# advertise 1080p resolution for webcam encoded as mjpeg
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight 1080
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth 1920
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize 4147200
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval 333333
|
||||||
|
write /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval "166666
|
||||||
|
333333
|
||||||
|
416666
|
||||||
|
666666"
|
||||||
|
# TODO: Add uncompressed streams
|
||||||
|
# setup streaming params
|
||||||
|
mkdir /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||||
|
symlink /config/usb_gadget/g1/functions/uvc.0/streaming/header/h /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||||
|
|
||||||
# chown file/folder permission
|
# chown file/folder permission
|
||||||
chown system system /config/usb_gadget/
|
chown system system /config/usb_gadget/
|
||||||
chown system system /config/usb_gadget/g1
|
chown system system /config/usb_gadget/g1
|
||||||
|
@ -135,6 +174,99 @@ on early-boot
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/protocol
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/qmult
|
||||||
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
chown system system /config/usb_gadget/g1/functions/rndis.gs4/subclass
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/bInterfaceNumber
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/fs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/class/ss/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/bcdUVC
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/header/h/dwClockFrequency
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bmControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bSourceID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/bUnitID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/iProcessing
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/processing/default/wMaxMultiplier
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bAssocTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bmControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/bTerminalID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/iTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMax
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wObjectiveFocalLengthMin
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wOcularFocalLength
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/camera/default/wTerminalType
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bAssocTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bSourceID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/bTerminalID
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/iTerminal
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/control/terminal/output/default/wTerminalType
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/function_name
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_interval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxburst
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming_maxpacket
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/bInterfaceNumber
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/fs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/hs/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/class/ss/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bColorPrimaries
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bMatrixCoefficients
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/color_matching/default/bTransferCharacteristics
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bmInfo
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bStillCaptureMethod
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTerminalLink
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerSupport
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/bTriggerUsage
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/header/h/m
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/bmCapabilities
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwDefaultFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMaxVideoFrameBufferSize
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/dwMinBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wHeight
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/1080p/wWidth
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/bmCapabilities
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wHeight
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/720p/wWidth
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioX
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bAspectRatioY
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bDefaultFrameIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bFormatIndex
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmaControls
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmFlags
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/mjpeg/m/bmInterlaceFlags
|
||||||
|
chown system system /config/usb_gadget/g1/functions/uvc.0/streaming/uncompressed
|
||||||
chown system system /config/usb_gadget/g1/idProduct
|
chown system system /config/usb_gadget/g1/idProduct
|
||||||
chown system system /config/usb_gadget/g1/idVendor
|
chown system system /config/usb_gadget/g1/idVendor
|
||||||
chown system system /config/usb_gadget/g1/max_speed
|
chown system system /config/usb_gadget/g1/max_speed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue