Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
a8e9fcec
Commit
a8e9fcec
authored
May 18, 2004
by
Greg Kroah-Hartman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
I2C: change i2c_delay() to use msleep() instead.
parent
3f3f36e1
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
30 additions
and
26 deletions
+30
-26
drivers/i2c/busses/i2c-ali1535.c
drivers/i2c/busses/i2c-ali1535.c
+3
-2
drivers/i2c/busses/i2c-ali1563.c
drivers/i2c/busses/i2c-ali1563.c
+3
-2
drivers/i2c/busses/i2c-ali15x3.c
drivers/i2c/busses/i2c-ali15x3.c
+3
-2
drivers/i2c/busses/i2c-amd756.c
drivers/i2c/busses/i2c-amd756.c
+4
-3
drivers/i2c/busses/i2c-amd8111.c
drivers/i2c/busses/i2c-amd8111.c
+1
-1
drivers/i2c/busses/i2c-i801.c
drivers/i2c/busses/i2c-i801.c
+4
-3
drivers/i2c/busses/i2c-piix4.c
drivers/i2c/busses/i2c-piix4.c
+2
-1
drivers/i2c/busses/i2c-sis5595.c
drivers/i2c/busses/i2c-sis5595.c
+2
-1
drivers/i2c/busses/i2c-sis630.c
drivers/i2c/busses/i2c-sis630.c
+2
-1
drivers/i2c/busses/i2c-sis96x.c
drivers/i2c/busses/i2c-sis96x.c
+2
-1
drivers/i2c/busses/i2c-viapro.c
drivers/i2c/busses/i2c-viapro.c
+2
-1
drivers/i2c/chips/w83l785ts.c
drivers/i2c/chips/w83l785ts.c
+2
-1
include/linux/i2c.h
include/linux/i2c.h
+0
-7
No files found.
drivers/i2c/busses/i2c-ali1535.c
View file @
a8e9fcec
...
...
@@ -59,6 +59,7 @@
#include <linux/kernel.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/delay.h>
#include <linux/ioport.h>
#include <linux/i2c.h>
#include <linux/init.h>
...
...
@@ -276,7 +277,7 @@ static int ali1535_transaction(struct i2c_adapter *adap)
/* We will always wait for a fraction of a second! */
timeout
=
0
;
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
while
(((
temp
&
ALI1535_STS_BUSY
)
&&
!
(
temp
&
ALI1535_STS_IDLE
))
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -350,7 +351,7 @@ static s32 ali1535_access(struct i2c_adapter *adap, u16 addr,
for
(
timeout
=
0
;
(
timeout
<
MAX_TIMEOUT
)
&&
!
(
temp
&
ALI1535_STS_IDLE
);
timeout
++
)
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
if
(
timeout
>=
MAX_TIMEOUT
)
...
...
drivers/i2c/busses/i2c-ali1563.c
View file @
a8e9fcec
...
...
@@ -16,6 +16,7 @@
*/
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/pci.h>
#include <linux/init.h>
...
...
@@ -82,7 +83,7 @@ static int ali1563_transaction(struct i2c_adapter * a)
timeout
=
ALI1563_MAX_TIMEOUT
;
do
i2c_delay
(
1
);
msleep
(
1
);
while
(((
data
=
inb_p
(
SMB_HST_STS
))
&
HST_STS_BUSY
)
&&
--
timeout
);
dev_dbg
(
&
a
->
dev
,
"Transaction (post): STS=%02x, CNTL1=%02x, "
...
...
@@ -137,7 +138,7 @@ static int ali1563_block_start(struct i2c_adapter * a)
timeout
=
ALI1563_MAX_TIMEOUT
;
do
i2c_delay
(
1
);
msleep
(
1
);
while
(
!
((
data
=
inb_p
(
SMB_HST_STS
))
&
HST_STS_DONE
)
&&
--
timeout
);
dev_dbg
(
&
a
->
dev
,
"Block (post): STS=%02x, CNTL1=%02x, "
...
...
drivers/i2c/busses/i2c-ali15x3.c
View file @
a8e9fcec
...
...
@@ -67,6 +67,7 @@
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/delay.h>
#include <linux/i2c.h>
#include <linux/init.h>
#include <asm/io.h>
...
...
@@ -296,7 +297,7 @@ static int ali15x3_transaction(struct i2c_adapter *adap)
/* We will always wait for a fraction of a second! */
timeout
=
0
;
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
while
((
!
(
temp
&
(
ALI15X3_STS_ERR
|
ALI15X3_STS_DONE
)))
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -353,7 +354,7 @@ static s32 ali15x3_access(struct i2c_adapter * adap, u16 addr,
for
(
timeout
=
0
;
(
timeout
<
MAX_TIMEOUT
)
&&
!
(
temp
&
ALI15X3_STS_IDLE
);
timeout
++
)
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
if
(
timeout
>=
MAX_TIMEOUT
)
{
...
...
drivers/i2c/busses/i2c-amd756.c
View file @
a8e9fcec
...
...
@@ -41,6 +41,7 @@
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/ioport.h>
...
...
@@ -124,7 +125,7 @@ static int amd756_transaction(struct i2c_adapter *adap)
if
((
temp
=
inw_p
(
SMB_GLOBAL_STATUS
))
&
(
GS_HST_STS
|
GS_SMB_STS
))
{
dev_dbg
(
&
adap
->
dev
,
": SMBus busy (%04x). Waiting...
\n
"
,
temp
);
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inw_p
(
SMB_GLOBAL_STATUS
);
}
while
((
temp
&
(
GS_HST_STS
|
GS_SMB_STS
))
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -141,7 +142,7 @@ static int amd756_transaction(struct i2c_adapter *adap)
/* We will always wait for a fraction of a second! */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inw_p
(
SMB_GLOBAL_STATUS
);
}
while
((
temp
&
GS_HST_STS
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -188,7 +189,7 @@ static int amd756_transaction(struct i2c_adapter *adap)
abort:
dev_warn
(
&
adap
->
dev
,
": Sending abort.
\n
"
);
outw_p
(
inw
(
SMB_GLOBAL_ENABLE
)
|
GE_ABORT
,
SMB_GLOBAL_ENABLE
);
i2c_delay
(
100
);
msleep
(
100
);
outw_p
(
GS_CLEAR_STS
,
SMB_GLOBAL_STATUS
);
return
-
1
;
}
...
...
drivers/i2c/busses/i2c-amd8111.c
View file @
a8e9fcec
...
...
@@ -276,7 +276,7 @@ s32 amd8111_access(struct i2c_adapter * adap, u16 addr, unsigned short flags,
}
if
(
~
temp
[
0
]
&
AMD_SMB_STS_DONE
)
{
i2c_delay
(
HZ
/
100
);
msleep
(
1
);
amd_ec_read
(
smbus
,
AMD_SMB_STS
,
temp
+
0
);
}
...
...
drivers/i2c/busses/i2c-i801.c
View file @
a8e9fcec
...
...
@@ -44,6 +44,7 @@
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/stddef.h>
#include <linux/delay.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/init.h>
...
...
@@ -207,7 +208,7 @@ static int i801_transaction(void)
/* We will always wait for a fraction of a second! */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
while
((
temp
&
0x01
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -335,7 +336,7 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
timeout
=
0
;
do
{
temp
=
inb_p
(
SMBHSTSTS
);
i2c_delay
(
1
);
msleep
(
1
);
}
while
((
!
(
temp
&
0x80
))
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
@@ -395,7 +396,7 @@ static int i801_block_transaction(union i2c_smbus_data *data, char read_write,
timeout
=
0
;
do
{
temp
=
inb_p
(
SMBHSTSTS
);
i2c_delay
(
1
);
msleep
(
1
);
}
while
((
!
(
temp
&
0x02
))
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
drivers/i2c/busses/i2c-piix4.c
View file @
a8e9fcec
...
...
@@ -33,6 +33,7 @@
#include <linux/moduleparam.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/ioport.h>
...
...
@@ -260,7 +261,7 @@ static int piix4_transaction(void)
/* We will always wait for a fraction of a second! (See PIIX4 docs errata) */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
while
((
temp
&
0x01
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
drivers/i2c/busses/i2c-sis5595.c
View file @
a8e9fcec
...
...
@@ -58,6 +58,7 @@
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/ioport.h>
#include <linux/init.h>
...
...
@@ -239,7 +240,7 @@ static int sis5595_transaction(struct i2c_adapter *adap)
/* We will always wait for a fraction of a second! */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
sis5595_read
(
SMB_STS_LO
);
}
while
(
!
(
temp
&
0x40
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
drivers/i2c/busses/i2c-sis630.c
View file @
a8e9fcec
...
...
@@ -51,6 +51,7 @@
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/ioport.h>
#include <linux/init.h>
...
...
@@ -165,7 +166,7 @@ static int sis630_transaction_wait(struct i2c_adapter *adap, int size)
/* We will always wait for a fraction of a second! */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
sis630_read
(
SMB_STS
);
/* check if block transmitted */
if
(
size
==
SIS630_BLOCK_DATA
&&
(
temp
&
0x10
))
...
...
drivers/i2c/busses/i2c-sis96x.c
View file @
a8e9fcec
...
...
@@ -36,6 +36,7 @@
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/delay.h>
#include <linux/stddef.h>
#include <linux/sched.h>
#include <linux/ioport.h>
...
...
@@ -139,7 +140,7 @@ static int sis96x_transaction(int size)
/* We will always wait for a fraction of a second! */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
sis96x_read
(
SMB_STS
);
}
while
(
!
(
temp
&
0x0e
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
drivers/i2c/busses/i2c-viapro.c
View file @
a8e9fcec
...
...
@@ -35,6 +35,7 @@
#include <linux/config.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <linux/kernel.h>
#include <linux/stddef.h>
...
...
@@ -138,7 +139,7 @@ static int vt596_transaction(void)
/* We will always wait for a fraction of a second!
I don't know if VIA needs this, Intel did */
do
{
i2c_delay
(
1
);
msleep
(
1
);
temp
=
inb_p
(
SMBHSTSTS
);
}
while
((
temp
&
0x01
)
&&
(
timeout
++
<
MAX_TIMEOUT
));
...
...
drivers/i2c/chips/w83l785ts.c
View file @
a8e9fcec
...
...
@@ -32,6 +32,7 @@
#include <linux/config.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/init.h>
#include <linux/slab.h>
#include <linux/i2c.h>
...
...
@@ -284,7 +285,7 @@ static u8 w83l785ts_read_value(struct i2c_client *client, u8 reg, u8 defval)
if
(
value
>=
0
)
return
value
;
dev_dbg
(
&
client
->
dev
,
"Read failed, will retry in %d.
\n
"
,
i
);
i2c_delay
(
i
);
msleep
(
i
);
}
dev_err
(
&
client
->
dev
,
"Couldn't read value from register. "
...
...
include/linux/i2c.h
View file @
a8e9fcec
...
...
@@ -601,11 +601,4 @@ union i2c_smbus_data {
#define i2c_is_isa_adapter(adapptr) \
((adapptr)->algo->id == I2C_ALGO_ISA)
/* Tiny delay function used by the i2c bus drivers */
static
inline
void
i2c_delay
(
signed
long
timeout
)
{
set_current_state
(
TASK_INTERRUPTIBLE
);
schedule_timeout
(
timeout
);
}
#endif
/* _LINUX_I2C_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment