Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src-draft/trunk]: src/sys/dev/pci Add if_start function similar to iwn(4).



details:   https://anonhg.NetBSD.org/src-all/rev/0762eeb7f168
branches:  trunk
changeset: 377163:0762eeb7f168
user:      Nathanial Sloss <nat%netbsd.org@localhost>
date:      Tue Jun 27 22:42:06 2023 +1000

description:
Add if_start function similar to iwn(4).

This may be required for ieee80211_if_transmit.

As iwm(4) does not work yet this was compile tested only.

diffstat:

 sys/dev/pci/if_iwm.c |  13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diffs (37 lines):

diff -r aedd970bded3 -r 0762eeb7f168 sys/dev/pci/if_iwm.c
--- a/sys/dev/pci/if_iwm.c      Tue Jun 27 22:39:57 2023 +1000
+++ b/sys/dev/pci/if_iwm.c      Tue Jun 27 22:42:06 2023 +1000
@@ -493,6 +493,7 @@ static void iwm_tt_tx_backoff(struct iwm
 static int     iwm_init_hw(struct iwm_softc *);
 static int     iwm_init(struct iwm_softc *);
 static void    iwm_start(struct iwm_softc *);
+static void    iwm_start_ifp(struct ifnet *);
 static void    iwm_stop(struct iwm_softc *);
 #ifdef notyet
 static void    iwm_watchdog(struct ifnet *);
@@ -6892,6 +6893,16 @@ iwm_init(struct iwm_softc *sc)
 }
 
 static void
+iwm_start_ifp(struct ifnet *ifp)
+{
+       struct ieee80211vap *vap = ifp->if_softc;
+       struct ieee80211com *ic = vap->iv_ic;
+       struct iwm_softc *sc = ic->ic_softc;
+
+       iwm_start(sc);
+}
+
+static void
 iwm_start(struct iwm_softc *sc)
 {
        struct ieee80211vap *vap = NULL;
@@ -8344,6 +8355,8 @@ iwm_vap_create(struct ieee80211com *ic, 
        vap->vap.iv_reset = iwm_reset;
        vap->newstate = vap->vap.iv_newstate;
        vap->vap.iv_newstate = iwm_newstate;
+       vap->vap.iv_ifp->if_start = iwm_start_ifp;
+       vap->vap.iv_ifp->if_extflags |= IFEF_MPSAFE;
 
        /* Use common softint-based if_input */
        vap->vap.iv_ifp->if_percpuq = if_percpuq_create(vap->vap.iv_ifp);



Home | Main Index | Thread Index | Old Index