Deleted Added
full compact
isp_sbus.c (166165) isp_sbus.c (166177)
1/*-
2 * Copyright (c) 1997-2006 by Matthew Jacob
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

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

24 * SUCH DAMAGE.
25 */
26/*
27 * SBus specific probe and attach routines for Qlogic ISP SCSI adapters.
28 * FreeBSD Version.
29 */
30
31#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1997-2006 by Matthew Jacob
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

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

24 * SUCH DAMAGE.
25 */
26/*
27 * SBus specific probe and attach routines for Qlogic ISP SCSI adapters.
28 * FreeBSD Version.
29 */
30
31#include <sys/cdefs.h>
32__FBSDID("$FreeBSD: head/sys/dev/isp/isp_sbus.c 166165 2007-01-21 19:32:51Z marius $");
32__FBSDID("$FreeBSD: head/sys/dev/isp/isp_sbus.c 166177 2007-01-23 00:02:29Z mjacob $");
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#if __FreeBSD_version >= 700000
37#include <sys/linker.h>
38#include <sys/firmware.h>
39#endif
40#include <sys/bus.h>

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

469 bus_addr_t addr = segs->ds_addr;
470
471 isp->isp_rquest_dma = addr;
472 addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp));
473 isp->isp_result_dma = addr;
474 }
475}
476
33
34#include <sys/param.h>
35#include <sys/systm.h>
36#if __FreeBSD_version >= 700000
37#include <sys/linker.h>
38#include <sys/firmware.h>
39#endif
40#include <sys/bus.h>

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

469 bus_addr_t addr = segs->ds_addr;
470
471 isp->isp_rquest_dma = addr;
472 addr += ISP_QUEUE_SIZE(RQUEST_QUEUE_LEN(isp));
473 isp->isp_result_dma = addr;
474 }
475}
476
477/*
478 * Should be BUS_SPACE_MAXSIZE, but MAXPHYS is larger than BUS_SPACE_MAXSIZE
479 */
480#define ISP_NSEGS ((MAXPHYS / PAGE_SIZE) + 1)
481
482#if __FreeBSD_version < 700020
483#define BUS_DMA_ROOTARG NULL
484#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \
485 bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \
486 busdma_lock_mutex, &Giant, z)
487#else
488#define BUS_DMA_ROOTARG bus_get_dma_tag(sbs->sbus_dev)
489#define isp_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, z) \
490 bus_dma_tag_create(a, b, c, d, e, f, g, h, i, j, k, \
491 busdma_lock_mutex, &Giant, z)
492#endif
493
494static int
495isp_sbus_mbxdma(ispsoftc_t *isp)
496{
497 struct isp_sbussoftc *sbs = (struct isp_sbussoftc *)isp;
498 caddr_t base;
499 uint32_t len;
500 int i, error, ns;
501 struct imush im;
502
503 /*
504 * Already been here? If so, leave...
505 */
506 if (isp->isp_rquest) {
507 return (0);
508 }
509
510 ISP_UNLOCK(isp);
511
477static int
478isp_sbus_mbxdma(ispsoftc_t *isp)
479{
480 struct isp_sbussoftc *sbs = (struct isp_sbussoftc *)isp;
481 caddr_t base;
482 uint32_t len;
483 int i, error, ns;
484 struct imush im;
485
486 /*
487 * Already been here? If so, leave...
488 */
489 if (isp->isp_rquest) {
490 return (0);
491 }
492
493 ISP_UNLOCK(isp);
494
512 if (isp_dma_tag_create(BUS_DMA_ROOTARG, 1, BUS_SPACE_MAXADDR_24BIT+1,
513 BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR_32BIT,
514 NULL, NULL, BUS_SPACE_MAXSIZE_32BIT, ISP_NSEGS,
515 BUS_SPACE_MAXADDR_24BIT, 0,
516 &sbs->dmat)) {
495 if (isp_dma_tag_create(BUS_DMA_ROOTARG(sbs->sbus_dev), 1,
496 BUS_SPACE_MAXADDR_24BIT+1, BUS_SPACE_MAXADDR_32BIT,
497 BUS_SPACE_MAXADDR_32BIT, NULL, NULL, BUS_SPACE_MAXSIZE_32BIT,
498 ISP_NSEGS, BUS_SPACE_MAXADDR_24BIT, 0, &sbs->dmat)) {
517 isp_prt(isp, ISP_LOGERR, "could not create master dma tag");
518 ISP_LOCK(isp);
519 return(1);
520 }
521
522 len = sizeof (XS_T **) * isp->isp_maxcmds;
523 isp->isp_xflist = (XS_T **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO);
524 if (isp->isp_xflist == NULL) {

--- 358 unchanged lines hidden ---
499 isp_prt(isp, ISP_LOGERR, "could not create master dma tag");
500 ISP_LOCK(isp);
501 return(1);
502 }
503
504 len = sizeof (XS_T **) * isp->isp_maxcmds;
505 isp->isp_xflist = (XS_T **) malloc(len, M_DEVBUF, M_WAITOK | M_ZERO);
506 if (isp->isp_xflist == NULL) {

--- 358 unchanged lines hidden ---