svn commit: r249083 - in head: rescue/rescue sbin sbin/atacontrol share/man/man4 sys/amd64/conf sys/arm/conf sys/cam/ata sys/conf sys/dev/ata sys/dev/ata/chipsets sys/i386/conf sys/ia64/conf sys/mi...

Alexander Motin mav at FreeBSD.org
Thu Apr 4 07:12:29 UTC 2013


Author: mav
Date: Thu Apr  4 07:12:24 2013
New Revision: 249083
URL: http://svnweb.freebsd.org/changeset/base/249083

Log:
  Remove all legacy ATA code parts, not used since options ATA_CAM enabled in
  most kernels before FreeBSD 9.0.  Remove such modules and respective kernel
  options: atadisk, ataraid, atapicd, atapifd, atapist, atapicam.  Remove the
  atacontrol utility and some man pages.  Remove useless now options ATA_CAM.
  
  No objections:	current@, stable@
  MFC after:	never

Deleted:
  head/sbin/atacontrol/
  head/share/man/man4/atapicam.4
  head/share/man/man4/ataraid.4
  head/sys/dev/ata/ata-disk.c
  head/sys/dev/ata/ata-disk.h
  head/sys/dev/ata/ata-raid-ddf.h
  head/sys/dev/ata/ata-raid.c
  head/sys/dev/ata/ata-raid.h
  head/sys/dev/ata/atapi-cam.c
  head/sys/dev/ata/atapi-cd.c
  head/sys/dev/ata/atapi-cd.h
  head/sys/dev/ata/atapi-fd.c
  head/sys/dev/ata/atapi-fd.h
  head/sys/dev/ata/atapi-tape.c
  head/sys/dev/ata/atapi-tape.h
  head/sys/modules/ata/atacam/
  head/sys/modules/ata/atadisk/
  head/sys/modules/ata/atapicam/
  head/sys/modules/ata/atapicd/
  head/sys/modules/ata/atapifd/
  head/sys/modules/ata/atapist/
  head/sys/modules/ata/ataraid/
Modified:
  head/rescue/rescue/Makefile
  head/sbin/Makefile
  head/share/man/man4/Makefile
  head/share/man/man4/ata.4
  head/sys/amd64/conf/GENERIC
  head/sys/arm/conf/AC100
  head/sys/arm/conf/ARMADAXP
  head/sys/arm/conf/AVILA
  head/sys/arm/conf/CAMBRIA
  head/sys/arm/conf/CRB
  head/sys/arm/conf/CUBIEBOARD
  head/sys/arm/conf/EFIKA_MX
  head/sys/arm/conf/EP80219
  head/sys/arm/conf/IQ31244
  head/sys/arm/conf/TS7800
  head/sys/cam/ata/ata_da.c
  head/sys/conf/NOTES
  head/sys/conf/files
  head/sys/conf/files.sparc64
  head/sys/conf/options
  head/sys/dev/ata/ata-all.c
  head/sys/dev/ata/ata-all.h
  head/sys/dev/ata/ata-cbus.c
  head/sys/dev/ata/ata-dma.c
  head/sys/dev/ata/ata-lowlevel.c
  head/sys/dev/ata/ata-pci.c
  head/sys/dev/ata/ata-pci.h
  head/sys/dev/ata/ata-queue.c
  head/sys/dev/ata/ata-sata.c
  head/sys/dev/ata/ata_if.m
  head/sys/dev/ata/chipsets/ata-acard.c
  head/sys/dev/ata/chipsets/ata-acerlabs.c
  head/sys/dev/ata/chipsets/ata-intel.c
  head/sys/dev/ata/chipsets/ata-ite.c
  head/sys/dev/ata/chipsets/ata-serverworks.c
  head/sys/dev/ata/chipsets/ata-siliconimage.c
  head/sys/i386/conf/GENERIC
  head/sys/i386/conf/XBOX
  head/sys/ia64/conf/GENERIC
  head/sys/mips/conf/OCTEON1
  head/sys/mips/conf/XLR
  head/sys/mips/conf/XLR64
  head/sys/mips/conf/XLRN32
  head/sys/mips/conf/std.SWARM
  head/sys/mips/conf/std.XLP
  head/sys/mips/malta/std.malta
  head/sys/modules/ata/Makefile
  head/sys/pc98/conf/GENERIC
  head/sys/pc98/conf/NOTES
  head/sys/powerpc/conf/GENERIC
  head/sys/powerpc/conf/GENERIC64
  head/sys/powerpc/conf/MPC85XX
  head/sys/sparc64/conf/GENERIC

Modified: head/rescue/rescue/Makefile
==============================================================================
--- head/rescue/rescue/Makefile	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/rescue/rescue/Makefile	Thu Apr  4 07:12:24 2013	(r249083)
@@ -87,7 +87,7 @@ CRUNCH_SUPPRESS_LINK_-tcsh= 1
 # headers in addition to the standard 'paths.h' header.
 #
 CRUNCH_SRCDIRS+= sbin
-CRUNCH_PROGS_sbin= atacontrol badsect				\
+CRUNCH_PROGS_sbin= badsect					\
 	camcontrol ccdconfig clri devfs dmesg dump		\
 	dumpfs dumpon fsck fsck_ffs fsck_msdosfs fsdb		\
 	fsirand gbde geom ifconfig init 			\

Modified: head/sbin/Makefile
==============================================================================
--- head/sbin/Makefile	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sbin/Makefile	Thu Apr  4 07:12:24 2013	(r249083)
@@ -6,7 +6,6 @@
 # XXX MISSING:		icheck ncheck
 
 SUBDIR=adjkerntz \
-	atacontrol \
 	badsect \
 	camcontrol \
 	ccdconfig \

