\hypertarget{mtkswitch_8c}{}\doxysection{dev/etherswitch/mtkswitch/mtkswitch.c File Reference}
\label{mtkswitch_8c}\index{dev/etherswitch/mtkswitch/mtkswitch.c@{dev/etherswitch/mtkswitch/mtkswitch.c}}
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$sys/bus.\+h$>$}\newline
{\ttfamily \#include $<$sys/errno.\+h$>$}\newline
{\ttfamily \#include $<$sys/kernel.\+h$>$}\newline
{\ttfamily \#include $<$sys/lock.\+h$>$}\newline
{\ttfamily \#include $<$sys/malloc.\+h$>$}\newline
{\ttfamily \#include $<$sys/module.\+h$>$}\newline
{\ttfamily \#include $<$sys/mutex.\+h$>$}\newline
{\ttfamily \#include $<$sys/socket.\+h$>$}\newline
{\ttfamily \#include $<$sys/sockio.\+h$>$}\newline
{\ttfamily \#include $<$sys/sysctl.\+h$>$}\newline
{\ttfamily \#include $<$sys/systm.\+h$>$}\newline
{\ttfamily \#include $<$net/if.\+h$>$}\newline
{\ttfamily \#include $<$net/if\+\_\+var.\+h$>$}\newline
{\ttfamily \#include $<$net/ethernet.\+h$>$}\newline
{\ttfamily \#include $<$net/if\+\_\+media.\+h$>$}\newline
{\ttfamily \#include $<$net/if\+\_\+types.\+h$>$}\newline
{\ttfamily \#include $<$machine/bus.\+h$>$}\newline
{\ttfamily \#include $<$dev/mii/mii.\+h$>$}\newline
{\ttfamily \#include $<$dev/mii/miivar.\+h$>$}\newline
{\ttfamily \#include $<$dev/mdio/mdio.\+h$>$}\newline
{\ttfamily \#include $<$dev/etherswitch/etherswitch.\+h$>$}\newline
{\ttfamily \#include $<$dev/etherswitch/mtkswitch/mtkswitchvar.\+h$>$}\newline
{\ttfamily \#include $<$dev/ofw/ofw\+\_\+bus\+\_\+subr.\+h$>$}\newline
{\ttfamily \#include \char`\"{}mdio\+\_\+if.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}miibus\+\_\+if.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}etherswitch\+\_\+if.\+h\char`\"{}}\newline
Include dependency graph for mtkswitch.\+c\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d5/d46/mtkswitch_8c__incl}
\end{center}
\end{figure}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{mtkswitch_8c_ad72dbcf6d0153db1b8d8a58001feed83}{DEBUG}}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static \mbox{\hyperlink{mtkswitch_8c_a4b74a71427da9fa46c3f6430f54628cc}{SYSCTL\+\_\+\+NODE}} (\+\_\+debug, OID\+\_\+\+AUTO, mtkswitch, CTLFLAG\+\_\+\+RD$\vert$CTLFLAG\+\_\+\+MPSAFE, 0, \char`\"{}mtkswitch\char`\"{})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a0687854ebafdca1e4f3b6e0b6ef03d37}{mtkswitch\+\_\+portforphy}} (int \mbox{\hyperlink{etherswitch__if_8m_a5a9bb95881c089e261771c35775eeaf9}{phy}})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a43f0483e953e7428ac54140bbb2ad514}{mtkswitch\+\_\+ifmedia\+\_\+upd}} (struct ifnet $\ast$ifp)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_adfb10dae7465e6ecbc05f768fcf60a1a}{mtkswitch\+\_\+ifmedia\+\_\+sts}} (struct ifnet $\ast$ifp, struct ifmediareq $\ast$ifmr)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_a3cd05b8f854a788c3eaaf2b05f176c4e}{mtkswitch\+\_\+tick}} (void $\ast$arg)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a46ab749e482f33efc1f193a3a9267221}{mtkswitch\+\_\+probe}} (device\+\_\+t dev)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_ae7bc4fd3466e1532d5c29fb634868172}{mtkswitch\+\_\+attach\+\_\+phys}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a96b9e41cf135bbd8bcc292e90b67e664}{mtkswitch\+\_\+set\+\_\+vlan\+\_\+mode}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc, uint32\+\_\+t mode)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a067bdf5aff6a08932d8d9e4160f0139f}{mtkswitch\+\_\+attach}} (device\+\_\+t dev)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a6bea5bb4682892ab51f6e939aa346801}{mtkswitch\+\_\+detach}} (device\+\_\+t dev)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a36d4dbf7a6cd8ce3c33e23ae1b96e4f2}{mtkswitch\+\_\+phyforport}} (int \mbox{\hyperlink{etherswitch__if_8m_a63c89c04d1feae07ca35558055155ffb}{port}})
\item 
static struct mii\+\_\+data $\ast$ \mbox{\hyperlink{mtkswitch_8c_ab7d9dca2a548db8d5210e7ee15125c99}{mtkswitch\+\_\+miiforport}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc, int \mbox{\hyperlink{etherswitch__if_8m_a63c89c04d1feae07ca35558055155ffb}{port}})
\item 
static struct ifnet $\ast$ \mbox{\hyperlink{mtkswitch_8c_acaa0dfc1402c4178cc0a2c04a85d109a}{mtkswitch\+\_\+ifpforport}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc, int \mbox{\hyperlink{etherswitch__if_8m_a63c89c04d1feae07ca35558055155ffb}{port}})
\item 
static void \mbox{\hyperlink{mtkswitch_8c_aca144122b2e94bfb98428947dd6db3e3}{mtkswitch\+\_\+update\+\_\+ifmedia}} (uint32\+\_\+t portstatus, u\+\_\+int $\ast$media\+\_\+status, u\+\_\+int $\ast$media\+\_\+active)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_aded2e404f08e60947a4f8ec25a4d1cf4}{mtkswitch\+\_\+miipollstat}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_a42224c7167d0103fb8f266bb4f12dcf9}{mtkswitch\+\_\+lock}} (device\+\_\+t dev)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_ab4c219ef35a54c2234ff5e09d54bb446}{mtkswitch\+\_\+unlock}} (device\+\_\+t dev)
\item 
static \mbox{\hyperlink{etherswitch_8h_a0b5980676ce780446a1e7ba21e033aca}{etherswitch\+\_\+info\+\_\+t}} $\ast$ \mbox{\hyperlink{mtkswitch_8c_a7137ed8cb4a40a7fce36bb2111bf9b8f}{mtkswitch\+\_\+getinfo}} (device\+\_\+t dev)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a64284e01b3d766cb7dfbed9b33ebc6c2}{mtkswitch\+\_\+is\+\_\+cpuport}} (struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$sc, int \mbox{\hyperlink{etherswitch__if_8m_a63c89c04d1feae07ca35558055155ffb}{port}})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_ae9361ffd523ac8bd953ec79ac92d8cd0}{mtkswitch\+\_\+getport}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a882f5acf2a12edbe5b56af9864f4cbcf}{etherswitch\+\_\+port\+\_\+t}} $\ast$p)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a5771e739300068847d55f2f278646548}{mtkswitch\+\_\+setport}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a882f5acf2a12edbe5b56af9864f4cbcf}{etherswitch\+\_\+port\+\_\+t}} $\ast$p)
\item 
static void \mbox{\hyperlink{mtkswitch_8c_a3cce302c4e36ef927fc8d64b59bf45bb}{mtkswitch\+\_\+statchg}} (device\+\_\+t dev)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a334bf4b18890cb0691d192f5bdb6beb0}{mtkswitch\+\_\+getconf}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a4ef182ba754cb7cfe60b7481b1d4067c}{etherswitch\+\_\+conf\+\_\+t}} $\ast$\mbox{\hyperlink{etherswitch__if_8m_a560b4f1899de9601b641d33e21800744}{conf}})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a7cc613c8c402bab57c7e3597cfd1e5bb}{mtkswitch\+\_\+setconf}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a4ef182ba754cb7cfe60b7481b1d4067c}{etherswitch\+\_\+conf\+\_\+t}} $\ast$\mbox{\hyperlink{etherswitch__if_8m_a560b4f1899de9601b641d33e21800744}{conf}})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a383114c0a553a8cf2eaf9ff1eb8c0c78}{mtkswitch\+\_\+getvgroup}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a32820f79af6aa54fdc391b8f1aa42e9c}{etherswitch\+\_\+vlangroup\+\_\+t}} $\ast$e)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a090eaef9d50a7f903bc73c4f4b7f0848}{mtkswitch\+\_\+setvgroup}} (device\+\_\+t dev, \mbox{\hyperlink{etherswitch_8h_a32820f79af6aa54fdc391b8f1aa42e9c}{etherswitch\+\_\+vlangroup\+\_\+t}} $\ast$e)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_adc9f51812c288b769c2b7eefff961a8e}{mtkswitch\+\_\+readphy}} (device\+\_\+t dev, int \mbox{\hyperlink{etherswitch__if_8m_a5a9bb95881c089e261771c35775eeaf9}{phy}}, int \mbox{\hyperlink{etherswitch__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}})
\item 
static int \mbox{\hyperlink{mtkswitch_8c_a9c4b9816b4e5f6eb90d8cb78da872289}{mtkswitch\+\_\+writephy}} (device\+\_\+t dev, int \mbox{\hyperlink{etherswitch__if_8m_a5a9bb95881c089e261771c35775eeaf9}{phy}}, int \mbox{\hyperlink{etherswitch__if_8m_aa391927e06832c3d8d2f4e89a25cdd81}{reg}}, int val)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_ab76b3bd630f8e10c1d6eca6dac21b9bd}{mtkswitch\+\_\+readreg}} (device\+\_\+t dev, int addr)
\item 
static int \mbox{\hyperlink{mtkswitch_8c_aad24da23d613b3e30d9ca8c48cde03f6}{mtkswitch\+\_\+writereg}} (device\+\_\+t dev, int addr, int \mbox{\hyperlink{etherswitch__if_8m_ac4f474c82e82cbb89ca7c36dd52be0ed}{value}})
\item 
\mbox{\hyperlink{mtkswitch_8c_a1772e648cdb297ff4246c6f2946c59a5}{DEFINE\+\_\+\+CLASS\+\_\+0}} (mtkswitch, mtkswitch\+\_\+driver, \mbox{\hyperlink{mtkswitch_8c_aee8382dbac757e00b3bb53c0ec26d92b}{mtkswitch\+\_\+methods}}, sizeof(struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}}))
\item 
\mbox{\hyperlink{mtkswitch_8c_aa8208910ff369895359adc0175021ea7}{DRIVER\+\_\+\+MODULE}} (mtkswitch, simplebus, mtkswitch\+\_\+driver, \mbox{\hyperlink{mtkswitch_8c_a23b453372667b5fc5aa3b2d950279ec5}{mtkswitch\+\_\+devclass}}, 0, 0)
\item 
\mbox{\hyperlink{mtkswitch_8c_ad8ed8e9b0f820c11382c51fa8ceb6fa6}{DRIVER\+\_\+\+MODULE}} (miibus, mtkswitch, miibus\+\_\+driver, miibus\+\_\+devclass, 0, 0)
\item 
\mbox{\hyperlink{mtkswitch_8c_ad7c5cc04ea75dbc2f72f34fda38f8ec6}{DRIVER\+\_\+\+MODULE}} (mdio, mtkswitch, mdio\+\_\+driver, mdio\+\_\+devclass, 0, 0)
\item 
\mbox{\hyperlink{mtkswitch_8c_a9bdfb1a7197e368b1678311d8d97021e}{DRIVER\+\_\+\+MODULE}} (\mbox{\hyperlink{etherswitch__if_8m_a39711d486f50fcb266cabf9f02de62f8}{etherswitch}}, mtkswitch, \mbox{\hyperlink{etherswitch_8h_a4cce60eede98cae1d0431d6c9238e223}{etherswitch\+\_\+driver}}, \mbox{\hyperlink{etherswitch_8h_abdc0bccbe218083d494af803b6e46c48}{etherswitch\+\_\+devclass}}, 0, 0)
\item 
\mbox{\hyperlink{mtkswitch_8c_ae8dad16c05bba6185a8cffeaf164db74}{MODULE\+\_\+\+VERSION}} (mtkswitch, 1)
\item 
\mbox{\hyperlink{mtkswitch_8c_a1a1eb3491a5f9da6ca1a131cf5f2d5e7}{MODULE\+\_\+\+DEPEND}} (mtkswitch, miibus, 1, 1, 1)
\item 
\mbox{\hyperlink{mtkswitch_8c_a4bede36887b2bb41ffd0b1cd7970515c}{MODULE\+\_\+\+DEPEND}} (mtkswitch, \mbox{\hyperlink{etherswitch__if_8m_a39711d486f50fcb266cabf9f02de62f8}{etherswitch}}, 1, 1, 1)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static const struct ofw\+\_\+compat\+\_\+data \mbox{\hyperlink{mtkswitch_8c_a60a7daf8445f53b1972f0b767c2506b8}{compat\+\_\+data}} \mbox{[}$\,$\mbox{]}
\item 
static device\+\_\+method\+\_\+t \mbox{\hyperlink{mtkswitch_8c_aee8382dbac757e00b3bb53c0ec26d92b}{mtkswitch\+\_\+methods}} \mbox{[}$\,$\mbox{]}
\item 
static devclass\+\_\+t \mbox{\hyperlink{mtkswitch_8c_a23b453372667b5fc5aa3b2d950279ec5}{mtkswitch\+\_\+devclass}}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\Hypertarget{mtkswitch_8c_ad72dbcf6d0153db1b8d8a58001feed83}\label{mtkswitch_8c_ad72dbcf6d0153db1b8d8a58001feed83}} 
\index{mtkswitch.c@{mtkswitch.c}!DEBUG@{DEBUG}}
\index{DEBUG@{DEBUG}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DEBUG}{DEBUG}}
{\footnotesize\ttfamily \#define DEBUG}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00064}{64}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



\doxysubsection{Function Documentation}
\mbox{\Hypertarget{mtkswitch_8c_a1772e648cdb297ff4246c6f2946c59a5}\label{mtkswitch_8c_a1772e648cdb297ff4246c6f2946c59a5}} 
\index{mtkswitch.c@{mtkswitch.c}!DEFINE\_CLASS\_0@{DEFINE\_CLASS\_0}}
\index{DEFINE\_CLASS\_0@{DEFINE\_CLASS\_0}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DEFINE\_CLASS\_0()}{DEFINE\_CLASS\_0()}}
{\footnotesize\ttfamily DEFINE\+\_\+\+CLASS\+\_\+0 (\begin{DoxyParamCaption}\item[{mtkswitch}]{,  }\item[{mtkswitch\+\_\+driver}]{,  }\item[{\mbox{\hyperlink{mtkswitch_8c_aee8382dbac757e00b3bb53c0ec26d92b}{mtkswitch\+\_\+methods}}}]{,  }\item[{sizeof(struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}})}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_a9bdfb1a7197e368b1678311d8d97021e}\label{mtkswitch_8c_a9bdfb1a7197e368b1678311d8d97021e}} 
\index{mtkswitch.c@{mtkswitch.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}\hspace{0.1cm}{\footnotesize\ttfamily [1/4]}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{\mbox{\hyperlink{etherswitch__if_8m_a39711d486f50fcb266cabf9f02de62f8}{etherswitch}}}]{,  }\item[{mtkswitch}]{,  }\item[{\mbox{\hyperlink{etherswitch_8h_a4cce60eede98cae1d0431d6c9238e223}{etherswitch\+\_\+driver}}}]{,  }\item[{\mbox{\hyperlink{etherswitch_8h_abdc0bccbe218083d494af803b6e46c48}{etherswitch\+\_\+devclass}}}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_ad7c5cc04ea75dbc2f72f34fda38f8ec6}\label{mtkswitch_8c_ad7c5cc04ea75dbc2f72f34fda38f8ec6}} 
\index{mtkswitch.c@{mtkswitch.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}\hspace{0.1cm}{\footnotesize\ttfamily [2/4]}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{mdio}]{,  }\item[{mtkswitch}]{,  }\item[{mdio\+\_\+driver}]{,  }\item[{mdio\+\_\+devclass}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_ad8ed8e9b0f820c11382c51fa8ceb6fa6}\label{mtkswitch_8c_ad8ed8e9b0f820c11382c51fa8ceb6fa6}} 
\index{mtkswitch.c@{mtkswitch.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}\hspace{0.1cm}{\footnotesize\ttfamily [3/4]}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{miibus}]{,  }\item[{mtkswitch}]{,  }\item[{miibus\+\_\+driver}]{,  }\item[{miibus\+\_\+devclass}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_aa8208910ff369895359adc0175021ea7}\label{mtkswitch_8c_aa8208910ff369895359adc0175021ea7}} 
\index{mtkswitch.c@{mtkswitch.c}!DRIVER\_MODULE@{DRIVER\_MODULE}}
\index{DRIVER\_MODULE@{DRIVER\_MODULE}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{DRIVER\_MODULE()}{DRIVER\_MODULE()}\hspace{0.1cm}{\footnotesize\ttfamily [4/4]}}
{\footnotesize\ttfamily DRIVER\+\_\+\+MODULE (\begin{DoxyParamCaption}\item[{mtkswitch}]{,  }\item[{simplebus}]{,  }\item[{mtkswitch\+\_\+driver}]{,  }\item[{\mbox{\hyperlink{mtkswitch_8c_a23b453372667b5fc5aa3b2d950279ec5}{mtkswitch\+\_\+devclass}}}]{,  }\item[{0}]{,  }\item[{0}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_a4bede36887b2bb41ffd0b1cd7970515c}\label{mtkswitch_8c_a4bede36887b2bb41ffd0b1cd7970515c}} 
\index{mtkswitch.c@{mtkswitch.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{mtkswitch}]{,  }\item[{\mbox{\hyperlink{etherswitch__if_8m_a39711d486f50fcb266cabf9f02de62f8}{etherswitch}}}]{,  }\item[{1}]{,  }\item[{1}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_a1a1eb3491a5f9da6ca1a131cf5f2d5e7}\label{mtkswitch_8c_a1a1eb3491a5f9da6ca1a131cf5f2d5e7}} 
\index{mtkswitch.c@{mtkswitch.c}!MODULE\_DEPEND@{MODULE\_DEPEND}}
\index{MODULE\_DEPEND@{MODULE\_DEPEND}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_DEPEND()}{MODULE\_DEPEND()}\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily MODULE\+\_\+\+DEPEND (\begin{DoxyParamCaption}\item[{mtkswitch}]{,  }\item[{miibus}]{,  }\item[{1}]{,  }\item[{1}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_ae8dad16c05bba6185a8cffeaf164db74}\label{mtkswitch_8c_ae8dad16c05bba6185a8cffeaf164db74}} 
\index{mtkswitch.c@{mtkswitch.c}!MODULE\_VERSION@{MODULE\_VERSION}}
\index{MODULE\_VERSION@{MODULE\_VERSION}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{MODULE\_VERSION()}{MODULE\_VERSION()}}
{\footnotesize\ttfamily MODULE\+\_\+\+VERSION (\begin{DoxyParamCaption}\item[{mtkswitch}]{,  }\item[{1}]{ }\end{DoxyParamCaption})}

\mbox{\Hypertarget{mtkswitch_8c_a067bdf5aff6a08932d8d9e4160f0139f}\label{mtkswitch_8c_a067bdf5aff6a08932d8d9e4160f0139f}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_attach@{mtkswitch\_attach}}
\index{mtkswitch\_attach@{mtkswitch\_attach}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_attach()}{mtkswitch\_attach()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+attach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00172}{172}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00072}{mtkswitch\+\_\+softc\+::callout\+\_\+tick}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00066}{mtkswitch\+\_\+softc\+::cpuport}}, \mbox{\hyperlink{arswitchvar_8h_source_l00174}{DPRINTF}}, \mbox{\hyperlink{etherswitch_8h_source_l00034}{ETHERSWITCH\+\_\+\+VLAN\+\_\+\+DOT1Q}}, \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitch__mt7620_8c_source_l00527}{mtk\+\_\+attach\+\_\+switch\+\_\+mt7620()}}, \mbox{\hyperlink{mtkswitch__rt3050_8c_source_l00497}{mtk\+\_\+attach\+\_\+switch\+\_\+rt3050()}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00037}{MTK\+\_\+\+SWITCH\+\_\+\+MT7620}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00038}{MTK\+\_\+\+SWITCH\+\_\+\+MT7621}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00033}{MTK\+\_\+\+SWITCH\+\_\+\+NONE}}, \mbox{\hyperlink{mtkswitch_8c_source_l00111}{mtkswitch\+\_\+attach\+\_\+phys()}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00047}{MTKSWITCH\+\_\+\+CPU\+\_\+\+PORT}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00081}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+hw\+\_\+global\+\_\+setup}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00080}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+hw\+\_\+setup}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00121}{MTKSWITCH\+\_\+\+LOCK}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00046}{MTKSWITCH\+\_\+\+MAX\+\_\+\+PHYS}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00045}{MTKSWITCH\+\_\+\+MAX\+\_\+\+PORTS}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00084}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+port\+\_\+init}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00079}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+reset}}, \mbox{\hyperlink{mtkswitch_8c_source_l00156}{mtkswitch\+\_\+set\+\_\+vlan\+\_\+mode()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00397}{mtkswitch\+\_\+tick()}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00123}{MTKSWITCH\+\_\+\+UNLOCK}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00062}{mtkswitch\+\_\+softc\+::numphys}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00064}{mtkswitch\+\_\+softc\+::numports}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00204}{port}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00060}{mtkswitch\+\_\+softc\+::sc\+\_\+dev}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00059}{mtkswitch\+\_\+softc\+::sc\+\_\+mtx}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00061}{mtkswitch\+\_\+softc\+::sc\+\_\+res}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00068}{mtkswitch\+\_\+softc\+::sc\+\_\+switchtype}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=550pt]{d7/d37/mtkswitch_8c_a067bdf5aff6a08932d8d9e4160f0139f_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_ae7bc4fd3466e1532d5c29fb634868172}\label{mtkswitch_8c_ae7bc4fd3466e1532d5c29fb634868172}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_attach\_phys@{mtkswitch\_attach\_phys}}
\index{mtkswitch\_attach\_phys@{mtkswitch\_attach\_phys}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_attach\_phys()}{mtkswitch\_attach\_phys()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+attach\+\_\+phys (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00111}{111}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{arswitchvar_8h_source_l00174}{DPRINTF}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00069}{mtkswitch\+\_\+softc\+::ifname}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00071}{mtkswitch\+\_\+softc\+::ifp}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00070}{mtkswitch\+\_\+softc\+::miibus}}, \mbox{\hyperlink{mtkswitch_8c_source_l00534}{mtkswitch\+\_\+ifmedia\+\_\+sts()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00522}{mtkswitch\+\_\+ifmedia\+\_\+upd()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00282}{mtkswitch\+\_\+portforphy()}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00062}{mtkswitch\+\_\+softc\+::numphys}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00063}{mtkswitch\+\_\+softc\+::phymap}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00060}{mtkswitch\+\_\+softc\+::sc\+\_\+dev}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00172}{mtkswitch\+\_\+attach()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_ae7bc4fd3466e1532d5c29fb634868172_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_ae7bc4fd3466e1532d5c29fb634868172_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a6bea5bb4682892ab51f6e939aa346801}\label{mtkswitch_8c_a6bea5bb4682892ab51f6e939aa346801}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_detach@{mtkswitch\_detach}}
\index{mtkswitch\_detach@{mtkswitch\_detach}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_detach()}{mtkswitch\_detach()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+detach (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00259}{259}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00072}{mtkswitch\+\_\+softc\+::callout\+\_\+tick}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00069}{mtkswitch\+\_\+softc\+::ifname}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00071}{mtkswitch\+\_\+softc\+::ifp}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00070}{mtkswitch\+\_\+softc\+::miibus}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00046}{MTKSWITCH\+\_\+\+MAX\+\_\+\+PHYS}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00059}{mtkswitch\+\_\+softc\+::sc\+\_\+mtx}}.

