linux-stable/drivers/i2c/busses
David Woodhouse 3e3183bab0 [PATCH] SCX200_ACB: eliminate spurious timeout errors
While busy-waiting for completion, check the hardware after scheduling;
don't schedule and then immediately check the _timeout_.  If the yield()
took a long time (as it does on my OLPC prototype board when it's busy),
we'd report a timeout even though the hardware was now ready.

This fixes it, and also switches the yield() for a cond_resched() because
we don't actually want to be _that_ nice about it.  I see nice
tightly-packed SMBus transactions now, rather than waiting for milliseconds
between successive phases.

Actually, we shouldn't be busy-waiting here at all.  We should be using
interrupts.  That's an exercise for another day though.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Cc: Christer Weinigel <wingel@nano-system.com>
Cc: <Jordan.Crouse@amd.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-08-06 08:57:49 -07:00
..
i2c-ali15x3.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-ali1535.c [PATCH] I2C: i2c-ali1535: Drop redundant mutex 2006-03-23 14:21:54 -08:00
i2c-ali1563.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-amd756-s4882.c [PATCH] I2C: i2c-amd756-s4882: Improve static mutex initialization 2006-03-23 14:21:54 -08:00
i2c-amd756.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-amd8111.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-au1550.c [PATCH] I2C: Kill i2c_algorithm.id (4/7) 2005-09-05 09:14:29 -07:00
i2c-au1550.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
i2c-elektor.c [PATCH] i2c: Big i2c-elektor cleanup 2005-10-28 14:02:10 -07:00
i2c-hydra.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-i801.c [PATCH] i2c-801: 64bit resource fix 2006-06-30 11:25:41 -07:00
i2c-i810.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-ibm_iic.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
i2c-ibm_iic.h [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-iop3xx.c [PATCH] i2c-iop3xx: Avoid addressing self 2006-07-12 15:43:06 -07:00
i2c-iop3xx.h [PATCH] i2c-iop3xx: Avoid addressing self 2006-07-12 15:43:06 -07:00
i2c-isa.c [PATCH] i2c: Semaphore to mutex conversions, part 2 2006-03-23 14:21:51 -08:00
i2c-ite.c [PATCH] i2c: Fix i2c-ite name initialization 2006-03-23 14:21:54 -08:00
i2c-ixp4xx.c [PATCH] I2C: i2c-ixp4xx: Add hwmon class 2006-03-23 14:21:55 -08:00
i2c-ixp2000.c [DRIVER MODEL] Fix merge clashes with ARM ixp2000 / ixp4xx platforms 2005-11-17 15:47:30 +00:00
i2c-mpc.c [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
i2c-mv64xxx.c [PATCH] handle errors returned by platform_get_irq*() 2006-03-20 13:42:57 -08:00
i2c-nforce2.c [PATCH] I2C: i2c-nforce2: Add support for the nForce4 MCP51 and MCP55 2006-06-22 11:10:33 -07:00
i2c-ocores.c [PATCH] i2c-ocores: Minor cleanups 2006-06-22 11:10:34 -07:00
i2c-parport-light.c [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-parport.c [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-parport.h [PATCH] i2c-parport: Make type parameter mandatory 2006-04-14 11:18:34 -07:00
i2c-pca-isa.c [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-piix4.c [PATCH] I2C: i2c-piix4: Document the IBM problem more clearly 2006-06-22 11:10:32 -07:00
i2c-powermac.c [PATCH] i2c-powermac: Fix master_xfer return value 2006-07-12 15:43:07 -07:00
i2c-prosavage.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-pxa.c [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
i2c-rpx.c [PATCH] I2C: drivers/i2c/*: #include <linux/config.h> cleanup 2005-06-21 21:51:53 -07:00
i2c-s3c2410.c [PATCH] irq-flags: misc drivers: Use the new IRQF_ constants 2006-07-02 13:58:50 -07:00
i2c-savage4.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-sibyte.c [PATCH] Build fix for the Sibyte I2C driver 2005-08-09 12:08:21 -07:00
i2c-sis96x.c [PATCH] i2c-sis96x: Remove an init-time log message 2006-04-14 11:18:34 -07:00
i2c-sis630.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-sis5595.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-stub.c [PATCH] I2C: Kill i2c_algorithm.id (4/7) 2005-09-05 09:14:29 -07:00
i2c-via.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-viapro.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
i2c-voodoo3.c [PATCH] PCI: removed unneeded .owner field from struct pci_driver 2005-11-10 16:09:17 -08:00
Kconfig Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-06-22 22:11:30 -07:00
Makefile [PATCH] i2c: New bus driver for the OpenCores I2C controller 2006-06-22 11:10:33 -07:00
scx200_acb.c [PATCH] SCX200_ACB: eliminate spurious timeout errors 2006-08-06 08:57:49 -07:00
scx200_i2c.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00