Deleted Added
full compact
schizo.c (205254) schizo.c (206018)
1/*-
2 * Copyright (c) 1999, 2000 Matthew R. Green
3 * Copyright (c) 2001 - 2003 by Thomas Moestl <tmm@FreeBSD.org>
4 * Copyright (c) 2005, 2007, 2008 by Marius Strobl <marius@FreeBSD.org>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

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

27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * from: NetBSD: psycho.c,v 1.39 2001/10/07 20:30:41 eeh Exp
31 * from: FreeBSD: psycho.c 183152 2008-09-18 19:45:22Z marius
32 */
33
34#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 1999, 2000 Matthew R. Green
3 * Copyright (c) 2001 - 2003 by Thomas Moestl <tmm@FreeBSD.org>
4 * Copyright (c) 2005, 2007, 2008 by Marius Strobl <marius@FreeBSD.org>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions

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

27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * from: NetBSD: psycho.c,v 1.39 2001/10/07 20:30:41 eeh Exp
31 * from: FreeBSD: psycho.c 183152 2008-09-18 19:45:22Z marius
32 */
33
34#include <sys/cdefs.h>
35__FBSDID("$FreeBSD: head/sys/sparc64/pci/schizo.c 205254 2010-03-17 20:01:01Z marius $");
35__FBSDID("$FreeBSD: head/sys/sparc64/pci/schizo.c 206018 2010-03-31 22:19:00Z marius $");
36
37/*
38 * Driver for `Schizo' Fireplane/Safari to PCI 2.1 and `Tomatillo' JBus to
39 * PCI 2.2 bridges
40 */
41
42#include "opt_ofw_pci.h"
43#include "opt_schizo.h"

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

184 device_t sds_ppb; /* farest PCI-PCI bridge */
185 uint8_t sds_bus; /* bus of farest PCI dev. */
186 uint8_t sds_slot; /* slot of farest PCI dev. */
187 uint8_t sds_func; /* func. of farest PCI dev. */
188};
189
190#define SCHIZO_PERF_CNT_QLTY 100
191
36
37/*
38 * Driver for `Schizo' Fireplane/Safari to PCI 2.1 and `Tomatillo' JBus to
39 * PCI 2.2 bridges
40 */
41
42#include "opt_ofw_pci.h"
43#include "opt_schizo.h"

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

184 device_t sds_ppb; /* farest PCI-PCI bridge */
185 uint8_t sds_bus; /* bus of farest PCI dev. */
186 uint8_t sds_slot; /* slot of farest PCI dev. */
187 uint8_t sds_func; /* func. of farest PCI dev. */
188};
189
190#define SCHIZO_PERF_CNT_QLTY 100
191
192#define SCHIZO_SPC_READ_8(spc, sc, offs) \
192#define SCHIZO_SPC_READ_8(spc, sc, offs) \
193 bus_read_8((sc)->sc_mem_res[(spc)], (offs))
193 bus_read_8((sc)->sc_mem_res[(spc)], (offs))
194#define SCHIZO_SPC_WRITE_8(spc, sc, offs, v) \
194#define SCHIZO_SPC_WRITE_8(spc, sc, offs, v) \
195 bus_write_8((sc)->sc_mem_res[(spc)], (offs), (v))
196
195 bus_write_8((sc)->sc_mem_res[(spc)], (offs), (v))
196
197#define SCHIZO_PCI_READ_8(sc, offs) \
197#define SCHIZO_PCI_READ_8(sc, offs) \
198 SCHIZO_SPC_READ_8(STX_PCI, (sc), (offs))
198 SCHIZO_SPC_READ_8(STX_PCI, (sc), (offs))
199#define SCHIZO_PCI_WRITE_8(sc, offs, v) \
199#define SCHIZO_PCI_WRITE_8(sc, offs, v) \
200 SCHIZO_SPC_WRITE_8(STX_PCI, (sc), (offs), (v))
200 SCHIZO_SPC_WRITE_8(STX_PCI, (sc), (offs), (v))
201#define SCHIZO_CTRL_READ_8(sc, offs) \
201#define SCHIZO_CTRL_READ_8(sc, offs) \
202 SCHIZO_SPC_READ_8(STX_CTRL, (sc), (offs))
202 SCHIZO_SPC_READ_8(STX_CTRL, (sc), (offs))
203#define SCHIZO_CTRL_WRITE_8(sc, offs, v) \
203#define SCHIZO_CTRL_WRITE_8(sc, offs, v) \
204 SCHIZO_SPC_WRITE_8(STX_CTRL, (sc), (offs), (v))
204 SCHIZO_SPC_WRITE_8(STX_CTRL, (sc), (offs), (v))
205#define SCHIZO_PCICFG_READ_8(sc, offs) \
205#define SCHIZO_PCICFG_READ_8(sc, offs) \
206 SCHIZO_SPC_READ_8(STX_PCICFG, (sc), (offs))
206 SCHIZO_SPC_READ_8(STX_PCICFG, (sc), (offs))
207#define SCHIZO_PCICFG_WRITE_8(sc, offs, v) \
207#define SCHIZO_PCICFG_WRITE_8(sc, offs, v) \
208 SCHIZO_SPC_WRITE_8(STX_PCICFG, (sc), (offs), (v))
208 SCHIZO_SPC_WRITE_8(STX_PCICFG, (sc), (offs), (v))
209#define SCHIZO_ICON_READ_8(sc, offs) \
209#define SCHIZO_ICON_READ_8(sc, offs) \
210 SCHIZO_SPC_READ_8(STX_ICON, (sc), (offs))
210 SCHIZO_SPC_READ_8(STX_ICON, (sc), (offs))
211#define SCHIZO_ICON_WRITE_8(sc, offs, v) \
211#define SCHIZO_ICON_WRITE_8(sc, offs, v) \
212 SCHIZO_SPC_WRITE_8(STX_ICON, (sc), (offs), (v))
213
214struct schizo_desc {
215 const char *sd_string;
216 int sd_mode;
217 const char *sd_name;
218};
219

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