\mbox{\Hypertarget{mtkswitch_8c_a334bf4b18890cb0691d192f5bdb6beb0}\label{mtkswitch_8c_a334bf4b18890cb0691d192f5bdb6beb0}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_getconf@{mtkswitch\_getconf}}
\index{mtkswitch\_getconf@{mtkswitch\_getconf}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_getconf()}{mtkswitch\_getconf()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+getconf (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a4ef182ba754cb7cfe60b7481b1d4067c}{etherswitch\+\_\+conf\+\_\+t}} $\ast$}]{conf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00549}{549}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch_8h_source_l00054}{etherswitch\+\_\+conf\+::cmd}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00173}{conf}}, \mbox{\hyperlink{etherswitch_8h_source_l00050}{ETHERSWITCH\+\_\+\+CONF\+\_\+\+VLAN\+\_\+\+MODE}}, \mbox{\hyperlink{etherswitch_8h_source_l00055}{etherswitch\+\_\+conf\+::vlan\+\_\+mode}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00075}{mtkswitch\+\_\+softc\+::vlan\+\_\+mode}}.

\mbox{\Hypertarget{mtkswitch_8c_a7137ed8cb4a40a7fce36bb2111bf9b8f}\label{mtkswitch_8c_a7137ed8cb4a40a7fce36bb2111bf9b8f}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_getinfo@{mtkswitch\_getinfo}}
\index{mtkswitch\_getinfo@{mtkswitch\_getinfo}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_getinfo()}{mtkswitch\_getinfo()}}
{\footnotesize\ttfamily static \mbox{\hyperlink{etherswitch_8h_a0b5980676ce780446a1e7ba21e033aca}{etherswitch\+\_\+info\+\_\+t}} $\ast$ mtkswitch\+\_\+getinfo (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00424}{424}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00073}{mtkswitch\+\_\+softc\+::info}}.

