aboutsummaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2007-05-08fbcon: check if the character count can be handledAntonino A. Daplas
Fontmaps can be 256 or 512 in length. The only driver that can do tileblitting can only handle 256 characters. Check for this when setting the font. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08s3fb: implement fb_get_tilemax()Antonino A. Daplas
Implement fb_get_tilemax(). It just returns 256. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08s3fb: limit 8x16 rectangles when tileblitting is enabledAntonino A. Daplas
If tileblitting is enabled (text mode), the hardware can only accept 8x16 bitmaps. Advertise this to the upper layer. And to ensure that an appropriate font is always available, select an 8x16 font in Kconfig. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vga16fb: restrict to blit rectangles with widths of multiples of 8 pixelsAntonino A. Daplas
Advertise that vga16fb can only handle widths that are 8-pixel-multiple only (software limitation). To ensure that a legal font is available, SELECT an 8x16 font in Kconfig. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbcon: font setting should check limitation of driverAntonino A. Daplas
fbcon_set_font() will now check if the new font dimensions can be drawn by the driver (by checking pixmap.blit_x and blit_y). Similarly, add 2 new parameters to get_default_font(), font_w and font_h, to further aid in the font selection process. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: advertise limitation of drawing engineAntonino A. Daplas
A few drivers are not capable of blitting rectangles of any dimension. vga16fb can only blit 8-pixel wide rectangles, while s3fb (in tileblitting mode) can only blit 8x16 rectangles. For example, loading a 12x22 font in vga16fb will result in a corrupt display. Advertise this limitation/capability in info->pixmap.blit_x and blit_y. These fields are 32-bit arrays (font max is 32x32 only), ie, if bit 7 is set, then width/height of 7+1 is supported. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: consolidate common drawing functions into a header fileAntonino A. Daplas
Consolidate common drawing functions into a single header file. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vfb: use fb_sys_read() and fb_sys_write()Antonino A. Daplas
Since vfb's framebuffer is vmalloc'ed, use the fb_sys_read() and fb_sys_write(). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08hecubafb: use fb_sys_read()Antonino A. Daplas
Since hecubafb's framebuffer is vmalloc'ed, use fb_sys_read(). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08arcfb: use fb_sys_read()Antonino A. Daplas
Since arcfb's framebuffer is vmalloc'ed, use the fb_sys_read(). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: add fb_read/fb_write functions for framebuffers in system RAMAntonino A. Daplas
The functions fb_read() and fb_write in fbmem.c assume that the framebuffer is in IO memory. However, we have 3 drivers (hecubafb, arcfb, and vfb) where the framebuffer is allocated from system RAM (via vmalloc). Using __raw_read/__raw_write (fb_readl/fb_writel) for these drivers is illegal, especially in other platforms. Create file read and write methods for these types of drivers. These are named fb_sys_read() and fb_sys_write(). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: pass struct fb_info to fb_read and fb_writeAntonino A. Daplas
It is unnecessary to pass struct file to fb_read() and fb_write() in struct fb_ops. For consistency with the other methods, pass struct fb_info instead. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Acked-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vfb: use sys instead of cfb drawing functionsAntonino A. Daplas
Since vfb's framebuffer is vmalloc'ed, use the sys_* drawing functions instead of cfb_*. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08hecubafb: use sys instead of cfb drawing functionsAntonino A. Daplas
Since hecubafb's framebuffer is vmalloc'ed, use the sys_* drawing functions instead of cfb_*. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08arcfb: use sys instead of cfb drawing functionsAntonino A. Daplas
Since arcfb's framebuffer is vmalloc'ed, use the sys_* drawing functions instead of cfb_*. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: add drawing functions for framebuffers in system RAMAntonino A. Daplas
The generic drawing functions (cfbimgblt, cfbcopyarea, cfbfillrect) assume that the framebuffer is in IO memory. However, we have 3 drivers (hecubafb, arcfb, and vfb) where the framebuffer is allocated from system RAM (via vmalloc). Using _raw_read/write and family for these drivers (as used in the cfb* functions) is illegal, especially in other platforms. Create 3 new drawing functions, based almost entirely from the original except that the framebuffer memory is assumed to be in system RAM. These are named as sysimgblt, syscopyarea, and sysfillrect. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08skeletonfb: documentation error fixesAntonino A. Daplas
Documentation error fixes. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08i810fb: fix incorrect frequency maskAntonino A. Daplas
Fix a long-standing bug. The mask used to detect a 100Mhz or 133Mhz chipset is incorrect. (The only side effect of this bug is that it will choose an incorrect watermark). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08hecubafb: kill sparse warningsAntonino A. Daplas
The framebuffer memory is allocated from system RAM (vmalloc'ed). Add __force annotations. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08s3fb: add sparse annotationsAntonino A. Daplas
Add sparse annotations and use fb_read/fb_write and family to access the framebuffer. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08arcfb: kill sparse warningAntonino A. Daplas
The framebuffer memory is allocated from system RAM (vmalloc'ed). Add __force annotations. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: add sparse annotations in svgalib.cAntonino A. Daplas
Add sparse annotations and use fb_read/fb_write family to access the framebuffer. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: kill sparse warning in deferred IOAntonino A. Daplas
Kill the following in fb_defio.c: drivers/video/fb_defio.c:40:43: warning: incorrect type in argument 1 (different address spaces) drivers/video/fb_defio.c:40:43: expected void *addr drivers/video/fb_defio.c:40:43: got char [noderef] *screen_base<asn:2> The framebuffer memory of these types of devices are allocated from system RAM. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08rivafb: fix IO accessAntonino A. Daplas
Fix IO access, with the following sparse warnings: drivers/video/riva/fbdev.c:320:25: warning: dereference of noderef expression drivers/video/riva/fbdev.c:321:29: warning: dereference of noderef expression drivers/video/riva/fbdev.c:327:18: warning: dereference of noderef expression drivers/video/riva/fbdev.c:328:15: warning: dereference of noderef expression Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08nvidiafb: fix sparse warningAntonino A. Daplas
Fix the following sparse warning: drivers/video/nvidia/nv_setup.c:659:20: warning: dereference of noderef expression Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbcon: delay screen update when setting the mode of all consolesAntonino A. Daplas
If the current framebuffer console is rotated (rotate != 0), doing an "fbset -a" will corrupt the current console. Fix by updating the current console only after all non-visible consoles have been updated. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: link vgastate.o using KconfigAntonino A. Daplas
Instead of directly linking vgastate.o by individual drivers, create a Kconfig option VGASTATE which can be 'SELECT'ed by individual drivers instead. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08savagefb: VGA state save and restoreAntonino A. Daplas
Allow the saving and restoration of VGA text mode. The state is saved on the first open and restored on the last close. Because of the VGA registers are linearly mapped to the MMIO space, MMIO access is used which is not limited to X86 platforms nor to the primary display device. An echo 0 > /sys/class/vtconsole/vtcon1/bind will convert the display from graphics to text mode. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08savagefb: rework i2c bit accessAntonino A. Daplas
Use already defined VGAwCR/VGArCR functions to access the i2c bus. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08nvidiafb: VGA state save and restoreAntonino A. Daplas
Allow the saving and restoration of VGA text mode. The state is saved on the first open and restored on the last close. Because of the non-linear mapping of the VGA registers to the MMIO space, this will be done only on X86 platforms where the device is the primary display. An echo 0 > /sys/class/vtconsole/vtcon1/bind will convert the display from graphics to text mode. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08epson1355fb.c: fix error handling codeRoland Stigge
Fix error handling code Signed-off-by: Roland Stigge <stigge@antcom.de> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08cirrusfb: convert to generic booleanRichard Knutsson
Convert to generic boolean. Signed-off-by: Richard Knutsson <ricknu-0@student.ltu.se> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08VIDEO: add spaces on either side of the case "..." operatorRobert P. J. Day
Following the programming advice laid down in the gcc manual, make sure the case "..." operator has spaces on either side. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08skeletonfb: various correctionsKrzysztof Helt
This is mainly correction of types, typos and missing characters in the skeletonfb.c file found while trying to prepare a new fb driver. [adaplas] Additions on power management and fixes as per akpm Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08nvidiafb: access CRT registers safelyAntonino A. Daplas
Use Read/WriteCrtc() to access CRTC registers in nv_i2c.c. These are safer because it uses the correct CRTC base (0x3bx or 0x3dx). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08nvidiafb: ensure that CRTC registers are accessibleAntonino A. Daplas
- Ensure that CRTC registers are accessible by unlocking them on set_par(), otherwise i2c reading will fail. - The function nvidia_vga_protect(), does not protect the VGA registers, but turns off the screen. Rename it to nvidia_screen_off(). Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08rivafb: fixed reversed DDC portsAntonino A. Daplas
Fixed reversed DDC port so assignments are congruent with nvidiafb's and X's nv driver. Signed-off-by: Antonino Daplas <adaplas@pol.net> Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08rivafb/nvidiafb: Various cleanupsJean Delvare
Various cleanups to rivafb/nvidiafb's I2C code: * Drop useless par->bus. * Refactor I2C bus deletion code. * Drop useless variable initialization. * Remove unneeded include of <linux/i2c-id.h>. * Simplify +1/-1. * Add __devinit tags where possible. [adaplas] The varible initialization are not useless. However, rivafb must check if i2c bus are created properly before reading the EDID block. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08rivafb: handle I2C bus creation failureJean Delvare
I2C bus creation may fail, let rivafb handle that case properly. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08rivafb/nvidiafb: Enable hardware monitoringJean Delvare
Let the hardware monitoring drivers probe the second rivafb/nvidiafb I2C bus for devices. Signed-off-by: Jean Delvare <khali@linux-fr> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbdev: don't show logo if driver or fbcon are modularAntonino A. Daplas
It was always intended for the logo to be drawn only if both fbcon and the driver that is mapped to it are both compiled statically. Currently, if fbcon is loaded prior to the driver, the logo is not shown. Reverse the order, and the code may attempt to draw the logo which is __initdata. By accident, this bug is rarely seen because this method of loading the modules is not common and secondly, a code in fb_prepare_logo() that checks the height of the logo (now a random value) rarely succeeds. Fix by drawing the logo only if both fbcon and the driver are statically compiled. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08s3fb: fix PCI must_checksRandy Dunlap
drivers/video/s3fb.c:1078: warning: ignoring return value of 'pci_enable_device', declared with attribute warn_unused_result Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vt: expose system-wide UTF-8 default setting via sysfsAntonino A. Daplas
Create a variable, default_utf8, that defines the system-wide default UTF-8 setting. This variable can be altered via sysfs. If the variable is properly set, this should mimimize breakage of UTF-8 encoded consoles when doing a reset or echo -e '\033c' and of newly opened/allocated consoles. This is based from patches by Jan Engelhardt and Paul LeoNerd Evans. Signed-off-by: Antonino Daplas <adaplas@gmail.com> Cc: Jan Engelhardt <jengelh@linux01.gwdg.de> Cc: Paul LeoNerd Evans <leonerd@leonerd.org.uk> Cc: "H. Peter Anvin" <hpa@zytor.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08fbcon: don't draw cursor when it's disabledMichal Januszewski
When the cursor and echo are disabled on the current console, pressing a key will cause a black rectangle to be painted in the cursor's position. Fix this by not touching the framebuffer in fbcon_cursor() when the cursor is off. Signed-off-by: Michal Januszewski <spock@gentoo.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08SIS USB2VGA Warning fixWANG Cong
drivers/usb/misc/sisusbvga/sisusb_con.c:1436: warning: initialization from incompatible pointer type Signed-off-by: WANG Cong <xiyou.wangcong@gmail.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vt-add-color-support-to-the-underline-and-italic-attributes-fixAndrew Morton
Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Jan Engelhardt <jengelh@gmx.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vt: add color support to the "underline" and "italic" attributesJan Engelhardt
Add color support to the "underline" and "italic" attributes as in OpenBSD/NetBSD-style (vt220) and xterm. Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Acked-by: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08vt: allow for the palette to be exposed and changed via sysfsJan Engelhardt
Allow for the palette to be exposed and changed via sysfs. A call to /usr/bin/reset will slurp the new definitions in for the current console. Already posted at http://lkml.org/lkml/2006/1/15/149 Signed-off-by: Jan Engelhardt <jengelh@gmx.de> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08nvidiafb: Fix reversed DDC portPetr Vandrovec
After I added some debugging printks I've found that code became a bit confused because it believed that primary monitor is 1920x540, but later it found in CRTC0's registers that panel size is 1920x1200 (Windows also agree that 1920x1200 is primary monitor, and 1920x1080i secondary one). When I applied attached patch then my monitor became as happy as it was before I connected HDMI cable to secondary output. Signed-off-by: Petr Vandrovec <vandrove@vc.cvut.cz> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Cc: Dave Airlie <airlied@linux.ie> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-08radeonfb: Add support for Radeon xpress 200mjohan henriksson
Added support for radeon xpress 200m(rs480). Note that the card doesn't like dynclk turned on. Signed-off-by: Johan Henriksson <jhn98032@gmail.com> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>