Deleted Added
sdiff udiff text old ( 208818 ) new ( 210471 )
full compact
1/*-
2 * Copyright (c) 2010 Alexander Motin <mav@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 */
26
27#include <sys/cdefs.h>
28__FBSDID("$FreeBSD: head/sys/dev/mvs/mvs.c 210471 2010-07-25 15:43:52Z mav $");
29
30#include <sys/param.h>
31#include <sys/module.h>
32#include <sys/systm.h>
33#include <sys/kernel.h>
34#include <sys/ata.h>
35#include <sys/bus.h>
36#include <sys/endian.h>
37#include <sys/malloc.h>
38#include <sys/lock.h>
39#include <sys/mutex.h>
40#include <vm/uma.h>
41#include <machine/stdarg.h>
42#include <machine/resource.h>
43#include <machine/bus.h>
44#include <sys/rman.h>
45#include <dev/pci/pcivar.h>
46#include "mvs.h"
47
48#include <cam/cam.h>
49#include <cam/cam_ccb.h>
50#include <cam/cam_sim.h>
51#include <cam/cam_xpt_sim.h>
52#include <cam/cam_debug.h>
53

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

2013 return (-1);
2014 }
2015 return (0);
2016}
2017
2018static void
2019mvsaction(struct cam_sim *sim, union ccb *ccb)
2020{
2021 device_t dev, parent;
2022 struct mvs_channel *ch;
2023
2024 CAM_DEBUG(ccb->ccb_h.path, CAM_DEBUG_TRACE, ("mvsaction func_code=%x\n",
2025 ccb->ccb_h.func_code));
2026
2027 ch = (struct mvs_channel *)cam_sim_softc(sim);
2028 dev = ch->dev;
2029 switch (ccb->ccb_h.func_code) {

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

2148 case XPT_TERM_IO: /* Terminate the I/O process */
2149 /* XXX Implement */
2150 ccb->ccb_h.status = CAM_REQ_INVALID;
2151 break;
2152 case XPT_PATH_INQ: /* Path routing inquiry */
2153 {
2154 struct ccb_pathinq *cpi = &ccb->cpi;
2155
2156 parent = device_get_parent(dev);
2157 cpi->version_num = 1; /* XXX??? */
2158 cpi->hba_inquiry = PI_SDTR_ABLE;
2159 if (!(ch->quirks & MVS_Q_GENI)) {
2160 cpi->hba_inquiry |= PI_SATAPM;
2161 /* Gen-II is extremely slow with NCQ on PMP. */
2162 if ((ch->quirks & MVS_Q_GENIIE) || ch->pm_present == 0)
2163 cpi->hba_inquiry |= PI_TAG_ABLE;
2164 }

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

2177 strncpy(cpi->hba_vid, "Marvell", HBA_IDLEN);
2178 strncpy(cpi->dev_name, cam_sim_name(sim), DEV_IDLEN);
2179 cpi->unit_number = cam_sim_unit(sim);
2180 cpi->transport = XPORT_SATA;
2181 cpi->transport_version = XPORT_VERSION_UNSPECIFIED;
2182 cpi->protocol = PROTO_ATA;
2183 cpi->protocol_version = PROTO_VERSION_UNSPECIFIED;
2184 cpi->maxio = MAXPHYS;
2185 if ((ch->quirks & MVS_Q_SOC) == 0) {
2186 cpi->hba_vendor = pci_get_vendor(parent);
2187 cpi->hba_device = pci_get_device(parent);
2188 cpi->hba_subvendor = pci_get_subvendor(parent);
2189 cpi->hba_subdevice = pci_get_subdevice(parent);
2190 }
2191 cpi->ccb_h.status = CAM_REQ_CMP;
2192 break;
2193 }
2194 default:
2195 ccb->ccb_h.status = CAM_REQ_INVALID;
2196 break;
2197 }
2198 xpt_done(ccb);

--- 13 unchanged lines hidden ---