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)
Thu, Dec 25, 4:23 AM
Unknown Object (File)
Mon, Dec 22, 4:48 PM
Unknown Object (File)
Tue, Dec 2, 10:18 AM
Unknown Object (File)
Fri, Nov 28, 10:48 PM
Unknown Object (File)
Fri, Nov 28, 1:17 PM
Unknown Object (File)
Nov 25 2025, 5:36 AM
Unknown Object (File)
Nov 24 2025, 10:19 PM
Unknown Object (File)
Nov 24 2025, 9:59 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.