aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/w1/masters/ds1wm.c
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2011-07-21 16:31:22 +0200
committerArnd Bergmann <arnd@arndb.de>2011-07-21 16:31:22 +0200
commitab2a0e0d135490729e384c1826d118f92e88cae8 (patch)
tree58ab1e9e5d549feac9bf3beacbb6942f50d0bed9 /drivers/w1/masters/ds1wm.c
parent09dd9b39abf85b8fae3ea105a81825478dd227b6 (diff)
parent2f3ab04a47c9b5e7c93400601e8f69bef0fa184a (diff)
downloadkernel_replicant_linux-ab2a0e0d135490729e384c1826d118f92e88cae8.tar.gz
kernel_replicant_linux-ab2a0e0d135490729e384c1826d118f92e88cae8.tar.bz2
kernel_replicant_linux-ab2a0e0d135490729e384c1826d118f92e88cae8.zip
Merge branch 'next-samsung-cleanup' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into next/cleanup
Diffstat (limited to 'drivers/w1/masters/ds1wm.c')
-rw-r--r--drivers/w1/masters/ds1wm.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/w1/masters/ds1wm.c b/drivers/w1/masters/ds1wm.c
index ad57593d224a..a0c8965c1a79 100644
--- a/drivers/w1/masters/ds1wm.c
+++ b/drivers/w1/masters/ds1wm.c
@@ -109,6 +109,7 @@ struct ds1wm_data {
/* byte to write that makes all intr disabled, */
/* considering active_state (IAS) (optimization) */
u8 int_en_reg_none;
+ unsigned int reset_recover_delay; /* see ds1wm.h */
};
static inline void ds1wm_write_register(struct ds1wm_data *ds1wm_data, u32 reg,
@@ -187,6 +188,9 @@ static int ds1wm_reset(struct ds1wm_data *ds1wm_data)
return 1;
}
+ if (ds1wm_data->reset_recover_delay)
+ msleep(ds1wm_data->reset_recover_delay);
+
return 0;
}
@@ -490,6 +494,7 @@ static int ds1wm_probe(struct platform_device *pdev)
}
ds1wm_data->irq = res->start;
ds1wm_data->int_en_reg_none = (plat->active_high ? DS1WM_INTEN_IAS : 0);
+ ds1wm_data->reset_recover_delay = plat->reset_recover_delay;
if (res->flags & IORESOURCE_IRQ_HIGHEDGE)
irq_set_irq_type(ds1wm_data->irq, IRQ_TYPE_EDGE_RISING);