Modified: head/share/man/man4/Makefile
==============================================================================
--- head/share/man/man4/Makefile	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/share/man/man4/Makefile	Thu Apr  4 07:12:24 2013	(r249083)
@@ -51,8 +51,6 @@ MAN=	aac.4 \
 	${_asmc.4} \
 	asr.4 \
 	ata.4 \
-	atapicam.4 \
-	ataraid.4 \
 	ath.4 \
 	ath_ahb.4 \
 	ath_hal.4 \

Modified: head/share/man/man4/ata.4
==============================================================================
--- head/share/man/man4/ata.4	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/share/man/man4/ata.4	Thu Apr  4 07:12:24 2013	(r249083)
@@ -36,7 +36,6 @@ kernel configuration file:
 .Bd -ragged -offset indent
 .Cd "device scbus"
 .Cd "device ata"
-.Cd "options ATA_CAM"
 .Ed
 .Pp
 Alternatively, to load the driver as set of modules at boot time,
@@ -79,12 +78,6 @@ prerequisite for the other modules.
 The next three lines are generic bus-specific drivers.
 Of the rest, ataahci is the AHCI driver.
 The others are vendor-specific PCI drivers.
-The
-.Dv ATA_CAM
-option should always remain in the kernel configuration, to make
-the driver work as a
-.Xr CAM 4
-subsystem module.
 .Pp
 The following tunables are settable from the
 .Xr loader 8 :

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/amd64/conf/GENERIC	Thu Apr  4 07:12:24 2013	(r249083)
@@ -102,7 +102,6 @@ device		fdc
 # ATA controllers
 device		ahci		# AHCI-compatible SATA controllers
 device		ata		# Legacy ATA/SATA controllers
-options 	ATA_CAM		# Handle legacy controllers with CAM
 options 	ATA_STATIC_ID	# Static device numbering
 device		mvs		# Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA
 device		siis		# SiliconImage SiI3124/SiI3132/SiI3531 SATA

Modified: head/sys/arm/conf/AC100
==============================================================================
--- head/sys/arm/conf/AC100	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/AC100	Thu Apr  4 07:12:24 2013	(r249083)
@@ -76,7 +76,6 @@ device		md
 
 # SATA
 #device		ata
-#device		atadisk
 #device		mvs
 
 # Serial ports

Modified: head/sys/arm/conf/ARMADAXP
==============================================================================
--- head/sys/arm/conf/ARMADAXP	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/ARMADAXP	Thu Apr  4 07:12:24 2013	(r249083)
@@ -76,7 +76,6 @@ device		da
 
 # SATA
 device		ata
-device		atadisk
 #device		mvs
 
 # Serial ports

Modified: head/sys/arm/conf/AVILA
==============================================================================
--- head/sys/arm/conf/AVILA	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/AVILA	Thu Apr  4 07:12:24 2013	(r249083)
@@ -93,7 +93,6 @@ device		avila_gpio	# GPIO pins on J8
 
 device		ata
 device		avila_ata	# Gateworks CF/IDE support
-options 	ATA_CAM
 
 device		npe		# Network Processing Engine
 device		npe_fw

Modified: head/sys/arm/conf/CAMBRIA
==============================================================================
--- head/sys/arm/conf/CAMBRIA	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/CAMBRIA	Thu Apr  4 07:12:24 2013	(r249083)
@@ -96,7 +96,6 @@ device		cambria_gpio	# GPIO pins on J11
 
 device		ata
 device		avila_ata	# Gateworks CF/IDE support
-options 	ATA_CAM
 
 device		npe		# Network Processing Engine
 device		npe_fw

Modified: head/sys/arm/conf/CRB
==============================================================================
--- head/sys/arm/conf/CRB	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/CRB	Thu Apr  4 07:12:24 2013	(r249083)
@@ -73,7 +73,6 @@ device		uart
 device		pci
 
 device		ata
-options 	ATA_CAM
 options 	ATA_STATIC_ID	# Static device numbering
 
 device		scbus		# SCSI bus (required for ATA/SCSI)

Modified: head/sys/arm/conf/CUBIEBOARD
==============================================================================
--- head/sys/arm/conf/CUBIEBOARD	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/CUBIEBOARD	Thu Apr  4 07:12:24 2013	(r249083)
@@ -83,7 +83,6 @@ options		ROOTDEVNAME=\"ufs:/dev/da0s2\"
 # ATA controllers
 #device		ahci		# AHCI-compatible SATA controllers
 #device		ata		# Legacy ATA/SATA controllers
-#options	ATA_CAM		# Handle legacy controllers with CAM
 #options	ATA_STATIC_ID	# Static device numbering
 
 # Console and misc

Modified: head/sys/arm/conf/EFIKA_MX
==============================================================================
--- head/sys/arm/conf/EFIKA_MX	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/EFIKA_MX	Thu Apr  4 07:12:24 2013	(r249083)
@@ -111,7 +111,6 @@ options 	ALT_BREAK_TO_DEBUGGER
 device		ata
 device		atapci		# Only for helper functions
 device		imxata
-options 	ATA_CAM
 options 	ATA_STATIC_ID	# Static device numbering
 
 device		iomux		# IO Multiplexor

Modified: head/sys/arm/conf/EP80219
==============================================================================
--- head/sys/arm/conf/EP80219	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/EP80219	Thu Apr  4 07:12:24 2013	(r249083)
@@ -73,7 +73,6 @@ device		uart
 device		pci
 
 device		ata
-options 	ATA_CAM
 options 	ATA_STATIC_ID	# Static device numbering
 
 device		scbus		# SCSI bus (required for ATA/SCSI)

