aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/aty
Commit message (Collapse)AuthorAge
* atyfb: kill dead codeAntonino A. Daplas2007-05-08
| | | | | | | | Coverity Bug 68, kill dead code. 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>
* aty128fb: fix blankingWitold Filipczyk2007-05-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have a problem with blanking. The soundcard uses speakers of the monitor. Sound is muted when the screen blanks due to a bug in aty128fb.c. Here is a fragment of linux/fb.h /* VESA Blanking Levels */ #define VESA_NO_BLANKING 0 #define VESA_VSYNC_SUSPEND 1 #define VESA_HSYNC_SUSPEND 2 #define VESA_POWERDOWN 3 enum { /* screen: unblanked, hsync: on, vsync: on */ FB_BLANK_UNBLANK = VESA_NO_BLANKING, /* screen: blanked, hsync: on, vsync: on */ FB_BLANK_NORMAL = VESA_NO_BLANKING + 1, /* screen: blanked, hsync: on, vsync: off */ FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1, /* screen: blanked, hsync: off, vsync: on */ FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1, /* screen: blanked, hsync: off, vsync: off */ FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1 }; So FB_BLANK_NORMAL is 1, FB_BLANK_VSYNC_SUSPEND is 2, FB_BLANK_HSYNC_SUSPEND is 3, FB_BLANK_POWERDOWN is 4. And now: blank = FB_BLANK_NORMAL (1) blank & FB_BLANK_HSYNC_SUSPEND (1 & 3) is true, so normal blank caused hsync suspend and sound is muted. Cc: James Simmons <jsimmons@infradead.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* PCI: Cleanup the includes of <linux/pci.h>Jean Delvare2007-05-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed that many source files include <linux/pci.h> while they do not appear to need it. Here is an attempt to clean it all up. In order to find all possibly affected files, I searched for all files including <linux/pci.h> but without any other occurence of "pci" or "PCI". I removed the include statement from all of these, then I compiled an allmodconfig kernel on both i386 and x86_64 and fixed the false positives manually. My tests covered 66% of the affected files, so there could be false positives remaining. Untested files are: arch/alpha/kernel/err_common.c arch/alpha/kernel/err_ev6.c arch/alpha/kernel/err_ev7.c arch/ia64/sn/kernel/huberror.c arch/ia64/sn/kernel/xpnet.c arch/m68knommu/kernel/dma.c arch/mips/lib/iomap.c arch/powerpc/platforms/pseries/ras.c arch/ppc/8260_io/enet.c arch/ppc/8260_io/fcc_enet.c arch/ppc/8xx_io/enet.c arch/ppc/syslib/ppc4xx_sgdma.c arch/sh64/mach-cayman/iomap.c arch/xtensa/kernel/xtensa_ksyms.c arch/xtensa/platform-iss/setup.c drivers/i2c/busses/i2c-at91.c drivers/i2c/busses/i2c-mpc.c drivers/media/video/saa711x.c drivers/misc/hdpuftrs/hdpu_cpustate.c drivers/misc/hdpuftrs/hdpu_nexus.c drivers/net/au1000_eth.c drivers/net/fec_8xx/fec_main.c drivers/net/fec_8xx/fec_mii.c drivers/net/fs_enet/fs_enet-main.c drivers/net/fs_enet/mac-fcc.c drivers/net/fs_enet/mac-fec.c drivers/net/fs_enet/mac-scc.c drivers/net/fs_enet/mii-bitbang.c drivers/net/fs_enet/mii-fec.c drivers/net/ibm_emac/ibm_emac_core.c drivers/net/lasi_82596.c drivers/parisc/hppb.c drivers/sbus/sbus.c drivers/video/g364fb.c drivers/video/platinumfb.c drivers/video/stifb.c drivers/video/valkyriefb.c include/asm-arm/arch-ixp4xx/dma.h sound/oss/au1550_ac97.c I would welcome test reports for these files. I am fine with removing the untested files from the patch if the general opinion is that these changes aren't safe. The tested part would still be nice to have. Note that this patch depends on another header fixup patch I submitted to LKML yesterday: [PATCH] scatterlist.h needs types.h http://lkml.org/lkml/2007/3/01/141 Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Badari Pulavarty <pbadari@us.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Merge branch 'linux-2.6' into for-2.6.22Paul Mackerras2007-04-29
|\
| * [ATYFB]: Use pci_device_to_OF_node() in sparc.David S. Miller2007-04-26
| | | | | | | | Signed-off-by: David S. Miller <davem@davemloft.net>
| * [RADEON]: Probe clocks and monitor using OF properties on sparc.David S. Miller2007-04-26
| | | | | | | | | | | | Just like powerpc does. Signed-off-by: David S. Miller <davem@davemloft.net>
* | Revert "[POWERPC] Rename get_property to of_get_property: drivers"Paul Mackerras2007-04-26
| | | | | | | | | | | | This reverts commit d05c7a80cf39ae7d0f8d0c3e47c93d51fcd393d3, which included changes which should go via other subsystem maintainers.
* | [POWERPC] Rename get_property to of_get_property: driversStephen Rothwell2007-04-12
| | | | | | | | | | | | Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | [POWERPC] get_property returns constStephen Rothwell2007-04-12
|/ | | | | | | This just tidies up some of the remains. Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
* [PATCH] atyfb: fix kconfig error part 2Randy Dunlap2007-03-06
| | | | | | | | | | | | | | | | | Fix implicit declarations and missing code in atyfb. drivers/video/aty/atyfb_base.c:2137: warning: implicit declaration of function 'a ty_ld_lcd' drivers/video/aty/atyfb_base.c:2154: warning: implicit declaration of function 'a ty_st_lcd' atyfb_base.c:(.text+0x33e5c): undefined reference to `aty_ld_lcd' atyfb_base.c:(.text+0x33eb2): undefined reference to `aty_st_lcd' Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Antonino Daplas <adaplas@gmail.com> Cc: James Simmons <jsimmons@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlightLinus Torvalds2007-03-05
|\ | | | | | | | | | | * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight: backlight: Allow enable/disable of fb backlights, fixing regressions backlight: Fix nvidia backlight initial brightness
| * backlight: Allow enable/disable of fb backlights, fixing regressionsRichard Purdie2007-03-05
| | | | | | | | | | | | | | | | | | Enabling the backlight by default appears to cause problems for many users. This patch disables backlight controls unless explicitly enabled by users via a module parameter. Since PMAC users are known to work, default to enabled in that case. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* | [PATCH] video/aty/mach64_ct.c: fix bogus delay loopDavid Miller2007-03-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CT based mach64 cards were reported to hang on sparc64 boxes when compiled with gcc-4.1.x and later. Looking at this piece of code, it's no surprise. A critical delay was implemented as an empty for() loop, and gcc 4.0.x and previous did not optimize it away, so we did get a delay. But gcc-4.1.x and later can optimize it away, and we get crashes. Use a real udelay() to fix this. Fix verified on SunBlade100. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* | [PATCH] atyfb: Fix kconfig errorAntonino A. Daplas2007-03-05
|/ | | | | | | | | | | | | | Fix the following compile error: MODPOST 327 modules WARNING: "aty_st_lcd" [drivers/video/aty/atyfb.ko] undefined! WARNING: "aty_ld_lcd" [drivers/video/aty/atyfb.ko] undefined! make[1]: *** [__modpost] Error 1 make: *** [modules] Error 2 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>
* [RADEON]: Fix blanking return value.David S. Miller2007-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If you'll recall, over a year ago, I pointed out that the current Radeon driver erroneously returns -EINVAL for valid blanking codes, here is a link to that thread: http://lkml.org/lkml/2006/1/28/6 No other driver does this, and it confuses the X server into thinking that the device does not support blanking properly. I looked again and there is simply no reason for the Radeon driver to return -EINVAL for FB_BLANK_NORMAL. It claims it wants to do this in order to convince fbcon to blank in software, right here: if (fb_blank(info, blank)) fbcon_generic_blank(vc, info, blank); to software blank the screen. But it only causes that to happen in the FB_BLANK_NORMAL case. That makes no sense because the Radeon code does this: val |= CRTC_DISPLAY_DIS; in the FB_BLANK_NORMAL case so should be blanking the hardware, and there is therefore no reason to SW blank by returning -EINVAL. Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Antonino Daplas <adaplas@gmail.com>
* backlight: Separate backlight properties from backlight ops pointersRichard Purdie2007-02-20
| | | | | | | | | Per device data such as brightness belongs to the indivdual device and should therefore be separate from the the backlight operation function pointers. This patch splits the two types of data and allows simplifcation of some code. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* backlight: Clean up pmac_backlight handlingRichard Purdie2007-02-20
| | | | | | | Move the setting/unsetting of pmac_backlight into the backlight core instead of doing it in each driver. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* backlight: Rework backlight/fb interaction simplifying, lotsRichard Purdie2007-02-20
| | | | | | | | | | | | | | | | | fb_info->bl_mutex is badly thought out and the backlight class doesn't need it if the framebuffer/backlight register/unregister order is consistent, particularly after the backlight locking fixes. Fix the drivers to use the order: backlight_device_register() register_framebuffer() unregister_framebuffer() backlight_device_unregister() and turn bl_mutex into a lock for the bl_curve data only. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* backlight: Remove unneeded backlight update_status callsRichard Purdie2007-02-20
| | | | | | | | The backlight core listens for blanking events and triggers a backlight_update_status call so these extra calls are not needed and can be removed. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* backlight: Fix external uses of backlight internal semaphoreRichard Purdie2007-02-20
| | | | | | | | | | | | | | | | | | backlight_device->sem has a very specific use as documented in the header file. The external users of this are using it for a different reason, to serialise access to the update_status() method. backlight users were supposed to implement their own internal serialisation of update_status() if needed but everyone is doing things differently and incorrectly. Therefore add a global mutex to take care of serialisation for everyone, once and for all. Locking for get_brightness remains optional since most users don't need it. Also update the lcd class in a similar way. Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* backlight: Remove unneeded owner fieldRichard Purdie2007-02-20
| | | | | | | | | | | | Remove uneeded owner field from backlight_properties structure. Nothing uses it and it is unlikely that it will ever be used. The backlight class uses other means to ensure that nothing references unloaded code. Based on a patch from Dmitry Torokhov <dtor@insightbb.com> Signed-off-by: Richard Purdie <rpurdie@rpsys.net>
* [PATCH] remove many unneeded #includes of sched.hTim Schmielau2007-02-14
| | | | | | | | | | | | | | | | | | | | | | | | After Al Viro (finally) succeeded in removing the sched.h #include in module.h recently, it makes sense again to remove other superfluous sched.h includes. There are quite a lot of files which include it but don't actually need anything defined in there. Presumably these includes were once needed for macros that used to live in sched.h, but moved to other header files in the course of cleaning it up. To ease the pain, this time I did not fiddle with any header files and only removed #includes from .c-files, which tend to cause less trouble. Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha, arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig, allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all configs in arch/arm/configs on arm. I also checked that no new warnings were introduced by the patch (actually, some warnings are removed that were emitted by unnecessarily included header files). Signed-off-by: Tim Schmielau <tim@physik3.uni-rostock.de> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] Correct apparent typo CONFIG_ATY_CT in ATY videoRobert P. J. Day2007-02-12
| | | | | | | | | | | Replace the apparent typo CONFIG_ATY_CT with CONFIG_FB_ATY_CT. Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Cc: James Simmons <jsimmons@infradead.org> Cc: Ville Syrjala <syrjala@sci.fi> Cc: Antonino A. Daplas <adaplas@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* [PATCH] remove bogus con_is_present() prototypesAdrian Bunk2007-02-12
| | | | | | | | | | | Although gcc seems to accept "extern" prototypes after it has seen the "static inline" function, that's not really correct. Signed-off-by: Adrian Bunk <bunk@stusta.de> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: James Simmons <jsimmons@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Pull platform-drivers into test branchLen Brown2006-12-20
|\
| * fbdev: update after backlight argument changeJames Simmons2006-12-20
| | | | | | | | | | | | | | | | | | | | | | Update the frambuffer drivers to the backlight_device_registers changes. Signed-off-by: James Simmons <jsimmons@infradead.org> Cc: Luming Yu <Luming.yu@intel.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Greg KH <greg@kroah.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Len Brown <len.brown@intel.com>
* | [PATCH] fbdev: remove references to non-existent fbmon_valid_timings()Geert Uytterhoeven2006-12-13
| | | | | | | | | | | | | | | | | | Remove references to non-existent fbmon_valid_timings() Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org> Cc: James Simmons <jsimmons@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | i2c: Discard the i2c algo del_bus wrappersJean Delvare2006-12-10
| | | | | | | | | | | | | | They are all only calling i2c_del_adapter, so we may as well do it directly. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | [PATCH] drivers/video/*: use kmemdup()Alexey Dobriyan2006-12-08
| | | | | | | | | | | | | | | | | | | | From: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Eric Sesterhenn <snakebyte@gmx.de> Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Improve power managementVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | Some register were only set in aty_init() which is not called on resume. I added the aty_resume_chip() function to reset those registers on resume. Susped-to-ram now works on a HP Omnibook 6000 with acpi_sleep=s3_bios. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Improve atyfb_atari_probe()Ville Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Improve atyfb_atari_probe(): * Call correct_chipset() so that more par members, par->features in particular, get initialized. * If probe fails iounmap() the mapped regions and continue probing for more adapters. Only verified to cross-compile due to lack of hardware. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Remove aty_cmap_regsVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | Remove aty_cmap_regs. Access the LUT in the same way as other registers. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Fix __init and __devinit annotationsVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | Fix some __init and __devinit annotations. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Remove pointless aty_init() argumentVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | The 'name' argument of aty_init() is pointless because the bus type can be queried from the hardware. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Fix blanking level transitionsVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | Fix a minor problem in blanking level transitions. Reducing the blanking level gradually was impossible. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Fix sparse warningsVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | | | Silence some sparse warnings: * Remove casts from atari out_le32() and friends. * Move accel functions' declarations to atyfb.h. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Fix compiler warningsVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | Fix some compiler warnings and remove an #ifdef. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb: Remove FIXMEVille Syrjala2006-12-08
| | | | | | | | | | | | | | | | | | | | | | atyfb has used the auxiliary register aperture for a long time. Remove a related FIXME which was accidentally left in. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Cc: "Antonino A. Daplas" <adaplas@pol.net> Acked-by: James Simmons <jsimmons@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] atyfb, rivafb: minor fixesJeff Garzik2006-12-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | aty128fb: return an error in the unlikely event that we cannot calculate some key PLL info rivafb: * call CalcStateExt() directly, rather than via function pointers, since CalcStateExt() is the only value ever assigned to ->CalcStateExt(). * propagate error return back from CalcVClock() through callers Signed-off-by: Jeff Garzik <jeff@garzik.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] ioremap balanced with iounmap for drivers/video/atyfb_baseAmol Lad2006-12-08
| | | | | | | | | | | | | | | | | | | | | | ioremap must be balanced by an iounmap and failing to do so can result in a memory leak. Signed-off-by: Amol Lad <amol@verismonetworks.com> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] Fix radeon DDC regressionBenjamin Herrenschmidt2006-11-17
| | | | | | | | | | | | | | | | | | | | When radeonfb was changed to use the new "generic" ddc, a bit of code initializing the GPIO lines was lost, causing it to not work if the firmware didn't configure them properly, which seems to happen on some cards. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | [PATCH] set default video mode on PowerBook WallstreetOlaf Hering2006-11-16
|/ | | | | | | | | | | | | | | | Finally add the third PowerBook Wallstreet 233MHz model to the list of known display resolutions. Without this change, a 640x480 video mode is used. A workaround so far was to boot with 'video=atyfb:vmode:14' Signed-off-by: Olaf Hering <olaf@aepfle.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Cc: Solomon Peachy <pizza@shaftnet.org> Cc: James Simmons <jsimmons@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* IRQ: Maintain regs pointer globally rather than passing to IRQ handlersDavid Howells2006-10-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain a per-CPU global "struct pt_regs *" variable which can be used instead of passing regs around manually through all ~1800 interrupt handlers in the Linux kernel. The regs pointer is used in few places, but it potentially costs both stack space and code to pass it around. On the FRV arch, removing the regs parameter from all the genirq function results in a 20% speed up of the IRQ exit path (ie: from leaving timer_interrupt() to leaving do_IRQ()). Where appropriate, an arch may override the generic storage facility and do something different with the variable. On FRV, for instance, the address is maintained in GR28 at all times inside the kernel as part of general exception handling. Having looked over the code, it appears that the parameter may be handed down through up to twenty or so layers of functions. Consider a USB character device attached to a USB hub, attached to a USB controller that posts its interrupts through a cascaded auxiliary interrupt controller. A character device driver may want to pass regs to the sysrq handler through the input layer which adds another few layers of parameter passing. I've build this code with allyesconfig for x86_64 and i386. I've runtested the main part of the code on FRV and i386, though I can't test most of the drivers. I've also done partial conversion for powerpc and MIPS - these at least compile with minimal configurations. This will affect all archs. Mostly the changes should be relatively easy. Take do_IRQ(), store the regs pointer at the beginning, saving the old one: struct pt_regs *old_regs = set_irq_regs(regs); And put the old one back at the end: set_irq_regs(old_regs); Don't pass regs through to generic_handle_irq() or __do_IRQ(). In timer_interrupt(), this sort of change will be necessary: - update_process_times(user_mode(regs)); - profile_tick(CPU_PROFILING, regs); + update_process_times(user_mode(get_irq_regs())); + profile_tick(CPU_PROFILING); I'd like to move update_process_times()'s use of get_irq_regs() into itself, except that i386, alone of the archs, uses something other than user_mode(). Some notes on the interrupt handling in the drivers: (*) input_dev() is now gone entirely. The regs pointer is no longer stored in the input_dev struct. (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does something different depending on whether it's been supplied with a regs pointer or not. (*) Various IRQ handler function pointers have been moved to type irq_handler_t. Signed-Off-By: David Howells <dhowells@redhat.com> (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
* [PATCH] radeonfb supend/resume support for Acer Aspire 2010Carl-Daniel Hailfinger2006-10-03
| | | | | | | | | | | | | | | | | | | | This patch adds suspend/resume support for the graphics chip in the Acer Aspire 2010: ATI Technologies Inc RV350 [Mobility Radeon 9600 M10] 01:00.0 0300: 1002:4e50 (prog-if 00 [VGA]) Subsystem: 1025:0061 Flags: bus master, 66MHz, medium devsel, latency 128, IRQ 16 Memory at a8000000 (32-bit, prefetchable) [size=128M] I/O ports at c100 [size=256] Memory at e0010000 (32-bit, non-prefetchable) [size=64K] [virtual] Expansion ROM at a0000000 [disabled] [size=128K] Capabilities: [58] AGP version 2.0 Capabilities: [50] Power Management version 2 Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@mgx.net> Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Benjamin A. Okopnik" <ben@linuxgazette.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] atyfb: Possible cleanupsAdrian Bunk2006-10-03
| | | | | | | | | | | | | | - make the following needlessly global function static: - mach64_ct.c: aty_st_pll_ct() - proper prototypes for the following functions: - atyfb_base.c: atyfb_copyarea() - atyfb_base.c: atyfb_fillrect() - atyfb_base.c: atyfb_imageblit() Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] atyfb: Honor the return value of pci_register_driverAntonino A. Daplas2006-10-03
| | | | | | | | Check return value of pci_register_driver(). Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] radeonfb: Use generic DDC readingDennis Munsie2006-10-03
| | | | | | | | | | Uses the generic ddc read functionality in fbmon.c instead of the previous functionality. Signed-off-by: Dennis Munsie <dmunsie@cecropia.com> Signed-off-by: Antonino Daplas <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* PM: video drivers and PM_EVENT_PRETHAWDavid Brownell2006-09-26
| | | | | | | | | | | | Video drivers which explicitly test for messages reporting PM_EVENT_FREEZE will now handle PM_EVENT_PRETHAW the same way. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: "Rafael J. Wysocki" <rjw@sisk.pl> Cc: Pavel Machek <pavel@ucw.cz> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* Merge branch 'linux-2.6'Paul Mackerras2006-09-13
|\
| * [PATCH] backlight last round of fixesBenjamin Herrenschmidt2006-09-01
| | | | | | | | | | | | | | | | | | | | | | Fix some more problems (inverted use of semaphores in some places). He also moved my checks into within the protected section which is better. Signed-off-by: Michael Hanselmann <linux-kernel@hansmi.ch> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: "Antonino A. Daplas" <adaplas@pol.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>