Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 206802
b: refs/heads/master
c: 153e397
h: refs/heads/master
v: v3
  • Loading branch information
Clemens Ladisch committed Jun 10, 2010
1 parent ba274af commit 4acd448
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f9c70f9129f2d88645c3a26711302a7f6ba9afd0
refs/heads/master: 153e3979201b76dbd5788f032fb683e95121e159
14 changes: 10 additions & 4 deletions trunk/drivers/firewire/ohci.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,12 +474,17 @@ static int read_phy_reg(struct fw_ohci *ohci, int addr)
int i;

reg_write(ohci, OHCI1394_PhyControl, OHCI1394_PhyControl_Read(addr));
for (i = 0; i < 10; i++) {
for (i = 0; i < 3 + 100; i++) {
val = reg_read(ohci, OHCI1394_PhyControl);
if (val & OHCI1394_PhyControl_ReadDone)
return OHCI1394_PhyControl_ReadData(val);

msleep(1);
/*
* Try a few times without waiting. Sleeping is necessary
* only when the link/PHY interface is busy.
*/
if (i >= 3)
msleep(1);
}
fw_error("failed to read phy reg\n");

Expand All @@ -492,12 +497,13 @@ static int write_phy_reg(const struct fw_ohci *ohci, int addr, u32 val)

reg_write(ohci, OHCI1394_PhyControl,
OHCI1394_PhyControl_Write(addr, val));
for (i = 0; i < 100; i++) {
for (i = 0; i < 3 + 100; i++) {
val = reg_read(ohci, OHCI1394_PhyControl);
if (!(val & OHCI1394_PhyControl_WritePending))
return 0;

msleep(1);
if (i >= 3)
msleep(1);
}
fw_error("failed to write phy reg\n");

Expand Down

0 comments on commit 4acd448

Please sign in to comment.