Modified: head/sys/arm/conf/IQ31244
==============================================================================
--- head/sys/arm/conf/IQ31244	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/IQ31244	Thu Apr  4 07:12:24 2013	(r249083)
@@ -72,7 +72,6 @@ device		uart
 device		pci
 
 device		ata
-options 	ATA_CAM
 options 	ATA_STATIC_ID	# Static device numbering
 
 device		scbus		# SCSI bus (required for ATA/SCSI)

Modified: head/sys/arm/conf/TS7800
==============================================================================
--- head/sys/arm/conf/TS7800	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/arm/conf/TS7800	Thu Apr  4 07:12:24 2013	(r249083)
@@ -70,7 +70,6 @@ device		da
 
 # SATA
 device		ata
-options 	ATA_CAM
 
 # Flattened Device Tree
 options 	FDT

Modified: head/sys/cam/ata/ata_da.c
==============================================================================
--- head/sys/cam/ata/ata_da.c	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/cam/ata/ata_da.c	Thu Apr  4 07:12:24 2013	(r249083)
@@ -411,11 +411,7 @@ static void		adasuspend(void *arg);
 static void		adaresume(void *arg);
 
 #ifndef	ADA_DEFAULT_LEGACY_ALIASES
-#ifdef ATA_CAM
 #define	ADA_DEFAULT_LEGACY_ALIASES	1
-#else
-#define	ADA_DEFAULT_LEGACY_ALIASES	0
-#endif
 #endif
 
 #ifndef ADA_DEFAULT_TIMEOUT

Modified: head/sys/conf/NOTES
==============================================================================
--- head/sys/conf/NOTES	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/conf/NOTES	Thu Apr  4 07:12:24 2013	(r249083)
@@ -1706,21 +1706,14 @@ device		mvs
 device		siis
 
 #
-# The 'ATA' driver supports all ATA and ATAPI devices, including PC Card
-# devices. You only need one "device ata" for it to find all
+# The 'ATA' driver supports all legacy ATA/ATAPI controllers, including
+# PC Card devices. You only need one "device ata" for it to find all
 # PCI and PC Card ATA/ATAPI devices on modern machines.
 # Alternatively, individual bus and chipset drivers may be chosen by using
 # the 'atacore' driver then selecting the drivers on a per vendor basis.
 # For example to build a system which only supports a VIA chipset,
 # omit 'ata' and include the 'atacore', 'atapci' and 'atavia' drivers.
 device		ata
-#device		atadisk		# ATA disk drives
-#device		ataraid		# ATA RAID drives
-#device		atapicd		# ATAPI CDROM drives
-#device		atapifd		# ATAPI floppy drives
-#device		atapist		# ATAPI tape drives
-#device		atapicam	# emulate ATAPI devices as SCSI ditto via CAM
-				# needs CAM to be present (scbus & pass)
 
 # Modular ATA
 #device		atacore		# Core ATA functionality
@@ -1770,15 +1763,9 @@ hint.ata.1.irq="15"
 #			else the device numbers are dynamically allocated.
 # ATA_REQUEST_TIMEOUT:	the number of seconds to wait for an ATA request
 #			before timing out.
-# ATA_CAM:		Turn ata(4) subsystem controller drivers into cam(4)
-#			interface modules. This deprecates all ata(4)
-#			peripheral device drivers (atadisk, ataraid, atapicd,
-#			atapifd, atapist, atapicam) and all user-level APIs.
-#			cam(4) drivers and APIs will be connected instead.
 
 options 	ATA_STATIC_ID
 #options 	ATA_REQUEST_TIMEOUT=10
-options 	ATA_CAM
 
 #
 # Standard floppy disk controllers and floppy tapes, supports

Modified: head/sys/conf/files
==============================================================================
--- head/sys/conf/files	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/conf/files	Thu Apr  4 07:12:24 2013	(r249083)
@@ -705,12 +705,6 @@ dev/ata/chipsets/ata-serverworks.c	optio
 dev/ata/chipsets/ata-siliconimage.c	optional ata pci | atasiliconimage | ataati
 dev/ata/chipsets/ata-sis.c	optional ata pci | atasis
 dev/ata/chipsets/ata-via.c	optional ata pci | atavia
-dev/ata/ata-disk.c		optional atadisk
-dev/ata/ata-raid.c		optional ataraid
-dev/ata/atapi-cd.c		optional atapicd
-dev/ata/atapi-fd.c		optional atapifd
-dev/ata/atapi-tape.c		optional atapist
-dev/ata/atapi-cam.c		optional atapicam
 #
 dev/ath/if_ath_pci.c		optional ath_pci pci \
 	compile-with "${NORMAL_C} -I$S/dev/ath"

Modified: head/sys/conf/files.sparc64
==============================================================================
--- head/sys/conf/files.sparc64	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/conf/files.sparc64	Thu Apr  4 07:12:24 2013	(r249083)
@@ -88,7 +88,7 @@ sparc64/pci/schizo.c		optional	pci
 sparc64/sbus/dma_sbus.c		optional	sbus
 sparc64/sbus/sbus.c		optional	sbus
 sparc64/sbus/lsi64854.c		optional	sbus
-sparc64/sparc64/ata_machdep.c	optional	ada | atadisk | da
+sparc64/sparc64/ata_machdep.c	optional	ada | da
 sparc64/sparc64/autoconf.c	standard
 sparc64/sparc64/bus_machdep.c	standard
 sparc64/sparc64/cache.c		standard

Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/conf/options	Thu Apr  4 07:12:24 2013	(r249083)
@@ -366,7 +366,6 @@ ISCSI_INITIATOR_DEBUG	opt_iscsi_initiato
 ATA_STATIC_ID		opt_ata.h
 ATA_NOPCI		opt_ata.h
 ATA_REQUEST_TIMEOUT	opt_ata.h
