summaryrefslogtreecommitdiffstats
path: root/sys/dev/ata/atapi-fd.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/ata/atapi-fd.c')
-rw-r--r--sys/dev/ata/atapi-fd.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/sys/dev/ata/atapi-fd.c b/sys/dev/ata/atapi-fd.c
index 0220c58..2063c63 100644
--- a/sys/dev/ata/atapi-fd.c
+++ b/sys/dev/ata/atapi-fd.c
@@ -28,12 +28,7 @@
* $FreeBSD$
*/
-#include "ata.h"
-#include "atapifd.h"
#include "apm.h"
-
-#if NATA > 0 && NATAPIFD > 0
-
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/kernel.h>
@@ -103,9 +98,6 @@ afdattach(struct atapi_softc *atp)
struct afd_softc *fdp;
dev_t dev;
- if (!afd_cdevsw.d_maxio)
- afd_cdevsw.d_maxio = 254 * DEV_BSIZE;
-
fdp = malloc(sizeof(struct afd_softc), M_TEMP, M_NOWAIT);
if (!fdp) {
printf("afd: out of memory\n");
@@ -219,6 +211,8 @@ afdopen(dev_t dev, int32_t flags, int32_t fmt, struct proc *p)
struct afd_softc *fdp = dev->si_drv1;
struct disklabel *label;
+ dev->si_iosize_max = 254 * DEV_BSIZE;
+
fdp->atp->flags &= ~ATAPI_F_MEDIA_CHANGED;
afd_prevent_allow(fdp, 1);
if (afd_sense(fdp))
@@ -377,9 +371,7 @@ afd_eject(struct afd_softc *fdp, int32_t close)
{
int32_t error;
- error = afd_start_stop(fdp, 0);
- if (((fdp->atp->controller->error&ATAPI_SK_MASK)==ATAPI_SK_NOT_READY) ||
- ((fdp->atp->controller->error&ATAPI_SK_MASK)==ATAPI_SK_UNIT_ATTENTION)){
+ if ((error = afd_start_stop(fdp, 0)) == EBUSY) {
if (!close)
return 0;
if ((error = afd_start_stop(fdp, 3)))
@@ -390,8 +382,6 @@ afd_eject(struct afd_softc *fdp, int32_t close)
return error;
if (close)
return 0;
- tsleep((caddr_t) &lbolt, PRIBIO, "afdej1", 0);
- tsleep((caddr_t) &lbolt, PRIBIO, "afdej2", 0);
if ((error = afd_prevent_allow(fdp, 0)))
return error;
fdp->atp->flags |= ATAPI_F_MEDIA_CHANGED;
@@ -419,4 +409,3 @@ afd_prevent_allow(struct afd_softc *fdp, int32_t lock)
return atapi_error(fdp->atp, atapi_immed_cmd(fdp->atp, ccb, NULL, 0, 0,30));
}
-#endif /* NATA & NATAPIFD */
OpenPOWER on IntegriCloud