scd.c (106490) | scd.c (106719) |
---|---|
1/*- 2 * Copyright (c) 1995 Mikael Hybsch 3 * All rights reserved. 4 * 5 * Portions of this file are copied from mcd.c 6 * which has the following copyrights: 7 * 8 * Copyright 1993 by Holger Veit (data part) --- 26 unchanged lines hidden (view full) --- 35 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 39 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 */ 42 | 1/*- 2 * Copyright (c) 1995 Mikael Hybsch 3 * All rights reserved. 4 * 5 * Portions of this file are copied from mcd.c 6 * which has the following copyrights: 7 * 8 * Copyright 1993 by Holger Veit (data part) --- 26 unchanged lines hidden (view full) --- 35 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 36 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 37 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 38 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 39 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 40 * 41 */ 42 |
43/* $FreeBSD: head/sys/dev/scd/scd.c 106490 2002-11-06 08:08:55Z mdodd $ */ | 43/* $FreeBSD: head/sys/dev/scd/scd.c 106719 2002-11-10 03:45:49Z mdodd $ */ |
44 45#undef SCD_DEBUG 46 47#include <sys/param.h> 48#include <sys/systm.h> 49#include <sys/kernel.h> 50#include <sys/conf.h> 51#include <sys/fcntl.h> --- 770 unchanged lines hidden (view full) --- 822 SCD_WRITE(sc, OREG_COMMAND, CMD_SPIN_UP); 823 mbx->count = 300; 824 sc->ch_state = SCD_S_WAITSPIN; 825 sc->ch = timeout(scd_timeout, (caddr_t)sc, hz/100); /* XXX */ 826 return; 827 } 828 829 /* send the read command */ | 44 45#undef SCD_DEBUG 46 47#include <sys/param.h> 48#include <sys/systm.h> 49#include <sys/kernel.h> 50#include <sys/conf.h> 51#include <sys/fcntl.h> --- 770 unchanged lines hidden (view full) --- 822 SCD_WRITE(sc, OREG_COMMAND, CMD_SPIN_UP); 823 mbx->count = 300; 824 sc->ch_state = SCD_S_WAITSPIN; 825 sc->ch = timeout(scd_timeout, (caddr_t)sc, hz/100); /* XXX */ 826 return; 827 } 828 829 /* send the read command */ |
830 disable_intr(); | 830 critical_enter(); |
831 SCD_WRITE(sc, OREG_WPARAMS, sdata[0]); 832 SCD_WRITE(sc, OREG_WPARAMS, sdata[1]); 833 SCD_WRITE(sc, OREG_WPARAMS, sdata[2]); 834 SCD_WRITE(sc, OREG_WPARAMS, 0); 835 SCD_WRITE(sc, OREG_WPARAMS, 0); 836 SCD_WRITE(sc, OREG_WPARAMS, 1); 837 SCD_WRITE(sc, OREG_COMMAND, CMD_READ); | 831 SCD_WRITE(sc, OREG_WPARAMS, sdata[0]); 832 SCD_WRITE(sc, OREG_WPARAMS, sdata[1]); 833 SCD_WRITE(sc, OREG_WPARAMS, sdata[2]); 834 SCD_WRITE(sc, OREG_WPARAMS, 0); 835 SCD_WRITE(sc, OREG_WPARAMS, 0); 836 SCD_WRITE(sc, OREG_WPARAMS, 1); 837 SCD_WRITE(sc, OREG_COMMAND, CMD_READ); |
838 enable_intr(); | 838 critical_exit(); |
839 840 mbx->count = RDELAY_WAITREAD; 841 for (i = 0; i < 50; i++) { 842 if (STATUS_BIT(sc, SBIT_DATA_READY)) 843 goto got_data; 844 DELAY(100); 845 } 846 --- 580 unchanged lines hidden --- | 839 840 mbx->count = RDELAY_WAITREAD; 841 for (i = 0; i < 50; i++) { 842 if (STATUS_BIT(sc, SBIT_DATA_READY)) 843 goto got_data; 844 DELAY(100); 845 } 846 --- 580 unchanged lines hidden --- |