\mbox{\Hypertarget{mtkswitch_8c_ae9361ffd523ac8bd953ec79ac92d8cd0}\label{mtkswitch_8c_ae9361ffd523ac8bd953ec79ac92d8cd0}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_getport@{mtkswitch\_getport}}
\index{mtkswitch\_getport@{mtkswitch\_getport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_getport()}{mtkswitch\_getport()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+getport (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a882f5acf2a12edbe5b56af9864f4cbcf}{etherswitch\+\_\+port\+\_\+t}} $\ast$}]{p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00439}{439}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch_8h_source_l00088}{etherswitch\+\_\+port\+::es\+\_\+flags}}, \mbox{\hyperlink{etherswitch_8h_source_l00041}{etherswitch\+\_\+info\+::es\+\_\+nports}}, \mbox{\hyperlink{etherswitch_8h_source_l00085}{etherswitch\+\_\+port\+::es\+\_\+port}}, \mbox{\hyperlink{etherswitch_8h_source_l00060}{ETHERSWITCH\+\_\+\+PORT\+\_\+\+CPU}}, \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00073}{mtkswitch\+\_\+softc\+::info}}, \mbox{\hyperlink{mtkswitch_8c_source_l00432}{mtkswitch\+\_\+is\+\_\+cpuport()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00296}{mtkswitch\+\_\+miiforport()}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00094}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+port\+\_\+vlan\+\_\+get}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_ae9361ffd523ac8bd953ec79ac92d8cd0_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a383114c0a553a8cf2eaf9ff1eb8c0c78}\label{mtkswitch_8c_a383114c0a553a8cf2eaf9ff1eb8c0c78}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_getvgroup@{mtkswitch\_getvgroup}}
\index{mtkswitch\_getvgroup@{mtkswitch\_getvgroup}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_getvgroup()}{mtkswitch\_getvgroup()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+getvgroup (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a32820f79af6aa54fdc391b8f1aa42e9c}{etherswitch\+\_\+vlangroup\+\_\+t}} $\ast$}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00581}{581}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00097}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+vlan\+\_\+getvgroup}}.