-ATA_CAM			opt_ata.h
 
 # Net stuff.
 ACCEPT_FILTER_DATA

Modified: head/sys/dev/ata/ata-all.c
==============================================================================
--- head/sys/dev/ata/ata-all.c	Thu Apr  4 05:47:50 2013	(r249082)
+++ head/sys/dev/ata/ata-all.c	Thu Apr  4 07:12:24 2013	(r249083)
@@ -51,90 +51,33 @@ __FBSDID("$FreeBSD$");
 #include <dev/pci/pcivar.h>
 #include <ata_if.h>
 
-#ifdef ATA_CAM
 #include <cam/cam.h>
 #include <cam/cam_ccb.h>
 #include <cam/cam_sim.h>
 #include <cam/cam_xpt_sim.h>
 #include <cam/cam_debug.h>
-#endif
-
-#ifndef ATA_CAM
-/* device structure */
-static  d_ioctl_t       ata_ioctl;
-static struct cdevsw ata_cdevsw = {
-	.d_version =    D_VERSION,
-	.d_flags =      D_NEEDGIANT, /* we need this as newbus isn't mpsafe */
-	.d_ioctl =      ata_ioctl,
-	.d_name =       "ata",
-};
-#endif
 
 /* prototypes */
-#ifndef ATA_CAM
-static void ata_boot_attach(void);
-static device_t ata_add_child(device_t, struct ata_device *, int);
-#else
 static void ataaction(struct cam_sim *sim, union ccb *ccb);
 static void atapoll(struct cam_sim *sim);
-#endif
 static void ata_conn_event(void *, int);
-#ifndef ATA_CAM
-static void bswap(int8_t *, int);
-static void btrim(int8_t *, int);
-static void bpack(int8_t *, int8_t *, int);
-#endif
 static void ata_interrupt_locked(void *data);
-#ifdef ATA_CAM
 static void ata_periodic_poll(void *data);
-#endif
 
 /* global vars */
 MALLOC_DEFINE(M_ATA, "ata_generic", "ATA driver generic layer");
 int (*ata_raid_ioctl_func)(u_long cmd, caddr_t data) = NULL;
-#ifndef ATA_CAM
-struct intr_config_hook *ata_delayed_attach = NULL;
-#endif
 devclass_t ata_devclass;
 uma_zone_t ata_request_zone;
-uma_zone_t ata_composite_zone;
-#ifndef ATA_CAM
-int ata_wc = 1;
-int ata_setmax = 0;
-#endif
 int ata_dma_check_80pin = 1;
 
-/* local vars */
-#ifndef ATA_CAM
-static int ata_dma = 1;
-static int atapi_dma = 1;
-#endif
-
 /* sysctl vars */
 static SYSCTL_NODE(_hw, OID_AUTO, ata, CTLFLAG_RD, 0, "ATA driver parameters");
-#ifndef ATA_CAM
-TUNABLE_INT("hw.ata.ata_dma", &ata_dma);
-SYSCTL_INT(_hw_ata, OID_AUTO, ata_dma, CTLFLAG_RDTUN, &ata_dma, 0,
-	   "ATA disk DMA mode control");
-#endif
 TUNABLE_INT("hw.ata.ata_dma_check_80pin", &ata_dma_check_80pin);
 SYSCTL_INT(_hw_ata, OID_AUTO, ata_dma_check_80pin,
 	   CTLFLAG_RW, &ata_dma_check_80pin, 1,
 	   "Check for 80pin cable before setting ATA DMA mode");
-#ifndef ATA_CAM
-TUNABLE_INT("hw.ata.atapi_dma", &atapi_dma);
-SYSCTL_INT(_hw_ata, OID_AUTO, atapi_dma, CTLFLAG_RDTUN, &atapi_dma, 0,
-	   "ATAPI device DMA mode control");
-TUNABLE_INT("hw.ata.wc", &ata_wc);
-SYSCTL_INT(_hw_ata, OID_AUTO, wc, CTLFLAG_RDTUN, &ata_wc, 0,
-	   "ATA disk write caching");
-TUNABLE_INT("hw.ata.setmax", &ata_setmax);
-SYSCTL_INT(_hw_ata, OID_AUTO, setmax, CTLFLAG_RDTUN, &ata_setmax, 0,
-	   "ATA disk set max native address");
-#endif
-#ifdef ATA_CAM
 FEATURE(ata_cam, "ATA devices are accessed through the cam(4) driver");
-#endif
 
 /*
  * newbus device interface related functions
@@ -150,12 +93,10 @@ ata_attach(device_t dev)
 {
     struct ata_channel *ch = device_get_softc(dev);
     int error, rid;
-#ifdef ATA_CAM
     struct cam_devq *devq;
     const char *res;
     char buf[64];
     int i, mode;
-#endif
 
     /* check that we have a virgin channel to attach */
     if (ch->r_irq)
@@ -166,13 +107,7 @@ ata_attach(device_t dev)
     ch->state = ATA_IDLE;
     bzero(&ch->state_mtx, sizeof(struct mtx));
     mtx_init(&ch->state_mtx, "ATA state lock", NULL, MTX_DEF);
-#ifndef ATA_CAM
-    bzero(&ch->queue_mtx, sizeof(struct mtx));
-    mtx_init(&ch->queue_mtx, "ATA queue lock", NULL, MTX_DEF);
-    TAILQ_INIT(&ch->ata_queue);
-#endif
     TASK_INIT(&ch->conntask, 0, ata_conn_event, dev);
