SMB_CSR
if (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
__raw_writeq(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
return __raw_readq(SMB_CSR(R_SMB_DATA)) & 0xff;
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
__raw_writeq(addr & 0xff, SMB_CSR(R_SMB_CMD));
__raw_writeq(b & 0xff, SMB_CSR(R_SMB_DATA));
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
if (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
__raw_writeq(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
__raw_writeq(addr & 0xff, SMB_CSR(R_SMB_CMD));
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
__raw_writeq(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
__raw_writeq((addr >> 8) & 0x7, SMB_CSR(R_SMB_CMD));
__raw_writeq(addr & 0xff, SMB_CSR(R_SMB_DATA));
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
if (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
__raw_writeq(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
return __raw_readq(SMB_CSR(R_SMB_DATA)) & 0xff;
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
__raw_writeq(addr, SMB_CSR(R_SMB_CMD));
__raw_writeq((addr & 0xff) | ((b & 0xff) << 8), SMB_CSR(R_SMB_DATA));
SMB_CSR(R_SMB_START));
while (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
if (__raw_readq(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
data->word = csr_in32(SMB_CSR(adap, R_SMB_DATA)) & 0xffff;
csr_out32(speed, SMB_CSR(adap,R_SMB_FREQ));
csr_out32(0, SMB_CSR(adap,R_SMB_CONTROL));
while (csr_in32(SMB_CSR(adap, R_SMB_STATUS)) & M_SMB_BUSY)
V_SMB_TT_QUICKCMD), SMB_CSR(adap, R_SMB_START));
SMB_CSR(adap, R_SMB_START));
csr_out32(V_SMB_CMD(command), SMB_CSR(adap, R_SMB_CMD));
SMB_CSR(adap, R_SMB_START));
csr_out32(V_SMB_CMD(command), SMB_CSR(adap, R_SMB_CMD));
SMB_CSR(adap, R_SMB_START));
SMB_CSR(adap, R_SMB_DATA));
SMB_CSR(adap, R_SMB_START));
csr_out32(V_SMB_CMD(command), SMB_CSR(adap, R_SMB_CMD));
SMB_CSR(adap, R_SMB_START));
SMB_CSR(adap, R_SMB_DATA));
SMB_CSR(adap, R_SMB_DATA));
SMB_CSR(adap, R_SMB_START));
while (csr_in32(SMB_CSR(adap, R_SMB_STATUS)) & M_SMB_BUSY)
error = csr_in32(SMB_CSR(adap, R_SMB_STATUS));
csr_out32(M_SMB_ERROR, SMB_CSR(adap, R_SMB_STATUS));
data->byte = csr_in32(SMB_CSR(adap, R_SMB_DATA)) & 0xff;