\mbox{\Hypertarget{mtkswitch_8c_adfb10dae7465e6ecbc05f768fcf60a1a}\label{mtkswitch_8c_adfb10dae7465e6ecbc05f768fcf60a1a}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_ifmedia\_sts@{mtkswitch\_ifmedia\_sts}}
\index{mtkswitch\_ifmedia\_sts@{mtkswitch\_ifmedia\_sts}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_ifmedia\_sts()}{mtkswitch\_ifmedia\_sts()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+ifmedia\+\_\+sts (\begin{DoxyParamCaption}\item[{struct ifnet $\ast$}]{ifp,  }\item[{struct ifmediareq $\ast$}]{ifmr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00534}{534}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{arswitchvar_8h_source_l00174}{DPRINTF}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00071}{mtkswitch\+\_\+softc\+::ifp}}, \mbox{\hyperlink{mtkswitch_8c_source_l00296}{mtkswitch\+\_\+miiforport()}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00060}{mtkswitch\+\_\+softc\+::sc\+\_\+dev}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00111}{mtkswitch\+\_\+attach\+\_\+phys()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_adfb10dae7465e6ecbc05f768fcf60a1a_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_adfb10dae7465e6ecbc05f768fcf60a1a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a43f0483e953e7428ac54140bbb2ad514}\label{mtkswitch_8c_a43f0483e953e7428ac54140bbb2ad514}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_ifmedia\_upd@{mtkswitch\_ifmedia\_upd}}
\index{mtkswitch\_ifmedia\_upd@{mtkswitch\_ifmedia\_upd}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_ifmedia\_upd()}{mtkswitch\_ifmedia\_upd()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+ifmedia\+\_\+upd (\begin{DoxyParamCaption}\item[{struct ifnet $\ast$}]{ifp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00522}{522}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00071}{mtkswitch\+\_\+softc\+::ifp}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00296}{mtkswitch\+\_\+miiforport()}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00111}{mtkswitch\+\_\+attach\+\_\+phys()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a43f0483e953e7428ac54140bbb2ad514_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a43f0483e953e7428ac54140bbb2ad514_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_acaa0dfc1402c4178cc0a2c04a85d109a}\label{mtkswitch_8c_acaa0dfc1402c4178cc0a2c04a85d109a}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_ifpforport@{mtkswitch\_ifpforport}}
\index{mtkswitch\_ifpforport@{mtkswitch\_ifpforport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_ifpforport()}{mtkswitch\_ifpforport()}}
{\footnotesize\ttfamily static struct ifnet $\ast$ mtkswitch\+\_\+ifpforport (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc,  }\item[{int}]{port }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00307}{307}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00071}{mtkswitch\+\_\+softc\+::ifp}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00046}{MTKSWITCH\+\_\+\+MAX\+\_\+\+PHYS}}, \mbox{\hyperlink{mtkswitch_8c_source_l00289}{mtkswitch\+\_\+phyforport()}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00204}{port}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00481}{mtkswitch\+\_\+setport()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_acaa0dfc1402c4178cc0a2c04a85d109a_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=342pt]{d7/d37/mtkswitch_8c_acaa0dfc1402c4178cc0a2c04a85d109a_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a64284e01b3d766cb7dfbed9b33ebc6c2}\label{mtkswitch_8c_a64284e01b3d766cb7dfbed9b33ebc6c2}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_is\_cpuport@{mtkswitch\_is\_cpuport}}
\index{mtkswitch\_is\_cpuport@{mtkswitch\_is\_cpuport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_is\_cpuport()}{mtkswitch\_is\_cpuport()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+is\+\_\+cpuport (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc,  }\item[{int}]{port }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00432}{432}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00066}{mtkswitch\+\_\+softc\+::cpuport}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00204}{port}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00439}{mtkswitch\+\_\+getport()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00481}{mtkswitch\+\_\+setport()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=347pt]{d7/d37/mtkswitch_8c_a64284e01b3d766cb7dfbed9b33ebc6c2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a42224c7167d0103fb8f266bb4f12dcf9}\label{mtkswitch_8c_a42224c7167d0103fb8f266bb4f12dcf9}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_lock@{mtkswitch\_lock}}
\index{mtkswitch\_lock@{mtkswitch\_lock}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_lock()}{mtkswitch\_lock()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+lock (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00406}{406}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00121}{MTKSWITCH\+\_\+\+LOCK}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00125}{MTKSWITCH\+\_\+\+LOCK\+\_\+\+ASSERT}}.