-#ifdef ATA_CAM
 	for (i = 0; i < 16; i++) {
 		ch->user[i].revision = 0;
 		snprintf(buf, sizeof(buf), "dev%d.sata_rev", i);
@@ -207,15 +142,6 @@ ata_attach(device_t dev)
 			ch->user[i].caps |= CTS_SATA_CAPS_D_PMREQ;
 	}
 	callout_init(&ch->poll_callout, 1);
-#endif
-
-#ifndef ATA_CAM
-    /* reset the controller HW, the channel and device(s) */
-    while (ATA_LOCKING(dev, ATA_LF_LOCK) != ch->unit)
-	pause("ataatch", 1);
-    ATA_RESET(dev);
-    ATA_LOCKING(dev, ATA_LF_UNLOCK);
-#endif
 
     /* allocate DMA resources if DMA HW present*/
     if (ch->dma.alloc)
@@ -236,12 +162,6 @@ ata_attach(device_t dev)
 	return error;
     }
 
-#ifndef ATA_CAM
-    /* probe and attach devices on this channel unless we are in early boot */
-    if (!ata_delayed_attach)
-	ata_identify(dev);
-    return (0);
-#else
 	if (ch->flags & ATA_PERIODIC_POLL)
 		callout_reset(&ch->poll_callout, hz, ata_periodic_poll, ch);
 	mtx_lock(&ch->state_mtx);
@@ -286,17 +206,12 @@ err1:
 	if (ch->flags & ATA_PERIODIC_POLL)
 		callout_drain(&ch->poll_callout);
 	return (error);
-#endif
 }
 
 int
 ata_detach(device_t dev)
 {
     struct ata_channel *ch = device_get_softc(dev);
-#ifndef ATA_CAM
-    device_t *children;
-    int nchildren, i;
-#endif
 
     /* check that we have a valid channel to detach */
     if (!ch->r_irq)
@@ -306,23 +221,11 @@ ata_detach(device_t dev)
     mtx_lock(&ch->state_mtx);
     ch->state |= ATA_STALL_QUEUE;
     mtx_unlock(&ch->state_mtx);
-#ifdef ATA_CAM
     if (ch->flags & ATA_PERIODIC_POLL)
 	callout_drain(&ch->poll_callout);
-#endif
 
-#ifndef ATA_CAM
-    /* detach & delete all children */
-    if (!device_get_children(dev, &children, &nchildren)) {
-	for (i = 0; i < nchildren; i++)
-	    if (children[i])
-		device_delete_child(dev, children[i]);
-	free(children, M_TEMP);
-    } 
-#endif
     taskqueue_drain(taskqueue_thread, &ch->conntask);
 
-#ifdef ATA_CAM
 	mtx_lock(&ch->state_mtx);
 	xpt_async(AC_LOST_DEVICE, ch->path, NULL);
 	xpt_free_path(ch->path);
@@ -330,7 +233,6 @@ ata_detach(device_t dev)
 	cam_sim_free(ch->sim, /*free_devq*/TRUE);
 	ch->sim = NULL;
 	mtx_unlock(&ch->state_mtx);
-#endif
 
     /* release resources */
     bus_teardown_intr(dev, ch->r_irq, ch->ih);
@@ -342,9 +244,6 @@ ata_detach(device_t dev)
 	ch->dma.free(dev);
 
     mtx_destroy(&ch->state_mtx);
-#ifndef ATA_CAM
-    mtx_destroy(&ch->queue_mtx);
-#endif
     return 0;
 }
 
@@ -352,7 +251,6 @@ static void
 ata_conn_event(void *context, int dummy)
 {
 	device_t dev = (device_t)context;
-#ifdef ATA_CAM
 	struct ata_channel *ch = device_get_softc(dev);
 	union ccb *ccb;
 
@@ -372,9 +270,6 @@ ata_conn_event(void *context, int dummy)
 	}
 	xpt_rescan(ccb);
 	mtx_unlock(&ch->state_mtx);
-#else
-	ata_reinit(dev);
-#endif
 }
 
 int
