Rafał Miłecki
0f247626cb
usb: core: Introduce a USB port LED trigger
...
This commit adds a new trigger responsible for turning on LED when USB
device gets connected to the selected USB port. This can can useful for
various home routers that have USB port(s) and a proper LED telling user
a device is connected.
The trigger gets its documentation file but basically it just requires
enabling it and selecting USB ports (e.g. echo 1 > ports/usb1-1).
There was a long discussion on design of this driver. Its current state
is a result of picking them most adjustable solution as others couldn't
handle all cases.
1) It wasn't possible for the driver to register separated trigger for
each USB port. Some physical USB ports are handled by more than one
controller and so by more than one USB port. E.g. USB 2.0 physical
port may be handled by OHCI's port and EHCI's port.
It's also not possible to assign more than 1 trigger to a single LED
and implementing such feature would be tricky due to syncing triggers
and sysfs conflicts with old triggers.
2) Another idea was to register trigger per USB hub. This wouldn't allow
handling devices with multiple USB LEDs and controllers (hubs)
controlling more than 1 physical port. It's common for hubs to have
few ports and each may have its own LED.
This final trigger is highly flexible. It allows selecting any USB ports
for any LED. It was also modified (comparing to the initial version) to
allow choosing ports rather than having user /guess/ proper names. It
was successfully tested on SmartRG SR400ac which has 3 USB LEDs,
2 physical ports and 3 controllers.
It was noted USB subsystem already has usb-gadget and usb-host triggers
but they are pretty trivial ones. They indicate activity only and can't
have ports specified.
In future it may be good idea to consider adding activity support to
usbport as well. This should allow switching to this more generic driver
and maybe marking old ones as obsolete.
This can be implemented with another sysfs file for setting mode. The
default mode wouldn't change so there won't be ABI breakage and so such
feature can be safely implemented later.
There was also an idea of supporting other devices (PCI, SDIO, etc.) but
as this driver already contains some USB specific code (and will get
more) these should be probably separated drivers (triggers).
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2016-09-27 12:20:17 +02:00
..
accessibility
acpi
Merge branch 'libnvdimm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
2016-09-10 09:58:52 -07:00
amba
android
Revert "android: binder: fix dangling pointer comparison"
2016-08-18 17:21:37 +02:00
ata
pata_ninja32: Avoid corrupting status flags
2016-08-30 11:59:47 -04:00
atm
auxdisplay
base
PM / runtime: Use _rcuidle for runtime suspend tracepoints
2016-09-16 02:59:58 +02:00
bcma
block
Revert "floppy: refactor open() flags handling"
2016-08-25 08:56:51 -06:00
bluetooth
bus
arm-cci: pmu: Fix typo in event name
2016-09-07 21:24:42 -07:00
cdrom
char
virtio: fixes for 4.8
2016-09-09 14:52:05 -07:00
clk
Clock Fixes for the Allwinner SoCs, 4.8 Edition
2016-09-08 12:54:24 -07:00
clocksource
clocksource/drivers/atmel-pit: Fix compilation error
2016-08-29 09:51:39 +02:00
connector
cpufreq
cpufreq: dt: Add terminate entry for of_device_id tables
2016-08-31 02:49:05 +02:00
cpuidle
powerpc updates for 4.8 # 1
2016-07-30 21:01:36 -07:00
crypto
crypto: caam - fix IV loading for authenc (giv)decryption
2016-08-31 22:50:42 +08:00
dax
dax: fix mapping size check
2016-09-03 10:40:57 -07:00
dca
devfreq
dio
dma
dmaengine: img-mdc: fix a possible NULL dereference
2016-08-22 11:57:49 +05:30
dma-buf
edac
EDAC, skx_edac: Add EDAC driver for Skylake
2016-08-21 10:58:34 -07:00
eisa
extcon
Merge branch 'next' into resolution
2016-09-15 16:45:20 +05:30
firewire
firmware
Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-09-13 12:02:00 -07:00
fmc
fpga
drivers/fpga/Kconfig: fix build failure
2016-08-04 08:50:07 -04:00
gpio
gpio: sa1100: fix irq probing for ucb1x00
2016-09-08 00:42:57 +02:00
gpu
This pull request brings in a fix for crashes in X on VC4.
2016-09-17 07:57:55 +10:00
hid
hsi
hv
hwmon
hwmon: (it87) Add missing sysfs attribute group terminator
2016-08-29 05:31:31 -07:00
hwspinlock
hwtracing
Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-29 13:55:30 -07:00
i2c
i2c: rk3x: Restore clock settings at resume time
2016-09-08 22:50:33 +02:00
ide
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide
2016-07-29 13:29:06 -07:00
idle
Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2016-07-30 12:56:26 -07:00
iio
Second set of IIO fixes for the 4.8 cycle.
2016-09-09 13:44:37 +02:00
infiniband
Round three of 4.8 rc fixes
2016-09-16 13:51:42 -07:00
input
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
2016-08-26 18:36:23 -07:00
iommu
Merge branch 'for-joerg/arm-smmu/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into iommu/fixes
2016-08-22 12:33:56 +02:00
ipack
irqchip
irqchip/atmel-aic: Fix potential deadlock in ->xlate()
2016-09-13 16:57:40 +02:00
isdn
leds
powerpc updates for 4.8 # 1
2016-07-30 21:01:36 -07:00
lguest
lightnvm
macintosh
drivers/macintosh: Delete owner assignment
2016-08-22 11:09:33 +10:00
mailbox
fix 📫 bcm-pdc-mailbox:mark symbols static where possible
2016-08-29 18:43:39 +05:30
mcb
md
Merge tag 'md/4.8-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md
2016-09-13 11:19:52 -07:00
media
media: usb: zr364xx: zr364xx: don't print error when allocating urb fails
2016-08-30 19:13:55 +02:00
memory
memory: omap-gpmc: allow probe of child nodes to fail
2016-08-08 11:18:40 +03:00
memstick
memstick: don't allocate unused major for ms_block
2016-08-02 17:31:41 -04:00
message
mfd
ARM: SoC driver updates for v4.8
2016-08-01 18:36:01 -04:00
misc
lkdtm: adjust usercopy tests to bypass const checks
2016-09-06 12:17:30 -07:00
mmc
mmc: omap: Initialize dma_slave_config to avoid random data in it's fields
2016-09-14 13:59:33 +02:00
mtd
This pull request contains mostly cleanups and minor
2016-08-04 19:51:49 -04:00
net
net/mlx4_en: Fix panic on xmit while port is down
2016-09-11 19:40:26 -07:00
nfc
ntb
NTB: ntb_hw_intel: use local variable pdev
2016-08-05 10:34:13 -04:00
nubus
nvdimm
libnvdimm: allow legacy (e820) pmem region to clear bad blocks
2016-09-09 17:34:46 -07:00
nvme
Merge branch 'for-linus' of git://git.kernel.dk/linux-block
2016-09-15 13:22:59 -07:00
nvmem
of
of: fix reference counting in of_graph_get_endpoint_by_regs
2016-08-15 11:15:05 -05:00
oprofile
parisc
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
parport
pci
PCI updates for v4.8:
2016-09-14 14:06:30 -07:00
pcmcia
pcmcia: lubbock: fix sockets configuration
2016-09-12 10:57:01 +01:00
perf
drivers/perf: arm_pmu: Fix NULL pointer dereference during probe
2016-09-02 17:17:52 +01:00
phy
phy-twl4030-usb: initialize charging-related stuff via pm_runtime
2016-09-14 10:59:12 +05:30
pinctrl
pinctrl: sunxi: fix uart1 CTS/RTS pins at PG on A23/A33
2016-08-23 12:28:31 +02:00
platform
intel_pmic_gpio: Make explicitly non-modular
2016-08-28 22:31:52 -07:00
pnp
power
power_supply: tps65217-charger: fix missing platform_set_drvdata()
2016-08-15 23:10:44 +02:00
powercap
pps
ps3
ptp
pwm
pwm: Changes for v4.8-rc1
2016-08-06 00:01:33 -04:00
rapidio
rapidio/tsi721: fix incorrect detection of address translation condition
2016-09-01 17:52:02 -07:00
ras
regulator
Merge remote-tracking branches 'regulator/fix/email' and 'regulator/fix/qcom-smd' into regulator-linus
2016-09-06 12:31:34 +01:00
remoteproc
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
reset
rpmsg
rtc
RTC for 4.8
2016-08-05 09:48:22 -04:00
s390
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
2016-08-16 15:50:22 -07:00
sbus
scsi
SCSI fixes on 20160906
2016-09-06 11:06:52 -07:00
sfi
sh
sn
soc
ARM: SoC driver updates for v4.8
2016-08-01 18:36:01 -04:00
spi
Merge remote-tracking branches 'spi/fix/lock', 'spi/fix/maintainers', 'spi/fix/put', 'spi/fix/pxa2xx', 'spi/fix/sh-msiof' and 'spi/fix/timeout' into spi-linus
2016-09-06 12:32:09 +01:00
spmi
ssb
staging
First round of IIO fixes for the 4.8 cycle.
2016-08-23 17:39:31 -04:00
target
target: iblock_execute_sync_cache() should use bio_set_op_attrs()
2016-08-07 14:41:02 -06:00
tc
thermal
thermal: rcar_thermal: Fix priv->zone error handling
2016-09-06 20:46:06 +08:00
thunderbolt
thunderbolt: Don't declare Falcon Ridge unsupported
2016-08-31 13:25:02 +02:00
tty
serial: 8250: added acces i/o products quad and octal serial cards
2016-08-31 16:28:26 +02:00
uio
usb
usb: core: Introduce a USB port LED trigger
2016-09-27 12:20:17 +02:00
uwb
uwb: hwa-rc: don't print error when allocating urb fails
2016-08-15 15:52:40 +02:00
vfio
vfio/pci: Fix NULL pointer oops in error interrupt setup handling
2016-08-08 16:16:23 -06:00
vhost
vhost/scsi: fix reuse of &vq->iov[out] in response
2016-08-23 17:16:57 +03:00
video
dma-mapping: use unsigned long for dma_attrs
2016-08-04 08:50:07 -04:00
virt
virtio
virtio: mark vring_dma_dev() static
2016-09-09 21:12:35 +03:00
vlynq
vme
w1
w1:omap_hdq: fix regression
2016-08-02 19:35:40 -04:00
watchdog
watchdog: pcwd_usb: don't print error when allocating urb fails
2016-08-30 19:13:55 +02:00
xen
xenbus: don't look up transaction IDs for ordinary writes
2016-08-24 18:16:18 +01:00
zorro
Kconfig
Makefile
virtio/vhost: new features for 4.8
2016-08-06 09:20:13 -04:00