HomeFreeBSD

powerpc/powernv: Make opal_i2c driver work with attached i2c drivers

Description

powerpc/powernv: Make opal_i2c driver work with attached i2c drivers

  • FreeBSD stores addresses in 8 bit format, but the OPAL API requires the 7-bit address, and encodes the direction elsewhere. Behave like other i2c drivers, and shift accordingly.
  • The OPAL API can already handle multiple requests in flight. Change the async token to be private to the thread, so as not to stomp across i2c accesses, remove the limitation error message, and use the correct message index to transfer all messages in the list.
  • Micro-optimize the async handler to not continuously call pmap_kextract() when spin-waiting for the operation to complete.

This has been tested by hexdumping an EEPROM attached via the icee(4) driver.

Details

Provenance
jhibbitsAuthored on
Parents
rS336143: sed(1): Suppress implicit-fallthrough.
Branches
Unknown
Tags
Unknown