\mbox{\Hypertarget{mtkswitch_8c_ab7d9dca2a548db8d5210e7ee15125c99}\label{mtkswitch_8c_ab7d9dca2a548db8d5210e7ee15125c99}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_miiforport@{mtkswitch\_miiforport}}
\index{mtkswitch\_miiforport@{mtkswitch\_miiforport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_miiforport()}{mtkswitch\_miiforport()}}
{\footnotesize\ttfamily static struct mii\+\_\+data $\ast$ mtkswitch\+\_\+miiforport (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc,  }\item[{int}]{port }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00296}{296}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00070}{mtkswitch\+\_\+softc\+::miibus}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00046}{MTKSWITCH\+\_\+\+MAX\+\_\+\+PHYS}}, \mbox{\hyperlink{mtkswitch_8c_source_l00289}{mtkswitch\+\_\+phyforport()}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00204}{port}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00439}{mtkswitch\+\_\+getport()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00534}{mtkswitch\+\_\+ifmedia\+\_\+sts()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00522}{mtkswitch\+\_\+ifmedia\+\_\+upd()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00481}{mtkswitch\+\_\+setport()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_ab7d9dca2a548db8d5210e7ee15125c99_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_ab7d9dca2a548db8d5210e7ee15125c99_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_aded2e404f08e60947a4f8ec25a4d1cf4}\label{mtkswitch_8c_aded2e404f08e60947a4f8ec25a4d1cf4}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_miipollstat@{mtkswitch\_miipollstat}}
\index{mtkswitch\_miipollstat@{mtkswitch\_miipollstat}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_miipollstat()}{mtkswitch\_miipollstat()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+miipollstat (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00358}{358}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00070}{mtkswitch\+\_\+softc\+::miibus}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00089}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+atu\+\_\+flush}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00086}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+get\+\_\+port\+\_\+status}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00049}{MTKSWITCH\+\_\+\+LINK\+\_\+\+UP}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00125}{MTKSWITCH\+\_\+\+LOCK\+\_\+\+ASSERT}}, \mbox{\hyperlink{mtkswitch_8c_source_l00282}{mtkswitch\+\_\+portforphy()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00321}{mtkswitch\+\_\+update\+\_\+ifmedia()}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00062}{mtkswitch\+\_\+softc\+::numphys}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00397}{mtkswitch\+\_\+tick()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_aded2e404f08e60947a4f8ec25a4d1cf4_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_aded2e404f08e60947a4f8ec25a4d1cf4_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a36d4dbf7a6cd8ce3c33e23ae1b96e4f2}\label{mtkswitch_8c_a36d4dbf7a6cd8ce3c33e23ae1b96e4f2}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_phyforport@{mtkswitch\_phyforport}}
\index{mtkswitch\_phyforport@{mtkswitch\_phyforport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_phyforport()}{mtkswitch\_phyforport()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+phyforport (\begin{DoxyParamCaption}\item[{int}]{port }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00289}{289}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch__if_8m_source_l00204}{port}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00307}{mtkswitch\+\_\+ifpforport()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00296}{mtkswitch\+\_\+miiforport()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a36d4dbf7a6cd8ce3c33e23ae1b96e4f2_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a0687854ebafdca1e4f3b6e0b6ef03d37}\label{mtkswitch_8c_a0687854ebafdca1e4f3b6e0b6ef03d37}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_portforphy@{mtkswitch\_portforphy}}
\index{mtkswitch\_portforphy@{mtkswitch\_portforphy}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_portforphy()}{mtkswitch\_portforphy()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+portforphy (\begin{DoxyParamCaption}\item[{int}]{phy }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00282}{282}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00111}{mtkswitch\+\_\+attach\+\_\+phys()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00358}{mtkswitch\+\_\+miipollstat()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a0687854ebafdca1e4f3b6e0b6ef03d37_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a46ab749e482f33efc1f193a3a9267221}\label{mtkswitch_8c_a46ab749e482f33efc1f193a3a9267221}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_probe@{mtkswitch\_probe}}
\index{mtkswitch\_probe@{mtkswitch\_probe}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_probe()}{mtkswitch\_probe()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+probe (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00089}{89}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitch_8c_source_l00076}{compat\+\_\+data}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00033}{MTK\+\_\+\+SWITCH\+\_\+\+NONE}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00068}{mtkswitch\+\_\+softc\+::sc\+\_\+switchtype}}.