@@ -382,94 +277,7 @@ ata_reinit(device_t dev)
 {
     struct ata_channel *ch = device_get_softc(dev);
     struct ata_request *request;
-#ifndef ATA_CAM
-    device_t *children;
-    int nchildren, i;
-
-    /* check that we have a valid channel to reinit */
-    if (!ch || !ch->r_irq)
-	return ENXIO;
-
-    if (bootverbose)
-	device_printf(dev, "reiniting channel ..\n");
-
-    /* poll for locking the channel */
-    while (ATA_LOCKING(dev, ATA_LF_LOCK) != ch->unit)
-	pause("atarini", 1);
-
-    /* catch eventual request in ch->running */
-    mtx_lock(&ch->state_mtx);
-    if (ch->state & ATA_STALL_QUEUE) {
-	/* Recursive reinits and reinits during detach prohobited. */
-	mtx_unlock(&ch->state_mtx);
-	return (ENXIO);
-    }
-    if ((request = ch->running))
-	callout_stop(&request->callout);
-    ch->running = NULL;
-
-    /* unconditionally grap the channel lock */
-    ch->state |= ATA_STALL_QUEUE;
-    mtx_unlock(&ch->state_mtx);
-
-    /* reset the controller HW, the channel and device(s) */
-    ATA_RESET(dev);
-
-    /* reinit the children and delete any that fails */
-    if (!device_get_children(dev, &children, &nchildren)) {
-	mtx_lock(&Giant);       /* newbus suckage it needs Giant */
-	for (i = 0; i < nchildren; i++) {
-	    /* did any children go missing ? */
-	    if (children[i] && device_is_attached(children[i]) &&
-		ATA_REINIT(children[i])) {
-		/*
-		 * if we had a running request and its device matches
-		 * this child we need to inform the request that the 
-		 * device is gone.
-		 */
-		if (request && request->dev == children[i]) {
-		    request->result = ENXIO;
-		    device_printf(request->dev, "FAILURE - device detached\n");
-
-		    /* if not timeout finish request here */
-		    if (!(request->flags & ATA_R_TIMEOUT))
-			    ata_finish(request);
-		    request = NULL;
-		}
-		device_delete_child(dev, children[i]);
-	    }
-	}
-	free(children, M_TEMP);
-	mtx_unlock(&Giant);     /* newbus suckage dealt with, release Giant */
-    }
-
-    /* if we still have a good request put it on the queue again */
-    if (request && !(request->flags & ATA_R_TIMEOUT)) {
-	device_printf(request->dev,
-		      "WARNING - %s requeued due to channel reset",
-		      ata_cmd2str(request));
-	if (!(request->flags & (ATA_R_ATAPI | ATA_R_CONTROL)))
-	    printf(" LBA=%ju", request->u.ata.lba);
-	printf("\n");
-	request->flags |= ATA_R_REQUEUE;
-	ata_queue_request(request);
-    }
-
-    /* we're done release the channel for new work */
-    mtx_lock(&ch->state_mtx);
-    ch->state = ATA_IDLE;
-    mtx_unlock(&ch->state_mtx);
-    ATA_LOCKING(dev, ATA_LF_UNLOCK);
-
-    /* Add new children. */
-/*    ata_identify(dev); */
-
-    if (bootverbose)
-	device_printf(dev, "reinit done ..\n");
 
-    /* kick off requests on the queue */
-    ata_start(dev);
-#else
 	xpt_freeze_simq(ch->sim, 1);
 	if ((request = ch->running)) {
 		ch->running = NULL;
@@ -486,7 +294,6 @@ ata_reinit(device_t dev)
 	/* Tell the XPT about the event */
 	xpt_async(AC_BUS_RESET, ch->path, NULL);
 	xpt_release_simq(ch->sim, TRUE);
-#endif
 	return(0);
 }
 
@@ -499,7 +306,6 @@ ata_suspend(device_t dev)
     if (!dev || !(ch = device_get_softc(dev)))
 	return ENXIO;
 
-#ifdef ATA_CAM
 	if (ch->flags & ATA_PERIODIC_POLL)
 		callout_drain(&ch->poll_callout);
 	mtx_lock(&ch->state_mtx);
@@ -507,20 +313,6 @@ ata_suspend(device_t dev)
 	while (ch->state != ATA_IDLE)
 		msleep(ch, &ch->state_mtx, PRIBIO, "atasusp", hz/100);
 	mtx_unlock(&ch->state_mtx);
-#else
-    /* wait for the channel to be IDLE or detached before suspending */
-    while (ch->r_irq) {
-	mtx_lock(&ch->state_mtx);
-	if (ch->state == ATA_IDLE) {
-	    ch->state = ATA_ACTIVE;
-	    mtx_unlock(&ch->state_mtx);
-	    break;
-	}
-	mtx_unlock(&ch->state_mtx);
-	tsleep(ch, PRIBIO, "atasusp", hz/10);
-    }
-    ATA_LOCKING(dev, ATA_LF_UNLOCK);
-#endif
     return(0);
 }
 
@@ -534,36 +326,25 @@ ata_resume(device_t dev)
     if (!dev || !(ch = device_get_softc(dev)))
 	return ENXIO;
 
-#ifdef ATA_CAM
 	mtx_lock(&ch->state_mtx);
 	error = ata_reinit(dev);
 	xpt_release_simq(ch->sim, TRUE);
 	mtx_unlock(&ch->state_mtx);
 	if (ch->flags & ATA_PERIODIC_POLL)
 		callout_reset(&ch->poll_callout, hz, ata_periodic_poll, ch);
-#else
-    /* reinit the devices, we dont know what mode/state they are in */
-    error = ata_reinit(dev);
-    /* kick off requests on the queue */
-    ata_start(dev);
-#endif
     return error;
 }
 
 void
 ata_interrupt(void *data)
 {
-#ifdef ATA_CAM
     struct ata_channel *ch = (struct ata_channel *)data;
 
     mtx_lock(&ch->state_mtx);
     xpt_batch_start(ch->sim);
-#endif
     ata_interrupt_locked(data);
-#ifdef ATA_CAM
     xpt_batch_done(ch->sim);
     mtx_unlock(&ch->state_mtx);
-#endif
 }
 
 static void
@@ -572,9 +353,6 @@ ata_interrupt_locked(void *data)
     struct ata_channel *ch = (struct ata_channel *)data;
     struct ata_request *request;
 
-#ifndef ATA_CAM
-    mtx_lock(&ch->state_mtx);
-#endif
     do {
 	/* ignore interrupt if its not for us */
 	if (ch->hw.status && !ch->hw.status(ch->dev))
@@ -600,22 +378,12 @@ ata_interrupt_locked(void *data)
 	    ch->running = NULL;
 	    if (ch->state == ATA_ACTIVE)
 		ch->state = ATA_IDLE;
-#ifdef ATA_CAM
 	    ata_cam_end_transaction(ch->dev, request);
-#else
-	    mtx_unlock(&ch->state_mtx);
-	    ATA_LOCKING(ch->dev, ATA_LF_UNLOCK);
-	    ata_finish(request);
-#endif
 	    return;
 	}
     } while (0);
-#ifndef ATA_CAM
-    mtx_unlock(&ch->state_mtx);
-#endif
 }
 
-#ifdef ATA_CAM
 static void
 ata_periodic_poll(void *data)
 {
@@ -624,7 +392,6 @@ ata_periodic_poll(void *data)
     callout_reset(&ch->poll_callout, hz, ata_periodic_poll, ch);
     ata_interrupt(ch);
 }
