|
Lines 244-259
Link Here
|
| 244 |
return 1; |
244 |
return 1; |
| 245 |
|
245 |
|
| 246 |
} |
246 |
} |
| 247 |
if(sc->isbusy&&(status&(PIIX4_SMBHSTSTAT_INTR| |
247 |
if(status&(PIIX4_SMBHSTSTAT_INTR| |
| 248 |
PIIX4_SMBHSTSTAT_ERR| |
248 |
PIIX4_SMBHSTSTAT_ERR| |
| 249 |
PIIX4_SMBHSTSTAT_BUSC| |
249 |
PIIX4_SMBHSTSTAT_BUSC| |
| 250 |
PIIX4_SMBHSTSTAT_FAIL))){ |
250 |
PIIX4_SMBHSTSTAT_FAIL)){ |
| 251 |
int tmp; |
251 |
int tmp; |
| 252 |
sc->isbusy=0; |
|
|
| 253 |
tmp=bus_space_read_1(sc->st,sc->sh,PIIX4_SMBHSTCNT); |
252 |
tmp=bus_space_read_1(sc->st,sc->sh,PIIX4_SMBHSTCNT); |
| 254 |
bus_space_write_1(sc->st,sc->sh,PIIX4_SMBHSTCNT, |
253 |
bus_space_write_1(sc->st,sc->sh,PIIX4_SMBHSTCNT, |
| 255 |
tmp&~PIIX4_SMBHSTCNT_INTREN); |
254 |
tmp&~PIIX4_SMBHSTCNT_INTREN); |
| 256 |
wakeup(sc); |
255 |
if(sc->isbusy){ |
|
|
256 |
sc->isbusy=0; |
| 257 |
wakeup(sc); |
| 258 |
} |
| 257 |
return 0; |
259 |
return 0; |
| 258 |
} |
260 |
} |
| 259 |
return 1;/* Not Completed*/ |
261 |
return 1;/* Not Completed*/ |
|
Lines 347-352
Link Here
|
| 347 |
intsmb_stop_poll(device_t dev){ |
349 |
intsmb_stop_poll(device_t dev){ |
| 348 |
int error,i; |
350 |
int error,i; |
| 349 |
struct intsmb_softc *sc = (struct intsmb_softc *)device_get_softc(dev); |
351 |
struct intsmb_softc *sc = (struct intsmb_softc *)device_get_softc(dev); |
|
|
352 |
|
| 350 |
/* |
353 |
/* |
| 351 |
* In smbtx driver ,Simply waiting. |
354 |
* In smbtx driver ,Simply waiting. |
| 352 |
* This loops 100-200 times. |
355 |
* This loops 100-200 times. |
|
Lines 371-377
Link Here
|
| 371 |
return error; |
374 |
return error; |
| 372 |
} |
375 |
} |
| 373 |
} |
376 |
} |
| 374 |
sc->isbusy=0; |
377 |
{ |
|
|
378 |
int tmp; |
| 379 |
sc->isbusy=0; |
| 380 |
tmp=bus_space_read_1(sc->st,sc->sh,PIIX4_SMBHSTCNT); |
| 381 |
bus_space_write_1(sc->st,sc->sh,PIIX4_SMBHSTCNT, |
| 382 |
tmp&~PIIX4_SMBHSTCNT_INTREN); |
| 383 |
} |
| 375 |
return EIO; |
384 |
return EIO; |
| 376 |
} |
385 |
} |
| 377 |
/* |
386 |
/* |
|
Lines 742-747
Link Here
|
| 742 |
{ |
751 |
{ |
| 743 |
struct _pcsid *ep =pci_ids; |
752 |
struct _pcsid *ep =pci_ids; |
| 744 |
u_int32_t device_id=pci_get_devid(dev); |
753 |
u_int32_t device_id=pci_get_devid(dev); |
|
|
754 |
|
| 745 |
while (ep->type && ep->type != device_id) |
755 |
while (ep->type && ep->type != device_id) |
| 746 |
++ep; |
756 |
++ep; |
| 747 |
if(ep->desc!=NULL){ |
757 |
if(ep->desc!=NULL){ |
|
Lines 759-764
Link Here
|
| 759 |
sc=(struct intpm_pci_softc *)arg; |
769 |
sc=(struct intpm_pci_softc *)arg; |
| 760 |
intsmb_intr(sc->smbus); |
770 |
intsmb_intr(sc->smbus); |
| 761 |
intsmb_slvintr(sc->smbus); |
771 |
intsmb_slvintr(sc->smbus); |
|
|
772 |
|
| 762 |
} |
773 |
} |
| 763 |
#endif /* NPCI > 0 */ |
774 |
#endif /* NPCI > 0 */ |
| 764 |
#endif |
775 |
#endif |