1072 struct schizo_softc *sc = sds->sds_sc;
1073 uint32_t state;
1074
1075 (void)PCIB_READ_CONFIG(sds->sds_ppb, sds->sds_bus, sds->sds_slot,
1076 sds->sds_func, PCIR_VENDOR, 2);
1077 for (; atomic_cmpset_acq_32(&sc->sc_cdma_state,
1078 SCHIZO_CDMA_STATE_DONE, SCHIZO_CDMA_STATE_PENDING) == 0;)
1079 ;
212 SCHIZO_SPC_WRITE_8(STX_ICON, (sc), (offs), (v))
213
214struct schizo_desc {
215 const char *sd_string;
216 int sd_mode;
217 const char *sd_name;
218};
219

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

1072 struct schizo_softc *sc = sds->sds_sc;
1073 uint32_t state;
1074
1075 (void)PCIB_READ_CONFIG(sds->sds_ppb, sds->sds_bus, sds->sds_slot,
1076 sds->sds_func, PCIR_VENDOR, 2);
1077 for (; atomic_cmpset_acq_32(&sc->sc_cdma_state,
1078 SCHIZO_CDMA_STATE_DONE, SCHIZO_CDMA_STATE_PENDING) == 0;)
1079 ;
1080 SCHIZO_PCI_WRITE_8(sc, sc->sc_cdma_clr, 1);
1080 SCHIZO_PCI_WRITE_8(sc, sc->sc_cdma_clr, INTCLR_RECEIVED);
1081 microuptime(&cur);
1082 end.tv_sec = 1;
1083 end.tv_usec = 0;
1084 timevaladd(&end, &cur);
1085 for (; (state = atomic_load_32(&sc->sc_cdma_state)) !=
1086 SCHIZO_CDMA_STATE_DONE && timevalcmp(&cur, &end, <=);)
1087 microuptime(&cur);
1088 if (state != SCHIZO_CDMA_STATE_DONE)

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

1157}
1158
1159static void
1160schizo_intr_clear(void *arg)
1161{
1162 struct intr_vector *iv = arg;
1163 struct schizo_icarg *sica = iv->iv_icarg;
1164
1081 microuptime(&cur);
1082 end.tv_sec = 1;
1083 end.tv_usec = 0;
1084 timevaladd(&end, &cur);
1085 for (; (state = atomic_load_32(&sc->sc_cdma_state)) !=
1086 SCHIZO_CDMA_STATE_DONE && timevalcmp(&cur, &end, <=);)
1087 microuptime(&cur);
1088 if (state != SCHIZO_CDMA_STATE_DONE)

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

1157}
1158
1159static void
1160schizo_intr_clear(void *arg)
1161{
1162 struct intr_vector *iv = arg;
1163 struct schizo_icarg *sica = iv->iv_icarg;
1164
1165 SCHIZO_PCI_WRITE_8(sica->sica_sc, sica->sica_clr, 0);
1165 SCHIZO_PCI_WRITE_8(sica->sica_sc, sica->sica_clr, INTCLR_IDLE);
1166}
1167
1168static int
1169schizo_setup_intr(device_t dev, device_t child, struct resource *ires,
1170 int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg,
1171 void **cookiep)
1172{
1173 devclass_t pci_devclass;

--- 309 unchanged lines hidden ---
1166}
1167
1168static int
1169schizo_setup_intr(device_t dev, device_t child, struct resource *ires,
1170 int flags, driver_filter_t *filt, driver_intr_t *intr, void *arg,
1171 void **cookiep)
1172{
1173 devclass_t pci_devclass;

--- 309 unchanged lines hidden ---