-#endif
 
 void
 ata_print_cable(device_t dev, u_int8_t *who)
@@ -633,468 +400,9 @@ ata_print_cable(device_t dev, u_int8_t *
                   "DMA limited to UDMA33, %s found non-ATA66 cable\n", who);
 }
 
-#ifndef ATA_CAM
-int
-ata_check_80pin(device_t dev, int mode)
-{
-    struct ata_device *atadev = device_get_softc(dev);
-
-    if (!ata_dma_check_80pin) {
-        if (bootverbose)
-            device_printf(dev, "Skipping 80pin cable check\n");
-        return mode;
-    }
-
-    if (mode > ATA_UDMA2 && !(atadev->param.hwres & ATA_CABLE_ID)) {
-        ata_print_cable(dev, "device");
-        mode = ATA_UDMA2;
-    }
-    return mode;
-}
-#endif
-
-#ifndef ATA_CAM
-void
-ata_setmode(device_t dev)
-{
-	struct ata_channel *ch = device_get_softc(device_get_parent(dev));
-	struct ata_device *atadev = device_get_softc(dev);
-	int error, mode, pmode;
-
-	mode = atadev->mode;
-	do {
-		pmode = mode = ata_limit_mode(dev, mode, ATA_DMA_MAX);
-		mode = ATA_SETMODE(device_get_parent(dev), atadev->unit, mode);
-		if ((ch->flags & (ATA_CHECKS_CABLE | ATA_SATA)) == 0)
-			mode = ata_check_80pin(dev, mode);
-	} while (pmode != mode); /* Interate till successfull negotiation. */
-	error = ata_controlcmd(dev, ATA_SETFEATURES, ATA_SF_SETXFER, 0, mode);
-	if (bootverbose)
-	        device_printf(dev, "%ssetting %s\n",
-		    (error) ? "FAILURE " : "", ata_mode2str(mode));
-	atadev->mode = mode;
-}
-#endif
-
-/*
- * device related interfaces
- */
-#ifndef ATA_CAM
-static int
-ata_ioctl(struct cdev *dev, u_long cmd, caddr_t data,
-	  int32_t flag, struct thread *td)
-{
-    device_t device, *children;
-    struct ata_ioc_devices *devices = (struct ata_ioc_devices *)data;
-    int *value = (int *)data;
-    int i, nchildren, error = ENOTTY;
-
-    switch (cmd) {
-    case IOCATAGMAXCHANNEL:
-	/* In case we have channel 0..n this will return n+1. */
-	*value = devclass_get_maxunit(ata_devclass);
-	error = 0;
-	break;
-
-    case IOCATAREINIT:
-	if (*value >= devclass_get_maxunit(ata_devclass) ||
-	    !(device = devclass_get_device(ata_devclass, *value)) ||
-	    !device_is_attached(device))
-	    return ENXIO;
-	error = ata_reinit(device);
-	break;
-
-    case IOCATAATTACH:
-	if (*value >= devclass_get_maxunit(ata_devclass) ||
-	    !(device = devclass_get_device(ata_devclass, *value)) ||
-	    !device_is_attached(device))
-	    return ENXIO;
-	error = DEVICE_ATTACH(device);
-	break;
-
-    case IOCATADETACH:
-	if (*value >= devclass_get_maxunit(ata_devclass) ||
-	    !(device = devclass_get_device(ata_devclass, *value)) ||
-	    !device_is_attached(device))
-	    return ENXIO;
-	error = DEVICE_DETACH(device);
-	break;
-
-    case IOCATADEVICES:
-	if (devices->channel >= devclass_get_maxunit(ata_devclass) ||
-	    !(device = devclass_get_device(ata_devclass, devices->channel)) ||
-	    !device_is_attached(device))
-	    return ENXIO;
-	bzero(devices->name[0], 32);
-	bzero(&devices->params[0], sizeof(struct ata_params));
-	bzero(devices->name[1], 32);
-	bzero(&devices->params[1], sizeof(struct ata_params));
-	if (!device_get_children(device, &children, &nchildren)) {
-	    for (i = 0; i < nchildren; i++) {
-		if (children[i] && device_is_attached(children[i])) {
-		    struct ata_device *atadev = device_get_softc(children[i]);
-
-		    if (atadev->unit == ATA_MASTER) { /* XXX SOS PM */
-			strncpy(devices->name[0],
-				device_get_nameunit(children[i]), 32);
-			bcopy(&atadev->param, &devices->params[0],
-			      sizeof(struct ata_params));
-		    }
-		    if (atadev->unit == ATA_SLAVE) { /* XXX SOS PM */
-			strncpy(devices->name[1],
-				device_get_nameunit(children[i]), 32);
-			bcopy(&atadev->param, &devices->params[1],
-			      sizeof(struct ata_params));
-		    }
-		}
-	    }
-	    free(children, M_TEMP);
-	    error = 0;
-	}
-	else
-	    error = ENODEV;
-	break;
-
-    default:
-	if (ata_raid_ioctl_func)
-	    error = ata_raid_ioctl_func(cmd, data);
-    }
-    return error;
-}
-#endif
-
-#ifndef ATA_CAM
-int
-ata_device_ioctl(device_t dev, u_long cmd, caddr_t data)
-{
-    struct ata_device *atadev = device_get_softc(dev);
-    struct ata_channel *ch = device_get_softc(device_get_parent(dev));
-    struct ata_ioc_request *ioc_request = (struct ata_ioc_request *)data;
-    struct ata_params *params = (struct ata_params *)data;
-    int *mode = (int *)data;
-    struct ata_request *request;
-    caddr_t buf;
-    int error;
-
-    switch (cmd) {
-    case IOCATAREQUEST:
-	if (ioc_request->count >
-	    (ch->dma.max_iosize ? ch->dma.max_iosize : DFLTPHYS)) {
-		return (EFBIG);
-	}
-	if (!(buf = malloc(ioc_request->count, M_ATA, M_NOWAIT))) {
-	    return ENOMEM;
-	}
-	if (!(request = ata_alloc_request())) {
-	    free(buf, M_ATA);
-	    return  ENOMEM;
-	}
-	request->dev = atadev->dev;
-	if (ioc_request->flags & ATA_CMD_WRITE) {
-	    error = copyin(ioc_request->data, buf, ioc_request->count);
-	    if (error) {
-		free(buf, M_ATA);
-		ata_free_request(request);
-		return error;
-	    }
-	}
-	if (ioc_request->flags & ATA_CMD_ATAPI) {
-	    request->flags = ATA_R_ATAPI;
-	    bcopy(ioc_request->u.atapi.ccb, request->u.atapi.ccb, 16);
-	}
-	else {
-	    request->u.ata.command = ioc_request->u.ata.command;
-	    request->u.ata.feature = ioc_request->u.ata.feature;
-	    request->u.ata.lba = ioc_request->u.ata.lba;
-	    request->u.ata.count = ioc_request->u.ata.count;
-	}
-	request->timeout = ioc_request->timeout;
-	request->data = buf;
-	request->bytecount = ioc_request->count;
-	request->transfersize = request->bytecount;
-	if (ioc_request->flags & ATA_CMD_CONTROL)
-	    request->flags |= ATA_R_CONTROL;
-	if (ioc_request->flags & ATA_CMD_READ)
-	    request->flags |= ATA_R_READ;
-	if (ioc_request->flags & ATA_CMD_WRITE)
-	    request->flags |= ATA_R_WRITE;
-	ata_queue_request(request);
-	if (request->flags & ATA_R_ATAPI) {
-	    bcopy(&request->u.atapi.sense, &ioc_request->u.atapi.sense,
-		  sizeof(struct atapi_sense));
-	}
-	else {
-	    ioc_request->u.ata.command = request->u.ata.command;
-	    ioc_request->u.ata.feature = request->u.ata.feature;
-	    ioc_request->u.ata.lba = request->u.ata.lba;
-	    ioc_request->u.ata.count = request->u.ata.count;
-	}
-	ioc_request->error = request->result;
-	if (ioc_request->flags & ATA_CMD_READ)
-	    error = copyout(buf, ioc_request->data, ioc_request->count);
-	else
-	    error = 0;
-	free(buf, M_ATA);
-	ata_free_request(request);
-	return error;
-   
-    case IOCATAGPARM:
-	ata_getparam(atadev, 0);
-	bcopy(&atadev->param, params, sizeof(struct ata_params));
-	return 0;
-	
-    case IOCATASMODE:
-	atadev->mode = *mode;
-	ata_setmode(dev);
-	return 0;
-
-    case IOCATAGMODE:
-	*mode = atadev->mode |
-	    (ATA_GETREV(device_get_parent(dev), atadev->unit) << 8);
-	return 0;
-    case IOCATASSPINDOWN:
-	atadev->spindown = *mode;
-	return 0;
-    case IOCATAGSPINDOWN:
-	*mode = atadev->spindown;
-	return 0;
-    default:
-	return ENOTTY;
-    }
-}
-#endif
-
-#ifndef ATA_CAM
-static void
-ata_boot_attach(void)
-{
-    struct ata_channel *ch;
-    int ctlr;
-
-    mtx_lock(&Giant);       /* newbus suckage it needs Giant */
-
-    /* kick off probe and attach on all channels */
-    for (ctlr = 0; ctlr < devclass_get_maxunit(ata_devclass); ctlr++) {
-	if ((ch = devclass_get_softc(ata_devclass, ctlr))) {
-	    ata_identify(ch->dev);
-	}
-    }
-
-    /* release the hook that got us here, we are only needed once during boot */
-    if (ata_delayed_attach) {
-	config_intrhook_disestablish(ata_delayed_attach);
-	free(ata_delayed_attach, M_TEMP);
-	ata_delayed_attach = NULL;
-    }
-
-    mtx_unlock(&Giant);     /* newbus suckage dealt with, release Giant */
-}
-#endif
-
 /*
  * misc support functions
  */
