Kay Sievers
ce880cb860
udlfb: remove sysfs framebuffer device with USB .disconnect()
...
The USB graphics card driver delays the unregistering of the framebuffer
device to a workqueue, which breaks the userspace visible remove uevent
sequence. Recent userspace tools started to support USB graphics card
hotplug out-of-the-box and rely on proper events sent by the kernel.
The framebuffer device is a direct child of the USB interface which is
removed immediately after the USB .disconnect() callback. But the fb device
in /sys stays around until its final cleanup, at a time where all the parent
devices have been removed already.
To work around that, we remove the sysfs fb device directly in the USB
.disconnect() callback and leave only the cleanup of the internal fb
data to the delayed work.
Before:
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
remove /2-1.2:1.0/graphics/fb0 (graphics)
After:
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
add /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
remove /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
Cc: stable@vger.kernel.org
Tested-by: Bernie Thompson <bernie@plugable.com>
Acked-by: Bernie Thompson <bernie@plugable.com>
Signed-off-by: Kay Sievers <kay.sievers@vrfy.org>
Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
2012-03-15 13:35:22 +00:00
..
aty
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
backlight
drivers/video/backlight/l4f00242t03.c: return proper error in l4f00242t03_probe if regulator_get() fails
2012-01-23 08:38:48 -08:00
console
Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus
2012-01-14 13:05:21 -08:00
geode
gx1fb: Fix section mismatch warnings
2011-06-24 17:00:31 +09:00
i810
module_param: make bool parameters really bool (drivers/video/i810)
2012-01-12 23:28:59 +00:00
intelfb
fbdev fixes for 3.3
2012-02-07 15:54:02 -08:00
kyro
Fix common misspellings
2011-03-31 11:26:23 -03:00
logo
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
matrox
fbdev: matroxfb: Fix compilation after fb_var_screeninfo change
2011-12-21 02:26:11 +00:00
mb862xx
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
mbx
video: convert mbxfb to use module_platform_driver()
2011-12-19 20:21:43 +00:00
msm
video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video
2011-10-31 19:31:33 -04:00
nvidia
drivers/video/nvidia/nvidia.c: fix warning
2012-01-12 20:13:03 -08:00
omap
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
2012-01-14 15:11:19 -08:00
omap2
OMAPDSS: APPLY: make ovl_enable/disable synchronous
2012-02-29 22:42:28 +00:00
pnx4008
video: pnx4008: convert drivers/video/pnx4008/* to use module_platform_driver()
2011-12-19 20:21:43 +00:00
riva
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
savage
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
sis
sisfb: use display information in info not in var for panning
2011-08-19 10:34:52 +02:00
vermilion
atomic: use <linux/atomic.h>
2011-07-26 16:49:47 -07:00
via
viafb: fix IGA1 modesetting on VX900
2012-02-24 00:38:14 +00:00
68328fb.c
68328fb: use display information in info not in var for panning
2011-08-19 10:28:58 +02:00
acornfb.c
acornfb: use display information in info not in var for panning
2011-08-19 10:29:34 +02:00
acornfb.h
amba-clcd.c
fbdev: amba: Enable module alias autogeneration for AMBA drivers
2011-11-22 10:58:33 +00:00
amifb.c
fbdev/amifb: Use framebuffer_alloc()
2011-12-03 22:03:32 +00:00
arcfb.c
video: Convert vmalloc/memset to vzalloc
2011-06-02 17:25:35 +09:00
arkfb.c
arkfb: use display information in info not in var for panning
2011-08-19 10:29:44 +02:00
asiliantfb.c
atafb.c
m68k/atari: Do not use "/" in interrupt names
2011-05-19 18:19:10 +02:00
atafb.h
atafb_iplan2p2.c
atafb_iplan2p4.c
atafb_iplan2p8.c
atafb_mfb.c
atafb_utils.h
atmel_lcdfb.c
atmel_lcdfb: fix usage of CONTRAST_CTR in suspend/resume
2012-01-28 19:50:22 +00:00
au1100fb.c
MIPS: Alchemy: one kernel for DB1000/DB1500/DB1100
2011-12-07 22:02:07 +00:00
au1100fb.h
fb: fix au1100fb bitrot.
2011-10-03 15:52:38 +00:00
au1200fb.c
MIPS: Alchemy: move au1200fb global functions to platform data
2011-12-07 22:02:07 +00:00
au1200fb.h
bf54x-lq043fb.c
treewide: Fix comment and string typo 'bufer'
2011-12-06 09:53:40 +01:00
bf537-lq035.c
fbdev: bf537-lq035: add missing blacklight properties type
2011-06-02 17:07:35 +09:00
bfin-lq035q1-fb.c
video: irq: Remove IRQF_DISABLED
2011-10-03 15:52:22 +00:00
bfin-t350mcqb-fb.c
treewide: Fix comment and string typo 'bufer'
2011-12-06 09:53:40 +01:00
bfin_adv7393fb.c
video: irq: Remove IRQF_DISABLED
2011-10-03 15:52:22 +00:00
bfin_adv7393fb.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
broadsheetfb.c
video: Convert vmalloc/memset to vzalloc
2011-06-02 17:25:35 +09:00
bt431.h
bt455.h
bw2.c
dt/video: Eliminate users of of_platform_{,un}register_driver
2011-02-28 13:22:45 -07:00
c2p.h
c2p_core.h
c2p_iplan2.c
c2p_planar.c
carminefb.c
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
carminefb.h
carminefb_regs.h
cfbcopyarea.c
cfbfillrect.c
cfbimgblt.c
cg3.c
dt/video: Eliminate users of of_platform_{,un}register_driver
2011-02-28 13:22:45 -07:00
cg6.c
video: add missing framebuffer_release in error path
2011-03-22 16:35:44 +09:00
cg14.c
video: add missing framebuffer_release in error path
2011-03-22 16:35:44 +09:00
chipsfb.c
console: rename acquire/release_console_sem() to console_lock/unlock()
2011-01-26 10:50:06 +10:00
cirrusfb.c
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
2012-01-14 15:11:19 -08:00
clps711xfb.c
cobalt_lcdfb.c
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
controlfb.c
Drivers: video: controlfb: fixed a brace coding style issue
2011-11-22 01:00:16 +00:00
controlfb.h
cyber2000fb.c
VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var()
2011-02-11 10:16:07 +00:00
cyber2000fb.h
VIDEO: cyberpro: remove unused cyber2000fb_get_fb_var()
2011-02-11 10:16:07 +00:00
da8xx-fb.c
video:da8xx-fb: Disable and reset sequence on version2 of LCDC
2011-11-22 00:55:53 +00:00
dnfb.c
edid.h
video: Fix EDID macros H_SYNC_WIDTH and H_SYNC_OFFSET
2011-03-22 16:45:03 +09:00
efifb.c
efifb: Fix call to wrong unregister function
2011-06-14 16:37:46 +09:00
ep93xx-fb.c
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
epson1355fb.c
fb-puv3.c
fbdev: unicore32: use display information in info not in var for panning
2011-08-19 10:31:01 +02:00
fb_ddc.c
video: Add module.h to drivers/video files who really use it.
2011-10-31 19:31:33 -04:00
fb_defio.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/fbdev-3.x into fbdev-next
2011-08-29 09:14:30 +00:00
fb_draw.h
fb_notify.c
video: Add export.h for THIS_MODULE/EXPORT_SYMBOL to drivers/video
2011-10-31 19:31:33 -04:00
fb_sys_fops.c
fbcmap.c
framebuffer: fix fbcmap.c kernel-doc warning
2010-11-26 15:05:08 +09:00
fbcvt.c
fbmem.c
udlfb: remove sysfs framebuffer device with USB .disconnect()
2012-03-15 13:35:22 +00:00
fbmon.c
fbdev: fix parsing of standard timings
2011-09-01 00:31:05 +00:00
fbsysfs.c
fb: avoid possible deadlock caused by fb_set_suspend
2011-09-02 17:58:29 +00:00
ffb.c
video: ffb: fix ffb_probe error path
2011-03-22 16:18:51 +09:00
fm2fb.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
fsl-diu-fb.c
drivers/video: compile fixes for fsl-diu-fb.c
2012-01-28 19:35:24 +00:00
g364fb.c
g364fb: use display information in info not in var for panning
2011-08-19 10:31:09 +02:00
gbefb.c
Fix common misspellings
2011-03-31 11:26:23 -03:00
grvga.c
grvga: fix section mismatch warnings
2012-01-03 16:02:55 +00:00
gxt4500.c
gxt4500: use display information in info not in var for panning
2011-08-19 10:31:17 +02:00
hecubafb.c
hecubafb: add module_put on error path in hecubafb_probe()
2011-06-24 17:00:39 +09:00
hgafb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
hitfb.c
hpfb.c
video: hpfb: use resource_size()
2011-03-22 16:07:32 +09:00
igafb.c
doc: fix broken references
2011-09-27 18:08:04 +02:00
imsttfb.c
imsttfb: use display information in info not in var for panning
2011-08-19 10:31:39 +02:00
imxfb.c
drivers/video/imxfb.c: add missing clk_put
2011-06-02 17:07:41 +09:00
jz4740_fb.c
console: rename acquire/release_console_sem() to console_lock/unlock()
2011-01-26 10:50:06 +10:00
Kconfig
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
2012-01-14 15:11:19 -08:00
leo.c
dt/video: Eliminate users of of_platform_{,un}register_driver
2011-02-28 13:22:45 -07:00
macfb.c
macfb: fix black and white modes
2012-01-22 14:50:02 +01:00
macmodes.c
macmodes.h
Makefile
fbdev: remove display subsystem
2011-11-11 16:46:18 +00:00
maxinefb.c
metronomefb.c
video: Convert vmalloc/memset to vzalloc
2011-06-02 17:25:35 +09:00
modedb.c
fbdev: fix indentation in modedb.c
2011-09-14 16:40:52 +00:00
mx3fb.c
video i.MX IPU: Fix display connections
2011-12-08 12:59:03 +05:30
mxsfb.c
Merge branch 'fbdev-next' of git://github.com/schandinat/linux-2.6
2012-01-14 15:11:19 -08:00
n411.c
neofb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
nuc900fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
nuc900fb.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
offb.c
offb: Fix setting of the pseudo-palette for >8bpp
2012-01-03 12:09:25 +11:00
output.c
p9100.c
dt/video: Eliminate users of of_platform_{,un}register_driver
2011-02-28 13:22:45 -07:00
platinumfb.c
video: platinumfb: Add __devexit_p at necessary place
2011-10-15 00:19:58 +00:00
platinumfb.h
pm2fb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
pm3fb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
pmag-aa-fb.c
pmag-ba-fb.c
pmagb-b-fb.c
ps3fb.c
video: irq: Remove IRQF_DISABLED
2011-10-03 15:52:22 +00:00
pvr2fb.c
video: pvr2fb: Fix up spurious section mismatch warnings.
2012-01-13 16:42:50 +09:00
pxa3xx-gcu.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
pxa3xx-gcu.h
video: add driver for PXA3xx 2D graphics accelerator
2010-12-16 14:31:18 +08:00
pxa168fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
pxa168fb.h
pxafb.c
Merge branch 'next/fixes' of git://git.linaro.org/people/arnd/arm-soc
2011-11-01 19:55:06 -07:00
pxafb.h
ARM: pxafb: rework pxafb overlay memory management
2011-03-16 17:37:03 +08:00
q40fb.c
s1d13xxxfb.c
s1d13xxxfb: drop unused code
2010-12-21 01:05:43 +09:00
s3c-fb.c
video: s3c-fb: Don't keep device runtime active when open
2012-01-03 16:00:05 +00:00
s3c2410fb.c
video: s3c2410: fix checkpatch error and warnings
2011-12-03 22:10:43 +00:00
s3c2410fb.h
s3fb.c
s3fb: fix Virge/VX
2011-12-21 02:25:21 +00:00
sa1100fb.c
video: irq: Remove IRQF_DISABLED
2011-10-03 15:52:22 +00:00
sa1100fb.h
sbuslib.c
Drivers: video: sbuslib: fixed a brace coding style issue
2011-11-22 01:00:24 +00:00
sbuslib.h
sgivwfb.c
sh7760fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
sh_mipi_dsi.c
fbdev: sh_mipi_dsi: fixup setup timing DSICTRL
2011-11-21 23:43:22 +00:00
sh_mobile_hdmi.c
fb: sh-mobile: Fix deadlock risk between lock_fb_info() and console_lock()
2011-09-02 18:21:21 +00:00
sh_mobile_lcdcfb.c
fbdev: sh_mobile_lcdc: Support FOURCC-based format API
2011-12-19 20:07:13 +00:00
sh_mobile_lcdcfb.h
fbdev: sh_mobile_lcdc: Restart LCDC in runtime PM resume handler
2011-08-19 08:22:41 +02:00
sh_mobile_meram.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
skeletonfb.c
video: Fix speficied typo
2011-06-24 17:14:39 +09:00
sm501fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
smscufx.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
sstfb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
sticore.h
Fix common misspellings
2011-03-31 11:26:23 -03:00
stifb.c
sunxvr500.c
sunxvr1000.c
dt/video: Eliminate users of of_platform_{,un}register_driver
2011-02-28 13:22:45 -07:00
sunxvr2500.c
svgalib.c
svga: Make svga_set_timings() take an iomem regbase pointer.
2011-03-22 15:47:22 +09:00
syscopyarea.c
sysfillrect.c
sysimgblt.c
tcx.c
video: add missing framebuffer_release in error path
2011-03-22 16:35:44 +09:00
tdfxfb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
tgafb.c
tmiofb.c
video: irq: Remove IRQF_DISABLED
2011-10-03 15:52:22 +00:00
tridentfb.c
tridentfb: use display information in info not in var for panning
2011-08-19 10:35:18 +02:00
udlfb.c
udlfb: remove sysfs framebuffer device with USB .disconnect()
2012-03-15 13:35:22 +00:00
uvesafb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
valkyriefb.c
video: Fix speficied typo
2011-06-24 17:14:39 +09:00
valkyriefb.h
vesafb.c
vesafb: fix memory leak
2011-07-04 16:02:48 +09:00
vfb.c
module_param: make bool parameters really bool (drivers & misc)
2012-01-13 09:32:20 +10:30
vga16fb.c
vga16fb: use display information in info not in var for panning
2011-08-19 10:35:34 +02:00
vgastate.c
vt8500lcdfb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
vt8500lcdfb.h
ARM: Add support for the display controllers in VT8500 and WM8505
2010-11-09 18:52:07 +09:00
vt8623fb.c
vt8623fb: use display information in info not in var for panning
2011-08-19 10:36:20 +02:00
w100fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
w100fb.h
wm8505fb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
wm8505fb_regs.h
ARM: Add support for the display controllers in VT8500 and WM8505
2010-11-09 18:52:07 +09:00
wmt_ge_rops.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00
wmt_ge_rops.h
ARM: Add support for the display controllers in VT8500 and WM8505
2010-11-09 18:52:07 +09:00
xen-fbfront.c
Xen: consolidate and simplify struct xenbus_driver instantiation
2012-01-04 17:01:17 -05:00
xilinxfb.c
video: convert drivers/video/* to use module_platform_driver()
2011-12-03 22:08:42 +00:00