PERFORCE change 53687 for review
Scott Long
scottl at FreeBSD.org
Fri May 28 14:08:03 PDT 2004
http://perforce.freebsd.org/chv.cgi?CH=53687
Change 53687 by scottl at scottl-esp-sparc64 on 2004/05/28 14:06:53
Use FreeBSD conventions for allocating an interrupt. Remove the
code for negotiating the sbus burst size as that is already done
but the sbus accessor. Remove other barriers to having this compile.
Affected files ...
.. //depot/projects/scottl-esp/src/sys/dev/esp/esp_sbus.c#7 edit
.. //depot/projects/scottl-esp/src/sys/dev/esp/ncr53c9x.c#3 edit
.. //depot/projects/scottl-esp/src/sys/dev/esp/ncr53c9xvar.h#4 edit
Differences ...
==== //depot/projects/scottl-esp/src/sys/dev/esp/esp_sbus.c#7 (text+ko) ====
@@ -68,6 +68,7 @@
struct esp_softc {
struct ncr53c9x_softc sc_ncr53c9x; /* glue to MI code */
+ struct device *sc_dev;
#if 0
struct sbusdev sc_sd; /* sbus device */
#endif
@@ -77,6 +78,10 @@
bus_space_handle_t sc_regh;
bus_space_tag_t sc_regt;
+ int sc_irqrid;
+ struct resource *sc_irqres;
+ void *sc_irq;
+
struct lsi64854_softc *sc_dma; /* pointer to my dma */
int sc_pri; /* SBUS priority */
@@ -152,8 +157,9 @@
struct ncr53c9x_softc *sc = &esc->sc_ncr53c9x;
struct lsi64854_softc *lsc;
phandle_t node;
- int burst, sbusburst;
+ int burst;
+ esc->sc_dev = dev;
node = sbus_get_node(dev);
if (OF_getprop(node, "initiator-id", &sc->sc_id,
sizeof(sc->sc_id)) == -1)
@@ -192,31 +198,12 @@
lsc->sc_regt = rman_get_bustag(lsc->sc_res);
lsc->sc_regh = rman_get_bushandle(lsc->sc_res);
- /*
- * XXX is this common(from bpp.c), the same in dma_sbus...etc.
- *
- * Get transfer burst size from PROM and plug it into the
- * controller registers. This is needed on the Sun4m; do
- * others need it too?
- */
-#if 0
- sbusburst = ((struct sbus_softc *)parent)->sc_burst;
-#endif
- if (sbusburst == 0)
- sbusburst = SBUS_BURST_32 - 1; /* 1->16 */
-
burst = sbus_get_burstsz(dev);
#if ESP_SBUS_DEBUG
- printf("espattach_sbus: burst 0x%x, sbus 0x%x\n", burst, sbusburst);
+ printf("espattach_sbus: burst 0x%x\n", burst);
#endif
- if (burst == -1)
- /* take SBus burst sizes */
- burst = sbusburst;
-
- /* Clamp at parent's burst sizes */
- burst &= sbusburst;
lsc->sc_burst = (burst & SBUS_BURST_32) ? 32 :
(burst & SBUS_BURST_16) ? 16 : 0;
@@ -258,7 +245,6 @@
espattach(struct esp_softc *esc, struct ncr53c9x_glue *gluep)
{
struct ncr53c9x_softc *sc = &esc->sc_ncr53c9x;
- void *icookie;
unsigned int uid = 0;
/*
@@ -358,16 +344,23 @@
}
/* Establish interrupt channel */
- icookie = bus_intr_establish(esc->sc_bustag, esc->sc_pri, IPL_BIO,
- ncr53c9x_intr, sc);
+ esc->sc_irqrid = 0;
+ if ((esc->sc_irqres = bus_alloc_resource_any(esc->sc_dev, SYS_RES_IRQ,
+ &esc->sc_irqrid, RF_SHAREABLE|RF_ACTIVE)) == NULL) {
+ device_printf(esc->sc_dev, "Cannot allocate interrupt\n");
+ return;
+ }
+ if (bus_setup_intr(esc->sc_dev, esc->sc_irqres,
+ INTR_TYPE_BIO|INTR_ENTROPY, ncr53c9x_intr, sc, &esc->sc_irq)) {
+ device_printf(esc->sc_dev, "Cannot set up interrupt\n");
+ return;
+ }
/* Turn on target selection using the `dma' method */
if (sc->sc_rev != NCR_VARIANT_FAS366)
sc->sc_features |= NCR_F_DMASELECT;
/* Do the common parts of attachment. */
- sc->sc_adapter.adapt_minphys = minphys;
- sc->sc_adapter.adapt_request = ncr53c9x_scsipi_request;
ncr53c9x_attach(sc);
}
==== //depot/projects/scottl-esp/src/sys/dev/esp/ncr53c9x.c#3 (text+ko) ====
@@ -2059,7 +2059,7 @@
*
* Most of this needs verifying.
*/
-int
+void
ncr53c9x_intr(arg)
void *arg;
{
==== //depot/projects/scottl-esp/src/sys/dev/esp/ncr53c9xvar.h#4 (text+ko) ====
@@ -448,7 +448,7 @@
int ncr53c9x_detach(struct ncr53c9x_softc *, int);
void ncr53c9x_action(struct cam_sim *, union ccb *);
void ncr53c9x_reset(struct ncr53c9x_softc *);
-int ncr53c9x_intr(void *);
+void ncr53c9x_intr(void *);
void ncr53c9x_init(struct ncr53c9x_softc *, int);
#endif /* _DEV_IC_NCR53C9XVAR_H_ */
More information about the p4-projects
mailing list