aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
Commit message (Collapse)AuthorAge
* [PATCH] mark struct file_operations const 3Arjan van de Ven2007-02-12
| | | | | | | | | | | Many struct file_operations in the kernel can be "const". Marking them const moves these to the .rodata section, which avoids false sharing with potential dirty data. In addition it'll catch accidental writes at compile time to these shared resources. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* USB: <linux/usb_ch9.h> becomes <linux/usb/ch9.h>David Brownell2007-02-07
| | | | | | | | | This moves <linux/usb_ch9.h> to <linux/usb/ch9.h> to reduce some of the clutter of usb header files. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* i2c/m41t00: Do not forget to write yearPhilippe De Muyter2007-01-05
| | | | | | | | | m41t00.c forgets to set the year field in set_rtc_time; fix that. Signed-off-by: Philippe De Muyter <phdm@macqel.be> Signed-off-by: Andrew Morton <akpm@osdl.org> Acked-by: Mark A. Greer <mgreer@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-mv64xxx: Fix random oops at bootMaxime Bizon2007-01-05
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I have a Marvell board which has the same i2c hw block than mv64xxx, so I'm trying to use i2c-mv64xxx driver. But I get the following random oops at boot: Unable to handle kernel NULL pointer dereference at virtual address 00000002 Backtrace: [<c0397e4c>] (mv64xxx_i2c_intr+0x0/0x2b8) from [<c02879c4>] (__do_irq+0x4c/0x8c) [<c0287978>] (__do_irq+0x0/0x8c) from [<c0287c0c>] (do_level_IRQ+0x68/0xc0) r8 = C0501E08 r7 = 00000005 r6 = C0501E08 r5 = 00000005 r4 = C048BB78 [<c0287ba4>] (do_level_IRQ+0x0/0xc0) from [<c02885f8>] (asm_do_IRQ+0x50/0x134) r6 = C0449C78 r5 = F1020000 r4 = FFFFFFFF [<c02885a8>] (asm_do_IRQ+0x0/0x134) from [<c02869c4>] (__irq_svc+0x24/0x100) r8 = C1CAC400 r7 = 00000005 r6 = 00000002 r5 = F1020000 r4 = FFFFFFFF [<c0287efc>] (setup_irq+0x0/0x124) from [<c02880d0>] (request_irq+0xb0/0xd0) r7 = C041B2AC r6 = C0397E4C r5 = 00000000 r4 = 00000005 [<c0288020>] (request_irq+0x0/0xd0) from [<c03985f4>] (mv64xxx_i2c_probe+0x148/0x244) [<c03984ac>] (mv64xxx_i2c_probe+0x0/0x244) from [<c038bedc>] (platform_drv_probe+0x20/0x24) The oops is caused by a spurious interrupt that occurs when request_irq is called. mv64xxx_i2c_fsm() tries to read drv_data->msg, which is NULL. I noticed that hardware init is done after requesting irq. Thus any pending irq from previous hardware usage may cause this. The following patch fixes it: Signed-off-by: Maxime Bizon <mbizon@freebox.fr> Acked-by: Mark A. Greer <mgreer@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Migration aids for i2c_adapter.dev removalDavid Brownell2007-01-04
| | | | | | | | | | | | | | | | | | | Flag i2c_adapter.dev for removal after userspace tools get upgraded, and include a near-term code migration aid to facilitate this: - The class device gets the name attribute it should have had. This was previously (wrongly) associated with the i2c_adapter.dev node. Sysfs based tools and libraries can start converting right away. - Issue a warning for legacy adapter drivers that don't provide any physical device node; so systems with those drivers will know to fix this problem earlier. This is one of a series of patches to help the I2C stack become a better citizen of the Linux Driver Model world. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-pnx: Fix interrupt handler, get rid of EARLY config optionVitaly Wool2007-01-04
| | | | | | | | | | | | | | | | This fixes two issues raised by David Brownell on the i2c list: << Someone needs to update i2c-pnx.c to handle the IRQ handler doesn't expect pt_regs (gone now for a while), and so it doesn't try to reference "mudule_init()" if I2C isn't initialized "early". For that matter, to get rid of that _option_ to initialize then, and always init that driver with subsystem_init() ... it's common with embedded systems to need I2C access to tweak a GPIO expander or do some other work when bringing up drivers, that's not specific to USB stacks. >> Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6Linus Torvalds2006-12-13
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: hwmon: Add MAINTAINERS entry for new ams driver hwmon: New AMS hardware monitoring driver hwmon/w83793: Add documentation and maintainer hwmon: New Winbond W83793 hardware monitoring driver hwmon: Update Rudolf Marek's e-mail address hwmon/f71805f: Fix the device address decoding hwmon/f71805f: Always create all fan inputs hwmon/f71805f: Add support for the Fintek F71872F/FG chip hwmon: New PC87427 hardware monitoring driver hwmon/it87: Remove the SMBus interface support hwmon/hdaps: Update the list of supported devices hwmon/hdaps: Move the DMI detection data to .data hwmon/pc87360: Autodetect the VRM version hwmon/f71805f: Document the fan control features hwmon/f71805f: Add support for "speed mode" fan speed control hwmon/f71805f: Support DC fan speed control mode hwmon/f71805f: Let the user adjust the PWM base frequency hwmon/f71805f: Add manual fan speed control hwmon/f71805f: Store the fan control registers
| * hwmon: Update Rudolf Marek's e-mail addressJean Delvare2006-12-12
| | | | | | | | | | | | | | The Silicon Hill club is not what it used to be. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | [PATCH] fix more workqueue build breakage (tps65010)David Brownell2006-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | More fixes to build breakage from the work_struct changes ... this updates the tps65010 driver. Plus, fix some dependencies related to the way it's used on the OMAP OSK: force static linking there, since the resulting kernel can't link. NOTE that until the i2c core gets fixed to work without SMBUS_QUICK, kernels needing this driver must still use "tps65010.force=0,0x48" on the command line. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Jean Delvare <khali@linux-fr.org> Cc: Russell King <rmk@arm.linux.org.uk> Cc: David Howells <dhowells@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | i2c: Fix OMAP clock prescaler to match the commentJean Delvare2006-12-10
| | | | | | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
* | i2c: Refactor a kfree in i2c-devJean Delvare2006-12-10
| | | | | | | | | | | | | | | | | | Refactor kfree(i2c_dev) into return_i2c_dev(). This saves some code and makes more sense, as the memory is allocated in get_free_i2c_dev(). Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Greg Kroah-Hartman <gregkh@suse.de>
* | i2c: Fix return value check in i2c-devAkinobu Mita2006-12-10
| | | | | | | | | | | | | | | | | | device_create() returns error code as pointer on failures. This patch checks the return value of device_create() by using IS_ERR(). Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Enable PEC on more i2c-i801 devicesJean Delvare2006-12-10
| | | | | | | | | | | | | | | | Enable PEC on recent Intel SMBus controllers (ICH6, ICH7, ICH8, ICH9 and ESB2.) Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Jason Gaston <jason.d.gaston@intel.com>
* | 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>
* | i2c: New ARM Versatile/Realview bus driverRussell King2006-12-10
| | | | | | | | | | | | | | | | Add support for the I2C bus found on the ARM Versatile and Realview platforms. The I2C bus has a RTC and optionally some EEPROMs attached. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: fix broken ds1337 initializationDirk Eibach2006-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On a custom board with ds1337 RTC I found that upgrade from 2.6.15 to 2.6.18 broke RTC support. The main problem are changes to ds1337_init_client(). When a ds1337 recognizes a problem (e.g. power or clock failure) bit 7 in status register is set. This has to be reset by writing 0 to status register. But since there are only 16 byte written to the chip and the first byte is interpreted as an address, the status register (which is the 16th) is never written. The other problem is, that initializing all registers to zero is not valid for day, date and month register. Funny enough this is checked by ds1337_detect(), which depends on this values not being zero. So then treated by ds1337_init_client() the ds1337 is not detected anymore, whereas the failure bit in the status register is still set. Signed-off-by: Dirk Stieler <stieler@gdsys.de> Signed-off-by: Dirk Eibach <eibach@gdsys.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Use the __ATTR macro where possibleJean Delvare2006-12-10
| | | | | | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Whitespace cleanupsDavid Brownell2006-12-10
| | | | | | | | | | | | | | | | Remove extraneous whitespace from various i2c headers and core files, like space-before-tab and whitespace at end of line. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Use put_user instead of copy_to_user where possibleJean Delvare2006-12-10
| | | | | | | | | | | | | | This speeds up the I2C_FUNCS ioctl by 5 to 8% in my tests. Signed-off-by: Jean Delvare <khali@linux-fr.org> Laughed-at-by: Mark M. Hoffman <mhoffman@lightlink.com>
* | i2c: New Atmel AT91 bus driverAndrew Victor2006-12-10
| | | | | | | | | | | | | | | | | | | | Add support for the I2C (Two-wire interface) controller integrated in the Atmel AT91RM9200 processor. This driver should also be usable on the Atmel AT91SAM9261 and AT91SAM9260 processors. Signed-off-by: Andrew Victor <andrew@sanpeople.com> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Add support for nested i2c bus lockingJiri Kosina2006-12-10
| | | | | | | | | | | | | | | | | | | | This patch adds the 'level' field into the i2c_adapter structure, which is used to represent the 'logical' level of nesting for the purposes of lockdep. This field is then used in the i2c_transfer() function, to acquire the per-adapter bus_lock with correct nesting level. Signed-off-by: Jiri Kosina <jikos@jikos.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Cleanups to the i2c-nforce2 bus driverHans-Frieder Vogt2006-12-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary of changes: - fixes: o legacy I/O region size is 64 bytes, not 8 bytes - general cleanup: o removed code for the unsupported I2C block data, block data, proc call and block proc call transfer modes o removed detail warnings about unsupported modes that are covered in a general warning (unsupported transaction...) anyway o removed necessity of a definition of struct i2c_adapter o moved definition of struct i2c_algorithm, making forward declarations of nforce2_access and nforce2_func unnecessary - minor changes: o in the description mention the nForce 5xx chipsets o changes my e-mail address in MODULE_AUTHOR Theses cleanups shrink the driver binary size from 4.0 kB to 2.7 kB on i386. Signed-off-by: Hans-Frieder Vogt <hfvogt@gmx.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Add request/release_mem_region to i2c-ibm_iic bus driverJean-Baptiste Maneyrol2006-12-10
| | | | | | | | | | | | | | | | | | Reserving I/O memory for a driver with request_mem_region is necessary to avoid memory access conflicts. Even if it's never going to happen, it is cleaner and it allows to monitor I/O memory used in /proc/iomem. Signed-off-by: Jean-Baptiste Maneyrol <jean-baptiste.maneyrol@teamlog.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: New Philips PNX bus driverVitaly Wool2006-12-10
| | | | | | | | | | | | | | | | | | New I2C bus driver for Philips ARM boards (Philips IP3204 I2C IP block). This I2C controller can be found on (at least) PNX010x, PNX52xx and PNX4008 Philips boards. Signed-off-by: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | i2c: Delete the broken i2c-ite bus driverJean Delvare2006-12-10
|/ | | | | | | | The rest of the ITE8172 support was already removed from MIPS tree. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Acked-by: Ralf Baechle <ralf@linux-mips.org>
* [PATCH] struct path: convert i2c-driversJosef Sipek2006-12-08
| | | | | | Signed-off-by: Josef Sipek <jsipek@fsl.cs.sunysb.edu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2006-12-07
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (76 commits) [ARM] 4002/1: S3C24XX: leave parent IRQs unmasked [ARM] 4001/1: S3C24XX: shorten reboot time [ARM] 3983/2: remove unused argument to __bug() [ARM] 4000/1: Osiris: add third serial port in [ARM] 3999/1: RX3715: suspend to RAM support [ARM] 3998/1: VR1000: LED platform devices [ARM] 3995/1: iop13xx: add iop13xx support [ARM] 3968/1: iop13xx: add iop13xx_defconfig [ARM] Update mach-types [ARM] Allow gcc to optimise arm_add_memory a little more [ARM] 3991/1: i.MX/MX1 high resolution time source [ARM] 3990/1: i.MX/MX1 more precise PLL decode [ARM] 3986/1: H1940: suspend to RAM support [ARM] 3985/1: ixp4xx clocksource cleanup [ARM] 3984/1: ixp4xx/nslu2: Fix disk LED numbering (take 2) [ARM] 3994/1: ixp23xx: fix handling of pci master aborts [ARM] 3981/1: sched_clock for PXA2xx [ARM] 3980/1: extend the ARM Versatile sched_clock implementation from 32 to 63 bit [ARM] 3979/1: extend the SA11x0 sched_clock implementation from 32 to 63 bit period [ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter ...
| *-. [ARM] Merge individual ARM sub-treesRussell King2006-12-07
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge: Atmel AT91RM9200 and AT91SAM9260 changes General ARM developments Disconfiguous memory cleanups 64-bit/32-bit division and sched_clock extension patches EP93xx support changes IOP support changes Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | | * [ARM] 3995/1: iop13xx: add iop13xx supportDan Williams2006-12-07
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The iop348 processor integrates an Xscale (XSC3 512KB L2 Cache) core with a Serial Attached SCSI (SAS) controller, multi-ported DDR2 memory controller, 3 Application Direct Memory Access (DMA) controllers, a 133Mhz PCI-X interface, a x8 PCI-Express interface, and other peripherals to form a system-on-a-chip RAID subsystem engine. The iop342 processor replaces the SAS controller with a second Xscale core for dual core embedded applications. The iop341 processor is the single core version of iop342. This patch supports the two Intel customer reference platforms iq81340mc for external storage and iq81340sc for direct attach (HBA) development. The developer's manual is available here: ftp://download.intel.com/design/iio/docs/31503701.pdf Changelog: * removed virtual addresses from resource definitions * cleaned up some unnecessary #include's Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * [ARM] Remove EEPROM slave emulation from i2c-pxa driver.Russell King2006-11-30
| |/ | | | | | | | | | | | | | | The i2c-pxa driver should not contain EEPROM slave-mode emulation; this is something the platform should provide where required. Remove it. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* | [PATCH] ... and more work_struct-induced breakage (mips)Al Viro2006-12-06
| | | | | | | | | | Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | Merge branch 'master' of ↵David Howells2006-12-05
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 Conflicts: drivers/infiniband/core/iwcm.c drivers/net/chelsio/cxgb2.c drivers/net/wireless/bcm43xx/bcm43xx_main.c drivers/net/wireless/prism54/islpci_eth.c drivers/usb/core/hub.h drivers/usb/input/hid-core.c net/core/netpoll.c Fix up merge failures with Linus's head and fix new compilation failures. Signed-Off-By: David Howells <dhowells@redhat.com>
| * \ Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6Linus Torvalds2006-12-01
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6: (28 commits) PCI: make arch/i386/pci/common.c:pci_bf_sort static PCI: ibmphp_pci.c: fix NULL dereference pciehp: remove unnecessary pci_disable_msi pciehp: remove unnecessary free_irq PCI: rpaphp: change device tree examination PCI: Change memory allocation for acpiphp slots i2c-i801: SMBus patch for Intel ICH9 PCI: irq: irq and pci_ids patch for Intel ICH9 PCI: pci_{enable,disable}_device() nestable ports PCI: switch pci_{enable,disable}_device() to be nestable PCI: arch/i386/kernel/pci-dma.c: ioremap balanced with iounmap pci/i386: style cleanups PCI: Block on access to temporarily unavailable pci device pci: fix __pci_register_driver error handling pci: clear osc support flags if no _OSC method acpiphp: fix missing acpiphp_glue_exit() acpiphp: fix use of list_for_each macro Altix: Initial ACPI support - ROM shadowing. Altix: SN ACPI hotplug support. Altix: Add initial ACPI IO support ...
| | * | i2c-i801: SMBus patch for Intel ICH9Jason Gaston2006-12-01
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | This updated patch adds the Intel ICH9 LPC and SMBus Controller DID's. Thi= s patch relies on the irq ICH9 patch to pci_ids.h. Signed-off-by: Jason Gaston <jason.d.gaston@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * / I2C: convert i2c-dev to use struct device instead of struct class_deviceGreg Kroah-Hartman2006-12-01
| |/ | | | | | | | | | | | | | | As class_device is going away eventually... Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * [PATCH] Fix i2c-ixp4xx compile (missing brace)Jean Delvare2006-11-23
| | | | | | | | | | | | | | Fix recent i2c-ixp4xx compilation breakage. Sorry for overlooking it. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* | WorkStruct: make allyesconfigDavid Howells2006-11-22
|/ | | | | | Fix up for make allyesconfig. Signed-Off-By: David Howells <dhowells@redhat.com>
* [PATCH] scx200_acb: handle PCI errorsJeff Garzik2006-11-20
| | | | | | | Signed-off-by: Jeff Garzik <jeff@garzik.org> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] i2c-ixp4xx: fix ") != 0))" typoAlexey Dobriyan2006-11-20
| | | | | | | | | | | | i2c_bit_add_bus() returns -E; -E != 0 => err = 1 probe fails with positive error code Signed-off-by: Alexey Dobriyan <adobriyan@openvz.org> Cc: Deepak Saxena <dsaxena@mvista.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [ARM] Fix i2c-pxa slave mode supportRussell King2006-10-28
| | | | | | | | i2c-pxa times out when trying to enable slave mode due to an incorrect test. Also, check that i2c->slave is non-NULL before dereferencing it. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
* hwmon: Let w83781d and lm78 load againJean Delvare2006-10-18
| | | | | | | | | | | | | Let the w83781d and lm78 hardware monitoring drivers load even when no chip was detected at the ISA address. There can still be supported chips connected to an I2C bus or SMBus. This fixes bug #7293. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* [POWERPC] Fix i2c-powermac platform device usageBenjamin Herrenschmidt2006-10-09
| | | | | | | | | | | | i2c-powermac was written & merged right after Russell King's changes adding platform_driver... which I missed. Thus it still used struct device, causing crashes when hitting sleep/wakeup callbacks (it happened to work by luck so far, until early/late callbacks got added). This causes crashes on sleep/wakeup on PowerBooks with 2.6.19. The patch fixes it by using a proper platform_driver. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.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)
* Remove all inclusions of <linux/config.h>Dave Jones2006-10-04
| | | | | | kbuild explicitly includes this at build time. Signed-off-by: Dave Jones <davej@redhat.com>
* fix file specification in commentsUwe Zeisberger2006-10-03
| | | | | | | Many files include the filename at the beginning, serveral used a wrong one. Signed-off-by: Uwe Zeisberger <Uwe_Zeisberger@digi.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
* Fix several typos in drivers/Matt LaPlante2006-10-03
| | | | Signed-off-by: Adrian Bunk <bunk@stusta.de>
* [PATCH] proper flags type of spin_lock_irqsave()Alexey Dobriyan2006-10-01
| | | | | | | | | | | | Convert various spin_lock_irqsave() callers to correctly use `unsigned long'. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp> Cc: "Luck, Tony" <tony.luck@intel.com> Acked-by: Kyle McMartin <kyle@mcmartin.ca> Cc: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] i2c: Prevent deadlock on i2c client registrationJean Delvare2006-09-30
| | | | | | | | | | | | | | Delay the call to adapter->client_register() until after we are certain that the client registration is a success. At this point the client is fully initialized and we no longer hold the adapter->clist mutex, so this should prevent the deadlocks if the client_register() callback needs to take that mutex too, as is the case for the bttv driver. This fixes bug #7234. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] i2c-sibyte: Fix modular build breakageYoichi Yuasa2006-09-29
| | | | | | | | | | | | | | Fix undefined reference in i2c_sibyte_exit(). drivers/built-in.o: In function `i2c_sibyte_exit': i2c-sibyte.c:(.exit.text+0x368): undefined reference to `i2c_del_bus' i2c-sibyte.c:(.exit.text+0x368): relocation truncated to fit: R_MIPS_26 against `i2c_del_bus' i2c-sibyte.c:(.exit.text+0x38c): undefined reference to `i2c_del_bus' i2c-sibyte.c:(.exit.text+0x38c): relocation truncated to fit: R_MIPS_26 against `i2c_del_bus' Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2006-09-28
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm: (130 commits) [ARM] 3856/1: Add clocksource for Intel IXP4xx platforms [ARM] 3855/1: Add generic time support [ARM] 3873/1: S3C24XX: Add irq_chip names [ARM] 3872/1: S3C24XX: Apply consistant tabbing to irq_chips [ARM] 3871/1: S3C24XX: Fix ordering of EINT4..23 [ARM] nommu: confirms the CR_V bit in nommu mode [ARM] nommu: abort handler fixup for !CPU_CP15_MMU cores. [ARM] 3870/1: AT91: Start removing static memory mappings [ARM] 3869/1: AT91: NAND support for DK and KB9202 boards [ARM] 3868/1: AT91 hardware header update [ARM] 3867/1: AT91 GPIO update [ARM] 3866/1: AT91 clock update [ARM] 3865/1: AT91RM9200 header updates [ARM] 3862/2: S3C2410 - add basic power management support for AML M5900 series [ARM] kthread: switch arch/arm/kernel/apm.c [ARM] Off-by-one in arch/arm/common/icst* [ARM] 3864/1: Refactore sharpsl_pm [ARM] 3863/1: Add Locomo SPI Device [ARM] 3847/2: Convert LOMOMO to use struct device for GPIOs [ARM] Use CPU_CACHE_* where possible in asm/cacheflush.h ...