Deleted Added
full compact
mcd.c (106490) mcd.c (106719)
1/*
2 * Copyright 1993 by Holger Veit (data part)
3 * Copyright 1993 by Brian Moore (audio part)
4 * Changes Copyright 1993 by Gary Clark II
5 * Changes Copyright (C) 1994-1995 by Andrey A. Chernov, Moscow, Russia
6 *
7 * Rewrote probe routine to work on newer Mitsumi drives.
8 * Additional changes (C) 1994 by Jordan K. Hubbard

--- 26 unchanged lines hidden (view full) ---

35 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
36 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
37 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
38 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
39 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
40 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 *
1/*
2 * Copyright 1993 by Holger Veit (data part)
3 * Copyright 1993 by Brian Moore (audio part)
4 * Changes Copyright 1993 by Gary Clark II
5 * Changes Copyright (C) 1994-1995 by Andrey A. Chernov, Moscow, Russia
6 *
7 * Rewrote probe routine to work on newer Mitsumi drives.
8 * Additional changes (C) 1994 by Jordan K. Hubbard

--- 26 unchanged lines hidden (view full) ---

35 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
36 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
37 * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
38 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
39 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
40 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
41 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
42 *
43 * $FreeBSD: head/sys/dev/mcd/mcd.c 106490 2002-11-06 08:08:55Z mdodd $
43 * $FreeBSD: head/sys/dev/mcd/mcd.c 106719 2002-11-10 03:45:49Z mdodd $
44 */
45static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
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>

--- 852 unchanged lines hidden (view full) ---

904
905 MCD_TRACE("mcd_doread: read blknum=%d for bp=%p\n",
906 blknum, bp);
907
908 /* build parameter block */
909 hsg2msf(blknum,rbuf.start_msf);
910retry_read:
911 /* send the read command */
44 */
45static const char COPYRIGHT[] = "mcd-driver (C)1993 by H.Veit & B.Moore";
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>

--- 852 unchanged lines hidden (view full) ---

904
905 MCD_TRACE("mcd_doread: read blknum=%d for bp=%p\n",
906 blknum, bp);
907
908 /* build parameter block */
909 hsg2msf(blknum,rbuf.start_msf);
910retry_read:
911 /* send the read command */
912 disable_intr();
912 critical_enter();
913 MCD_WRITE(sc, MCD_REG_COMMAND, sc->data.read_command);
914 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[0]);
915 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[1]);
916 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[2]);
917 MCD_WRITE(sc, MCD_REG_COMMAND, 0);
918 MCD_WRITE(sc, MCD_REG_COMMAND, 0);
919 MCD_WRITE(sc, MCD_REG_COMMAND, 1);
913 MCD_WRITE(sc, MCD_REG_COMMAND, sc->data.read_command);
914 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[0]);
915 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[1]);
916 MCD_WRITE(sc, MCD_REG_COMMAND, rbuf.start_msf[2]);
917 MCD_WRITE(sc, MCD_REG_COMMAND, 0);
918 MCD_WRITE(sc, MCD_REG_COMMAND, 0);
919 MCD_WRITE(sc, MCD_REG_COMMAND, 1);
920 enable_intr();
920 critical_exit();
921
922 /* Spin briefly (<= 2ms) to avoid missing next block */
923 for (i = 0; i < 20; i++) {
924 k = MCD_READ(sc, MCD_FLAGS);
925 if (!(k & MFL_DATA_NOT_AVAIL))
926 goto got_it;
927 DELAY(100);
928 }

--- 613 unchanged lines hidden (view full) ---

1542static int
1543mcd_play(struct mcd_softc *sc, struct mcd_read2 *pb)
1544{
1545 int retry, st = -1, status;
1546
1547 sc->data.lastpb = *pb;
1548 for(retry=0; retry<MCD_RETRYS; retry++) {
1549
921
922 /* Spin briefly (<= 2ms) to avoid missing next block */
923 for (i = 0; i < 20; i++) {
924 k = MCD_READ(sc, MCD_FLAGS);
925 if (!(k & MFL_DATA_NOT_AVAIL))
926 goto got_it;
927 DELAY(100);
928 }

--- 613 unchanged lines hidden (view full) ---

1542static int
1543mcd_play(struct mcd_softc *sc, struct mcd_read2 *pb)
1544{
1545 int retry, st = -1, status;
1546
1547 sc->data.lastpb = *pb;
1548 for(retry=0; retry<MCD_RETRYS; retry++) {
1549
1550 disable_intr();
1550 critical_enter();
1551 MCD_WRITE(sc, MCD_REG_COMMAND, MCD_CMDSINGLESPEEDREAD);
1552 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[0]);
1553 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[1]);
1554 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[2]);
1555 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[0]);
1556 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[1]);
1557 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[2]);
1551 MCD_WRITE(sc, MCD_REG_COMMAND, MCD_CMDSINGLESPEEDREAD);
1552 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[0]);
1553 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[1]);
1554 MCD_WRITE(sc, MCD_REG_COMMAND, pb->start_msf[2]);
1555 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[0]);
1556 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[1]);
1557 MCD_WRITE(sc, MCD_REG_COMMAND, pb->end_msf[2]);
1558 enable_intr();
1558 critical_exit();
1559
1560 status=mcd_getstat(sc, 0);
1561 if (status == -1)
1562 continue;
1563 else if (status != -2)
1564 st = 0;
1565 break;
1566 }

--- 56 unchanged lines hidden ---
1559
1560 status=mcd_getstat(sc, 0);
1561 if (status == -1)
1562 continue;
1563 else if (status != -2)
1564 st = 0;
1565 break;
1566 }

--- 56 unchanged lines hidden ---