-#ifndef ATA_CAM
-static device_t
-ata_add_child(device_t parent, struct ata_device *atadev, int unit)
-{
-    device_t child;
-
-    if ((child = device_add_child(parent, (unit < 0) ? NULL : "ad", unit))) {
-	device_set_softc(child, atadev);
-	device_quiet(child);
-	atadev->dev = child;
-	atadev->max_iosize = DEV_BSIZE;
-	atadev->mode = ATA_PIO_MAX;
-    }
-    return child;
-}
-#endif
-
-#ifndef ATA_CAM
-int
-ata_getparam(struct ata_device *atadev, int init)
-{
-    struct ata_channel *ch = device_get_softc(device_get_parent(atadev->dev));
-    struct ata_request *request;
-    const char *res;
-    char buf[64];
-    u_int8_t command = 0;
-    int error = ENOMEM, retries = 2, mode = -1;
-
-    if (ch->devices & (ATA_ATA_MASTER << atadev->unit))
-	command = ATA_ATA_IDENTIFY;
-    if (ch->devices & (ATA_ATAPI_MASTER << atadev->unit))
-	command = ATA_ATAPI_IDENTIFY;
-    if (!command)
-	return ENXIO;
-
-    while (retries-- > 0 && error) {
-	if (!(request = ata_alloc_request()))
-	    break;
-	request->dev = atadev->dev;
-	request->timeout = 1;
-	request->retries = 0;

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-all mailing list