mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
iicbb: Fix pause_sbt() arguments order
It should make pause interval less strict. While there, add cpu_spinwait() into a tight spin wait loop to burn less power and let other SMT thread work more. MFC after: 1 month (cherry picked from commit a74df3f96e3ea4cc632088be870d9b0b0198859c)
This commit is contained in:
parent
7033c3ddd6
commit
354ccf64bf
1 changed files with 3 additions and 1 deletions
|
|
@ -52,6 +52,7 @@
|
|||
#include <sys/bus.h>
|
||||
#include <sys/sysctl.h>
|
||||
#include <sys/uio.h>
|
||||
#include <machine/cpu.h>
|
||||
|
||||
#ifdef FDT
|
||||
#include <dev/ofw/ofw_bus.h>
|
||||
|
|
@ -254,11 +255,12 @@ iicbb_waitforscl(device_t dev)
|
|||
do {
|
||||
if (I2C_GETSCL(dev))
|
||||
return (0);
|
||||
cpu_spinwait();
|
||||
now = sbinuptime();
|
||||
} while (now < fast_timeout);
|
||||
do {
|
||||
I2C_DEBUG(printf("."));
|
||||
pause_sbt("iicbb-scl-low", SBT_1MS, C_PREL(8), 0);
|
||||
pause_sbt("iicbb-scl-low", SBT_1MS, 0, C_PREL(2));
|
||||
if (I2C_GETSCL(dev))
|
||||
return (0);
|
||||
now = sbinuptime();
|
||||
|
|
|
|||
Loading…
Reference in a new issue