aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/w1
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/w1')
-rw-r--r--drivers/w1/masters/ds2490.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/drivers/w1/masters/ds2490.c b/drivers/w1/masters/ds2490.c
index 0f356939b349..29df1d2998b2 100644
--- a/drivers/w1/masters/ds2490.c
+++ b/drivers/w1/masters/ds2490.c
@@ -88,7 +88,7 @@
88#define COMM_DT 0x2000 88#define COMM_DT 0x2000
89#define COMM_SPU 0x1000 89#define COMM_SPU 0x1000
90#define COMM_F 0x0800 90#define COMM_F 0x0800
91#define COMM_NTP 0x0400 91#define COMM_NTF 0x0400
92#define COMM_ICP 0x0200 92#define COMM_ICP 0x0200
93#define COMM_RST 0x0100 93#define COMM_RST 0x0100
94 94
@@ -440,7 +440,7 @@ static int ds_wait_status(struct ds_device *dev, struct ds_status *st)
440 printk("\n"); 440 printk("\n");
441 } 441 }
442#endif 442#endif
443 } while(!(buf[0x08] & 0x20) && !(err < 0) && ++count < 100); 443 } while (!(buf[0x08] & ST_IDLE) && !(err < 0) && ++count < 100);
444 444
445 if (err >= 16 && st->status & ST_EPOF) { 445 if (err >= 16 && st->status & ST_EPOF) {
446 printk(KERN_INFO "Resetting device after ST_EPOF.\n"); 446 printk(KERN_INFO "Resetting device after ST_EPOF.\n");
@@ -470,8 +470,16 @@ static int ds_reset(struct ds_device *dev)
470{ 470{
471 int err; 471 int err;
472 472
473 //err = ds_send_control(dev, COMM_1_WIRE_RESET | COMM_F | COMM_IM | COMM_SE, SPEED_FLEXIBLE); 473 /* Other potentionally interesting flags for reset.
474 err = ds_send_control(dev, 0x43, SPEED_NORMAL); 474 *
475 * COMM_NTF: Return result register feedback. This could be used to
476 * detect some conditions such as short, alarming presence, or
477 * detect if a new device was detected.
478 *
479 * COMM_SE which allows SPEED_NORMAL, SPEED_FLEXIBLE, SPEED_OVERDRIVE:
480 * Select the data transfer rate.
481 */
482 err = ds_send_control(dev, COMM_1_WIRE_RESET | COMM_IM, SPEED_NORMAL);
475 if (err) 483 if (err)
476 return err; 484 return err;
477 485