\mbox{\Hypertarget{mtkswitch_8c_adc9f51812c288b769c2b7eefff961a8e}\label{mtkswitch_8c_adc9f51812c288b769c2b7eefff961a8e}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_readphy@{mtkswitch\_readphy}}
\index{mtkswitch\_readphy@{mtkswitch\_readphy}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_readphy()}{mtkswitch\_readphy()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+readphy (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{int}]{phy,  }\item[{int}]{reg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00597}{597}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00107}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+phy\+\_\+read}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00105}{reg}}.

\mbox{\Hypertarget{mtkswitch_8c_ab76b3bd630f8e10c1d6eca6dac21b9bd}\label{mtkswitch_8c_ab76b3bd630f8e10c1d6eca6dac21b9bd}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_readreg@{mtkswitch\_readreg}}
\index{mtkswitch\_readreg@{mtkswitch\_readreg}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_readreg()}{mtkswitch\_readreg()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+readreg (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{int}]{addr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00613}{613}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00111}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+reg\+\_\+read}}.

\mbox{\Hypertarget{mtkswitch_8c_a96b9e41cf135bbd8bcc292e90b67e664}\label{mtkswitch_8c_a96b9e41cf135bbd8bcc292e90b67e664}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_set\_vlan\_mode@{mtkswitch\_set\_vlan\_mode}}
\index{mtkswitch\_set\_vlan\_mode@{mtkswitch\_set\_vlan\_mode}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_set\_vlan\_mode()}{mtkswitch\_set\_vlan\_mode()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+set\+\_\+vlan\+\_\+mode (\begin{DoxyParamCaption}\item[{struct \mbox{\hyperlink{structmtkswitch__softc}{mtkswitch\+\_\+softc}} $\ast$}]{sc,  }\item[{uint32\+\_\+t}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00156}{156}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch_8h_source_l00044}{etherswitch\+\_\+info\+::es\+\_\+vlan\+\_\+caps}}, \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00073}{mtkswitch\+\_\+softc\+::info}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00096}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+vlan\+\_\+init\+\_\+hw}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00075}{mtkswitch\+\_\+softc\+::vlan\+\_\+mode}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00172}{mtkswitch\+\_\+attach()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00563}{mtkswitch\+\_\+setconf()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a96b9e41cf135bbd8bcc292e90b67e664_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a7cc613c8c402bab57c7e3597cfd1e5bb}\label{mtkswitch_8c_a7cc613c8c402bab57c7e3597cfd1e5bb}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_setconf@{mtkswitch\_setconf}}
\index{mtkswitch\_setconf@{mtkswitch\_setconf}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_setconf()}{mtkswitch\_setconf()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+setconf (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a4ef182ba754cb7cfe60b7481b1d4067c}{etherswitch\+\_\+conf\+\_\+t}} $\ast$}]{conf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00563}{563}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch_8h_source_l00054}{etherswitch\+\_\+conf\+::cmd}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00173}{conf}}, \mbox{\hyperlink{etherswitch_8h_source_l00050}{ETHERSWITCH\+\_\+\+CONF\+\_\+\+VLAN\+\_\+\+MODE}}, \mbox{\hyperlink{mtkswitch_8c_source_l00156}{mtkswitch\+\_\+set\+\_\+vlan\+\_\+mode()}}, and \mbox{\hyperlink{etherswitch_8h_source_l00055}{etherswitch\+\_\+conf\+::vlan\+\_\+mode}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a7cc613c8c402bab57c7e3597cfd1e5bb_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a5771e739300068847d55f2f278646548}\label{mtkswitch_8c_a5771e739300068847d55f2f278646548}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_setport@{mtkswitch\_setport}}
\index{mtkswitch\_setport@{mtkswitch\_setport}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_setport()}{mtkswitch\_setport()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+setport (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a882f5acf2a12edbe5b56af9864f4cbcf}{etherswitch\+\_\+port\+\_\+t}} $\ast$}]{p }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00481}{481}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{etherswitch_8h_source_l00041}{etherswitch\+\_\+info\+::es\+\_\+nports}}, \mbox{\hyperlink{etherswitch_8h_source_l00085}{etherswitch\+\_\+port\+::es\+\_\+port}}, \mbox{\hyperlink{etherswitch_8h_source_l00034}{ETHERSWITCH\+\_\+\+VLAN\+\_\+\+DOT1Q}}, \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00073}{mtkswitch\+\_\+softc\+::info}}, \mbox{\hyperlink{mtkswitch_8c_source_l00307}{mtkswitch\+\_\+ifpforport()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00432}{mtkswitch\+\_\+is\+\_\+cpuport()}}, \mbox{\hyperlink{mtkswitch_8c_source_l00296}{mtkswitch\+\_\+miiforport()}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00092}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+port\+\_\+vlan\+\_\+setup}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00075}{mtkswitch\+\_\+softc\+::vlan\+\_\+mode}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a5771e739300068847d55f2f278646548_cgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a090eaef9d50a7f903bc73c4f4b7f0848}\label{mtkswitch_8c_a090eaef9d50a7f903bc73c4f4b7f0848}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_setvgroup@{mtkswitch\_setvgroup}}
\index{mtkswitch\_setvgroup@{mtkswitch\_setvgroup}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_setvgroup()}{mtkswitch\_setvgroup()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+setvgroup (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{\mbox{\hyperlink{etherswitch_8h_a32820f79af6aa54fdc391b8f1aa42e9c}{etherswitch\+\_\+vlangroup\+\_\+t}} $\ast$}]{e }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00589}{589}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00099}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+vlan\+\_\+setvgroup}}.

