Page MenuHomeFreeBSD

convert iicsmb to use iicbus_transfer for all operations
ClosedPublic

Authored by avg on Oct 7 2016, 7:03 AM.
Tags
None
Referenced Files
Unknown Object (File)
Tue, Aug 25, 2:54 AM
Unknown Object (File)
Fri, Aug 14, 3:46 PM
Unknown Object (File)
Tue, Aug 11, 8:42 AM
Unknown Object (File)
Tue, Aug 11, 7:06 AM
Unknown Object (File)
Mon, Aug 10, 10:18 AM
Unknown Object (File)
Jul 24 2026, 8:05 PM
Unknown Object (File)
Jul 4 2026, 5:57 AM
Unknown Object (File)
Jul 3 2026, 1:11 PM
Subscribers
None

Details

Summary

Previously the driver used more low level operations like iicbus_start
and iicbus_write. The problem is that those operations are not
implemented by iicbus(4) and the calls were effectively routed to
a driver to which the bus is attached.
But not all of the controllers implement such low level operations
while all of the drivers are expected to have iicbus_transfer.

While there fix incorrect implementation of iicsmb_bwrite and iicsmb_bread.
The former should send a byte count before the actual bytes, while the
latter should first receive the byte count and then receive the bytes.

Test Plan

Only the following commands have been tested:

  • quick (r/w)
  • send byte
  • receive byte
  • read byte
  • write byte

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

avg retitled this revision from to convert iicsmb to use iicbus_transfer for all operations.
avg updated this object.
avg edited the test plan for this revision. (Show Details)
avg added reviewers: imp, jhb, nwhitehorn.
This revision was automatically updated to reflect the committed changes.