kernel-ark/drivers/w1
David Fries 6e10f65427 W1: ds2490.c simplify and fix ds_touch_bit
Simplify and fix ds_touch_bit.  If a device is attached in the middle of a
bus search the status register will return more than the default 16 bytes.
 The additional bytes indicate that it has detected a new device.  The way
ds_wait_status is coded, if it doesn't read 16 status bytes it returns an
error value.  ds_touch_bit then will detect that error and return an
error.  In that case it doesn't read the input buffer and returns
uninitialized data.  It doesn't stop there.  The next transaction will not
expect the extra byte in the input buffer and the short read will cause an
error and clear out both the old byte and new data in the input buffer.

Just ignore the value of ds_wait_status.  It is still required to wait
until ds2490 is again idle and there is data to read when ds_recv_data is
called.  This also removes the while loop.  None of the other commands
wait and verify that the issued command is in the status register.

Signed-off-by: David Fries <david@fries.net>
Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2008-10-16 11:21:50 -07:00
..
masters W1: ds2490.c simplify and fix ds_touch_bit 2008-10-16 11:21:50 -07:00
slaves W1: w1_therm consistent mutex access code cleanup 2008-10-16 11:21:50 -07:00
Kconfig Kbuild/doc: fix links to Documentation files 2007-10-30 14:26:30 -07:00
Makefile [PATCH] better CONFIG_W1_SLAVE_DS2433_CRC handling 2006-12-07 08:39:43 -08:00
w1_family.c W1: w1_family, remove unused variable need_exit 2008-10-16 11:21:50 -07:00
w1_family.h W1: w1_family, remove unused variable need_exit 2008-10-16 11:21:50 -07:00
w1_int.c W1: w1_int.c use first available master number 2008-10-16 11:21:50 -07:00
w1_int.h [PATCH] w1: cleanups. 2005-06-21 21:43:09 -07:00
w1_io.c W1: w1_io.c reset comments and msleep 2008-10-16 11:21:50 -07:00
w1_log.h drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
w1_netlink.c [PATCH] w1: Use mutexes instead of semaphores. 2006-06-22 11:22:50 -07:00
w1_netlink.h [PATCH] w1: Move w1-connector definitions into linux/include/connector.h 2006-06-22 11:22:50 -07:00
w1.c W1: w1.c s/printk/dev_dbg/ 2008-10-16 11:21:50 -07:00
w1.h W1: w1_therm fix user buffer overflow and cat 2008-10-16 11:21:50 -07:00