summaryrefslogtreecommitdiff
path: root/configfs.c
AgeCommit message (Collapse)Author
2018-06-05configfs: add support for bFrameIndexPaul Elder
Driver now supports bFrameIndex through configfs; enable reading this attribute from configfs. This is necessary to associate the correct bFrameIndexes with the UVC frame descriptors. Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-06-01configfs: Parse UVC formats, frames and intervalsLaurent Pinchart
Extend the ConfigFS parser to parse UVC formats and intervals. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2018-06-01configfs: Restructure attribute read to support binary attributesLaurent Pinchart
Modify the attribute_read() function to not add a terminating 0 to the buffer, and to return the number of bytes read, in order to support binary attributes. The attribute_read_uint() and attribute_read_str() functions are modified accordingly to use the new attribute_read() semantics. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2018-06-01configfs: Refactor ConfigFS parsing codeLaurent Pinchart
Move all attribute parsing to a top-level configfs_parse_uvc() function, and split control and streaming interface attributes to two separate helper functions. In addition to making the code more structured, it will also allow supporting multiple streaming interfaces in a single UVC function in the future. The uvc_function_config structure is similarly reorganized in a hierarchical representation of the configuration. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2018-06-01configfs: Don't guess interface numbers if they can't be parsedLaurent Pinchart
Interface numbers are crucial parameters required for proper UVC gadget operation. If we can't parse them from ConfigFS there's little point in falling back to defaults that have a high chance being wrong. Treating that case as a fatal error is better to get the root cause fixed. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
2018-05-26configfs: Handle interface numbersKieran Bingham
Store the function configuration pointer in the uvc_device, and use it to identify and store the interface numbers from configfs. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
2018-05-26configfs: Provide configfs supportKieran Bingham
Parse a configuration name from the commandline, and utilise it to identify the configfs configuration path. Only the short-name (i.e. "uvc.1") is necessary to provide if there is no ambiguity regarding the gadget, otherwise the gadget path should be included ("g1/functions/uvc.1"). If the parameter is not provided then the first function is utilised. Legacy g_webcam is still supported, and the parameter will define the UDC to match against if provided. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>