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, Oct 7, 12:23 PM
Unknown Object (File)
Sun, Sep 28, 1:58 PM
Unknown Object (File)
Sat, Sep 27, 7:56 PM
Unknown Object (File)
Thu, Sep 25, 10:04 PM
Unknown Object (File)
Thu, Sep 25, 8:02 PM
Unknown Object (File)
Wed, Sep 24, 3:04 AM
Unknown Object (File)
Wed, Sep 24, 2:03 AM
Unknown Object (File)
Tue, Sep 23, 1:08 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.