linux-xiaomi-chiron/drivers/usb/gadget/function
Maciej Żenczykowski 1958ff5ad2 usb: f_ncm: only first packet of aggregate needs to start timer
The reasoning for this change is that if we already had
a packet pending, then we also already had a pending timer,
and as such there is no need to reschedule it.

This also prevents packets getting delayed 60 ms worst case
under a tiny packet every 290us transmit load, by keeping the
timeout always relative to the first queued up packet.
(300us delay * 16KB max aggregation / 80 byte packet =~ 60 ms)

As such the first packet is now at most delayed by 300us.

Under low transmit load, this will simply result in us sending
a shorter aggregate, as originally intended.

This patch has the benefit of greatly reducing (by ~10 factor
with 1500 byte frames aggregated into 16 kiB) the number of
(potentially pretty costly) updates to the hrtimer.

Cc: Brooke Basile <brookebasile@gmail.com>
Cc: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Cc: Felipe Balbi <balbi@kernel.org>
Cc: Lorenzo Colitti <lorenzo@google.com>
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Link: https://lore.kernel.org/r/20210608085438.813960-1-zenczykowski@gmail.com
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-06-09 10:34:18 +02:00
..
f_acm.c USB: gadget: f_acm: add support for SuperSpeed Plus 2020-12-10 16:12:20 +01:00
f_ecm.c usb: gadget: f_ecm: Use atomic_t to track in-flight request 2020-01-15 10:40:22 +01:00
f_eem.c usb: gadget: function: remove redundant assignment to variable 'status' 2020-05-25 11:09:39 +03:00
f_fs.c usb: gadget: f_fs: Ensure io_completion_wq is idle during unbind 2021-06-04 13:40:46 +02:00
f_hid.c usb: gadget: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
f_loopback.c usb: Fix fall-through warnings for Clang 2020-11-23 17:46:01 +01:00
f_mass_storage.c usb: gadget: storage: Remove unused function pointer typedef fsg_routine_t 2021-03-10 09:37:15 +01:00
f_mass_storage.h
f_midi.c usb/gadget: f_midi: Replace tasklet with work 2021-01-12 12:52:28 +01:00
f_ncm.c usb: f_ncm: only first packet of aggregate needs to start timer 2021-06-09 10:34:18 +02:00
f_obex.c usb: gadget: u_serial: make OBEX port not a console 2019-10-22 10:27:09 +03:00
f_phonet.c usb: gadget: Use fallthrough pseudo-keyword 2020-07-10 08:55:18 +02:00
f_printer.c usb: gadget: function: fix typo in f_printer.c 2021-03-10 09:37:15 +01:00
f_rndis.c USB: gadget: f_rndis: fix bitrate for SuperSpeed and above 2020-12-10 16:12:16 +01:00
f_serial.c usb: gadget: f_serial: add suspend resume callbacks 2020-05-25 11:09:39 +03:00
f_sourcesink.c usb: Fix fall-through warnings for Clang 2020-11-23 17:46:01 +01:00
f_subset.c
f_tcm.c scsi: target: usb: gadget: Convert to new submission API 2021-03-04 17:37:01 -05:00
f_uac1.c usb: gadget: f_uac1: disable IN/OUT ep if unused 2021-03-23 12:54:56 +01:00
f_uac1_legacy.c usb: gadget: function: fix missing spinlock in f_uac1_legacy 2020-07-09 10:13:07 +03:00
f_uac2.c usb: gadget: f_uac2: validate input parameters 2021-03-23 12:54:56 +01:00
f_uvc.c usb: webcam: Invalid size of Processing Unit Descriptor 2021-03-18 09:02:27 +01:00
f_uvc.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
g_zero.h
Makefile
ndis.h
rndis.c proc: convert everything to "struct proc_ops" 2020-02-04 03:05:26 +00:00
rndis.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
storage_common.c block: remove i_bdev 2020-12-01 14:53:39 -07:00
storage_common.h scsi: treewide: Consolidate {get,put}_unaligned_[bl]e24() definitions 2020-03-16 22:08:34 -04:00
tcm.h
u_audio.c usb: gadget: u_audio: convert to strscpy 2021-03-23 12:56:08 +01:00
u_audio.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_ecm.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_eem.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_ether.c usb: gadget: u_ether: support configuring interface names. 2021-01-15 16:08:53 +01:00
u_ether.h usb: gadget: u_ether: support configuring interface names. 2021-01-15 16:08:53 +01:00
u_ether_configfs.h USB: gadget: u_ether: Fix a configfs return code 2021-03-10 09:36:12 +01:00
u_fs.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_gether.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_hid.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_midi.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_ncm.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_phonet.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_printer.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_rndis.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_serial.c usb: gadget: u_serial: Remove old tasklet comments 2021-01-19 13:30:52 +01:00
u_serial.h usb: gadget: u_serial.h: increase MAX_U_SERIAL_PORTS to 8 2020-06-18 10:23:22 +02:00
u_tcm.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_uac1.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_uac1_legacy.c usb: gadget: function: u_uac1_legacy: Demote obvious misuse of kerneldoc to standard comment blocks 2020-07-09 17:19:58 +02:00
u_uac1_legacy.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_uac2.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
u_uvc.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
uvc.h usb: gadget: uvc_video: add worker to handle the frame pumping 2020-05-25 11:09:38 +03:00
uvc_configfs.c usb: gadget: uvc: Updating bcdUVC field to 0x0110 2021-03-18 09:02:27 +01:00
uvc_configfs.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
uvc_queue.c
uvc_queue.h
uvc_v4l2.c usb: gadget: uvc_video: add worker to handle the frame pumping 2020-05-25 11:09:38 +03:00
uvc_v4l2.h USB: gadget: Use the correct style for SPDX License Identifier 2020-05-05 10:58:49 +03:00
uvc_video.c usb: gadget: uvc_video: add worker to handle the frame pumping 2020-05-25 11:09:38 +03:00
uvc_video.h usb: gadget: uvc_video: add worker to handle the frame pumping 2020-05-25 11:09:38 +03:00