1/*
2 * Copyright 2007, Axel D��rfler, axeld@pinc-software.de. All Rights Reserved.
3 * Distributed under the terms of the MIT License.
4 */
5
6
7#include <sys/bus.h>
8#include <sys/mutex.h>
9#include <sys/rman.h>
10#include <sys/systm.h>
11
12#include <machine/bus.h>
13
14#include <net/if.h>
15#include <net/if_media.h>
16
17#include "if_fxpreg.h"
18#include "if_fxpvar.h"
19
20
21HAIKU_FBSD_DRIVER_GLUE(ipro100, fxp, pci)
22HAIKU_DRIVER_REQUIREMENTS(0);
23HAIKU_FBSD_MII_DRIVER(inphy);
24
25
26int
27HAIKU_CHECK_DISABLE_INTERRUPTS(device_t dev)
28{
29	struct fxp_softc *sc = device_get_softc(dev);
30
31	uint8_t statack = CSR_READ_1(sc, FXP_CSR_SCB_STATACK);
32	if (statack == 0)
33		return 0;
34
35	CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, FXP_SCB_INTR_DISABLE);
36	atomic_set((int32*)&sc->sc_statack, statack);
37	return 1;
38}
39
40
41void
42HAIKU_REENABLE_INTERRUPTS(device_t dev)
43{
44	struct fxp_softc *sc = device_get_softc(dev);
45
46	CSR_WRITE_1(sc, FXP_CSR_SCB_INTRCNTL, 0);
47}
48