View | Details | Raw Unified | Return to bug 12631
Collapse All | Expand All

(-)intpm.c (-5 / +16 lines)
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

Return to bug 12631