Lars Ellenberg [Thu, 4 Mar 2010 14:52:30 +0000 (15:52 +0100)]
drbd: fix al-to-on-disk-bitmap for 4k logical_block_size
Up to now, applying the in-core activity-log to the on-disk
bitmap did not care for logical_block_size.
On logical_block_size != 512 byte, this very likely results
in misalligned block access and spurious "io errors".
We now simply always submit aligned whole 4k blocks, fixing this
for logical block sizes of 512, 1024, 2048 and 4096.
For even larger logical block sizes, this won't work.
But I'm not aware of devices with such properties being available.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Philipp Reisner [Thu, 4 Mar 2010 14:51:01 +0000 (15:51 +0100)]
drbd: Renamed overwrite_peer to primary_force
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Philipp Reisner [Thu, 4 Mar 2010 14:11:39 +0000 (15:11 +0100)]
drbd: Forcing primary should also work for Consistent disks [Bugz 266]
Up to now this only worked for Outdated and Inconsistent disks, that
it did not worked for Consistent disks was an inconsistent omission.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Philipp Reisner [Tue, 2 Mar 2010 14:06:45 +0000 (15:06 +0100)]
drbd: Make sure we do not send state updates during an empty resync [Bugz 271]
This is a race condition that existed for ages.
The previous commit reduces the window, this one closes it.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Philipp Reisner [Tue, 2 Mar 2010 14:03:44 +0000 (15:03 +0100)]
drbd: Reduce the time an empty resync takes usually
This mitigates changes introduced with commit:
http://git.drbd.org/?p=drbd-8.3.git;a=commit;h=
4b6803a3276652da3737
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg [Wed, 3 Mar 2010 01:44:11 +0000 (02:44 +0100)]
drbd: add missing drbd command names to avoid <NULL> in error messages
cmdname() should map command number to its human readable
representation. The string table was incomplete, though.
Maybe rather do a switch() block, and let the compiler help us
to keep it complete?
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg [Wed, 3 Mar 2010 01:25:33 +0000 (02:25 +0100)]
drbd_disconnect: grab meta.socket mutex as well
Fixes a race and potential kernel panic if e.g. the worker was just
about to send a few P_RS_IS_IN_SYNC via the meta socket for checksum
based resync, while the receiver destroys the sockets in
drbd_disconnect.
To make sure no-one is using the meta socket,
it is not enough to stop the asender...
Grab the meta socket mutex before destroying it.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg [Wed, 3 Mar 2010 01:08:22 +0000 (02:08 +0100)]
fix unit of rs_same_csums accounting
Depending on resync request size,
we need to account for more than one bit.
Impact: cosmetic
If SyncTarget reported correctly 100% equal checksums,
the SyncSource usually reported 12% equal checksums instead,
because it only counted requests, we typically do 32k resync requests,
and the bitmap granularity is still 4k.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg [Fri, 26 Feb 2010 22:15:23 +0000 (23:15 +0100)]
drbd: fix broken state change after split-brain attach while connected
Situation:
we have diverging data sets, i.e. we had a split brain somewhen,
but currently are connected, one node diskless.
Then we try to attach that disk, figure it is consistent,
but has a diverging data set, we refuse to attach.
This led to strange state changes:
22:18:35 bb drbd1: peer( Unknown -> Primary ) conn( WFReportParams -> Connected) pdsk( DUnknown -> UpToDate )
22:19:30 bb drbd1: disk( Diskless -> Attaching )
22:19:30 bb drbd1: disk( Attaching -> Negotiating )
22:19:30 bb drbd1: drbd_sync_handshake:
22:19:30 bb drbd1: self
97BF25798B9D5222:
F33D1F62ADE698DD:
4269796F9D027C83:
AC45D8B5C3C1BF93 bits:19449 flags:0
22:19:30 bb drbd1: peer
280DFB6E125465D3:
F33D1F62ADE698DC:
4269796F9D027C82:
AC45D8B5C3C1BF93 bits:
2575806 flags:0
22:19:30 bb drbd1: uuid_compare()=100 by rule 90
22:19:30 bb drbd1: Split-Brain detected, dropping connection!
22:19:30 bb drbd1: disk( Negotiating -> Diskless )
while the other side says:
22:19:30 aa drbd1: Split-Brain detected, dropping connection!
22:19:30 aa drbd1: Disk attach process on the peer node was aborted.
22:19:30 aa drbd1: conn( Connected -> TOO_LARGE ) pdsk( Diskless -> Consistent )
This should be fixed now.
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Lars Ellenberg [Fri, 26 Feb 2010 15:53:24 +0000 (16:53 +0100)]
drbd: fix NULL pointer dereference on 4k hard sect size
we still don't support 4k 'physical' sectors 'natively',
but use a read-modify-write workaround.
And we even tried to use the extra page before we allocated it :(
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Philipp Reisner [Tue, 2 Feb 2010 20:03:50 +0000 (21:03 +0100)]
drbd: --dry-run option for drbdsetup net ( drbdadm -- --dry-run connect <res> )
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com>
Thomas Gleixner [Fri, 29 Jan 2010 20:39:07 +0000 (20:39 +0000)]
block: drbd: Convert semaphore to mutex
The bm_change semaphore is semantically a mutex. Convert it to a real
mutex.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com>
William Cohen [Tue, 9 Mar 2010 08:26:04 +0000 (09:26 +0100)]
Add DocBook documentation for the block tracepoints.
This patch adds a simple description of the various block tracepoints
available in the kernel.
Signed-off-by: William Cohen <wcohen@redhat.com>
Acked-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
FUJITA Tomonori [Mon, 8 Mar 2010 08:11:07 +0000 (09:11 +0100)]
Documentation: fix block/biodoc.txt dma mapping description
- It looks incorrect to use blk_rq_map_sg with pci_map_page here about
DMA mappings. dma_map_sg?
- better to use dma_map_page instead of pci_map_page.
http://marc.info/?l=linux-kernel&m=
126596737604808&w=2
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Dmitry Monakhov [Wed, 3 Mar 2010 03:28:06 +0000 (06:28 +0300)]
blkdev: fix merge_bvec_fn return value checks v2
merge_bvec_fn() returns bvec->bv_len on success. So we have to check
against this value. But in case of fs_optimization merge we compare
with wrong value. This patch must be included in
b428cd6da7e6559aca69aa2e3a526037d3f20403
But accidentally i've forgot to add this in the initial patch.
To make things straight let's replace all such checks.
In fact this makes code easy to understand.
Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Linus Torvalds [Mon, 8 Mar 2010 00:04:03 +0000 (16:04 -0800)]
Merge git://git./linux/kernel/git/amit/virtio-console
* git://git.kernel.org/pub/scm/linux/kernel/git/amit/virtio-console:
virtio: console: Use better variable names for fill_queue operation
virtio: console: Fix type of 'len' as unsigned int
Linus Torvalds [Sun, 7 Mar 2010 23:59:39 +0000 (15:59 -0800)]
Merge branch 'x86-mrst-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip
* 'x86-mrst-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (30 commits)
x86, mrst: Fix whitespace breakage in apb_timer.c
x86, mrst: Fix APB timer per cpu clockevent
x86, mrst: Remove X86_MRST dependency on PCI_IOAPIC
x86, olpc: Use pci subarch init for OLPC
x86, pci: Add arch_init to x86_init abstraction
x86, mrst: Add Kconfig dependencies for Moorestown
x86, pci: Exclude Moorestown PCI code if CONFIG_X86_MRST=n
x86, numaq: Make CONFIG_X86_NUMAQ depend on CONFIG_PCI
x86, pci: Add sanity check for PCI fixed bar probing
x86, legacy_irq: Remove duplicate vector assigment
x86, legacy_irq: Remove left over nr_legacy_irqs
x86, mrst: Platform clock setup code
x86, apbt: Moorestown APB system timer driver
x86, mrst: Add vrtc platform data setup code
x86, mrst: Add platform timer info parsing code
x86, mrst: Fill in PCI functions in x86_init layer
x86, mrst: Add dummy legacy pic to platform setup
x86/PCI: Moorestown PCI support
x86, ioapic: Add dummy ioapic functions
x86, ioapic: Early enable ioapic for timer irq
...
Fixed up semantic conflict of new clocksources due to commit
17622339af25 ("clocksource: add argument to resume callback").
Linus Torvalds [Sun, 7 Mar 2010 23:56:25 +0000 (15:56 -0800)]
Merge branch 'for-linus/i2c' of git://git.fluff.org/bjdooks/linux
* 'for-linus/i2c' of git://git.fluff.org/bjdooks/linux:
i2c: Add support for Xilinx XPS IIC Bus Interface
i2c: omap: Add support for 16-bit registers
i2c-pnx: fix setting start/stop condition
powerpc: doc/dts-bindings: update doc of FSL I2C bindings
i2c-mpc: add support for the MPC512x processors from Freescale
i2c-mpc: rename "setclock" initialization functions to "setup"
i2c-mpc: use __devinit[data] for initialization functions and data
i2c/imx: don't add probe function to the driver struct
i2c: Add support for Ux500/Nomadik I2C controller
Linus Torvalds [Sun, 7 Mar 2010 23:56:04 +0000 (15:56 -0800)]
Merge branch 'for-next' of git://git./linux/kernel/git/sameo/mfd-2.6
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (66 commits)
mfd: Fix ucb1x00 build failure for collie_defconfig
mfd: Fix lpc_sch related depends/selects, fix build error
gpio: Fix sch_gpio warning
gpio: add Intel SCH GPIO controller driver
i2c: convert i2c-isch to platform_device
mfd: Use completion interrupt for WM831x AUXADC
mfd: Use completion interrupt for WM835x AUXADC
mfd: Introduce remove_script function for twl4030
mfd/mmc: SDHI Kconfig update
mfd: sh_mobile_sdhi MMC_CAP_MMC_HIGHSPEED support
gpiolib: Force wm831x GPIOs into GPIO mode when requested
mfd: Add WM831x revision B support
gpiolib: Correct debugfs display of WM831x GPIO inversion
gpiolib: Actually set output state in wm831x_gpio_direction_output()
tmio_mmc: Balance cell enable()/disable() calls
tmio_mmc: Remove const from platform data V3
tmio_mmc: Use 100ms mmc_detect_change() delay
tmio_mmc: Add MMC_CAP_MMC_HIGHSPEED support V2
tmio_mmc: Keep card-detect interrupts enabled
mfd: Add twl6030 base addr for ID0, ID1, ID2
...
Linus Torvalds [Sun, 7 Mar 2010 23:49:12 +0000 (15:49 -0800)]
Merge git://git./linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (368 commits)
Staging: winbond: fix up wireless api errors
Staging: dream: camera: sk5k3e2fx: fix code style issues
Staging: dream: camera: msm_camera: fix code style issues
Staging: wlan-ng: More checkpatch.pl error cleanups
Staging: wlan-ng - checkpatch.pl fixups
Staging: comedi: comedi_fops.c: Checkpatch cleanup
Staging: comedi: fix suspect code indent in ni_labpc.c
Staging: comedi: fix yet another brace coding style issue in ni_labpc.c
Staging: comedi: fix another brace coding style issues in ni_labpc.c
Staging: comedi: fix brace coding style issue in ni_labpc.c
Staging: comedi: poc: Adding some KERN_ facility level
Staging: dream: camera: msm_camera: fix some code style issues
Staging: wlan-ng: fix most of the style issues in hfa384x.h
Staging: dream: camera: msm_camera: fix coding style issues
Staging: comedi: fix bracing coding style and 80 character issues in ni_660x.c
Staging: comedi: fix bracing coding style issue in ni_65xx.c
Staging: comedi: pcmad: Checkpatch cleanups
Staging: comedi: poc: fix coding style issues
staging: dt3155: revert u_long to u64 usage
Staging: comedi: drivers.c: Checkpatch cleanup
...
Randy Dunlap [Thu, 4 Mar 2010 17:37:12 +0000 (09:37 -0800)]
seq_file: fix new kernel-doc warnings
Fix kernel-doc notation in new seq-file functions and
correct spelling.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Li Zefan <lizf@cn.fujitsu.com>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Sun, 7 Mar 2010 23:47:19 +0000 (15:47 -0800)]
Merge git://git./linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (26 commits)
sh: Convert sh to use read/update_persistent_clock
sh: Move PMB debugfs entry initialization to later stage
sh: Fix up flush_cache_vmap() on SMP.
sh: fix up MMU reset with variable PMB mapping sizes.
sh: establish PMB mappings for NUMA nodes.
sh: check for existing mappings for bolted PMB entries.
sh: fixed virt/phys mapping helpers for PMB.
sh: make pmb iomapping configurable.
sh: reworked dynamic PMB mapping.
sh: Fix up cpumask_of_pcibus() for the NUMA build.
serial: sh-sci: Tidy up build warnings.
sh: Fix up ctrl_read/write stragglers in migor setup.
serial: sh-sci: Add DMA support.
dmaengine: shdma: extend .device_terminate_all() to record partial transfer
sh: merge sh7722 and sh7724 DMA register definitions
sh: activate runtime PM for dmaengine on sh7722 and sh7724
dmaengine: shdma: add runtime PM support.
dmaengine: shdma: separate DMA headers.
dmaengine: shdma: convert to platform device resources
dmaengine: shdma: fix DMA error handling.
...
Linus Torvalds [Sun, 7 Mar 2010 23:45:53 +0000 (15:45 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/kyle/parisc-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
parisc: use __ratelimit in unaligned.c
parisc: Convert to read/update_persistent_clock
parisc: Simplify param.h by including <asm-generic/param.h>
parisc: drop unnecessary cast in __ldcw_align() macro
parisc: add strict copy size checks (v2)
parisc: remove trailing space in messages
parisc: ditto sys_accept4
parisc: wire up sys_recvmmsg
Linus Torvalds [Sun, 7 Mar 2010 23:45:35 +0000 (15:45 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/rafael/suspend-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
PM: Provide generic subsystem-level callbacks
PM / Runtime: Document power.runtime_auto and related functions
Linus Torvalds [Sun, 7 Mar 2010 23:38:23 +0000 (15:38 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/mst/vhost
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
virtio: set pci bus master enable bit
Ben Dooks [Sun, 7 Mar 2010 22:29:28 +0000 (22:29 +0000)]
Merge branch 'next-i2c-xilinx' into next-i2c
Ben Dooks [Sun, 7 Mar 2010 22:29:21 +0000 (22:29 +0000)]
Merge branch 'next-i2c-omap' into next-i2c
Ben Dooks [Sun, 7 Mar 2010 22:29:13 +0000 (22:29 +0000)]
Merge branch 'next-i2c-mpc-v8' into next-i2c
Richard Röjfors [Thu, 11 Feb 2010 09:42:00 +0000 (10:42 +0100)]
i2c: Add support for Xilinx XPS IIC Bus Interface
This patch adds support for the Xilinx XPS IIC Bus Interface.
The driver uses the dynamic mode, supporting to put several
I2C messages in the FIFO to reduce the number of interrupts.
It has the same feature as ocores, it can be passed a list
of devices that will be added when the bus is probed.
Signed-off-by: Richard Röjfors <richard.rojfors@pelagicore.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Cory Maccarrone [Sun, 13 Dec 2009 01:54:02 +0000 (17:54 -0800)]
i2c: omap: Add support for 16-bit registers
The current i2c-omap driver is set up for 32-bit registers, which
corresponds to most OMAP devices. However, OMAP730/850 based
devices use a 16-bit register size.
This change modifies the driver to perform a runtime CPU type check
to determine the register sizes, and uses a bit shift of either 1
or 2 bits to compute the proper register sizes for all registers.
Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Luotao Fu [Mon, 1 Mar 2010 12:24:24 +0000 (13:24 +0100)]
i2c-pnx: fix setting start/stop condition
The start/stop condtions are set in different places repetedly in the i2c-pnx
driver. Beside in i2c_pnx_start and i2c_pnx_stop the start/stop bit are also
set during the transfer of a i2c message in the master_xmit/rcv calls. This is
wrong since we can't set the start/stop condition during the transaction of a
single message any way. As a matter of fact, the driver will sometimes set both
the start and the stop bits at one time. This can be easily reproduced by
sending a simple read request like e.g
struct i2c_msg msgs[] = {
{ addr, 0, 1, buf },
{ addr, I2C_M_RD, offset, buf }
};
While processing the first message the i2c_pnx_master_xmit will set both the
start_bit and the stop_bit, which will eventually confuse the slave.
Fixed by remove setting start/stop condition from the transmit routines.
Signed-off-by: Luotao Fu <l.fu@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Wolfgang Grandegger [Wed, 17 Feb 2010 10:19:20 +0000 (11:19 +0100)]
powerpc: doc/dts-bindings: update doc of FSL I2C bindings
This patch adds the MPC5121 to the list of supported devices,
enhances the doc of the "clock-frequency" property and removes
the obsolete "cell-index", "device_type" and "fsl-i2c" property.
Furthermore an example for the MPC5121 has been added.
Signed-off-by: Wolfgang Grandegger <wg@denx.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Wolfgang Grandegger [Wed, 17 Feb 2010 10:19:19 +0000 (11:19 +0100)]
i2c-mpc: add support for the MPC512x processors from Freescale
As I2C interrupts must be enabled for the MPC512x by the setup function
as well, "fsl,preserve-clocking" is handled in a slighly different way.
Also, the old settings are now reported calling dev_dbg(). For the
MPC512x the clock setup function of the MPC52xx can be re-used.
Furthermore, the Kconfig help has been updated and corrected.
Signed-off-by: Wolfgang Grandegger <wg@denx.de>
Reviewed-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Wolfgang Grandegger [Wed, 17 Feb 2010 10:19:18 +0000 (11:19 +0100)]
i2c-mpc: rename "setclock" initialization functions to "setup"
To prepare support for the MPC512x processors from Freescale the
"setclock" initialization functions have been renamed to "setup"
because I2C interrupts must be enabled for the MPC512x by this
function as well.
Signed-off-by: Wolfgang Grandegger <wg@denx.de>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Wolfgang Grandegger [Wed, 17 Feb 2010 10:19:17 +0000 (11:19 +0100)]
i2c-mpc: use __devinit[data] for initialization functions and data
"__devinit[data]" has not yet been used for all initialization functions
and data. To avoid truncating lines, the struct "mpc_i2c_match_data" has
been renamed to "mpc_i2c_data", which is even the better name.
Signed-off-by: Wolfgang Grandegger <wg@denx.de>
Tested-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Uwe Kleine-König [Mon, 1 Feb 2010 14:57:25 +0000 (15:57 +0100)]
i2c/imx: don't add probe function to the driver struct
Having a pointer to the probe function is unnecessary when using
platform_driver_probe and yields a section mismatch warning after
removing the white list entry "*driver" for
{ .data$, .data.rel$ } -> { .init.* } mismatches in modpost.
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
srinidhi kasagar [Mon, 1 Feb 2010 14:14:54 +0000 (19:44 +0530)]
i2c: Add support for Ux500/Nomadik I2C controller
This adds support for ST-Ericsson's I2C block found
in Ux500 and Nomadik 8815 platforms.
Signed-off-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com>
Acked-by: Andrea Gallo <andrea.gallo@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Reviewed-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Peter Huewe [Sat, 6 Mar 2010 13:36:38 +0000 (14:36 +0100)]
mfd: Fix ucb1x00 build failure for collie_defconfig
This patch fixes a build failure[1], by adding the missing semaphore.h include
References:
[1] http://kisskb.ellerman.id.au/kisskb/buildresult/
2234322/
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Randy Dunlap [Fri, 5 Mar 2010 17:43:06 +0000 (09:43 -0800)]
mfd: Fix lpc_sch related depends/selects, fix build error
LPC_SCH is selected by GPI_SCH and I2C_ISCH, even when PCI is not
enabled, but LPC_SCH depends on PCI, so make GPI_SCH and I2C_ISCH
also depend on PCI.
Those 2 selects also need to select what LPC_SCH selects,
since kconfig does not follow selects.
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Cc: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Samuel Ortiz [Fri, 5 Mar 2010 16:14:01 +0000 (17:14 +0100)]
gpio: Fix sch_gpio warning
We need to check for gpiochip_remove() errors.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Denis Turischev [Tue, 2 Mar 2010 09:48:55 +0000 (10:48 +0100)]
gpio: add Intel SCH GPIO controller driver
Signed-off-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Denis Turischev [Mon, 1 Mar 2010 16:59:55 +0000 (18:59 +0200)]
i2c: convert i2c-isch to platform_device
Convert i2c-isch to platform_device for the lpc mfd core to add it at probe
time.
Signed-off-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 23 Feb 2010 11:08:06 +0000 (11:08 +0000)]
mfd: Use completion interrupt for WM831x AUXADC
Use the completion interrupt generated by the device rather than
polling for conversions to complete. As a backup we still check
the status of the AUXADC if we don't get a completion, mostly for
systems that don't have the WM831x interrupt infrastructure hooked
up.
Also reduce the timeout for completion of conversions to 5ms from
the previous 10ms, the lower timeout should be sufficient.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 23 Feb 2010 11:08:05 +0000 (11:08 +0000)]
mfd: Use completion interrupt for WM835x AUXADC
Use the completion interrupt generated by the device rather than
polling for conversions to complete. As a backup we still check
the state of the AUXADC if we don't get a completion, mostly for
systems that don't have the WM8350 interrupt infrastructure hooked
up.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mike Turquette [Mon, 22 Feb 2010 17:16:30 +0000 (11:16 -0600)]
mfd: Introduce remove_script function for twl4030
New function twl4030_remove_script(u8 flags) takes a script type as
defined in twl.h and prevents any script already loaded in that position
from running. This is accomplished by programming SEQ_ADD_* to 0x3f,
the END_OF_SCRIPT value, where SEQ_ADD_* is determined by flags.
(Future) users of this function include OMAP board files for machines
facing a race condition between sleep and warm reset.
Signed-off-by: Mike Turquette <mturquette@ti.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Magnus Damm [Mon, 22 Feb 2010 04:40:59 +0000 (13:40 +0900)]
mfd/mmc: SDHI Kconfig update
Enable the sh_mobile_sdhi mfd driver on SH-Mobile ARM
processors. While at it, make CONFIG_TMIO_MMC depend on
CONFIG_MFD_SH_MOBILE_SDHI.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Magnus Damm [Mon, 22 Feb 2010 04:37:09 +0000 (13:37 +0900)]
mfd: sh_mobile_sdhi MMC_CAP_MMC_HIGHSPEED support
Add MMC_CAP_MMC_HIGHSPEED support to the sh_mobile_sdhi
driver. Also, remove type cast and FIXME comment.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 17 Feb 2010 18:45:26 +0000 (18:45 +0000)]
gpiolib: Force wm831x GPIOs into GPIO mode when requested
This is the chip default but it's possible the bootloader or OTP
will have been configured to a different mode (eg, to provide
feedback during startup).
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 17 Feb 2010 18:45:25 +0000 (18:45 +0000)]
mfd: Add WM831x revision B support
Revision B of the WM831x devices changes the sense of the tristate
bit for GPIO configuration, inverting it to become an enable instead.
Take account of this in the gpiolib driver.
A current sink regulation status bit has also been added in revision B,
add a flag indicating if it's present but don't use it yet.
This revision also adds an interrupt on key up for the ON pin event
which the existing code is able to take advantage of.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 17 Feb 2010 18:45:24 +0000 (18:45 +0000)]
gpiolib: Correct debugfs display of WM831x GPIO inversion
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 17 Feb 2010 18:04:35 +0000 (18:04 +0000)]
gpiolib: Actually set output state in wm831x_gpio_direction_output()
wm831x_gpio_direction_output() ignored the state passed into it.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Cc: stable@kernel.org
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Magnus Damm [Wed, 17 Feb 2010 07:38:23 +0000 (16:38 +0900)]
tmio_mmc: Balance cell enable()/disable() calls
This patch adds cell->disable() calls to the tmio-mmc
probe() error handling and the remove() function.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Magnus Damm [Wed, 17 Feb 2010 07:38:14 +0000 (16:38 +0900)]
tmio_mmc: Remove const from platform data V3
Remove const from the tmio-mmc platform data hclk V3.
This change makes it possible to remove the type cast
from the sh_mobile_sdhi driver which is using the clock
framework to get the clock rate.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Magnus Damm [Wed, 17 Feb 2010 07:38:04 +0000 (16:38 +0900)]
tmio_mmc: Use 100ms mmc_detect_change() delay
This patch changes the tmio_mmc driver to wait 100ms
before checking the card detect status. This type of
delay is quite common among mmc drivers, it seems that
most hardware platforms need to give the hardware some
time to settle before checking card availabilty.
Hotplug is half-broken without this patch on the sh7724
Ecovec board. Hot insertion seems ok but eject is never
detected without this patch.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Yusuke Goda [Wed, 17 Feb 2010 07:37:55 +0000 (16:37 +0900)]
tmio_mmc: Add MMC_CAP_MMC_HIGHSPEED support V2
Enable MMC_CAP_XX support in the tmio_mmc driver if
pdata->capabilities is set.
Signed-off-by: Yusuke Goda <goda.yusuke@renesas.com>
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Guennadi Liakhovetski [Wed, 17 Feb 2010 07:37:45 +0000 (16:37 +0900)]
tmio_mmc: Keep card-detect interrupts enabled
On SuperH platforms the SDHI controller does not produce any command IRQs after
a completed IO. This leads to card-detect interrupts staying disabled. Do not
disable card-detect interrupts on DATA IRQs.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Balaji T K [Fri, 19 Feb 2010 11:39:38 +0000 (12:39 +0100)]
mfd: Add twl6030 base addr for ID0, ID1, ID2
Add base address for generic slave ID0, ID1, ID2
and introduced one more entry to align RTC module number between
twl4030 and twl6030
Signed-off-by: Balaji T K <balajitk@ti.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Moiz Sonasath [Wed, 17 Feb 2010 00:57:21 +0000 (18:57 -0600)]
mfd: Disable TWL4030/5030 I2C1/I2C4 internal pull-ups
This patch disables TWL4030/5030 I2C1 adn I2C4(SR) internal pull-up, to
use only the external HW resistor >=470 Ohm for the assured
functionality in HS mode.
While testing the I2C in High Speed mode, it was discovered that
without a proper pull-up resistor, there is data corruption during
multi-byte transfer. RTC(time_set) test case was used for testing.
From the analysis done, it was concluded that ideally we need a
pull-up of 1.6k Ohm(recomended) or atleast 470 Ohm or greater for
assured performance in HS mode.
Signed-off-by: Moiz Sonasath <m-sonasath@ti.com>
Signed-off-by: Allen Pais <allen.pais@ti.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Denis Turischev [Fri, 19 Feb 2010 10:26:25 +0000 (11:26 +0100)]
mfd: Introduce lpc_sch for Intel SCH LPC bridge
Intel Poulsbo (SCH) chipset LPC bridge controller contains several
functions. Creating and MFD driver for the LPC bridge controller allows
simultaneous use of SMBus and GPIO interfaces on the SCH.
Signed-off-by: Denis Turischev <denis@compulab.co.il>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Samuel Ortiz [Fri, 19 Feb 2010 10:07:59 +0000 (11:07 +0100)]
mfd: Check for ACPI conflicts
For ACPI based systems, we should check for ACPI conflicts when adding the
platform devices. The test will always succeed for non ACPI platforms.
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Eduardo Valentin [Thu, 11 Feb 2010 12:47:09 +0000 (13:47 +0100)]
mfd: Fix twl_has_pwrbutton typo
Change the typo CONFIG_INPUT_TWL4030_PWBUTTON_MODULE in the
twl_has_pwrbutton definition to CONFIG_INPUT_TWL4030_PWRBUTTON_MODULE.
Signed-off-by: Eduardo Valentin <eduardo.valentin@nokia.com>
Signed-off-by: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 3 Feb 2010 20:40:59 +0000 (15:40 -0500)]
input: Support onkey in 88pm860x
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 8 Feb 2010 10:02:00 +0000 (05:02 -0500)]
mfd: Use genirq in 88pm860x
Use genirq to simplify IRQ handling in 88pm860x. Remove the interface of
mask/free IRQs on 88pm860x. All these work is taken by genirq. Update the
touchscreen driver of 88pm860x since IRQ handling is changed.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Joonyoung Shim [Sun, 7 Feb 2010 01:16:14 +0000 (10:16 +0900)]
mfd: Fix WM8994 error handling
This patch fixes wrong goto statement for error handling on probe.
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 3 Feb 2010 20:38:12 +0000 (15:38 -0500)]
mfd: Use i2c_dummy in 88pm860x
Use i2c_dummy in 88pm860x driver to avoid using static in probe function.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 3 Feb 2010 20:37:23 +0000 (15:37 -0500)]
mfd: Clean code in max8925
Remove unused definitions.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 25 Jan 2010 15:38:35 +0000 (10:38 -0500)]
power_supply: Enable power supply of max8925
MAX8925 is a PMIC that contains charger component
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 25 Jan 2010 11:30:29 +0000 (06:30 -0500)]
rtc: Enable rtc in max8925
MAX8925 is a PMIC that contains RTC component.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Fri, 5 Feb 2010 15:07:54 +0000 (16:07 +0100)]
mfd: Update irq handler in max8925
Update thread irq handler. Simply the interface of using thread irq.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 25 Jan 2010 11:26:34 +0000 (06:26 -0500)]
mfd: Update i2c driver for max8925
Update I2C driver in order to fit all of three I2C components in max8925.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mike Turquette [Fri, 5 Feb 2010 08:51:37 +0000 (09:51 +0100)]
mfd: Program twl4030 remap_sleep correctly
Variable remap was incorrectly referencing remap_off for the remap_sleep
case when configuring TWL4030 power scripts.
Signed-off-by: Mike Turquette <mturquette@ti.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Fri, 29 Jan 2010 18:20:30 +0000 (18:20 +0000)]
gpiolib: Add WM8994 GPIO support
The WM8994 has 11 GPIO lines.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Fri, 29 Jan 2010 18:20:29 +0000 (18:20 +0000)]
mfd: Add initial WM8994 support
The WM8994 is a highly integrated ultra low power audio hub CODEC.
Since it includes on-board regulators and GPIOs it is represented
as a multi-function device, though the overwhelming majority of
the functionality is provided by the ASoC CODEC driver.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Fri, 29 Jan 2010 18:20:28 +0000 (18:20 +0000)]
mfd: Add WM8994 register definitions
As a separate patch due to the large size.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Randy Dunlap [Thu, 21 Jan 2010 03:55:34 +0000 (19:55 -0800)]
mfd: htc-i2cpld depends on GPIOLIB
htc-i2cpld should depend on GPIOLIB, otherwise there are many
build errors:
drivers/mfd/htc-i2cpld.c:50: error: field 'chip_out' has incomplete type
drivers/mfd/htc-i2cpld.c:54: error: field 'chip_in' has incomplete type
drivers/mfd/htc-i2cpld.c:243: warning: type defaults to 'int' in declaration of '__mptr'
drivers/mfd/htc-i2cpld.c:243: warning: initialization from incompatible pointer type
drivers/mfd/htc-i2cpld.c:278: warning: type defaults to 'int' in declaration of '__mptr'
drivers/mfd/htc-i2cpld.c:278: warning: initialization from incompatible pointer type
drivers/mfd/htc-i2cpld.c:282: warning: type defaults to 'int' in declaration of '__mptr'
drivers/mfd/htc-i2cpld.c:282: warning: initialization from incompatible pointer type
drivers/mfd/htc-i2cpld.c:315: error: dereferencing pointer to incomplete type
drivers/mfd/htc-i2cpld.c:322: warning: type defaults to 'int' in declaration of '__mptr'
drivers/mfd/htc-i2cpld.c:322: warning: initialization from incompatible pointer type
drivers/mfd/htc-i2cpld.c:467+: error: dereferencing pointer to incomplete type [19X]
drivers/mfd/htc-i2cpld.c:490: error: implicit declaration of function 'gpiochip_add'
drivers/mfd/htc-i2cpld.c:504: error: implicit declaration of function 'gpiochip_remove'
Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Christoph Egger [Fri, 15 Jan 2010 14:33:46 +0000 (15:33 +0100)]
mfd: Remove leftover from discontinued TWL4030 battery patch
The TWL4030_BCI_BATTERY config option originates from a patch to the
omap git tree. However inclusion in linux was seemingly rejected and
the functionality nears inclusion under a different name so this
removes the bits of the old version that made it into the mainline
kernel again.
Signed-off-by: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Linus Walleij [Sun, 17 Jan 2010 19:57:43 +0000 (20:57 +0100)]
mfd: Fix debugfs code in AB3100 OTP driver
This fixes the aged and unreachable debugfs code in the AB3100
OTP driver so that it's (A) reachable and (B) works. Bug detected
in parallell by Christoph Egger using VAMOS and Robert P. J. Day
by his kernel scanning script.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Cc: Christoph Egger <siccegge@stud.informatik.uni-erlangen.de>
Cc: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Linus Walleij [Tue, 19 Jan 2010 10:41:52 +0000 (11:41 +0100)]
mfd: Use AB3100 MFD core IRQ for interrupt randomness
This reintroduces the entropy sampling of the AB3100 IRQ as the
IRQF_SAMPLE_RANDOM is going out according to the feature removal
schedule. I'm trying to do this the right way then, so CC:ing some
random people for a quick review. We add entropy for interrupt
events in the AB3100 which are truly random in nature, like
external cables being connected, voltages on batteries dropping
below certain ranges, ADC triggers or overheating.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Cc: Robin Getz <rgetz@blackfin.uclinux.org>
Acked-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Cory Maccarrone [Tue, 19 Jan 2010 10:22:45 +0000 (11:22 +0100)]
mfd: Add HTCPLD driver
This change introduces a driver for the HTC PLD chip found
on some smartphones, such as the HTC Wizard and HTC Herald.
It works through the I2C bus and acts as a GPIO extender.
Specifically:
* it can have several sub-devices, each with its own I2C
address
* Each sub-device provides 8 output and 8 input pins
* The chip attaches to one GPIO to signal when any of the
input GPIOs change -- at which point all chips must be
scanned for changes
This driver implements the GPIOs throught the kernel's
GPIO and IRQ framework. This allows any GPIO-servicing
drivers to operate on htcpld pins, such as the gpio-keys
and gpio-leds drivers.
Signed-off-by: Cory Maccarrone <darkstar6262@gmail.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 11 Jan 2010 12:10:08 +0000 (13:10 +0100)]
regulator: Add max8925 support
MAX8925 contains 3 Buck and 20 LDO regulator.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Fri, 18 Dec 2009 15:01:45 +0000 (10:01 -0500)]
backlight: Enable max8925 backlight
Enable max8925 backlight sub device.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Fri, 8 Jan 2010 17:43:29 +0000 (12:43 -0500)]
mfd: Add subdevs in max8925
Add subdevs in MAX8925. MAX8925 includes regulator, backlight and touch
components.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Fri, 8 Jan 2010 11:29:23 +0000 (12:29 +0100)]
mfd: Initial max8925 support
Basic Max8925 support, which is a power management IC from Maxim
Semiconductor.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Thu, 10 Dec 2009 11:06:17 +0000 (06:06 -0500)]
regulator: Unsupport 88pm8607 A0 and A1
Remove the support 88PM8607 A0/A1 stepping. There's some register
definition changes in B0 stepping. It can make software more efficient.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Tue, 15 Dec 2009 21:06:17 +0000 (16:06 -0500)]
input: Enable touch on 88pm860x
Enable touchscreen driver for the 88pm860x multi function core.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 6 Jan 2010 22:10:09 +0000 (17:10 -0500)]
led: Enable led in 88pm860x
Enable led sub device in Marvell 88PM860x. Two LED arrays can be supported.
Each LED array can be used for R,G,B leds.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Mon, 9 Nov 2009 17:41:07 +0000 (12:41 -0500)]
backlight: Enable backlight in 88pm860x
At most, three backlight device can be supported in 88pm860x driver.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Tue, 15 Dec 2009 21:04:36 +0000 (16:04 -0500)]
mfd: Append subdev into 88pm860x driver
Append backlight, led & touch subdevs into 88pm860x driver.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Tue, 15 Dec 2009 21:01:47 +0000 (16:01 -0500)]
mfd: Add irq support in 88pm860x
88PM860x is a complex PMIC device. It contains touch, charger, sound, rtc,
backlight, led, and so on.
Host communicates to 88PM860x by I2C bus. Use thread irq to support this
usage case.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 6 Jan 2010 22:07:13 +0000 (17:07 -0500)]
mfd: Rename 88pm8607 to 88pm860x in mfd
Rename 88PM8607 to 88PM860X in both Makefile and Kconfig under mfd directory.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Fri, 8 Jan 2010 11:01:24 +0000 (06:01 -0500)]
mfd: Support 88pm8606 in 860x driver
88PM8606 and 88PM8607 are two discrete chips used for power management.
Hardware designer can use them together or only one of them according to
requirement.
There's some logic tightly linked between these two chips. For example, USB
charger driver needs to access both chips by I2C interface.
Now share one driver to these two devices. Only one I2C client is identified
in platform init data. If another chip is also used, user should mark it in
companion_addr field of platform init data. Then driver could create another
I2C client for the companion chip.
All I2C operations are accessed by 860x-i2c driver. In order to support both
I2C client address, the read/write API is changed in below.
reg_read(client, offset)
reg_write(client, offset, data)
The benefit is that client drivers only need one kind of read/write API. I2C
and MFD driver can be shared in both 8606 and 8607.
Since API is changed, update API in 8607 regulator driver.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Haojian Zhuang [Wed, 6 Jan 2010 22:04:18 +0000 (17:04 -0500)]
mfd: Split 88pm8607 driver
Create 88pm8607-i2c driver to support all I2C operation of 88PM8607.
Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Linus Walleij [Fri, 8 Jan 2010 09:44:16 +0000 (10:44 +0100)]
mfd: Convert AB3100 driver to threaded IRQ
This converts the AB3100 core MFD driver to use a threaded
interrupt handler instead of the explicit top/bottom-half
construction with a workqueue. This saves some code and make it
more similar to other modern MFD drivers.
Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Thu, 7 Jan 2010 16:10:08 +0000 (16:10 +0000)]
gpiolib: Add support for WM8350 GPIO controller
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Wed, 6 Jan 2010 19:24:25 +0000 (19:24 +0000)]
mfd: Update WM8350 drivers for changed interrupt numbers
The headphone detect and charger are using the IRQ numbers so need
to take account of irq_base with the genirq conversion. I obviously
picked the wrong system for initial testing.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 5 Jan 2010 20:40:47 +0000 (20:40 +0000)]
mfd: Don't allow WM8350 to be built modular
The genirq implementation does not allow modules to implement irq_chips
so the conversion of WM8350 to genirq means we can no longer allow the
driver to be built as a module.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 5 Jan 2010 13:59:09 +0000 (13:59 +0000)]
mfd: Convert WM8350 to genirq
This gives us use of the diagnostic facilities genirq provides and
will allow implementation of interrupt support for the WM8350 GPIOs.
Stub functions are provided to ease the transition of the individual
drivers, probably after additional work to pass the IRQ numbers via
the struct devices.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 5 Jan 2010 13:59:08 +0000 (13:59 +0000)]
rtc: Suppress duplicate enable/disable of WM8350 update interrupt
Unlike the wm8350-custom code genirq nests enable and disable calls
so we can't just unconditionally mask or unmask the interrupt,
we need to remember the state we set and only mask or unmask when
there is a real change.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Cc: rtc-linux@googlegroups.com
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Mark Brown [Tue, 5 Jan 2010 13:59:07 +0000 (13:59 +0000)]
mfd: Add a data argument to the WM8350 IRQ free function
To better match genirq.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
Julia Lawall [Tue, 22 Dec 2009 20:31:43 +0000 (21:31 +0100)]
mfd: Correct use after free for t7l66xb
The structure t7l66xb should not be freed before the subsequent references
to its fields in the arguments to clk_put. Furthermore, this structure is
allocated near the beginning of the function, and a goto to the label
err_noirq appears after a successful allocation, so it would seem that the
kfree should be moved down below this label.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
@@
expression x,e;
identifier f;
iterator I;
statement S;
@@
*kfree(x);
... when != &x
when != x = e
when != I(x,...) S
*x->f
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>