\mbox{\Hypertarget{mtkswitch_8c_a3cce302c4e36ef927fc8d64b59bf45bb}\label{mtkswitch_8c_a3cce302c4e36ef927fc8d64b59bf45bb}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_statchg@{mtkswitch\_statchg}}
\index{mtkswitch\_statchg@{mtkswitch\_statchg}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_statchg()}{mtkswitch\_statchg()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+statchg (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00515}{515}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{arswitchvar_8h_source_l00174}{DPRINTF}}.

\mbox{\Hypertarget{mtkswitch_8c_a3cd05b8f854a788c3eaaf2b05f176c4e}\label{mtkswitch_8c_a3cd05b8f854a788c3eaaf2b05f176c4e}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_tick@{mtkswitch\_tick}}
\index{mtkswitch\_tick@{mtkswitch\_tick}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_tick()}{mtkswitch\_tick()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+tick (\begin{DoxyParamCaption}\item[{void $\ast$}]{arg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00397}{397}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00072}{mtkswitch\+\_\+softc\+::callout\+\_\+tick}}, \mbox{\hyperlink{mtkswitch_8c_source_l00358}{mtkswitch\+\_\+miipollstat()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00397}{mtkswitch\+\_\+tick()}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00172}{mtkswitch\+\_\+attach()}}, and \mbox{\hyperlink{mtkswitch_8c_source_l00397}{mtkswitch\+\_\+tick()}}.

Here is the call graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_a3cd05b8f854a788c3eaaf2b05f176c4e_cgraph}
\end{center}
\end{figure}
Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=311pt]{d7/d37/mtkswitch_8c_a3cd05b8f854a788c3eaaf2b05f176c4e_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_ab4c219ef35a54c2234ff5e09d54bb446}\label{mtkswitch_8c_ab4c219ef35a54c2234ff5e09d54bb446}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_unlock@{mtkswitch\_unlock}}
\index{mtkswitch\_unlock@{mtkswitch\_unlock}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_unlock()}{mtkswitch\_unlock()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+unlock (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00415}{415}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00125}{MTKSWITCH\+\_\+\+LOCK\+\_\+\+ASSERT}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00123}{MTKSWITCH\+\_\+\+UNLOCK}}.

\mbox{\Hypertarget{mtkswitch_8c_aca144122b2e94bfb98428947dd6db3e3}\label{mtkswitch_8c_aca144122b2e94bfb98428947dd6db3e3}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_update\_ifmedia@{mtkswitch\_update\_ifmedia}}
\index{mtkswitch\_update\_ifmedia@{mtkswitch\_update\_ifmedia}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_update\_ifmedia()}{mtkswitch\_update\_ifmedia()}}
{\footnotesize\ttfamily static void mtkswitch\+\_\+update\+\_\+ifmedia (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{portstatus,  }\item[{u\+\_\+int $\ast$}]{media\+\_\+status,  }\item[{u\+\_\+int $\ast$}]{media\+\_\+active }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00321}{321}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{mtkswitchvar_8h_source_l00054}{MTKSWITCH\+\_\+\+DUPLEX}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00049}{MTKSWITCH\+\_\+\+LINK\+\_\+\+UP}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00056}{MTKSWITCH\+\_\+\+RXFLOW}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00051}{MTKSWITCH\+\_\+\+SPEED\+\_\+10}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00052}{MTKSWITCH\+\_\+\+SPEED\+\_\+100}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00053}{MTKSWITCH\+\_\+\+SPEED\+\_\+1000}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00050}{MTKSWITCH\+\_\+\+SPEED\+\_\+\+MASK}}, and \mbox{\hyperlink{mtkswitchvar_8h_source_l00055}{MTKSWITCH\+\_\+\+TXFLOW}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00358}{mtkswitch\+\_\+miipollstat()}}.

