Lines Matching +full:slave +full:- +full:if
1 /*-
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
53 #define AMDPM_DEBUG(x) if (amdpm_debug) (x)
129 #define AMDPM_LOCK(amdpm) mtx_lock(&(amdpm)->lock)
130 #define AMDPM_UNLOCK(amdpm) mtx_unlock(&(amdpm)->lock)
131 #define AMDPM_LOCK_ASSERT(amdpm) mtx_assert(&(amdpm)->lock, MA_OWNED)
134 (bus_read_1(amdpm->res, register))
136 (bus_write_1(amdpm->res, register, value))
138 (bus_read_2(amdpm->res, register))
140 (bus_write_2(amdpm->res, register, value))
153 if ((vid == AMDPM_VENDORID_AMD) && in amdpm_probe()
171 if ((vid == AMDPM_VENDORID_NVIDIA) && in amdpm_probe()
201 if (pci_get_vendor(dev) == AMDPM_VENDORID_AMD || in amdpm_attach()
203 amdpm_sc->rid = AMDPCI_PMBASE; in amdpm_attach()
205 amdpm_sc->rid = NFPCI_PMBASE; in amdpm_attach()
206 amdpm_sc->res = bus_alloc_resource_any(dev, SYS_RES_IOPORT, in amdpm_attach()
207 &amdpm_sc->rid, RF_ACTIVE); in amdpm_attach()
209 if (amdpm_sc->res == NULL) { in amdpm_attach()
214 mtx_init(&amdpm_sc->lock, device_get_nameunit(dev), "amdpm", MTX_DEF); in amdpm_attach()
217 amdpm_sc->smbus = device_add_child(dev, "smbus", DEVICE_UNIT_ANY); in amdpm_attach()
218 if (!amdpm_sc->smbus) { in amdpm_attach()
235 if (error != 0) in amdpm_detach()
238 mtx_destroy(&amdpm_sc->lock); in amdpm_detach()
239 if (amdpm_sc->res) in amdpm_detach()
240 bus_release_resource(dev, SYS_RES_IOPORT, amdpm_sc->rid, in amdpm_detach()
241 amdpm_sc->res); in amdpm_detach()
273 #if 0
311 while(count--) { in amdpm_wait()
314 if (!(sts & AMDSMB_GS_HST_STS)) in amdpm_wait()
322 if (!count) in amdpm_wait()
325 if (sts & AMDSMB_GS_ABRT_STS) in amdpm_wait()
328 if (sts & AMDSMB_GS_COL_STS) in amdpm_wait()
331 if (sts & AMDSMB_GS_PRERR_STS) in amdpm_wait()
334 if (error != SMB_ENOERR) in amdpm_wait()
341 amdpm_quick(device_t dev, u_char slave, int how) in amdpm_quick() argument
349 if (!amdpm_idle(sc)) { in amdpm_quick()
356 AMDPM_DEBUG(printf("amdpm: QWRITE to 0x%x", slave)); in amdpm_quick()
357 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave & ~LSB); in amdpm_quick()
360 AMDPM_DEBUG(printf("amdpm: QREAD to 0x%x", slave)); in amdpm_quick()
361 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave | LSB); in amdpm_quick()
378 amdpm_sendb(device_t dev, u_char slave, char byte) in amdpm_sendb() argument
386 if (!amdpm_idle(sc)) { in amdpm_sendb()
391 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave & ~LSB); in amdpm_sendb()
398 AMDPM_DEBUG(printf("amdpm: SENDB to 0x%x, byte=0x%x, error=0x%x\n", slave, byte, error)); in amdpm_sendb()
405 amdpm_recvb(device_t dev, u_char slave, char *byte) in amdpm_recvb() argument
413 if (!amdpm_idle(sc)) { in amdpm_recvb()
418 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave | LSB); in amdpm_recvb()
422 if ((error = amdpm_wait(sc)) == SMB_ENOERR) in amdpm_recvb()
425 AMDPM_DEBUG(printf("amdpm: RECVB from 0x%x, byte=0x%x, error=0x%x\n", slave, *byte, error)); in amdpm_recvb()
432 amdpm_writeb(device_t dev, u_char slave, char cmd, char byte) in amdpm_writeb() argument
440 if (!amdpm_idle(sc)) { in amdpm_writeb()
445 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave & ~LSB); in amdpm_writeb()
453 …AMDPM_DEBUG(printf("amdpm: WRITEB to 0x%x, cmd=0x%x, byte=0x%x, error=0x%x\n", slave, cmd, byte, e… in amdpm_writeb()
460 amdpm_readb(device_t dev, u_char slave, char cmd, char *byte) in amdpm_readb() argument
468 if (!amdpm_idle(sc)) { in amdpm_readb()
473 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave | LSB); in amdpm_readb()
478 if ((error = amdpm_wait(sc)) == SMB_ENOERR) in amdpm_readb()
481 …AMDPM_DEBUG(printf("amdpm: READB from 0x%x, cmd=0x%x, byte=0x%x, error=0x%x\n", slave, cmd, *byte,… in amdpm_readb()
488 amdpm_writew(device_t dev, u_char slave, char cmd, short word) in amdpm_writew() argument
496 if (!amdpm_idle(sc)) { in amdpm_writew()
501 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave & ~LSB); in amdpm_writew()
509 …AMDPM_DEBUG(printf("amdpm: WRITEW to 0x%x, cmd=0x%x, word=0x%x, error=0x%x\n", slave, cmd, word, e… in amdpm_writew()
516 amdpm_readw(device_t dev, u_char slave, char cmd, short *word) in amdpm_readw() argument
524 if (!amdpm_idle(sc)) { in amdpm_readw()
529 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave | LSB); in amdpm_readw()
534 if ((error = amdpm_wait(sc)) == SMB_ENOERR) in amdpm_readw()
537 …AMDPM_DEBUG(printf("amdpm: READW from 0x%x, cmd=0x%x, word=0x%x, error=0x%x\n", slave, cmd, *word,… in amdpm_readw()
544 amdpm_bwrite(device_t dev, u_char slave, char cmd, u_char count, char *buf) in amdpm_bwrite() argument
551 if (count < 1 || count > 32) in amdpm_bwrite()
556 if (!amdpm_idle(sc)) { in amdpm_bwrite()
561 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave & ~LSB); in amdpm_bwrite()
564 * Do we have to reset the internal 32-byte buffer? in amdpm_bwrite()
569 /* Fill the 32-byte internal buffer */ in amdpm_bwrite()
581 …AMDPM_DEBUG(printf("amdpm: WRITEBLK to 0x%x, count=0x%x, cmd=0x%x, error=0x%x", slave, count, cmd,… in amdpm_bwrite()
588 amdpm_bread(device_t dev, u_char slave, char cmd, u_char *count, char *buf) in amdpm_bread() argument
595 if (*count < 1 || *count > 32) in amdpm_bread()
600 if (!amdpm_idle(sc)) { in amdpm_bread()
605 AMDPM_SMBOUTW(sc, AMDSMB_HSTADDR, slave | LSB); in amdpm_bread()
613 if ((error = amdpm_wait(sc)) != SMB_ENOERR) in amdpm_bread()
618 /* Read the 32-byte internal buffer */ in amdpm_bread()
621 if (i < *count) in amdpm_bread()
628 …AMDPM_DEBUG(printf("amdpm: READBLK to 0x%x, count=0x%x, cmd=0x%x, error=0x%x", slave, *count, cmd,… in amdpm_bread()