#
4f2a6552 |
| 18-Sep-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Simplify attributes macros
Several macros used to define attributes and their access functions take multiple arguments to specify endianness and string conversion functio
usb: gadget: uvc: configfs: Simplify attributes macros
Several macros used to define attributes and their access functions take multiple arguments to specify endianness and string conversion functions, based on the size of the attribute. This can be simplified by passing the number of bits explicitly, and constructing the name of the functions internally.
The UVCG_OPTS_ATTR macro can be simplified further as all fields it deals with are unsigned int.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Tested-by: Paul Elder <paul.elder@ideasonboard.com>
show more ...
|
#
78c9e7ce |
| 18-Sep-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Fix operation on big endian platforms
USB descriptors are stored in little endian, requiring the use of conversion macros. Those macros are incorrectly used for values st
usb: gadget: uvc: configfs: Fix operation on big endian platforms
USB descriptors are stored in little endian, requiring the use of conversion macros. Those macros are incorrectly used for values stored in native endian structures within the driver. Operation on big endian platforms is thus broken. Fix it by removing the conversion macros where they're not needed.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Tested-by: Paul Elder <paul.elder@ideasonboard.com>
show more ...
|
Revision tags: v4.19-rc4, v4.19-rc3 |
|
#
89969a84 |
| 03-Sep-2018 |
Paul Elder <paul.elder@ideasonboard.com> |
usb: gadget: uvc: configfs: Sort frame intervals upon writing
There is an issue where the host is unable to tell the gadget what frame rate it wants if the dwFrameIntervals in the interface descript
usb: gadget: uvc: configfs: Sort frame intervals upon writing
There is an issue where the host is unable to tell the gadget what frame rate it wants if the dwFrameIntervals in the interface descriptors are not in ascending order. This means that when instantiating a uvc gadget via configfs the user must make sure the dwFrameIntervals are in ascending order.
Instead of silently failing the breaking of this rule, we sort the dwFrameIntervals upon writing to configfs.
Signed-off-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
show more ...
|
Revision tags: v4.19-rc2, v4.19-rc1, v4.18, v4.18-rc8, v4.18-rc7, v4.18-rc6, v4.18-rc5, v4.18-rc4, v4.18-rc3, v4.18-rc2, v4.18-rc1, v4.17 |
|
#
cb2200f7 |
| 29-May-2018 |
Joel Pepper <joel.pepper@rwth-aachen.de> |
usb: gadget: uvc: configfs: Prevent format changes after linking header
While checks are in place to avoid attributes and children of a format being manipulated after the format is linked into the s
usb: gadget: uvc: configfs: Prevent format changes after linking header
While checks are in place to avoid attributes and children of a format being manipulated after the format is linked into the streaming header, the linked flag was never actually set, invalidating the protections. Update the flag as appropriate in the header link calls.
Signed-off-by: Joel Pepper <joel.pepper@rwth-aachen.de> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
show more ...
|
#
b206548b |
| 29-May-2018 |
Joel Pepper <joel.pepper@rwth-aachen.de> |
usb: gadget: uvc: configfs: Add bFrameIndex attributes
- Add bFrameIndex as a UVCG_FRAME_ATTR_RO for each frame size. - Automatically assign ascending bFrameIndex to each frame in a format.
Before
usb: gadget: uvc: configfs: Add bFrameIndex attributes
- Add bFrameIndex as a UVCG_FRAME_ATTR_RO for each frame size. - Automatically assign ascending bFrameIndex to each frame in a format.
Before all "bFrameindex" attributes were set to "1" with no way to configure the gadget otherwise. This resulted in the host always negotiating for bFrameIndex 1 (i.e. the first frame size of the gadget). After the negotiation the host driver will set the user or application selected frame size, while the gadget is actually set to the first frame size.
Now, when the containing format is linked into the streaming header, iterate over all child frame descriptors and assign ascending indices. The automatically assigned indices can be read from the new read only bFrameIndex configfs attribute in each frame descriptor item.
Signed-off-by: Joel Pepper <joel.pepper@rwth-aachen.de> [Simplified documentation, renamed function, blank space update] Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
Revision tags: v4.17-rc7 |
|
#
61ff10e0 |
| 26-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Add bFormatIndex attributes
The UVC format description are numbered using the descriptor's bFormatIndex field. The index is used in UVC requests, and is thus needed to ha
usb: gadget: uvc: configfs: Add bFormatIndex attributes
The UVC format description are numbered using the descriptor's bFormatIndex field. The index is used in UVC requests, and is thus needed to handle requests in userspace. Make it dynamically discoverable by exposing it in a bFormatIndex configfs attribute of the uncompressed and mjpeg format config items.
The bFormatIndex value exposed through the attribute is stored in the config item private data. However, that value is never set: the driver instead computes the bFormatIndex value when linking the stream class header in the configfs hierarchy and stores it directly in the class descriptors in a separate structure. In order to expose the value through the configfs attribute, store it in the config item private data as well. This results in a small code simplification.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
bf715448 |
| 23-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Add interface number attributes
The video control and video streaming interface numbers are needed in the UVC gadget userspace stack to reply to UVC requests. They are ha
usb: gadget: uvc: configfs: Add interface number attributes
The video control and video streaming interface numbers are needed in the UVC gadget userspace stack to reply to UVC requests. They are hardcoded to fixed values at the moment, preventing configurations with multiple functions.
To fix this, make them dynamically discoverable by userspace through read-only configfs attributes in <function>/control/bInterfaceNumber and <function>/streaming/bInterfaceNumber respectively.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
efbf0af7 |
| 24-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Allocate groups dynamically
The UVC configfs implementation creates all groups as global static variables. This prevents creation of multiple UVC function instances, as t
usb: gadget: uvc: configfs: Allocate groups dynamically
The UVC configfs implementation creates all groups as global static variables. This prevents creation of multiple UVC function instances, as they would all require their own configfs group instances.
Fix this by allocating all groups dynamically. To avoid duplicating code around, extend the config_item_type structure with group name and children, and implement helper functions to create children automatically for most groups.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
86f3daed |
| 01-Aug-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Drop leaked references to config items
Some of the .allow_link() and .drop_link() operations implementations call config_group_find_item() and then leak the reference to
usb: gadget: uvc: configfs: Drop leaked references to config items
Some of the .allow_link() and .drop_link() operations implementations call config_group_find_item() and then leak the reference to the returned item. Fix this by dropping those references where needed.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
f7d8109e |
| 24-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Add section header comments
The UVC configfs implementation is large and difficult to navigate. Add a bit more air to the code to make it easier to read.
Signed-off-by:
usb: gadget: uvc: configfs: Add section header comments
The UVC configfs implementation is large and difficult to navigate. Add a bit more air to the code to make it easier to read.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
b0aa30f3 |
| 24-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Don't wrap groups unnecessarily
Various configfs groups (represented by config_group) are wrapped in structures that they're the only member of. This allows adding other
usb: gadget: uvc: configfs: Don't wrap groups unnecessarily
Various configfs groups (represented by config_group) are wrapped in structures that they're the only member of. This allows adding other data fields to groups, but it unnecessarily makes the code more complex. Remove the outer structures and use config_group directly to simplify the code. Groups can still be wrapped individually in the future if other data fields need to be added.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
show more ...
|
#
9ac669fc |
| 15-Sep-2018 |
Thomas Gleixner <tglx@linutronix.de> |
Merge tag 'y2038' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground into timers/core
Pull more y2038 work from Arnd Bergman:
y2038: convert more syscalls
Here is another set of syst
Merge tag 'y2038' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground into timers/core
Pull more y2038 work from Arnd Bergman:
y2038: convert more syscalls
Here is another set of system call changes to prepare the change over to 64-bit time_t. As before, the strategy is to change system calls that take a 'struct timespec' argument over to 'struct __kernel_timespec', which for now is defined to be the same but will get redefined to use a 64-bit time_t argument once we are ready to modify the system call tables.
The major change from previous patches is that the plan is no longer to directly use the 'compat' system calls for providing compatibility with the existing 32-bit time_t based entry points. Instead, we rename the compat code to something that makes more sense on 32-bit architectures, e.g. compat_timespec becomes old_timespec32.
With the renamed types in place, change over the 'stat' and 'utimes' families of system calls, sched_rr_get_interval, recvmmsg and rt_sigtimedwait. Another series for poll, select and io_pgetevents is currently being tested.
show more ...
|
#
e42f6f9b |
| 04-Sep-2018 |
James Morris <james.morris@microsoft.com> |
Merge tag 'v4.19-rc2' into next-general
Sync to Linux 4.19-rc2 for downstream developers.
|
#
6e2d6b27 |
| 28-Aug-2018 |
Mark Brown <broonie@kernel.org> |
Merge tag 'v4.19-rc1' into asoc-4.19
Linux 4.19-rc1
|
#
ea4d65f1 |
| 28-Aug-2018 |
Tony Lindgren <tony@atomide.com> |
Merge branch 'perm-fix' into omap-for-v4.19/fixes-v2
|
#
bc537a9c |
| 27-Aug-2018 |
Sean Paul <seanpaul@chromium.org> |
Merge drm/drm-next into drm-misc-next
Now that 4.19-rc1 is cut, backmerge it into -misc-next.
Signed-off-by: Sean Paul <seanpaul@chromium.org>
|
#
5695d5d1 |
| 18-Aug-2018 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge tag 'usb-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH: "Here is the big USB and phy driver patch set for 4.19-rc1.
Nothing huge b
Merge tag 'usb-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
Pull USB/PHY updates from Greg KH: "Here is the big USB and phy driver patch set for 4.19-rc1.
Nothing huge but there was a lot of work that happened this development cycle:
- lots of type-c work, with drivers graduating out of staging, and displayport support being added.
- new PHY drivers
- the normal collection of gadget driver updates and fixes
- code churn to work on the urb handling path, using irqsave() everywhere in anticipation of making this codepath a lot simpler in the future.
- usbserial driver fixes and reworks
- other misc changes
All of these have been in linux-next with no reported issues for a while"
* tag 'usb-4.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (159 commits) USB: serial: pl2303: add a new device id for ATEN usb: renesas_usbhs: Kconfig: convert to SPDX identifiers usb: dwc3: gadget: Check MaxPacketSize from descriptor usb: dwc2: Turn on uframe_sched on "stm32f4x9_fsotg" platforms usb: dwc2: Turn on uframe_sched on "amlogic" platforms usb: dwc2: Turn on uframe_sched on "his" platforms usb: dwc2: Turn on uframe_sched on "bcm" platforms usb: dwc2: gadget: ISOC's starting flow improvement usb: dwc2: Make dwc2_readl/writel functions endianness-agnostic. usb: dwc3: core: Enable AutoRetry feature in the controller usb: dwc3: Set default mode for dwc_usb31 usb: gadget: udc: renesas_usb3: Add register of usb role switch usb: dwc2: replace ioread32/iowrite32_rep with dwc2_readl/writel_rep usb: dwc2: Modify dwc2_readl/writel functions prototype usb: dwc3: pci: Intel Merrifield can be host usb: dwc3: pci: Supply device properties via driver data arm64: dts: dwc3: description of incr burst type usb: dwc3: Enable undefined length INCR burst type usb: dwc3: add global soc bus configuration reg0 usb: dwc3: Describe 'wakeup_work' field of struct dwc3_pci ...
show more ...
|
#
45dd7af4 |
| 30-Jul-2018 |
Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
Merge tag 'usb-for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
Felipe writes:
usb: changes for v4.19
Not a big pull request with only 37 non-merge commits, most
Merge tag 'usb-for-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next
Felipe writes:
usb: changes for v4.19
Not a big pull request with only 37 non-merge commits, most of which are touching dwc2 (74% of the changes).
The most important changes are dwc2's support for uframe scheduling and its endian-agnostic readl/writel wrappers.
From dwc3 side we have a special new glue layer for Synopsys HAPS which will help Synopsys running FPGA validation using our upstream driver. We also have the beginnings of dual-role support for Intel Merrifield platform.
Apart from these, just a series of non-critical changes.
show more ...
|
#
c728effd |
| 23-May-2018 |
Laurent Pinchart <laurent.pinchart@ideasonboard.com> |
usb: gadget: uvc: configfs: Move function to avoid forward declaration
The to_f_uvc_opts() function is forward-declared without needing to, as its definition can simply be moved up in the file. Fix
usb: gadget: uvc: configfs: Move function to avoid forward declaration
The to_f_uvc_opts() function is forward-declared without needing to, as its definition can simply be moved up in the file. Fix it.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
show more ...
|
Revision tags: v4.17-rc6, v4.17-rc5, v4.17-rc4, v4.17-rc3, v4.17-rc2, v4.17-rc1 |
|
#
664b0bae |
| 05-Apr-2018 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge branch 'next' into for-linus
Prepare input updates for 4.17 merge window.
|
Revision tags: v4.16, v4.16-rc7, v4.16-rc6, v4.16-rc5, v4.16-rc4, v4.16-rc3, v4.16-rc2, v4.16-rc1 |
|
#
10a55837 |
| 01-Feb-2018 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge tag 'v4.15' into next
Sync with mainline to get in trackpoint updates and other changes.
|
#
7e86548e |
| 30-Jan-2018 |
Ingo Molnar <mingo@kernel.org> |
Merge tag 'v4.15' into x86/pti, to be able to merge dependent changes
Time has come to switch PTI development over to a v4.15 base - we'll still try to make sure that all PTI fixes backport cleanly
Merge tag 'v4.15' into x86/pti, to be able to merge dependent changes
Time has come to switch PTI development over to a v4.15 base - we'll still try to make sure that all PTI fixes backport cleanly to v4.14 and earlier.
Signed-off-by: Ingo Molnar <mingo@kernel.org>
show more ...
|
#
ddb9e13a |
| 29-Jan-2018 |
Juergen Gross <jgross@suse.com> |
Merge branch 'master' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
|
Revision tags: v4.15 |
|
#
0b5eca67 |
| 25-Jan-2018 |
Mark Brown <broonie@kernel.org> |
Merge branches 'topic/twl4030' and 'topic/twl6040' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-twl-breakage
|
Revision tags: v4.15-rc9, v4.15-rc8 |
|
#
498495db |
| 08-Jan-2018 |
Mark Brown <broonie@kernel.org> |
Merge branch 'fix/intel' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-intel
|