Here is the caller graph for this function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=350pt]{d7/d37/mtkswitch_8c_aca144122b2e94bfb98428947dd6db3e3_icgraph}
\end{center}
\end{figure}
\mbox{\Hypertarget{mtkswitch_8c_a9c4b9816b4e5f6eb90d8cb78da872289}\label{mtkswitch_8c_a9c4b9816b4e5f6eb90d8cb78da872289}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_writephy@{mtkswitch\_writephy}}
\index{mtkswitch\_writephy@{mtkswitch\_writephy}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_writephy()}{mtkswitch\_writephy()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+writephy (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{int}]{phy,  }\item[{int}]{reg,  }\item[{int}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00605}{605}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00108}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+phy\+\_\+write}}, \mbox{\hyperlink{etherswitch__if_8m_source_l00122}{phy}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00105}{reg}}.

\mbox{\Hypertarget{mtkswitch_8c_aad24da23d613b3e30d9ca8c48cde03f6}\label{mtkswitch_8c_aad24da23d613b3e30d9ca8c48cde03f6}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_writereg@{mtkswitch\_writereg}}
\index{mtkswitch\_writereg@{mtkswitch\_writereg}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_writereg()}{mtkswitch\_writereg()}}
{\footnotesize\ttfamily static int mtkswitch\+\_\+writereg (\begin{DoxyParamCaption}\item[{device\+\_\+t}]{dev,  }\item[{int}]{addr,  }\item[{int}]{value }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00621}{621}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



References \mbox{\hyperlink{structmtkswitch__softc_aa747301367b986b5afab100e11aa3145}{mtkswitch\+\_\+softc\+::hal}}, \mbox{\hyperlink{mtkswitchvar_8h_source_l00112}{mtkswitch\+\_\+softc\+::mtkswitch\+\_\+reg\+\_\+write}}, and \mbox{\hyperlink{etherswitch__if_8m_source_l00114}{value}}.

\mbox{\Hypertarget{mtkswitch_8c_a4b74a71427da9fa46c3f6430f54628cc}\label{mtkswitch_8c_a4b74a71427da9fa46c3f6430f54628cc}} 
\index{mtkswitch.c@{mtkswitch.c}!SYSCTL\_NODE@{SYSCTL\_NODE}}
\index{SYSCTL\_NODE@{SYSCTL\_NODE}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{SYSCTL\_NODE()}{SYSCTL\_NODE()}}
{\footnotesize\ttfamily static SYSCTL\+\_\+\+NODE (\begin{DoxyParamCaption}\item[{\+\_\+debug}]{,  }\item[{OID\+\_\+\+AUTO}]{,  }\item[{mtkswitch}]{,  }\item[{CTLFLAG\+\_\+\+RD$\vert$}]{CTLFLAG\+\_\+\+MPSAFE,  }\item[{0}]{,  }\item[{\char`\"{}mtkswitch\char`\"{}}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



\doxysubsection{Variable Documentation}
\mbox{\Hypertarget{mtkswitch_8c_a60a7daf8445f53b1972f0b767c2506b8}\label{mtkswitch_8c_a60a7daf8445f53b1972f0b767c2506b8}} 
\index{mtkswitch.c@{mtkswitch.c}!compat\_data@{compat\_data}}
\index{compat\_data@{compat\_data}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{compat\_data}{compat\_data}}
{\footnotesize\ttfamily const struct ofw\+\_\+compat\+\_\+data compat\+\_\+data\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}ralink,rt3050-\/esw"{}},          \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856da9645cfd49f7bfa7873437dd58e1cebf7}{MTK\_SWITCH\_RT3050}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}ralink,rt3352-\/esw"{}},          \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856daa574f68a02afb47c7c2534c7cf903d0e}{MTK\_SWITCH\_RT3352}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}ralink,rt5350-\/esw"{}},          \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856daa18947abb878e58d35b100dd52608fe2}{MTK\_SWITCH\_RT5350}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}mediatek,mt7620-\/gsw"{}},        \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856da2f24b86815689d6d4dba5cdb65ad9dca}{MTK\_SWITCH\_MT7620}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}mediatek,mt7621-\/gsw"{}},        \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856da35f6b7eaf8831d7257b2244aa6f40608}{MTK\_SWITCH\_MT7621}} \},}
\DoxyCodeLine{        \{ \textcolor{stringliteral}{"{}mediatek,mt7628-\/esw"{}},        \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856da9d9bee8dfae9858c7bd557d69c17c561}{MTK\_SWITCH\_MT7628}} \},}
\DoxyCodeLine{}
\DoxyCodeLine{        }
\DoxyCodeLine{        \{ NULL,                         \mbox{\hyperlink{mtkswitchvar_8h_a4dbac3d354b5ac86076871d6d158856da6d571cd8c257f2a6972b66936b234b88}{MTK\_SWITCH\_NONE}} \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00076}{76}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.



Referenced by \mbox{\hyperlink{mtkswitch_8c_source_l00089}{mtkswitch\+\_\+probe()}}.

\mbox{\Hypertarget{mtkswitch_8c_a23b453372667b5fc5aa3b2d950279ec5}\label{mtkswitch_8c_a23b453372667b5fc5aa3b2d950279ec5}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_devclass@{mtkswitch\_devclass}}
\index{mtkswitch\_devclass@{mtkswitch\_devclass}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_devclass}{mtkswitch\_devclass}}
{\footnotesize\ttfamily devclass\+\_\+t mtkswitch\+\_\+devclass\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00666}{666}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.

\mbox{\Hypertarget{mtkswitch_8c_aee8382dbac757e00b3bb53c0ec26d92b}\label{mtkswitch_8c_aee8382dbac757e00b3bb53c0ec26d92b}} 
\index{mtkswitch.c@{mtkswitch.c}!mtkswitch\_methods@{mtkswitch\_methods}}
\index{mtkswitch\_methods@{mtkswitch\_methods}!mtkswitch.c@{mtkswitch.c}}
\doxysubsubsection{\texorpdfstring{mtkswitch\_methods}{mtkswitch\_methods}}
{\footnotesize\ttfamily device\+\_\+method\+\_\+t mtkswitch\+\_\+methods\mbox{[}$\,$\mbox{]}\hspace{0.3cm}{\ttfamily [static]}}



Definition at line \mbox{\hyperlink{mtkswitch_8c_source_l00628}{628}} of file \mbox{\hyperlink{mtkswitch_8c_source}{mtkswitch.\+c}}.

