Date: Wed, 21 Mar 2012 08:57:15 +0000 (UTC) From: Marius Strobl <marius@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r233274 - in head/sys/dev/ata: . chipsets Message-ID: <201203210857.q2L8vFLB062984@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: marius Date: Wed Mar 21 08:57:15 2012 New Revision: 233274 URL: http://svn.freebsd.org/changeset/base/233274 Log: Remove remnants of ATA_LOCKING uses in the ATA_CAM case and wrap it along with functions, SYSCTLs and tunables that are not used with ATA_CAM in #ifndef ATA_CAM, similar to the existing #ifdef'ed ATA_CAM code for the other way around. This makes it easier to understand which parts of ata(4) actually are used in the new world order and to later on remove the !ATA_CAM bits. It also makes it obvious that there is something fishy with the C-bus front-end as well as in the ATP850 support, as these used ATA_LOCKING which is defunct in the ATA_CAM case. When fixing the former, ATA_LOCKING probably needs to be brought back in some form or other. Reviewed by: mav MFC after: 1 week Modified: head/sys/dev/ata/ata-all.c head/sys/dev/ata/ata-cbus.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/chipsets/ata-acard.c Modified: head/sys/dev/ata/ata-all.c ============================================================================== --- head/sys/dev/ata/ata-all.c Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/ata-all.c Wed Mar 21 08:57:15 2012 (r233274) @@ -79,9 +79,11 @@ static void ataaction(struct cam_sim *si 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); @@ -90,27 +92,36 @@ static void ata_periodic_poll(void *data /* 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"); @@ -120,6 +131,7 @@ SYSCTL_INT(_hw_ata, OID_AUTO, wc, CTLFLA 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 @@ -186,13 +198,13 @@ ata_attach(device_t dev) 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); -#ifndef ATA_CAM ATA_RESET(dev); -#endif ATA_LOCKING(dev, ATA_LF_UNLOCK); +#endif /* allocate DMA resources if DMA HW present*/ if (ch->dma.alloc) @@ -606,6 +618,7 @@ 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) { @@ -623,7 +636,9 @@ ata_check_80pin(device_t dev, int mode) } return mode; } +#endif +#ifndef ATA_CAM void ata_setmode(device_t dev) { @@ -644,6 +659,7 @@ ata_setmode(device_t dev) (error) ? "FAILURE " : "", ata_mode2str(mode)); atadev->mode = mode; } +#endif /* * device related interfaces @@ -732,6 +748,7 @@ ata_ioctl(struct cdev *dev, u_long cmd, } #endif +#ifndef ATA_CAM int ata_device_ioctl(device_t dev, u_long cmd, caddr_t data) { @@ -830,6 +847,7 @@ ata_device_ioctl(device_t dev, u_long cm return ENOTTY; } } +#endif #ifndef ATA_CAM static void @@ -878,6 +896,7 @@ ata_add_child(device_t parent, struct at } #endif +#ifndef ATA_CAM int ata_getparam(struct ata_device *atadev, int init) { @@ -983,6 +1002,7 @@ ata_getparam(struct ata_device *atadev, } return error; } +#endif #ifndef ATA_CAM int @@ -1188,6 +1208,7 @@ ata_udelay(int interval) pause("ataslp", interval/(1000000/hz)); } +#ifndef ATA_CAM char * ata_unit2str(struct ata_device *atadev) { @@ -1200,6 +1221,7 @@ ata_unit2str(struct ata_device *atadev) sprintf(str, "%s", atadev->unit == ATA_MASTER ? "master" : "slave"); return str; } +#endif const char * ata_mode2str(int mode) @@ -1260,6 +1282,7 @@ ata_str2mode(const char *str) return (-1); } +#ifndef ATA_CAM const char * ata_satarev2str(int rev) { @@ -1272,6 +1295,7 @@ ata_satarev2str(int rev) default: return "???"; } } +#endif int ata_atapi(device_t dev, int target) @@ -1281,6 +1305,7 @@ ata_atapi(device_t dev, int target) return (ch->devices & (ATA_ATAPI_MASTER << target)); } +#ifndef ATA_CAM int ata_pmode(struct ata_params *ap) { @@ -1304,7 +1329,9 @@ ata_pmode(struct ata_params *ap) return ATA_PIO0; return ATA_PIO0; } +#endif +#ifndef ATA_CAM int ata_wmode(struct ata_params *ap) { @@ -1316,7 +1343,9 @@ ata_wmode(struct ata_params *ap) return ATA_WDMA0; return -1; } +#endif +#ifndef ATA_CAM int ata_umode(struct ata_params *ap) { @@ -1338,7 +1367,9 @@ ata_umode(struct ata_params *ap) } return -1; } +#endif +#ifndef ATA_CAM int ata_limit_mode(device_t dev, int mode, int maxmode) { @@ -1358,7 +1389,9 @@ ata_limit_mode(device_t dev, int mode, i return mode; } +#endif +#ifndef ATA_CAM static void bswap(int8_t *buf, int len) { @@ -1367,7 +1400,9 @@ bswap(int8_t *buf, int len) while (--ptr >= (u_int16_t*)buf) *ptr = ntohs(*ptr); } +#endif +#ifndef ATA_CAM static void btrim(int8_t *buf, int len) { @@ -1379,7 +1414,9 @@ btrim(int8_t *buf, int len) for (ptr = buf + len - 1; ptr >= buf && *ptr == ' '; --ptr) *ptr = 0; } +#endif +#ifndef ATA_CAM static void bpack(int8_t *src, int8_t *dst, int len) { @@ -1402,6 +1439,7 @@ bpack(int8_t *src, int8_t *dst, int len) if (j < len) dst[j] = 0x00; } +#endif #ifdef ATA_CAM void Modified: head/sys/dev/ata/ata-cbus.c ============================================================================== --- head/sys/dev/ata/ata-cbus.c Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/ata-cbus.c Wed Mar 21 08:57:15 2012 (r233274) @@ -339,11 +339,14 @@ static int ata_cbuschannel_banking(device_t dev, int flags) { struct ata_cbus_controller *ctlr = device_get_softc(device_get_parent(dev)); +#ifndef ATA_CAM struct ata_channel *ch = device_get_softc(dev); +#endif int res; mtx_lock(&ctlr->bank_mtx); switch (flags) { +#ifndef ATA_CAM case ATA_LF_LOCK: if (ctlr->locked_bank == -1) ctlr->locked_bank = ch->unit; @@ -368,6 +371,7 @@ ata_cbuschannel_banking(device_t dev, in } } break; +#endif case ATA_LF_WHICH: break; @@ -385,8 +389,10 @@ static device_method_t ata_cbuschannel_m DEVMETHOD(device_suspend, ata_cbuschannel_suspend), DEVMETHOD(device_resume, ata_cbuschannel_resume), +#ifndef ATA_CAM /* ATA methods */ DEVMETHOD(ata_locking, ata_cbuschannel_banking), +#endif { 0, 0 } }; Modified: head/sys/dev/ata/ata-pci.c ============================================================================== --- head/sys/dev/ata/ata-pci.c Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/ata-pci.c Wed Mar 21 08:57:15 2012 (r233274) @@ -699,6 +699,7 @@ ata_pcichannel_resume(device_t dev) } +#ifndef ATA_CAM static int ata_pcichannel_locking(device_t dev, int mode) { @@ -710,6 +711,7 @@ ata_pcichannel_locking(device_t dev, int else return ch->unit; } +#endif static void ata_pcichannel_reset(device_t dev) @@ -766,7 +768,9 @@ static device_method_t ata_pcichannel_me /* ATA methods */ DEVMETHOD(ata_setmode, ata_pcichannel_setmode), DEVMETHOD(ata_getrev, ata_pcichannel_getrev), +#ifndef ATA_CAM DEVMETHOD(ata_locking, ata_pcichannel_locking), +#endif DEVMETHOD(ata_reset, ata_pcichannel_reset), { 0, 0 } Modified: head/sys/dev/ata/ata-pci.h ============================================================================== --- head/sys/dev/ata/ata-pci.h Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/ata-pci.h Wed Mar 21 08:57:15 2012 (r233274) @@ -62,7 +62,9 @@ struct ata_pci_controller { int (*ch_detach)(device_t); int (*ch_suspend)(device_t); int (*ch_resume)(device_t); +#ifndef ATA_CAM int (*locking)(device_t, int); +#endif void (*reset)(device_t); int (*setmode)(device_t, int, int); int (*getrev)(device_t, int); Modified: head/sys/dev/ata/ata-queue.c ============================================================================== --- head/sys/dev/ata/ata-queue.c Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/ata-queue.c Wed Mar 21 08:57:15 2012 (r233274) @@ -43,11 +43,14 @@ __FBSDID("$FreeBSD$"); #include <dev/ata/ata-all.h> #include <ata_if.h> +#ifndef ATA_CAM /* prototypes */ static void ata_completed(void *, int); static void ata_sort_queue(struct ata_channel *ch, struct ata_request *request); -static char *ata_skey2str(u_int8_t); +static const char *ata_skey2str(u_int8_t); +#endif +#ifndef ATA_CAM void ata_queue_request(struct ata_request *request) { @@ -123,7 +126,9 @@ ata_queue_request(struct ata_request *re sema_destroy(&request->done); } } +#endif +#ifndef ATA_CAM int ata_controlcmd(device_t dev, u_int8_t command, u_int16_t feature, u_int64_t lba, u_int16_t count) @@ -153,7 +158,9 @@ ata_controlcmd(device_t dev, u_int8_t co } return error; } +#endif +#ifndef ATA_CAM int ata_atapicmd(device_t dev, u_int8_t *ccb, caddr_t data, int count, int flags, int timeout) @@ -176,7 +183,9 @@ ata_atapicmd(device_t dev, u_int8_t *ccb } return error; } +#endif +#ifndef ATA_CAM void ata_start(device_t dev) { @@ -235,7 +244,9 @@ ata_start(device_t dev) } } } +#endif +#ifndef ATA_CAM void ata_finish(struct ata_request *request) { @@ -263,7 +274,9 @@ ata_finish(struct ata_request *request) } } } +#endif +#ifndef ATA_CAM static void ata_completed(void *context, int dummy) { @@ -495,6 +508,7 @@ ata_completed(void *context, int dummy) if (ch) ata_start(ch->dev); } +#endif void ata_timeout(struct ata_request *request) @@ -520,8 +534,8 @@ ata_timeout(struct ata_request *request) ata_cam_end_transaction(ch->dev, request); #endif mtx_unlock(&ch->state_mtx); - ATA_LOCKING(ch->dev, ATA_LF_UNLOCK); #ifndef ATA_CAM + ATA_LOCKING(ch->dev, ATA_LF_UNLOCK); ata_finish(request); #endif } @@ -530,6 +544,7 @@ ata_timeout(struct ata_request *request) } } +#ifndef ATA_CAM void ata_fail_requests(device_t dev) { @@ -568,7 +583,9 @@ ata_fail_requests(device_t dev) ata_finish(request); } } +#endif +#ifndef ATA_CAM /* * Rudely drop all requests queued to the channel of specified device. * XXX: The requests are leaked, use only in fatal case. @@ -586,7 +603,9 @@ ata_drop_requests(device_t dev) } mtx_unlock(&ch->queue_mtx); } +#endif +#ifndef ATA_CAM static u_int64_t ata_get_lba(struct ata_request *request) { @@ -608,7 +627,9 @@ ata_get_lba(struct ata_request *request) else return request->u.ata.lba; } +#endif +#ifndef ATA_CAM static void ata_sort_queue(struct ata_channel *ch, struct ata_request *request) { @@ -661,6 +682,7 @@ ata_sort_queue(struct ata_channel *ch, s ch->freezepoint = request; TAILQ_INSERT_AFTER(&ch->ata_queue, this, request, chain); } +#endif char * ata_cmd2str(struct ata_request *request) @@ -776,7 +798,8 @@ ata_cmd2str(struct ata_request *request) return buffer; } -static char * +#ifndef ATA_CAM +static const char * ata_skey2str(u_int8_t skey) { switch (skey) { @@ -799,3 +822,4 @@ ata_skey2str(u_int8_t skey) default: return("UNKNOWN"); } } +#endif Modified: head/sys/dev/ata/chipsets/ata-acard.c ============================================================================== --- head/sys/dev/ata/chipsets/ata-acard.c Wed Mar 21 08:50:47 2012 (r233273) +++ head/sys/dev/ata/chipsets/ata-acard.c Wed Mar 21 08:57:15 2012 (r233274) @@ -51,26 +51,29 @@ __FBSDID("$FreeBSD$"); #include <dev/ata/ata-pci.h> #include <ata_if.h> +#ifndef ATA_CAM struct ata_serialize { struct mtx locked_mtx; int locked_ch; int restart_ch; }; +#endif /* local prototypes */ static int ata_acard_chipinit(device_t dev); -static int ata_acard_chipdeinit(device_t dev); static int ata_acard_ch_attach(device_t dev); static int ata_acard_status(device_t dev); static int ata_acard_850_setmode(device_t dev, int target, int mode); static int ata_acard_86X_setmode(device_t dev, int target, int mode); +#ifndef ATA_CAM +static int ata_acard_chipdeinit(device_t dev); static int ata_serialize(device_t dev, int flags); static void ata_serialize_init(struct ata_serialize *serial); +#endif /* misc defines */ #define ATP_OLD 1 - /* * Acard chipset support functions */ @@ -94,7 +97,9 @@ ata_acard_probe(device_t dev) ata_set_desc(dev); ctlr->chipinit = ata_acard_chipinit; +#ifndef ATA_CAM ctlr->chipdeinit = ata_acard_chipdeinit; +#endif return (BUS_PROBE_DEFAULT); } @@ -102,7 +107,9 @@ static int ata_acard_chipinit(device_t dev) { struct ata_pci_controller *ctlr = device_get_softc(dev); +#ifndef ATA_CAM struct ata_serialize *serial; +#endif if (ata_setup_interrupt(dev, ata_generic_intr)) return ENXIO; @@ -111,17 +118,20 @@ ata_acard_chipinit(device_t dev) ctlr->ch_detach = ata_pci_ch_detach; if (ctlr->chip->cfg1 == ATP_OLD) { ctlr->setmode = ata_acard_850_setmode; +#ifndef ATA_CAM ctlr->locking = ata_serialize; serial = malloc(sizeof(struct ata_serialize), M_ATAPCI, M_WAITOK | M_ZERO); ata_serialize_init(serial); ctlr->chipset_data = serial; +#endif } else ctlr->setmode = ata_acard_86X_setmode; return 0; } +#ifndef ATA_CAM static int ata_acard_chipdeinit(device_t dev) { @@ -136,6 +146,7 @@ ata_acard_chipdeinit(device_t dev) } return (0); } +#endif static int ata_acard_ch_attach(device_t dev) @@ -228,6 +239,7 @@ ata_acard_86X_setmode(device_t dev, int return (mode); } +#ifndef ATA_CAM static void ata_serialize_init(struct ata_serialize *serial) { @@ -277,5 +289,6 @@ ata_serialize(device_t dev, int flags) mtx_unlock(&serial->locked_mtx); return res; } +#endif ATA_DECLARE_DRIVER(ata_acard);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201203210857.q2L8vFLB062984>