Entry | |
---|---|
R0 | Bits 0-15: Offset within device |
Bits 16-23: IIC base address | |
Bits 24-31: Reserved | |
R1 | Pointer to buffer |
R2 | Byte count |
R4 | Bits 0-15: 14 (reason code) |
Bits 16-23: Head number | |
Bits 24-31: Driver number |
Exit | |
---|---|
R0 | Return code |
R1 | Advanced by how many bytes read/written |
R2 | Number of bytes not transferred |
R4 | 0 |
- | All other registers preserved |
This call is used to perform IIC operations on the IIC busses managed by the driver.
Typically this will be DDC or EDID data from the attached monitor, for example the IIC base address for reading EDID data is 0xA1.
Due to its behaviour, it is not possible for a user of GraphicsV to make use of the EDID segment pointer by performing a write to bus address &60. Instead, it is the drivers responsibility to (where possible) automatically write to the segment pointer when asked to access an EDID address >= 256.
To protect against accidental corruption of EDID, it’s recommended that drivers do not allow EDID writes (i.e. operations to bus address &A0).