diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2007-09-10 20:29:51 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2007-09-10 20:29:51 +0000 |
commit | c4f42c01876981fed5feb5928db5ade75a9da2c3 (patch) | |
tree | cb746662508b3d68b7ccf841196c688448dd746b /sys/arch/mac68k/dev | |
parent | 6655e6cfc2764db20f7539845edb28d545478731 (diff) |
Pass a real ipl level to add_nubus_intr(), and make sure the interrupt
handler is invoked with spl raised to the given level, otherwise all nubus
interrupts are processed at level 2.
Diffstat (limited to 'sys/arch/mac68k/dev')
-rw-r--r-- | sys/arch/mac68k/dev/grf_mv.c | 56 | ||||
-rw-r--r-- | sys/arch/mac68k/dev/if_ae_nubus.c | 4 | ||||
-rw-r--r-- | sys/arch/mac68k/dev/if_sm_nubus.c | 5 | ||||
-rw-r--r-- | sys/arch/mac68k/dev/if_sn_nubus.c | 4 | ||||
-rw-r--r-- | sys/arch/mac68k/dev/if_sn_obio.c | 5 |
5 files changed, 38 insertions, 36 deletions
diff --git a/sys/arch/mac68k/dev/grf_mv.c b/sys/arch/mac68k/dev/grf_mv.c index 4f76744acdd..1952836e6f3 100644 --- a/sys/arch/mac68k/dev/grf_mv.c +++ b/sys/arch/mac68k/dev/grf_mv.c @@ -1,4 +1,4 @@ -/* $OpenBSD: grf_mv.c,v 1.33 2007/01/12 13:52:07 martin Exp $ */ +/* $OpenBSD: grf_mv.c,v 1.34 2007/09/10 20:29:46 miod Exp $ */ /* $NetBSD: grf_nubus.c,v 1.62 2001/01/22 20:27:02 briggs Exp $ */ /* @@ -235,17 +235,17 @@ macfb_nubus_attach(struct device *parent, struct device *self, void *aux) case NUBUS_DRHW_PVC: sc->cli_offset = 0xa0000; sc->cli_value = 0; - add_nubus_intr(na->slot, grfmv_intr_generic_write1, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write1, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_WVC: sc->cli_offset = 0xa00000; sc->cli_value = 0; - add_nubus_intr(na->slot, grfmv_intr_generic_write1, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write1, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_COLORMAX: - add_nubus_intr(na->slot, grfmv_intr_cmax, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_cmax, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_SE30: @@ -254,48 +254,48 @@ macfb_nubus_attach(struct device *parent, struct device *self, void *aux) case NUBUS_DRHW_MDC: sc->cli_offset = 0x200148; sc->cli_value = 1; - add_nubus_intr(na->slot, grfmv_intr_generic_write4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write4, sc, sc->sc_dev.dv_xname); /* Enable interrupts; to disable, write 0x7 to this location */ bus_space_write_4(sc->sc_tag, sc->sc_regh, 0x20013C, 5); break; case NUBUS_DRHW_CB264: - add_nubus_intr(na->slot, grfmv_intr_cb264, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_cb264, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_CB364: - add_nubus_intr(na->slot, grfmv_intr_cb364, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_cb364, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RPC8: sc->cli_offset = 0xfdff8f; sc->cli_value = 0xff; - add_nubus_intr(na->slot, grfmv_intr_generic_write1, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write1, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RPC8XJ: sc->cli_value = 0x66; - add_nubus_intr(na->slot, grfmv_intr_radius, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_radius, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RPC24X: case NUBUS_DRHW_BOOGIE: sc->cli_value = 0x64; - add_nubus_intr(na->slot, grfmv_intr_radius, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_radius, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RPC24XP: - add_nubus_intr(na->slot, grfmv_intr_radius24, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_radius24, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RADGSC: - add_nubus_intr(na->slot, grfmv_intr_radius_gsc, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_radius_gsc, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RDCGX: case NUBUS_DRHW_MPGX: - add_nubus_intr(na->slot, grfmv_intr_radius_gx, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_radius_gx, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_FIILX: @@ -303,34 +303,34 @@ macfb_nubus_attach(struct device *parent, struct device *self, void *aux) case NUBUS_DRHW_FUTURASX: sc->cli_offset = 0xf05000; sc->cli_value = 0x80; - add_nubus_intr(na->slot, grfmv_intr_generic_write1, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write1, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_SAM768: - add_nubus_intr(na->slot, grfmv_intr_cti, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_cti, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_SUPRGFX: - add_nubus_intr(na->slot, grfmv_intr_supermacgfx, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_supermacgfx, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_SPECTRM8: sc->cli_offset = 0x0de178; sc->cli_value = 0x80; - add_nubus_intr(na->slot, grfmv_intr_generic_or4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_or4, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_LAPIS: - add_nubus_intr(na->slot, grfmv_intr_lapis, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_lapis, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_RELAX200: - add_nubus_intr(na->slot, grfmv_intr_relax_200, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_relax_200, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_BAER: case NUBUS_DRHW_FORMAC: - add_nubus_intr(na->slot, grfmv_intr_formac, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_formac, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_ROPS24LXI: @@ -339,41 +339,41 @@ macfb_nubus_attach(struct device *parent, struct device *self, void *aux) case NUBUS_DRHW_THUNDER24: sc->cli_offset = 0xfb0010; sc->cli_value = 0x00; - add_nubus_intr(na->slot, grfmv_intr_generic_write4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write4, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_ROPSPPGT: sc->cli_offset = 0xf50010; sc->cli_value = 0x02; - add_nubus_intr(na->slot, grfmv_intr_generic_write4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write4, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_VIMAGE: - add_nubus_intr(na->slot, grfmv_intr_vimage, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_vimage, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_GVIMAGE: - add_nubus_intr(na->slot, grfmv_intr_gvimage, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_gvimage, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_MC2124NB: sc->cli_offset = 0xfd1000; sc->cli_value = 0x00; - add_nubus_intr(na->slot, grfmv_intr_generic_write4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write4, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_MICRON: sc->cli_offset = 0xa00014; sc->cli_value = 0; - add_nubus_intr(na->slot, grfmv_intr_generic_write4, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_generic_write4, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_MVC: - add_nubus_intr(na->slot, grfmv_intr_mvc, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_mvc, sc, sc->sc_dev.dv_xname); break; case NUBUS_DRHW_VILTRO340: - add_nubus_intr(na->slot, grfmv_intr_viltro_340, sc, + add_nubus_intr(na->slot, IPL_TTY, grfmv_intr_viltro_340, sc, sc->sc_dev.dv_xname); break; default: diff --git a/sys/arch/mac68k/dev/if_ae_nubus.c b/sys/arch/mac68k/dev/if_ae_nubus.c index fd5d165275b..39664052df3 100644 --- a/sys/arch/mac68k/dev/if_ae_nubus.c +++ b/sys/arch/mac68k/dev/if_ae_nubus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_ae_nubus.c,v 1.17 2007/01/22 13:17:45 martin Exp $ */ +/* $OpenBSD: if_ae_nubus.c,v 1.18 2007/09/10 20:29:46 miod Exp $ */ /* $NetBSD: if_ae_nubus.c,v 1.17 1997/05/01 18:17:16 briggs Exp $ */ /* @@ -378,7 +378,7 @@ ae_nubus_attach(parent, self, aux) } /* make sure interrupts are vectored to us */ - add_nubus_intr(na->slot, dp8390_intr, sc, sc->sc_dev.dv_xname); + add_nubus_intr(na->slot, IPL_NET, dp8390_intr, sc, sc->sc_dev.dv_xname); } static int diff --git a/sys/arch/mac68k/dev/if_sm_nubus.c b/sys/arch/mac68k/dev/if_sm_nubus.c index fd8dbab67bc..16b47774682 100644 --- a/sys/arch/mac68k/dev/if_sm_nubus.c +++ b/sys/arch/mac68k/dev/if_sm_nubus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_sm_nubus.c,v 1.1 2006/01/29 15:58:20 martin Exp $ */ +/* $OpenBSD: if_sm_nubus.c,v 1.2 2007/09/10 20:29:46 miod Exp $ */ /* $NetBSD: if_sm_nubus.c,v 1.2 2000/08/01 13:08:39 briggs Exp $ */ /* @@ -161,5 +161,6 @@ sm_nubus_attach(parent, self, aux) smc91cxx_attach(smc, myaddr); - add_nubus_intr(na->slot, smc91cxx_intr, smc, smc->sc_dev.dv_xname); + add_nubus_intr(na->slot, IPL_NET, smc91cxx_intr, smc, + smc->sc_dev.dv_xname); } diff --git a/sys/arch/mac68k/dev/if_sn_nubus.c b/sys/arch/mac68k/dev/if_sn_nubus.c index 3b7ad8936ee..5a2f6698961 100644 --- a/sys/arch/mac68k/dev/if_sn_nubus.c +++ b/sys/arch/mac68k/dev/if_sn_nubus.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_sn_nubus.c,v 1.18 2006/03/23 04:10:13 brad Exp $ */ +/* $OpenBSD: if_sn_nubus.c,v 1.19 2007/09/10 20:29:46 miod Exp $ */ /* $NetBSD: if_sn_nubus.c,v 1.13 1997/05/11 19:11:34 scottr Exp $ */ /* * Copyright (C) 1997 Allen Briggs @@ -257,7 +257,7 @@ sn_nubus_attach(struct device *parent, struct device *self, void *aux) return; } - add_nubus_intr(sc->slotno, snintr, sc, sc->sc_dev.dv_xname); + add_nubus_intr(sc->slotno, IPL_NET, snintr, sc, sc->sc_dev.dv_xname); } static int diff --git a/sys/arch/mac68k/dev/if_sn_obio.c b/sys/arch/mac68k/dev/if_sn_obio.c index 766985d2cf3..84794e924d1 100644 --- a/sys/arch/mac68k/dev/if_sn_obio.c +++ b/sys/arch/mac68k/dev/if_sn_obio.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_sn_obio.c,v 1.23 2006/03/23 04:17:23 brad Exp $ */ +/* $OpenBSD: if_sn_obio.c,v 1.24 2007/09/10 20:29:46 miod Exp $ */ /* $NetBSD: if_sn_obio.c,v 1.9 1997/04/22 20:56:15 scottr Exp $ */ /* @@ -181,7 +181,8 @@ sn_obio_attach(struct device *parent, struct device *self, void *aux) if (mac68k_machine.aux_interrupts) intr_establish(snintr, sc, 3, sc->sc_dev.dv_xname); else - add_nubus_intr(sc->slotno, snintr, sc, sc->sc_dev.dv_xname); + add_nubus_intr(sc->slotno, IPL_NET, snintr, sc, + sc->sc_dev.dv_xname); } static int |