\hypertarget{e1000__82575_8c_source}{}\doxysection{e1000\+\_\+82575.\+c}
\label{e1000__82575_8c_source}\index{dev/e1000/e1000\_82575.c@{dev/e1000/e1000\_82575.c}}
\mbox{\hyperlink{e1000__82575_8c}{Go to the documentation of this file.}}
\begin{DoxyCode}{0}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00001}00001 \textcolor{comment}{/******************************************************************************}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00002}00002 \textcolor{comment}{  SPDX-\/License-\/Identifier: BSD-\/3-\/Clause}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00003}00003 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00004}00004 \textcolor{comment}{  Copyright (c) 2001-\/2020, Intel Corporation}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00005}00005 \textcolor{comment}{  All rights reserved.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00006}00006 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00007}00007 \textcolor{comment}{  Redistribution and use in source and binary forms, with or without}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00008}00008 \textcolor{comment}{  modification, are permitted provided that the following conditions are met:}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00009}00009 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00010}00010 \textcolor{comment}{   1. Redistributions of source code must retain the above copyright notice,}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00011}00011 \textcolor{comment}{      this list of conditions and the following disclaimer.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00012}00012 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00013}00013 \textcolor{comment}{   2. Redistributions in binary form must reproduce the above copyright}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00014}00014 \textcolor{comment}{      notice, this list of conditions and the following disclaimer in the}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00015}00015 \textcolor{comment}{      documentation and/or other materials provided with the distribution.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00016}00016 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00017}00017 \textcolor{comment}{   3. Neither the name of the Intel Corporation nor the names of its}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00018}00018 \textcolor{comment}{      contributors may be used to endorse or promote products derived from}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00019}00019 \textcolor{comment}{      this software without specific prior written permission.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00020}00020 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00021}00021 \textcolor{comment}{  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "{}AS IS"{}}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00022}00022 \textcolor{comment}{  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00023}00023 \textcolor{comment}{  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00024}00024 \textcolor{comment}{  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00025}00025 \textcolor{comment}{  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00026}00026 \textcolor{comment}{  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00027}00027 \textcolor{comment}{  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00028}00028 \textcolor{comment}{  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00029}00029 \textcolor{comment}{  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00030}00030 \textcolor{comment}{  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00031}00031 \textcolor{comment}{  POSSIBILITY OF SUCH DAMAGE.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00032}00032 \textcolor{comment}{}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00033}00033 \textcolor{comment}{******************************************************************************/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00034}00034 \textcolor{comment}{/*\$FreeBSD\$*/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00035}00035 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00036}00036 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00037}00037 \textcolor{comment}{ * 82575EB Gigabit Network Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00038}00038 \textcolor{comment}{ * 82575EB Gigabit Backplane Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00039}00039 \textcolor{comment}{ * 82575GB Gigabit Network Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00040}00040 \textcolor{comment}{ * 82576 Gigabit Network Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00041}00041 \textcolor{comment}{ * 82576 Quad Port Gigabit Mezzanine Adapter}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00042}00042 \textcolor{comment}{ * 82580 Gigabit Network Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00043}00043 \textcolor{comment}{ * I350 Gigabit Network Connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00044}00044 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00045}00045 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00046}00046 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{e1000__api_8h}{e1000\_api.h}}"{}}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00047}00047 \textcolor{preprocessor}{\#include "{}\mbox{\hyperlink{e1000__i210_8h}{e1000\_i210.h}}"{}}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00048}00048 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00049}00049 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_aa1871223b238cc3dacc4bfe062d6acb2}{e1000\_init\_phy\_params\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00050}00050 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a6f017cc478f0678ea6dba038c4d7c94a}{e1000\_init\_mac\_params\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00051}00051 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_ac3d80e08c7b6b2ebe0862db19a042274}{e1000\_acquire\_nvm\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00052}00052 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a5f5fd99e924ec418d3c76c4894f641d8}{e1000\_release\_nvm\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00053}00053 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{e1000\_check\_for\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00054}00054 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_ac7458a1d30a52abbbbeb2d69693a41ec}{e1000\_check\_for\_link\_media\_swap}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00055}00055 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a097fa6056a548f6cfcaba75f2c8cdf4d}{e1000\_get\_cfg\_done\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00056}00056 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a949360ec01a39ae4c5cc623903a1338f}{e1000\_get\_link\_up\_info\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *speed,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00057}00057                                          \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *duplex);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00058}00058 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a80113f2d2b31eeeb8cd3fa4705cf4636}{e1000\_phy\_hw\_reset\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00059}00059 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a1c87a68ebadd6a71cad84deef9eeadfe}{e1000\_read\_phy\_reg\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00060}00060                                            \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00061}00061 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a8a1d99f8b3166ec72e1e1680448a4023}{e1000\_reset\_hw\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00062}00062 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_ae224fa353a8b373835fb7ebd63db3c54}{e1000\_init\_hw\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00063}00063 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a26fa3947fb19e50be34ce8ad7c5b04d1}{e1000\_reset\_hw\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00064}00064 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_aaee3f77c4148b572245c544cbd9f37db}{e1000\_read\_phy\_reg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00065}00065                                      \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00066}00066 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a818126470a5a5cf80cbf10c95496cd01}{e1000\_write\_phy\_reg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00067}00067                                       \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00068}00068 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a1be3e77dbc62cfb41748ad17bc569e18}{e1000\_set\_d0\_lplu\_state\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00069}00069                                           \textcolor{keywordtype}{bool} active);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00070}00070 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_ad5269bea0b754b8fb54a8be8b936b85e}{e1000\_set\_d3\_lplu\_state\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00071}00071                                           \textcolor{keywordtype}{bool} active);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00072}00072 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a775e190473572389844eaf331f5ec0fc}{e1000\_set\_d0\_lplu\_state\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00073}00073                                           \textcolor{keywordtype}{bool} active);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00074}00074 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a8bca0d5bb020a0a6b8806bbf94ca38b5}{e1000\_setup\_copper\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00075}00075 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a9b372cd6a64b99c40168c63ce412e220}{e1000\_setup\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00076}00076 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_aed98314ac26bac32dff26bcb00202ff8}{e1000\_get\_media\_type\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00077}00077 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_aaa792ac2b47577037e8844a19f76543e}{e1000\_set\_sfp\_media\_type\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00078}00078 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a0daf27ab84c80456b628c26774d35d7a}{e1000\_valid\_led\_default\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00079}00079 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_a86abc5387c695e04582adb9f61ee2cac}{e1000\_write\_phy\_reg\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00080}00080                                             \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00081}00081 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a42dcc0d1bb100de1a4ca83dda7e43ffc}{e1000\_clear\_hw\_cntrs\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00082}00082 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_ae4676bc42521d471e47aebdb31b5c519}{e1000\_get\_pcs\_speed\_and\_duplex\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00083}00083                                                  \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *speed, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *duplex);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00084}00084 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_aba6fd5b87565975738f7cfaebd157b5e}{e1000\_get\_phy\_id\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00085}00085 \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00086}00086 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  \mbox{\hyperlink{e1000__82575_8c_af0fc4cf116bce4d4daf593b2f88ac2e7}{e1000\_read\_mac\_addr\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00087}00087 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_af0abe5dc7c4893013bcb0791be928619}{e1000\_config\_collision\_dist\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00088}00088 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a559764e9d8cf6b2e33d22932f81f52b8}{e1000\_shutdown\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00089}00089 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a3d97e1168c9065472ef9c0ded706ac65}{e1000\_power\_up\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00090}00090 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a0cc9f664c5fdc0d2ee379d3dce62436a}{e1000\_set\_pcie\_completion\_timeout}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00091}00091 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ae02749ac9e32132418fc23b1a0fdbedf}{e1000\_reset\_mdicnfg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00092}00092 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ab2ce047fc8bed399e32d6fd204785372}{e1000\_validate\_nvm\_checksum\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00093}00093 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a7ba99b3c6a244c8a287d0d62b412df03}{e1000\_update\_nvm\_checksum\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00094}00094 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_af90235acee5350043a98bc7445a7dfac}{e1000\_update\_nvm\_checksum\_with\_offset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00095}00095                                                  \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00096}00096 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a416cbfa3c424ec6e03caa79436f010c0}{e1000\_validate\_nvm\_checksum\_with\_offset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00097}00097                                                    \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00098}00098 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a31c093f652777cb436874aa382e8e14c}{e1000\_validate\_nvm\_checksum\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00099}00099 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a9535ded81e4c3c307ba1e22c5009688d}{e1000\_update\_nvm\_checksum\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00100}00100 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a7d784f79abfcab30c6f120ba9e382cd4}{e1000\_clear\_vfta\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00101}00101 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00102}00102 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00103}00103 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{e1000\_i2c\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00104}00104 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_aff633624adf8aea73c024516005a1759}{e1000\_clock\_in\_i2c\_byte}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00105}00105 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00106}00106 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00107}00107 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a67d5a9aa4354ab4466efbe4f17b877ad}{e1000\_clock\_in\_i2c\_bit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00108}00108 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a96f7483ce3fa39c02adb2850779b4417}{e1000\_clock\_out\_i2c\_bit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00109}00109 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00110}00110 \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00111}00111 \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl, \textcolor{keywordtype}{bool} data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00112}00112 \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{e1000\_get\_i2c\_data}}(\mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00113}00113 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00114}\mbox{\hyperlink{e1000__82575_8c_a44781ca6797588b50c29273ba4278a1a}{00114}} \textcolor{keyword}{static} \textcolor{keyword}{const} \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} \mbox{\hyperlink{e1000__82575_8c_a44781ca6797588b50c29273ba4278a1a}{e1000\_82580\_rxpbs\_table}}[] = \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00115}00115         36, 72, 144, 1, 2, 4, 8, 16, 35, 70, 140 \};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00116}\mbox{\hyperlink{e1000__82575_8c_a3f5975b461c3750e434f691d1e68ae8e}{00116}} \textcolor{preprocessor}{\#define E1000\_82580\_RXPBS\_TABLE\_SIZE \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00117}00117 \textcolor{preprocessor}{        (sizeof(e1000\_82580\_rxpbs\_table) / \(\backslash\)}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00118}00118 \textcolor{preprocessor}{         sizeof(e1000\_82580\_rxpbs\_table[0]))}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00119}00119 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00120}00120 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00128}\mbox{\hyperlink{e1000__82575_8c_af0c76a2e1a1d039252bd54829350fdcb}{00128}} \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{e1000__82575_8c_af0c76a2e1a1d039252bd54829350fdcb}{e1000\_sgmii\_uses\_mdio\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00129}00129 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00130}00130         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} reg = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00131}00131         \textcolor{keywordtype}{bool} ext\_mdio = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00132}00132 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00133}00133         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_sgmii\_uses\_mdio\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00134}00134 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00135}00135         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00136}00136         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00137}00137         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00138}00138                 reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa7aec33b7834b41d4bbe9b062a51bca8}{E1000\_MDIC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00139}00139                 ext\_mdio = !!(reg \& \mbox{\hyperlink{e1000__defines_8h_a23faaf7d7b3baeda441448262dd09561}{E1000\_MDIC\_DEST}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00140}00140                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00141}00141         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00142}00142         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00143}00143         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00144}00144         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00145}00145         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7acaa7f109a8c07e9c7264c1305b1046a7}{e1000\_i211}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00146}00146                 reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9f6710a27a37d0a1d983994d4c3263c5}{E1000\_MDICNFG}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00147}00147                 ext\_mdio = !!(reg \& \mbox{\hyperlink{e1000__defines_8h_ae3084938632664fb60c52fa915e2361c}{E1000\_MDICNFG\_EXT\_MDIO}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00148}00148                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00149}00149         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00150}00150                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00151}00151         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00152}00152         \textcolor{keywordflow}{return} ext\_mdio;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00153}00153 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00154}00154 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00159}\mbox{\hyperlink{e1000__82575_8c_aa1871223b238cc3dacc4bfe062d6acb2}{00159}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aa1871223b238cc3dacc4bfe062d6acb2}{e1000\_init\_phy\_params\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00160}00160 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00161}00161         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00162}00162         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00163}00163         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00164}00164 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00165}00165         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_init\_phy\_params\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00166}00166 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00167}00167         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a3b08a1e9d28b96ff230ff6bd34ac3d16}{read\_i2c\_byte}} = \mbox{\hyperlink{e1000__82575_8c_a989162a5180c33d2103009297cfb7035}{e1000\_read\_i2c\_byte\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00168}00168         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a6dddc830682467ebab8d86f805039eba}{write\_i2c\_byte}} = \mbox{\hyperlink{e1000__82575_8c_ab8e411d0cc47b3cb8d86b248412d20f5}{e1000\_write\_i2c\_byte\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00169}00169 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00170}00170         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00171}00171                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}} = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a9ef3d5a8099146659ee6df12459fe02a}{e1000\_phy\_none}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00172}00172                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00173}00173         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00174}00174 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00175}00175         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a363421f73bfe631f545db4b0d4052ca2}{power\_up}}    = \mbox{\hyperlink{e1000__phy_8c_a62a74286f4ab2c77713c79fa8571fb45}{e1000\_power\_up\_phy\_copper}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00176}00176         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ad5fa6192b39682e863f36c107027d848}{power\_down}}        = \mbox{\hyperlink{e1000__base_8c_abdda6cd82c7f9a9c8eee6b1984290671}{e1000\_power\_down\_phy\_copper\_base}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00177}00177 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00178}00178         phy-\/>\mbox{\hyperlink{structe1000__phy__info_ad1f75faa123fb591ca9341731cb38dce}{autoneg\_mask}}   = \mbox{\hyperlink{e1000__defines_8h_a9a94c1bb6a61589d3b33b68ed688cb39}{AUTONEG\_ADVERTISE\_SPEED\_DEFAULT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00179}00179         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a0e8165cb75f6b6dcf79ad25d1efe8754}{reset\_delay\_us}}       = 100;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00180}00180 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00181}00181         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a75fe943d38470cd81dd76bf877a3dd62}{acquire}}      = \mbox{\hyperlink{e1000__base_8c_ab6889cd50ff191f1811bf49334a1316c}{e1000\_acquire\_phy\_base}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00182}00182         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c59fd9d029dd43ea2a10ba9e64c738}{check\_reset\_block}} = \mbox{\hyperlink{e1000__phy_8c_a03bc69927dd0a138f9a4315f5c8a9b49}{e1000\_check\_reset\_block\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00183}00183         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ac610f9d9f6c42a94e51495d06945f013}{commit}}                = \mbox{\hyperlink{e1000__phy_8c_a713e6b245aa1ef55e11d4e9f3067cd8d}{e1000\_phy\_sw\_reset\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00184}00184         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a32fd84d2b5192024e1f770363c75acbe}{get\_cfg\_done}}    = \mbox{\hyperlink{e1000__82575_8c_a097fa6056a548f6cfcaba75f2c8cdf4d}{e1000\_get\_cfg\_done\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00185}00185         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4f2c62beef3a2abd1fb85094170a0b35}{release}}      = \mbox{\hyperlink{e1000__base_8c_ac791eb15bd89261ef2bee5f53865d81a}{e1000\_release\_phy\_base}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00186}00186 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00187}00187         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00188}00188 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00189}00189         \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00190}00190                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a3ab6ad8f43ef7959b126342fd89d3d8f}{reset}} = \mbox{\hyperlink{e1000__82575_8c_a80113f2d2b31eeeb8cd3fa4705cf4636}{e1000\_phy\_hw\_reset\_sgmii\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00191}00191                 ctrl\_ext |= \mbox{\hyperlink{e1000__defines_8h_ab93ae7c5605624dbb14a37fbf0d27b04}{E1000\_CTRL\_I2C\_ENA}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00192}00192         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00193}00193                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a3ab6ad8f43ef7959b126342fd89d3d8f}{reset}} = \mbox{\hyperlink{e1000__phy_8c_aa53c6d0183bb7eda8daace8ef8d18794}{e1000\_phy\_hw\_reset\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00194}00194                 ctrl\_ext \&= \string~E1000\_CTRL\_I2C\_ENA;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00195}00195         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00196}00196 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00197}00197         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00198}00198         \mbox{\hyperlink{e1000__82575_8c_ae02749ac9e32132418fc23b1a0fdbedf}{e1000\_reset\_mdicnfg\_82580}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00199}00199 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00200}00200         \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw) \&\& !\mbox{\hyperlink{e1000__82575_8c_af0c76a2e1a1d039252bd54829350fdcb}{e1000\_sgmii\_uses\_mdio\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00201}00201                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}} = \mbox{\hyperlink{e1000__82575_8c_a1c87a68ebadd6a71cad84deef9eeadfe}{e1000\_read\_phy\_reg\_sgmii\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00202}00202                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}} = \mbox{\hyperlink{e1000__82575_8c_a86abc5387c695e04582adb9f61ee2cac}{e1000\_write\_phy\_reg\_sgmii\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00203}00203         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00204}00204                 \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00205}00205                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00206}00206                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00207}00207                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00208}00208                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}} = \mbox{\hyperlink{e1000__82575_8c_aaee3f77c4148b572245c544cbd9f37db}{e1000\_read\_phy\_reg\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00209}00209                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}} = \mbox{\hyperlink{e1000__82575_8c_a818126470a5a5cf80cbf10c95496cd01}{e1000\_write\_phy\_reg\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00210}00210                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00211}00211                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00212}00212                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7acaa7f109a8c07e9c7264c1305b1046a7}{e1000\_i211}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00213}00213                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}} = \mbox{\hyperlink{e1000__phy_8c_a84af7fd16f798749700efd331ae53fb8}{e1000\_read\_phy\_reg\_gs40g}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00214}00214                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}} = \mbox{\hyperlink{e1000__phy_8c_a60ea102e7ecda8a6a31e6788d6cdc3ae}{e1000\_write\_phy\_reg\_gs40g}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00215}00215                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00216}00216                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00217}00217                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}} = \mbox{\hyperlink{e1000__phy_8c_a192abaa60d01ffbc9d3523e8754752b6}{e1000\_read\_phy\_reg\_igp}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00218}00218                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}} = \mbox{\hyperlink{e1000__phy_8c_aeb1fda82a797359082933107b9b648cf}{e1000\_write\_phy\_reg\_igp}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00219}00219                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00220}00220         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00221}00221 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00222}00222         \textcolor{comment}{/* Set phy-\/>phy\_addr and phy-\/>id. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00223}00223         ret\_val = \mbox{\hyperlink{e1000__82575_8c_aba6fd5b87565975738f7cfaebd157b5e}{e1000\_get\_phy\_id\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00224}00224 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00225}00225         \textcolor{comment}{/* Verify phy id and set remaining function pointers */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00226}00226         \textcolor{keywordflow}{switch} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00227}00227         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00228}00228         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00229}00229         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a48af3bebd515d7348da62893698190c8}{I347AT4\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00230}00230         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a57eeee1360cc7e4d82227f07068a4f3e}{M88E1112\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00231}00231         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a9be47ec5c3688043fd7ac7cc0282c4d0}{M88E1340M\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00232}00232                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}           = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a04ea36ae1e2764a1776c8cd61770b7ac}{e1000\_phy\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00233}00233                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ae056f5206940294df77fd9ba7c1dab93}{check\_polarity}}        = \mbox{\hyperlink{e1000__phy_8c_a9855744f5a26573ebd6282d7b32810f0}{e1000\_check\_polarity\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00234}00234                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4cb7e32ff0540986a866836e291ce6db}{get\_info}}    = \mbox{\hyperlink{e1000__phy_8c_a49cd2a3b0f7fc300b2fe19759d226a79}{e1000\_get\_phy\_info\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00235}00235                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c50566c6eef7c72407fda2469b570b}{get\_cable\_length}} = \mbox{\hyperlink{e1000__phy_8c_a6ef6ed8870cb2d7288d7e6f7afe2e5a2}{e1000\_get\_cable\_length\_m88\_gen2}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00236}00236                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a685449476103ed21c99f732796276a0b}{force\_speed\_duplex}} = \mbox{\hyperlink{e1000__phy_8c_a8377d73a566924178d968fbfe18c036e}{e1000\_phy\_force\_speed\_duplex\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00237}00237                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00238}00238         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a2dc24cd397ccea992990e44075cbb1e4}{M88E1111\_I\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00239}00239                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}           = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a04ea36ae1e2764a1776c8cd61770b7ac}{e1000\_phy\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00240}00240                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ae056f5206940294df77fd9ba7c1dab93}{check\_polarity}}        = \mbox{\hyperlink{e1000__phy_8c_a9855744f5a26573ebd6282d7b32810f0}{e1000\_check\_polarity\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00241}00241                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4cb7e32ff0540986a866836e291ce6db}{get\_info}}    = \mbox{\hyperlink{e1000__phy_8c_a49cd2a3b0f7fc300b2fe19759d226a79}{e1000\_get\_phy\_info\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00242}00242                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c50566c6eef7c72407fda2469b570b}{get\_cable\_length}} = \mbox{\hyperlink{e1000__phy_8c_a094e77497069b6c28af67c1bf77f2357}{e1000\_get\_cable\_length\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00243}00243                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a685449476103ed21c99f732796276a0b}{force\_speed\_duplex}} = \mbox{\hyperlink{e1000__phy_8c_a8377d73a566924178d968fbfe18c036e}{e1000\_phy\_force\_speed\_duplex\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00244}00244                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00245}00245         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_afdbcead709a76d93f23cbae1f7a65af6}{IGP03E1000\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00246}00246         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_ad5c6bc07f7a6d178189c715dc245bea9}{IGP04E1000\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00247}00247                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}           = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87adef9f161e6181715455143385246d01f}{e1000\_phy\_igp\_3}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00248}00248                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ae056f5206940294df77fd9ba7c1dab93}{check\_polarity}}        = \mbox{\hyperlink{e1000__phy_8c_a55a0a72c737a604c03f99713193060ae}{e1000\_check\_polarity\_igp}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00249}00249                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4cb7e32ff0540986a866836e291ce6db}{get\_info}}    = \mbox{\hyperlink{e1000__phy_8c_a4a08739db37dc0954eea699335582c53}{e1000\_get\_phy\_info\_igp}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00250}00250                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c50566c6eef7c72407fda2469b570b}{get\_cable\_length}} = \mbox{\hyperlink{e1000__phy_8c_a3348b159b99449955c582e0ecb9085bf}{e1000\_get\_cable\_length\_igp\_2}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00251}00251                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_aad7d898611d718ea1f5ab1981592e70e}{set\_d0\_lplu\_state}} = \mbox{\hyperlink{e1000__82575_8c_a775e190473572389844eaf331f5ec0fc}{e1000\_set\_d0\_lplu\_state\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00252}00252                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a54a1019f131f002fe2d732bbef4f50c1}{set\_d3\_lplu\_state}} = \mbox{\hyperlink{e1000__phy_8c_aad37ac4e6b75dd59aabc421071162270}{e1000\_set\_d3\_lplu\_state\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00253}00253                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a685449476103ed21c99f732796276a0b}{force\_speed\_duplex}} = \mbox{\hyperlink{e1000__phy_8c_a01de067908d2df45504f376894f683e6}{e1000\_phy\_force\_speed\_duplex\_igp}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00254}00254                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00255}00255         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_aa24884b2148639008653bc0e7ca9a0cc}{I82580\_I\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00256}00256         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_ae51197514baf1f4412b0a7b104c2e7af}{I350\_I\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00257}00257                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}           = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a538e982234b5b945e0745f6e72868584}{e1000\_phy\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00258}00258                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ae056f5206940294df77fd9ba7c1dab93}{check\_polarity}}        = \mbox{\hyperlink{e1000__phy_8c_ab19a236616c1a4a703b5af8c02aff554}{e1000\_check\_polarity\_82577}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00259}00259                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4cb7e32ff0540986a866836e291ce6db}{get\_info}}    = \mbox{\hyperlink{e1000__phy_8c_a41c557d73cd870a8aae35b3afacdc106}{e1000\_get\_phy\_info\_82577}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00260}00260                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c50566c6eef7c72407fda2469b570b}{get\_cable\_length}} = \mbox{\hyperlink{e1000__phy_8c_adf8386ad072ea175b424ea4d4099df30}{e1000\_get\_cable\_length\_82577}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00261}00261                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_aad7d898611d718ea1f5ab1981592e70e}{set\_d0\_lplu\_state}} = \mbox{\hyperlink{e1000__82575_8c_a1be3e77dbc62cfb41748ad17bc569e18}{e1000\_set\_d0\_lplu\_state\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00262}00262                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a54a1019f131f002fe2d732bbef4f50c1}{set\_d3\_lplu\_state}} = \mbox{\hyperlink{e1000__82575_8c_ad5269bea0b754b8fb54a8be8b936b85e}{e1000\_set\_d3\_lplu\_state\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00263}00263                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a685449476103ed21c99f732796276a0b}{force\_speed\_duplex}} =}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00264}00264                                 \mbox{\hyperlink{e1000__phy_8c_a5ea96686f1e7b38c2ff83c41a978c3d5}{e1000\_phy\_force\_speed\_duplex\_82577}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00265}00265                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00266}00266         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_af856a1789672b3f958884b4c70fb3c25}{I210\_I\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00267}00267                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}           = \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a515b5122e91f5dd6b211bfd7d60cdcd6}{e1000\_phy\_i210}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00268}00268                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ae056f5206940294df77fd9ba7c1dab93}{check\_polarity}}        = \mbox{\hyperlink{e1000__phy_8c_a9855744f5a26573ebd6282d7b32810f0}{e1000\_check\_polarity\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00269}00269                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4cb7e32ff0540986a866836e291ce6db}{get\_info}}    = \mbox{\hyperlink{e1000__phy_8c_a49cd2a3b0f7fc300b2fe19759d226a79}{e1000\_get\_phy\_info\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00270}00270                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a70c50566c6eef7c72407fda2469b570b}{get\_cable\_length}} = \mbox{\hyperlink{e1000__phy_8c_a6ef6ed8870cb2d7288d7e6f7afe2e5a2}{e1000\_get\_cable\_length\_m88\_gen2}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00271}00271                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_aad7d898611d718ea1f5ab1981592e70e}{set\_d0\_lplu\_state}} = \mbox{\hyperlink{e1000__82575_8c_a1be3e77dbc62cfb41748ad17bc569e18}{e1000\_set\_d0\_lplu\_state\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00272}00272                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a54a1019f131f002fe2d732bbef4f50c1}{set\_d3\_lplu\_state}} = \mbox{\hyperlink{e1000__82575_8c_ad5269bea0b754b8fb54a8be8b936b85e}{e1000\_set\_d3\_lplu\_state\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00273}00273                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a685449476103ed21c99f732796276a0b}{force\_speed\_duplex}} = \mbox{\hyperlink{e1000__phy_8c_a8377d73a566924178d968fbfe18c036e}{e1000\_phy\_force\_speed\_duplex\_m88}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00274}00274                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00275}00275         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00276}00276                 ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a07c74865349e0dc0f182ff9f2d6a7a5c}{E1000\_ERR\_PHY}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00277}00277                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00278}00278         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00279}00279 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00280}00280         \textcolor{comment}{/* Check if this PHY is configured for media swap. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00281}00281         \textcolor{keywordflow}{switch} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00282}00282         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a57eeee1360cc7e4d82227f07068a4f3e}{M88E1112\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00283}00283         \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00284}00284                 \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00285}00285 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00286}00286                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4911b4a60ca68f69c3f54ebaec9cce7d}{E1000\_M88E1112\_PAGE\_ADDR}}, 2);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00287}00287                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00288}00288                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00289}00289                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4421242770effda1fd27cfde03b8526c}{E1000\_M88E1112\_MAC\_CTRL\_1}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00290}00290                                             \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00291}00291                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00292}00292                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00293}00293 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00294}00294                 data = (data \& \mbox{\hyperlink{e1000__defines_8h_a67edaf9ec0630be318416a90cd1b82b9}{E1000\_M88E1112\_MAC\_CTRL\_1\_MODE\_MASK}}) >>}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00295}00295                         \mbox{\hyperlink{e1000__defines_8h_ac6606defeeef8491ae5990ceed92062d}{E1000\_M88E1112\_MAC\_CTRL\_1\_MODE\_SHIFT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00296}00296                 \textcolor{keywordflow}{if} (data == \mbox{\hyperlink{e1000__defines_8h_a2dac067620e04d953ca25f32ce310942}{E1000\_M88E1112\_AUTO\_COPPER\_SGMII}} ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00297}00297                     data == \mbox{\hyperlink{e1000__defines_8h_acbf95b852650fcfd5bf64ad683320628}{E1000\_M88E1112\_AUTO\_COPPER\_BASEX}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00298}00298                         hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a333d0d20f9d7f8b6ee6f2a7f4e78f8a3}{check\_for\_link}} =}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00299}00299                                                 \mbox{\hyperlink{e1000__82575_8c_ac7458a1d30a52abbbbeb2d69693a41ec}{e1000\_check\_for\_link\_media\_swap}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00300}00300                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00301}00301         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00302}00302         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00303}00303         \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00304}00304                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a8eff88009e8a3c1457378cffe7406c31}{e1000\_initialize\_M88E1512\_phy}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00305}00305                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00306}00306         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00307}00307         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00308}00308         \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00309}00309                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_aa0973a2cede3672ff975ad71d4213683}{e1000\_initialize\_M88E1543\_phy}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00310}00310                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00311}00311         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00312}00312         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00313}00313                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00314}00314         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00315}00315 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00316}00316 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00317}00317         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00318}00318 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00319}00319 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00324}\mbox{\hyperlink{e1000__82575_8c_a6f017cc478f0678ea6dba038c4d7c94a}{00324}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a6f017cc478f0678ea6dba038c4d7c94a}{e1000\_init\_mac\_params\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00325}00325 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00326}00326         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__mac__info}{e1000\_mac\_info}} *mac = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00327}00327         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__dev__spec__82575}{e1000\_dev\_spec\_82575}} *dev\_spec = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00328}00328 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00329}00329         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_init\_mac\_params\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00330}00330 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00331}00331         \textcolor{comment}{/* Initialize function pointer */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00332}00332         \mbox{\hyperlink{e1000__mac_8c_a27745b176671e53290915c899833692a}{e1000\_init\_mac\_ops\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00333}00333 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00334}00334         \textcolor{comment}{/* Derives media type */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00335}00335         \mbox{\hyperlink{e1000__82575_8c_aed98314ac26bac32dff26bcb00202ff8}{e1000\_get\_media\_type\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00336}00336         \textcolor{comment}{/* Set MTA register count */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00337}00337         mac-\/>\mbox{\hyperlink{structe1000__mac__info_aaeb73d6a1af630e29c2e3b6382e8568a}{mta\_reg\_count}} = 128;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00338}00338         \textcolor{comment}{/* Set UTA register count */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00339}00339         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ac2dc58b8cbdd5c8a0442e82390ba11c0}{uta\_reg\_count}} = (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}}) ? 0 : 128;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00340}00340         \textcolor{comment}{/* Set RAR entry count */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00341}00341         mac-\/>\mbox{\hyperlink{structe1000__mac__info_acd8ecd2ef5218e3d2752ec289062425e}{rar\_entry\_count}} = \mbox{\hyperlink{e1000__82575_8h_a136b7f1c5b172d66c3fbb2144522b2e1}{E1000\_RAR\_ENTRIES\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00342}00342         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00343}00343                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_acd8ecd2ef5218e3d2752ec289062425e}{rar\_entry\_count}} = \mbox{\hyperlink{e1000__82575_8h_a32d42eaabd6b836fad90960b75030d10}{E1000\_RAR\_ENTRIES\_82576}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00344}00344         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00345}00345                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_acd8ecd2ef5218e3d2752ec289062425e}{rar\_entry\_count}} = \mbox{\hyperlink{e1000__82575_8h_aa440ffae08ba2f229b42a27b8039eb23}{E1000\_RAR\_ENTRIES\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00346}00346         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}} || mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00347}00347                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_acd8ecd2ef5218e3d2752ec289062425e}{rar\_entry\_count}} = \mbox{\hyperlink{e1000__82575_8h_ad4f635824734208c403eebf85a2358f7}{E1000\_RAR\_ENTRIES\_I350}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00348}00348 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00349}00349         \textcolor{comment}{/* Enable EEE default settings for EEE supported devices */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00350}00350         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} >= \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00351}00351                 dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a2442bba3e7dae375464292fbc3bba6aa}{eee\_disable}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00352}00352 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00353}00353         \textcolor{comment}{/* Allow a single clear of the SW semaphore on I210 and newer */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00354}00354         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} >= \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00355}00355                 dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a1c44289b35117596434d4c77cb030000}{clear\_semaphore\_once}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00356}00356 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00357}00357         \textcolor{comment}{/* Set if part includes ASF firmware */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00358}00358         mac-\/>\mbox{\hyperlink{structe1000__mac__info_a8884c3d87e273e57b80deb25ecf938b1}{asf\_firmware\_present}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00359}00359         \textcolor{comment}{/* FWSM register */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00360}00360         mac-\/>\mbox{\hyperlink{structe1000__mac__info_a24aa8c192f5d962a0ef3417aea5d0b66}{has\_fwsm}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00361}00361         \textcolor{comment}{/* ARC supported; valid only if manageability features are enabled. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00362}00362         mac-\/>\mbox{\hyperlink{structe1000__mac__info_a74a4b0ee5b025881e5dd5d954a506dee}{arc\_subsystem\_valid}} =}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00363}00363                 !!(\mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a7fefc3f029de78c6cec253f6a452ebcf}{E1000\_FWSM}}) \& \mbox{\hyperlink{e1000__manage_8h_a9fdd3b75400fb2aba9e8f377506c6149}{E1000\_FWSM\_MODE\_MASK}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00364}00364 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00365}00365         \textcolor{comment}{/* Function pointers */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00366}00366 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00367}00367         \textcolor{comment}{/* bus type/speed/width */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00368}00368         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ae7e1ceb0d970e0daecf676a84ddd75e2}{get\_bus\_info}} = \mbox{\hyperlink{e1000__mac_8c_a03b7d5cf7b14ba0a485ca1db8b188c80}{e1000\_get\_bus\_info\_pcie\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00369}00369         \textcolor{comment}{/* reset */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00370}00370         \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} >= \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00371}00371                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a74715aab502987c6b09ca97983acdb1f}{reset\_hw}} = \mbox{\hyperlink{e1000__82575_8c_a26fa3947fb19e50be34ce8ad7c5b04d1}{e1000\_reset\_hw\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00372}00372         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00373}00373                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a74715aab502987c6b09ca97983acdb1f}{reset\_hw}} = \mbox{\hyperlink{e1000__82575_8c_a8a1d99f8b3166ec72e1e1680448a4023}{e1000\_reset\_hw\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00374}00374         \textcolor{comment}{/* HW initialization */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00375}00375         \textcolor{keywordflow}{if} ((mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}) || (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7acaa7f109a8c07e9c7264c1305b1046a7}{e1000\_i211}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00376}00376                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a99fa3045badb3ab4831077bf6c976cc6}{init\_hw}} = \mbox{\hyperlink{e1000__i210_8c_ab5a2cce3dc8800fef201d84244c62ccf}{e1000\_init\_hw\_i210}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00377}00377         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00378}00378                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a99fa3045badb3ab4831077bf6c976cc6}{init\_hw}} = \mbox{\hyperlink{e1000__82575_8c_ae224fa353a8b373835fb7ebd63db3c54}{e1000\_init\_hw\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00379}00379         \textcolor{comment}{/* link setup */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00380}00380         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_aa21cc0eac51a6475a947d5887febcd18}{setup\_link}} = \mbox{\hyperlink{e1000__mac_8c_a788807b8928d220014e2cdc4b5b4fbd9}{e1000\_setup\_link\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00381}00381         \textcolor{comment}{/* physical interface link setup */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00382}00382         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a227f5c242ef37275c6807544f7fc34c5}{setup\_physical\_interface}} =}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00383}00383                 (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} == \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00384}00384                 ? \mbox{\hyperlink{e1000__82575_8c_a8bca0d5bb020a0a6b8806bbf94ca38b5}{e1000\_setup\_copper\_link\_82575}} : \mbox{\hyperlink{e1000__82575_8c_a9b372cd6a64b99c40168c63ce412e220}{e1000\_setup\_serdes\_link\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00385}00385         \textcolor{comment}{/* physical interface shutdown */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00386}00386         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_afe89029a42d1c32cb321d0ef8be5e0bd}{shutdown\_serdes}} = \mbox{\hyperlink{e1000__82575_8c_a559764e9d8cf6b2e33d22932f81f52b8}{e1000\_shutdown\_serdes\_link\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00387}00387         \textcolor{comment}{/* physical interface power up */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00388}00388         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_aa50879a0ed540977eaeca5f8999374e4}{power\_up\_serdes}} = \mbox{\hyperlink{e1000__82575_8c_a3d97e1168c9065472ef9c0ded706ac65}{e1000\_power\_up\_serdes\_link\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00389}00389         \textcolor{comment}{/* check for link */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00390}00390         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a333d0d20f9d7f8b6ee6f2a7f4e78f8a3}{check\_for\_link}} = \mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{e1000\_check\_for\_link\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00391}00391         \textcolor{comment}{/* read mac address */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00392}00392         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a8301c3061c24283dca95ae998ba075d2}{read\_mac\_addr}} = \mbox{\hyperlink{e1000__82575_8c_af0fc4cf116bce4d4daf593b2f88ac2e7}{e1000\_read\_mac\_addr\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00393}00393         \textcolor{comment}{/* configure collision distance */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00394}00394         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a3966bf08f3cf579301366976753765f4}{config\_collision\_dist}} = \mbox{\hyperlink{e1000__82575_8c_af0abe5dc7c4893013bcb0791be928619}{e1000\_config\_collision\_dist\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00395}00395         \textcolor{comment}{/* multicast address update */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00396}00396         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ae16008d470719dd8701b7a283d53c4c9}{update\_mc\_addr\_list}} = \mbox{\hyperlink{e1000__mac_8c_a9effba4a7c35d841842dce3755b35bdb}{e1000\_update\_mc\_addr\_list\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00397}00397         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}} || mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00398}00398                 \textcolor{comment}{/* writing VFTA */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00399}00399                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a8f42a4a4be533cfde11163b891c3235d}{write\_vfta}} = \mbox{\hyperlink{e1000__82575_8c_a94872f018dc27eb2ae92f89313b75642}{e1000\_write\_vfta\_i350}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00400}00400                 \textcolor{comment}{/* clearing VFTA */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00401}00401                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a4c933d8f17c0d408c3ecb7ad5150d82d}{clear\_vfta}} = \mbox{\hyperlink{e1000__82575_8c_a7d784f79abfcab30c6f120ba9e382cd4}{e1000\_clear\_vfta\_i350}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00402}00402         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00403}00403                 \textcolor{comment}{/* writing VFTA */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00404}00404                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a8f42a4a4be533cfde11163b891c3235d}{write\_vfta}} = \mbox{\hyperlink{e1000__mac_8c_acf08a42ff947c708a64a5a3c34e43995}{e1000\_write\_vfta\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00405}00405                 \textcolor{comment}{/* clearing VFTA */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00406}00406                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a4c933d8f17c0d408c3ecb7ad5150d82d}{clear\_vfta}} = \mbox{\hyperlink{e1000__mac_8c_ab5de77674ea6154edb0b9c7f5ac232b8}{e1000\_clear\_vfta\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00407}00407         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00408}00408         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} >= \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00409}00409                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a2c3277b40d764b98b70510201d6a21bf}{validate\_mdi\_setting}} =}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00410}00410                         \mbox{\hyperlink{e1000__mac_8c_a2cba3eadb916c5df6b2a7540dcc0cd4b}{e1000\_validate\_mdi\_setting\_crossover\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00411}00411         \textcolor{comment}{/* ID LED init */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00412}00412         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a079e16a31037c78bdb61d3961aca29b6}{id\_led\_init}} = \mbox{\hyperlink{e1000__mac_8c_a4579c97ae640b8a0ea3fcb17de5c6324}{e1000\_id\_led\_init\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00413}00413         \textcolor{comment}{/* blink LED */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00414}00414         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a6cdb6611e1586880b90d90f157993d54}{blink\_led}} = \mbox{\hyperlink{e1000__mac_8c_aa76501ed3e371c2afd6796fe8c287e25}{e1000\_blink\_led\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00415}00415         \textcolor{comment}{/* setup LED */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00416}00416         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a02a2b31c34890b1dd749d732f5b8cb61}{setup\_led}} = \mbox{\hyperlink{e1000__mac_8c_ae6d44da65a2ffe142244889d5fa34825}{e1000\_setup\_led\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00417}00417         \textcolor{comment}{/* cleanup LED */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00418}00418         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_aaa66f8030fb6772ec212eab0b1ab432f}{cleanup\_led}} = \mbox{\hyperlink{e1000__mac_8c_a97d2226bec29939b018e4096d792c685}{e1000\_cleanup\_led\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00419}00419         \textcolor{comment}{/* turn on/off LED */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00420}00420         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a7cc3593330184b499bd1bf2d78e976de}{led\_on}} = \mbox{\hyperlink{e1000__mac_8c_a5d192260e1a28db11f7b8203d0e22fcd}{e1000\_led\_on\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00421}00421         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ae168c8b9a3f410720846bfd55749f8a4}{led\_off}} = \mbox{\hyperlink{e1000__mac_8c_a9920ed8b96c0fdcbde057a414ec92e04}{e1000\_led\_off\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00422}00422         \textcolor{comment}{/* clear hardware counters */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00423}00423         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_abfbe9b56a042bacd6300a01b4662adf9}{clear\_hw\_cntrs}} = \mbox{\hyperlink{e1000__82575_8c_a42dcc0d1bb100de1a4ca83dda7e43ffc}{e1000\_clear\_hw\_cntrs\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00424}00424         \textcolor{comment}{/* link info */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00425}00425         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a1b4f20f8162f202b0bbe52225b8323a0}{get\_link\_up\_info}} = \mbox{\hyperlink{e1000__82575_8c_a949360ec01a39ae4c5cc623903a1338f}{e1000\_get\_link\_up\_info\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00426}00426         \textcolor{comment}{/* acquire SW\_FW sync */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00427}00427         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ac9bb313a4e1d3e740cd2fecc5cf7e059}{acquire\_swfw\_sync}} = \mbox{\hyperlink{e1000__mac_8c_a551b6d4df1d075d51d72c1696c7ba32f}{e1000\_acquire\_swfw\_sync}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00428}00428         \textcolor{comment}{/* release SW\_FW sync */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00429}00429         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a013bebb2132423f4fe9e15a8eb3b6b5c}{release\_swfw\_sync}} = \mbox{\hyperlink{e1000__mac_8c_a951267e88e433effb00c59aa802af4d6}{e1000\_release\_swfw\_sync}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00430}00430 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00431}00431         \textcolor{comment}{/* set lan id for port to determine which phy lock to use */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00432}00432         hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ac48383251db159e47d6aeafc22d70d16}{set\_lan\_id}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00433}00433 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00434}00434         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00435}00435 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00436}00436 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00441}\mbox{\hyperlink{e1000__82575_8c_a189f548e56c0bd4ae56abc4c5b2e506d}{00441}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a189f548e56c0bd4ae56abc4c5b2e506d}{e1000\_init\_nvm\_params\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00442}00442 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00443}00443         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__nvm__info}{e1000\_nvm\_info}} *nvm = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00444}00444         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} eecd = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00445}00445         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} size;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00446}00446 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00447}00447         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_init\_nvm\_params\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00448}00448 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00449}00449         size = (\mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}})((eecd \& \mbox{\hyperlink{e1000__defines_8h_a6d097c20f3949e2e7e05f955e9e908c9}{E1000\_EECD\_SIZE\_EX\_MASK}}) >>}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00450}00450                      \mbox{\hyperlink{e1000__defines_8h_a66ccf60ce99881bd99d4a7b29cfaf1dd}{E1000\_EECD\_SIZE\_EX\_SHIFT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00451}00451         \textcolor{comment}{/* Added to a constant, "{}size"{} becomes the left-\/shift value}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00452}00452 \textcolor{comment}{         * for setting word\_size.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00453}00453 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00454}00454         size += \mbox{\hyperlink{e1000__defines_8h_a3d1b136d091213a4a0cabee163767980}{NVM\_WORD\_SIZE\_BASE\_SHIFT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00455}00455 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00456}00456         \textcolor{comment}{/* Just in case size is out of range, cap it to the largest}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00457}00457 \textcolor{comment}{         * EEPROM size supported}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00458}00458 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00459}00459         \textcolor{keywordflow}{if} (size > 15)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00460}00460                 size = 15;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00461}00461 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00462}00462         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_afaf26405015b9a7d05c646a1f6567f87}{word\_size}} = 1 << size;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00463}00463         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} < \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00464}00464                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a6921f34e18ffe55fc97e0ec1db18bf00}{opcode\_bits}} = 8;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00465}00465                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_aa8bc2fd2df583379a8a72046144f7ada}{delay\_usec}} = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00466}00466 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00467}00467                 \textcolor{keywordflow}{switch} (nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a87ef804c2d1820009ac5741c29eb28ec}{override}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00468}00468                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a0d67e5f076b5fc63a5067e3b923552f2a57bed1d86bccfb1ad8a4ade00c18ae48}{e1000\_nvm\_override\_spi\_large}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00469}00469                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ad76f3d175d39a5cb91fd179e7a65fdb4}{page\_size}} = 32;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00470}00470                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ae6a7da98b5a96c2cb7e64c42f6e62f5e}{address\_bits}} = 16;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00471}00471                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00472}00472                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a0d67e5f076b5fc63a5067e3b923552f2aa10195321e426fdba1df296c4c52f5d2}{e1000\_nvm\_override\_spi\_small}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00473}00473                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ad76f3d175d39a5cb91fd179e7a65fdb4}{page\_size}} = 8;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00474}00474                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ae6a7da98b5a96c2cb7e64c42f6e62f5e}{address\_bits}} = 8;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00475}00475                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00476}00476                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00477}00477                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ad76f3d175d39a5cb91fd179e7a65fdb4}{page\_size}} = eecd \& \mbox{\hyperlink{e1000__defines_8h_ab979d0c407278058a68b2bdec49381ad}{E1000\_EECD\_ADDR\_BITS}} ? 32 : 8;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00478}00478                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ae6a7da98b5a96c2cb7e64c42f6e62f5e}{address\_bits}} = eecd \& \mbox{\hyperlink{e1000__defines_8h_ab979d0c407278058a68b2bdec49381ad}{E1000\_EECD\_ADDR\_BITS}} ?}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00479}00479                                             16 : 8;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00480}00480                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00481}00481                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00482}00482                 \textcolor{keywordflow}{if} (nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_afaf26405015b9a7d05c646a1f6567f87}{word\_size}} == (1 << 15))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00483}00483                         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_ad76f3d175d39a5cb91fd179e7a65fdb4}{page\_size}} = 128;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00484}00484 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00485}00485                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a054b50b823dd73ce0b1dc10949efca08}{type}} = \mbox{\hyperlink{e1000__hw_8h_ab9395833db36010a400eea73d9f90effa41816c9f61f1d97dacdccaeb203f90f9}{e1000\_nvm\_eeprom\_spi}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00486}00486         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00487}00487                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a054b50b823dd73ce0b1dc10949efca08}{type}} = \mbox{\hyperlink{e1000__hw_8h_ab9395833db36010a400eea73d9f90effaa41c9052a4ea38bd91db9a9a69c1434b}{e1000\_nvm\_flash\_hw}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00488}00488         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00489}00489 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00490}00490         \textcolor{comment}{/* Function Pointers */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00491}00491         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_af11a0f84f5d04b114b349cf26022c146}{acquire}} = \mbox{\hyperlink{e1000__82575_8c_ac3d80e08c7b6b2ebe0862db19a042274}{e1000\_acquire\_nvm\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00492}00492         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_a2ee59b86431a91b209ba11eea117418c}{release}} = \mbox{\hyperlink{e1000__82575_8c_a5f5fd99e924ec418d3c76c4894f641d8}{e1000\_release\_nvm\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00493}00493         \textcolor{keywordflow}{if} (nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_afaf26405015b9a7d05c646a1f6567f87}{word\_size}} < (1 << 15))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00494}00494                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}} = \mbox{\hyperlink{e1000__nvm_8c_a76cdc4849e49e06fae7e8fe0474b4ecb}{e1000\_read\_nvm\_eerd}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00495}00495         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00496}00496                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}} = \mbox{\hyperlink{e1000__nvm_8c_aa395f4cb1eeb96aa8098525300070fb1}{e1000\_read\_nvm\_spi}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00497}00497 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00498}00498         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_a5f78fa8be60d9b5b372230254fd41c7d}{write}} = \mbox{\hyperlink{e1000__nvm_8c_a5261c4d513480fdab42dae202eaebc98}{e1000\_write\_nvm\_spi}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00499}00499         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ac691cc860da74722eecbed0d8d492f25}{validate}} = \mbox{\hyperlink{e1000__nvm_8c_ae3402541b253b31da66c2be503f2389a}{e1000\_validate\_nvm\_checksum\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00500}00500         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ad0651a7b86550448da7ec48682ef493e}{update}} = \mbox{\hyperlink{e1000__nvm_8c_a4e7c937c56f8af64dc6b33974a986276}{e1000\_update\_nvm\_checksum\_generic}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00501}00501         nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_af4ba4eab5a840989e75d6b5cc56f4340}{valid\_led\_default}} = \mbox{\hyperlink{e1000__82575_8c_a0daf27ab84c80456b628c26774d35d7a}{e1000\_valid\_led\_default\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00502}00502 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00503}00503         \textcolor{comment}{/* override generic family function pointers for specific descendants */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00504}00504         switch (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00505}00505         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00506}00506                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ac691cc860da74722eecbed0d8d492f25}{validate}} = \mbox{\hyperlink{e1000__82575_8c_ab2ce047fc8bed399e32d6fd204785372}{e1000\_validate\_nvm\_checksum\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00507}00507                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ad0651a7b86550448da7ec48682ef493e}{update}} = \mbox{\hyperlink{e1000__82575_8c_a7ba99b3c6a244c8a287d0d62b412df03}{e1000\_update\_nvm\_checksum\_82580}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00508}00508                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00509}00509         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00510}00510                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ac691cc860da74722eecbed0d8d492f25}{validate}} = \mbox{\hyperlink{e1000__82575_8c_a31c093f652777cb436874aa382e8e14c}{e1000\_validate\_nvm\_checksum\_i350}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00511}00511                 nvm-\/>\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_ad0651a7b86550448da7ec48682ef493e}{update}} = \mbox{\hyperlink{e1000__82575_8c_a9535ded81e4c3c307ba1e22c5009688d}{e1000\_update\_nvm\_checksum\_i350}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00512}00512                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00513}00513         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00514}00514                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00515}00515         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00516}00516 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00517}00517         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00518}00518 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00519}00519 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00526}\mbox{\hyperlink{e1000__82575_8c_a4326f2d8739ee76163fc7ffd4043e676}{00526}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a4326f2d8739ee76163fc7ffd4043e676}{e1000\_init\_function\_pointers\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00527}00527 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00528}00528         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_init\_function\_pointers\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00529}00529 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00530}00530         hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_aef4969c0596b3ac799a491f633402d6c}{init\_params}} = \mbox{\hyperlink{e1000__82575_8c_a6f017cc478f0678ea6dba038c4d7c94a}{e1000\_init\_mac\_params\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00531}00531         hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_a346628b99163df31bec71767794a88c1}{init\_params}} = \mbox{\hyperlink{e1000__82575_8c_a189f548e56c0bd4ae56abc4c5b2e506d}{e1000\_init\_nvm\_params\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00532}00532         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a46566a7ea0ca0c2af7e088e5106a24e4}{init\_params}} = \mbox{\hyperlink{e1000__82575_8c_aa1871223b238cc3dacc4bfe062d6acb2}{e1000\_init\_phy\_params\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00533}00533         hw-\/>\mbox{\hyperlink{structe1000__hw_a92c02475db35b4695b5c219c1670fb38}{mbx}}.\mbox{\hyperlink{structe1000__mbx__info_ae1234430087b30da96eb4ae82b5a90ea}{ops}}.\mbox{\hyperlink{structe1000__mbx__operations_a4ab88e80e66aaa022968046f86787963}{init\_params}} = \mbox{\hyperlink{e1000__mbx_8c_a728baaa07945502ebb4cb84e14b4d92c}{e1000\_init\_mbx\_params\_pf}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00534}00534 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00535}00535 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00545}\mbox{\hyperlink{e1000__82575_8c_a1c87a68ebadd6a71cad84deef9eeadfe}{00545}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a1c87a68ebadd6a71cad84deef9eeadfe}{e1000\_read\_phy\_reg\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00546}00546                                           \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00547}00547 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00548}00548         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a16a6dcc17b09a451704c5d424e97845b}{E1000\_ERR\_PARAM}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00549}00549 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00550}00550         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_read\_phy\_reg\_sgmii\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00551}00551 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00552}00552         \textcolor{keywordflow}{if} (offset > \mbox{\hyperlink{e1000__defines_8h_a4e136d8d1d3ebbd11dc9cb785fe01d5e}{E1000\_MAX\_SGMII\_PHY\_REG\_ADDR}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00553}00553                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}PHY Address \%u is out of range\(\backslash\)n"{}}, offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00554}00554                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00555}00555         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00556}00556 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00557}00557         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a75fe943d38470cd81dd76bf877a3dd62}{acquire}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00558}00558         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00559}00559                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00560}00560 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00561}00561         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a98126373420744271cd173677198d312}{e1000\_read\_phy\_reg\_i2c}}(hw, offset, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00562}00562 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00563}00563         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4f2c62beef3a2abd1fb85094170a0b35}{release}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00564}00564 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00565}00565 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00566}00566         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00567}00567 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00568}00568 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00578}\mbox{\hyperlink{e1000__82575_8c_a86abc5387c695e04582adb9f61ee2cac}{00578}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a86abc5387c695e04582adb9f61ee2cac}{e1000\_write\_phy\_reg\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00579}00579                                            \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00580}00580 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00581}00581         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a16a6dcc17b09a451704c5d424e97845b}{E1000\_ERR\_PARAM}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00582}00582 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00583}00583         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_write\_phy\_reg\_sgmii\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00584}00584 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00585}00585         \textcolor{keywordflow}{if} (offset > \mbox{\hyperlink{e1000__defines_8h_a4e136d8d1d3ebbd11dc9cb785fe01d5e}{E1000\_MAX\_SGMII\_PHY\_REG\_ADDR}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00586}00586                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}PHY Address \%d is out of range\(\backslash\)n"{}}, offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00587}00587                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00588}00588         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00589}00589 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00590}00590         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a75fe943d38470cd81dd76bf877a3dd62}{acquire}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00591}00591         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00592}00592                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00593}00593 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00594}00594         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a6dd39afce3ad4be768129f96eb7c40fb}{e1000\_write\_phy\_reg\_i2c}}(hw, offset, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00595}00595 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00596}00596         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4f2c62beef3a2abd1fb85094170a0b35}{release}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00597}00597 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00598}00598 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00599}00599         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00600}00600 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00601}00601 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00609}\mbox{\hyperlink{e1000__82575_8c_aba6fd5b87565975738f7cfaebd157b5e}{00609}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aba6fd5b87565975738f7cfaebd157b5e}{e1000\_get\_phy\_id\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00610}00610 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00611}00611         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00612}00612         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}}  ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00613}00613         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} phy\_id;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00614}00614         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00615}00615         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} mdic;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00616}00616 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00617}00617         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_phy\_id\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00618}00618 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00619}00619         \textcolor{comment}{/* some i354 devices need an extra read for phy id */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00620}00620         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00621}00621                 \mbox{\hyperlink{e1000__phy_8c_a38d00e86c5f84ae3d03a470986478bd7}{e1000\_get\_phy\_id}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00622}00622 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00623}00623         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00624}00624 \textcolor{comment}{         * For SGMII PHYs, we try the list of possible addresses until}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00625}00625 \textcolor{comment}{         * we find one that works.  For non-\/SGMII PHYs}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00626}00626 \textcolor{comment}{         * (e.g. integrated copper PHYs), an address of 1 should}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00627}00627 \textcolor{comment}{         * work.  The result of this function should mean phy-\/>phy\_addr}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00628}00628 \textcolor{comment}{         * and phy-\/>id are set correctly.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00629}00629 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00630}00630         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00631}00631                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00632}00632                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a38d00e86c5f84ae3d03a470986478bd7}{e1000\_get\_phy\_id}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00633}00633                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00634}00634         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00635}00635 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00636}00636         \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__82575_8c_af0c76a2e1a1d039252bd54829350fdcb}{e1000\_sgmii\_uses\_mdio\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00637}00637                 \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00638}00638                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00639}00639                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00640}00640                         mdic = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa7aec33b7834b41d4bbe9b062a51bca8}{E1000\_MDIC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00641}00641                         mdic \&= \mbox{\hyperlink{e1000__defines_8h_a2002c49cdb2416da9ee37dd48d504422}{E1000\_MDIC\_PHY\_MASK}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00642}00642                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} = mdic >> \mbox{\hyperlink{e1000__defines_8h_acdd969e7e46146c4607ed1f19703ca68}{E1000\_MDIC\_PHY\_SHIFT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00643}00643                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00644}00644                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00645}00645                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00646}00646                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00647}00647                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00648}00648                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7acaa7f109a8c07e9c7264c1305b1046a7}{e1000\_i211}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00649}00649                         mdic = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9f6710a27a37d0a1d983994d4c3263c5}{E1000\_MDICNFG}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00650}00650                         mdic \&= \mbox{\hyperlink{e1000__defines_8h_a3a7c21b314100795181cd8c31eff0f64}{E1000\_MDICNFG\_PHY\_MASK}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00651}00651                         phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} = mdic >> \mbox{\hyperlink{e1000__defines_8h_a4b5665aad53ba722a26d8a2b9d8099a7}{E1000\_MDICNFG\_PHY\_SHIFT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00652}00652                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00653}00653                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00654}00654                         ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a07c74865349e0dc0f182ff9f2d6a7a5c}{E1000\_ERR\_PHY}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00655}00655                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00656}00656                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00657}00657                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00658}00658                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a38d00e86c5f84ae3d03a470986478bd7}{e1000\_get\_phy\_id}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00659}00659                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00660}00660         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00661}00661 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00662}00662         \textcolor{comment}{/* Power on sgmii phy if it is disabled */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00663}00663         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00664}00664         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00665}00665                         ctrl\_ext \& \string~\mbox{\hyperlink{e1000__defines_8h_aa8e968df5bcc6861d5900dbd62390a57}{E1000\_CTRL\_EXT\_SDP3\_DATA}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00666}00666         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00667}00667         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(300);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00668}00668 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00669}00669         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00670}00670 \textcolor{comment}{         * The address field in the I2CCMD register is 3 bits and 0 is invalid.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00671}00671 \textcolor{comment}{         * Therefore, we need to test 1-\/7}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00672}00672 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00673}00673         \textcolor{keywordflow}{for} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} = 1; phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} < 8; phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}}++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00674}00674                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a1c87a68ebadd6a71cad84deef9eeadfe}{e1000\_read\_phy\_reg\_sgmii\_82575}}(hw, \mbox{\hyperlink{e1000__defines_8h_a596cee3be90ad6b96071aa34d2966ec1}{PHY\_ID1}}, \&phy\_id);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00675}00675                 \textcolor{keywordflow}{if} (ret\_val == \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00676}00676                         \mbox{\hyperlink{e1000__osdep_8h_a051546be44f3f611a7ec3acd0e572565}{DEBUGOUT2}}(\textcolor{stringliteral}{"{}Vendor ID 0x\%08X read at address \%u\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00677}00677                                   phy\_id, phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00678}00678                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00679}00679 \textcolor{comment}{                         * At the time of this writing, The M88 part is}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00680}00680 \textcolor{comment}{                         * the only supported SGMII PHY product.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00681}00681 \textcolor{comment}{                         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00682}00682                         \textcolor{keywordflow}{if} (phy\_id == \mbox{\hyperlink{e1000__defines_8h_a2afe4248cdd70816e67e10e77f538873}{M88\_VENDOR}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00683}00683                                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00684}00684                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00685}00685                         \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}PHY address \%u was unreadable\(\backslash\)n"{}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00686}00686                                   phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00687}00687                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00688}00688         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00689}00689 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00690}00690         \textcolor{comment}{/* A valid PHY type couldn't be found. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00691}00691         \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} == 8) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00692}00692                 phy-\/>\mbox{\hyperlink{structe1000__phy__info_affa9ad1e5d4e3dbde657cd4560705dc5}{addr}} = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00693}00693                 ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a07c74865349e0dc0f182ff9f2d6a7a5c}{E1000\_ERR\_PHY}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00694}00694         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00695}00695                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a38d00e86c5f84ae3d03a470986478bd7}{e1000\_get\_phy\_id}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00696}00696         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00697}00697 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00698}00698         \textcolor{comment}{/* restore previous sfp cage power state */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00699}00699         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00700}00700 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00701}00701 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00702}00702         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00703}00703 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00704}00704 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00711}\mbox{\hyperlink{e1000__82575_8c_a80113f2d2b31eeeb8cd3fa4705cf4636}{00711}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a80113f2d2b31eeeb8cd3fa4705cf4636}{e1000\_phy\_hw\_reset\_sgmii\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00712}00712 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00713}00713         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00714}00714         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00715}00715 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00716}00716         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_phy\_hw\_reset\_sgmii\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00717}00717 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00718}00718         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00719}00719 \textcolor{comment}{         * This isn't a true "{}hard"{} reset, but is the only reset}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00720}00720 \textcolor{comment}{         * available to us at this time.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00721}00721 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00722}00722 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00723}00723         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Soft resetting SGMII attached PHY...\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00724}00724 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00725}00725         \textcolor{keywordflow}{if} (!(hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00726}00726                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00727}00727 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00728}00728         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00729}00729 \textcolor{comment}{         * SFP documentation requires the following to configure the SPF module}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00730}00730 \textcolor{comment}{         * to work on SGMII.  No further documentation is given.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00731}00731 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00732}00732         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, 0x1B, 0x8084);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00733}00733         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00734}00734                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00735}00735 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00736}00736         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ac610f9d9f6c42a94e51495d06945f013}{commit}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00737}00737         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00738}00738                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00739}00739 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00740}00740         \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} == \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00741}00741                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a8eff88009e8a3c1457378cffe7406c31}{e1000\_initialize\_M88E1512\_phy}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00742}00742 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00743}00743         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00744}00744 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00745}00745 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00759}\mbox{\hyperlink{e1000__82575_8c_a775e190473572389844eaf331f5ec0fc}{00759}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a775e190473572389844eaf331f5ec0fc}{e1000\_set\_d0\_lplu\_state\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} active)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00760}00760 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00761}00761         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00762}00762         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00763}00763         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00764}00764 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00765}00765         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_d0\_lplu\_state\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00766}00766 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00767}00767         \textcolor{keywordflow}{if} (!(hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00768}00768                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00769}00769 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00770}00770         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__phy_8h_acb0c275cf6ddbd1f0fcc30085b9ce288}{IGP02E1000\_PHY\_POWER\_MGMT}}, \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00771}00771         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00772}00772                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00773}00773 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00774}00774         \textcolor{keywordflow}{if} (active) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00775}00775                 data |= \mbox{\hyperlink{e1000__phy_8h_aa34b4266898f4c477b8980e72ad35fe0}{IGP02E1000\_PM\_D0\_LPLU}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00776}00776                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__phy_8h_acb0c275cf6ddbd1f0fcc30085b9ce288}{IGP02E1000\_PHY\_POWER\_MGMT}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00777}00777                                              data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00778}00778                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00779}00779                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00780}00780 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00781}00781                 \textcolor{comment}{/* When LPLU is enabled, we should disable SmartSpeed */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00782}00782                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00783}00783                                             \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00784}00784                 data \&= \string~IGP01E1000\_PSCFR\_SMART\_SPEED;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00785}00785                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00786}00786                                              data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00787}00787                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00788}00788                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00789}00789         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00790}00790                 data \&= \string~IGP02E1000\_PM\_D0\_LPLU;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00791}00791                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__phy_8h_acb0c275cf6ddbd1f0fcc30085b9ce288}{IGP02E1000\_PHY\_POWER\_MGMT}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00792}00792                                              data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00793}00793                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00794}00794 \textcolor{comment}{                 * LPLU and SmartSpeed are mutually exclusive.  LPLU is used}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00795}00795 \textcolor{comment}{                 * during Dx states where the power conservation is most}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00796}00796 \textcolor{comment}{                 * important.  During driver activity we should enable}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00797}00797 \textcolor{comment}{                 * SmartSpeed, so performance is maintained.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00798}00798 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00799}00799                 \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695bad34e6e0226ebdc72aa7d3a1a9e7f9554}{e1000\_smart\_speed\_on}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00800}00800                         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00801}00801                                                     \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00802}00802                                                     \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00803}00803                         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00804}00804                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00805}00805 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00806}00806                         data |= \mbox{\hyperlink{e1000__phy_8h_afb68d53cd92bb2f5ba66810a7f33898f}{IGP01E1000\_PSCFR\_SMART\_SPEED}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00807}00807                         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00808}00808                                                      \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00809}00809                                                      data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00810}00810                         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00811}00811                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00812}00812                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695ba0bc8fae82630994aacd137ba8082c6e7}{e1000\_smart\_speed\_off}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00813}00813                         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00814}00814                                                     \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00815}00815                                                     \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00816}00816                         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00817}00817                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00818}00818 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00819}00819                         data \&= \string~IGP01E1000\_PSCFR\_SMART\_SPEED;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00820}00820                         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00821}00821                                                      \mbox{\hyperlink{e1000__phy_8h_a51a2769bea97faa613e595cc59699a1e}{IGP01E1000\_PHY\_PORT\_CONFIG}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00822}00822                                                      data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00823}00823                         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00824}00824                                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00825}00825                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00826}00826         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00827}00827 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00828}00828 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00829}00829         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00830}00830 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00831}00831 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00845}\mbox{\hyperlink{e1000__82575_8c_a1be3e77dbc62cfb41748ad17bc569e18}{00845}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a1be3e77dbc62cfb41748ad17bc569e18}{e1000\_set\_d0\_lplu\_state\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} active)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00846}00846 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00847}00847         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00848}00848         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00849}00849 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00850}00850         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_d0\_lplu\_state\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00851}00851 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00852}00852         data = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00853}00853 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00854}00854         \textcolor{keywordflow}{if} (active) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00855}00855                 data |= \mbox{\hyperlink{e1000__phy_8h_a6744420d34cf1f9a57b7163a68dd0814}{E1000\_82580\_PM\_D0\_LPLU}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00856}00856 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00857}00857                 \textcolor{comment}{/* When LPLU is enabled, we should disable SmartSpeed */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00858}00858                 data \&= \string~E1000\_82580\_PM\_SPD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00859}00859         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00860}00860                 data \&= \string~E1000\_82580\_PM\_D0\_LPLU;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00861}00861 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00862}00862                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00863}00863 \textcolor{comment}{                 * LPLU and SmartSpeed are mutually exclusive.  LPLU is used}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00864}00864 \textcolor{comment}{                 * during Dx states where the power conservation is most}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00865}00865 \textcolor{comment}{                 * important.  During driver activity we should enable}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00866}00866 \textcolor{comment}{                 * SmartSpeed, so performance is maintained.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00867}00867 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00868}00868                 \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695bad34e6e0226ebdc72aa7d3a1a9e7f9554}{e1000\_smart\_speed\_on}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00869}00869                         data |= \mbox{\hyperlink{e1000__phy_8h_ac81d0e5f2a5cfc644451ed8ec600c4d7}{E1000\_82580\_PM\_SPD}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00870}00870                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695ba0bc8fae82630994aacd137ba8082c6e7}{e1000\_smart\_speed\_off}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00871}00871                         data \&= \string~E1000\_82580\_PM\_SPD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00872}00872         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00873}00873 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00874}00874         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}}, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00875}00875         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00876}00876 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00877}00877 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00892}\mbox{\hyperlink{e1000__82575_8c_ad5269bea0b754b8fb54a8be8b936b85e}{00892}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ad5269bea0b754b8fb54a8be8b936b85e}{e1000\_set\_d3\_lplu\_state\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} active)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00893}00893 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00894}00894         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00895}00895         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00896}00896 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00897}00897         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_d3\_lplu\_state\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00898}00898 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00899}00899         data = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00900}00900 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00901}00901         \textcolor{keywordflow}{if} (!active) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00902}00902                 data \&= \string~E1000\_82580\_PM\_D3\_LPLU;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00903}00903                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00904}00904 \textcolor{comment}{                 * LPLU and SmartSpeed are mutually exclusive.  LPLU is used}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00905}00905 \textcolor{comment}{                 * during Dx states where the power conservation is most}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00906}00906 \textcolor{comment}{                 * important.  During driver activity we should enable}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00907}00907 \textcolor{comment}{                 * SmartSpeed, so performance is maintained.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00908}00908 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00909}00909                 \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695bad34e6e0226ebdc72aa7d3a1a9e7f9554}{e1000\_smart\_speed\_on}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00910}00910                         data |= \mbox{\hyperlink{e1000__phy_8h_ac81d0e5f2a5cfc644451ed8ec600c4d7}{E1000\_82580\_PM\_SPD}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00911}00911                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_aedafa2abd99a8765d23dd75c7016550b}{smart\_speed}} == \mbox{\hyperlink{e1000__hw_8h_a966a4348f1ee680dbc620ccd754e695ba0bc8fae82630994aacd137ba8082c6e7}{e1000\_smart\_speed\_off}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00912}00912                         data \&= \string~E1000\_82580\_PM\_SPD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00913}00913         \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} ((phy-\/>\mbox{\hyperlink{structe1000__phy__info_a7c86a5da3299cfb911e8317a872f7daf}{autoneg\_advertised}} == \mbox{\hyperlink{e1000__defines_8h_a49c122e30e1376a5edf7672c0aff2057}{E1000\_ALL\_SPEED\_DUPLEX}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00914}00914                    (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a7c86a5da3299cfb911e8317a872f7daf}{autoneg\_advertised}} == \mbox{\hyperlink{e1000__defines_8h_ab3ab39e01eb7335695612349c88addf9}{E1000\_ALL\_NOT\_GIG}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00915}00915                    (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a7c86a5da3299cfb911e8317a872f7daf}{autoneg\_advertised}} == \mbox{\hyperlink{e1000__defines_8h_a60ea2ee894a4e6e32a6a13f34b13a1d5}{E1000\_ALL\_10\_SPEED}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00916}00916                 data |= \mbox{\hyperlink{e1000__phy_8h_af1208213441920e701a276b4e71c86c5}{E1000\_82580\_PM\_D3\_LPLU}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00917}00917                 \textcolor{comment}{/* When LPLU is enabled, we should disable SmartSpeed */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00918}00918                 data \&= \string~E1000\_82580\_PM\_SPD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00919}00919         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00920}00920 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00921}00921         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}}, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00922}00922         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00923}00923 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00924}00924 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00934}\mbox{\hyperlink{e1000__82575_8c_ac3d80e08c7b6b2ebe0862db19a042274}{00934}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac3d80e08c7b6b2ebe0862db19a042274}{e1000\_acquire\_nvm\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00935}00935 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00936}00936         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00937}00937 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00938}00938         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_acquire\_nvm\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00939}00939 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00940}00940         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a551b6d4df1d075d51d72c1696c7ba32f}{e1000\_acquire\_swfw\_sync}}(hw, \mbox{\hyperlink{e1000__defines_8h_aaf67f8eba881dd23524d893293837fd8}{E1000\_SWFW\_EEP\_SM}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00941}00941         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00942}00942                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00943}00943 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00944}00944         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00945}00945 \textcolor{comment}{         * Check if there is some access}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00946}00946 \textcolor{comment}{         * error this access may hook on}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00947}00947 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00948}00948         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00949}00949                 \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} eecd = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00950}00950                 \textcolor{keywordflow}{if} (eecd \& (\mbox{\hyperlink{e1000__defines_8h_a65607ef8b5b4db07dbe21d2a1271f77d}{E1000\_EECD\_BLOCKED}} | \mbox{\hyperlink{e1000__defines_8h_a248f4f466cb0323ab194c374272fce1b}{E1000\_EECD\_ABORT}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00951}00951                     \mbox{\hyperlink{e1000__defines_8h_a6df813f4cdbf090630e0a83fb59e386e}{E1000\_EECD\_TIMEOUT}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00952}00952                         \textcolor{comment}{/* Clear all access error flags */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00953}00953                         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}}, eecd |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00954}00954                                         \mbox{\hyperlink{e1000__defines_8h_ac4684a55c742ce7490c188d7db395772}{E1000\_EECD\_ERROR\_CLR}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00955}00955                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Nvm bit banging access error detected and cleared.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00956}00956                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00957}00957         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00958}00958 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00959}00959         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00960}00960                 \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} eecd = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00961}00961                 \textcolor{keywordflow}{if} (eecd \& \mbox{\hyperlink{e1000__defines_8h_a65607ef8b5b4db07dbe21d2a1271f77d}{E1000\_EECD\_BLOCKED}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00962}00962                         \textcolor{comment}{/* Clear access error flag */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00963}00963                         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}}, eecd |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00964}00964                                         \mbox{\hyperlink{e1000__defines_8h_a65607ef8b5b4db07dbe21d2a1271f77d}{E1000\_EECD\_BLOCKED}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00965}00965                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Nvm bit banging access error detected and cleared.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00966}00966                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00967}00967         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00968}00968 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00969}00969         ret\_val = \mbox{\hyperlink{e1000__nvm_8c_ad7de08f9543503fd0d5e4c378c5fe69a}{e1000\_acquire\_nvm\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00970}00970         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00971}00971                 \mbox{\hyperlink{e1000__mac_8c_a951267e88e433effb00c59aa802af4d6}{e1000\_release\_swfw\_sync}}(hw, \mbox{\hyperlink{e1000__defines_8h_aaf67f8eba881dd23524d893293837fd8}{E1000\_SWFW\_EEP\_SM}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00972}00972 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00973}00973 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00974}00974         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00975}00975 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00976}00976 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00984}\mbox{\hyperlink{e1000__82575_8c_a5f5fd99e924ec418d3c76c4894f641d8}{00984}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a5f5fd99e924ec418d3c76c4894f641d8}{e1000\_release\_nvm\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00985}00985 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00986}00986         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_release\_nvm\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00987}00987 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00988}00988         \mbox{\hyperlink{e1000__nvm_8c_ab61cbe2ca912b2fd9bf44f0dcb3da728}{e1000\_release\_nvm\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00989}00989 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00990}00990         \mbox{\hyperlink{e1000__mac_8c_a951267e88e433effb00c59aa802af4d6}{e1000\_release\_swfw\_sync}}(hw, \mbox{\hyperlink{e1000__defines_8h_aaf67f8eba881dd23524d893293837fd8}{E1000\_SWFW\_EEP\_SM}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00991}00991 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l00992}00992 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01003}\mbox{\hyperlink{e1000__82575_8c_a097fa6056a548f6cfcaba75f2c8cdf4d}{01003}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a097fa6056a548f6cfcaba75f2c8cdf4d}{e1000\_get\_cfg\_done\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01004}01004 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01005}01005         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} timeout = \mbox{\hyperlink{e1000__defines_8h_a84fe5b849bbeb027fc90bfecfa490ec6}{PHY\_CFG\_TIMEOUT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01006}01006         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} mask = \mbox{\hyperlink{e1000__defines_8h_aa2c6da63258f9713d9c241128db9f54c}{E1000\_NVM\_CFG\_DONE\_PORT\_0}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01007}01007 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01008}01008         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_cfg\_done\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01009}01009 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01010}01010         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a54dfe65b05ea7457cd47b9c2a011d779}{bus}}.\mbox{\hyperlink{structe1000__bus__info_ac7dfcdcfb9d9c5a7272764c1c8cd5716}{func}} == \mbox{\hyperlink{e1000__hw_8h_a12995a92e6042a7d1f4aa51dd90c1c78}{E1000\_FUNC\_1}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01011}01011                 mask = \mbox{\hyperlink{e1000__defines_8h_abb04d553747af1cff4b0e4b550942c1c}{E1000\_NVM\_CFG\_DONE\_PORT\_1}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01012}01012         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a54dfe65b05ea7457cd47b9c2a011d779}{bus}}.\mbox{\hyperlink{structe1000__bus__info_ac7dfcdcfb9d9c5a7272764c1c8cd5716}{func}} == \mbox{\hyperlink{e1000__hw_8h_aebe262318579b1a662a9d7f8566d3095}{E1000\_FUNC\_2}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01013}01013                 mask = \mbox{\hyperlink{e1000__defines_8h_a5f601647b69eefb8b0cbe9dec4e37d4c}{E1000\_NVM\_CFG\_DONE\_PORT\_2}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01014}01014         \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a54dfe65b05ea7457cd47b9c2a011d779}{bus}}.\mbox{\hyperlink{structe1000__bus__info_ac7dfcdcfb9d9c5a7272764c1c8cd5716}{func}} == \mbox{\hyperlink{e1000__hw_8h_a275467ee091473418a52903414c109c2}{E1000\_FUNC\_3}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01015}01015                 mask = \mbox{\hyperlink{e1000__defines_8h_a1abf2979f52e2512ffa41e87693d266b}{E1000\_NVM\_CFG\_DONE\_PORT\_3}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01016}01016         \textcolor{keywordflow}{while} (timeout) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01017}01017                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4cd85c8f2a21584697ab11123babeba9}{E1000\_EEMNGCTL}}) \& mask)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01018}01018                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01019}01019                 \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01020}01020                 timeout-\/-\/;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01021}01021         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01022}01022         \textcolor{keywordflow}{if} (!timeout)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01023}01023                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}MNG configuration cycle has not completed.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01024}01024 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01025}01025         \textcolor{comment}{/* If EEPROM is not marked present, init the PHY manually */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01026}01026         \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}}) \& \mbox{\hyperlink{e1000__defines_8h_abf8284e76b6b89392688a71eab878568}{E1000\_EECD\_PRES}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01027}01027             (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}} == \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87adef9f161e6181715455143385246d01f}{e1000\_phy\_igp\_3}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01028}01028                 \mbox{\hyperlink{e1000__phy_8c_afe20c97c9e71a669749bc41a79428472}{e1000\_phy\_init\_script\_igp3}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01029}01029 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01030}01030         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01031}01031 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01032}01032 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01043}\mbox{\hyperlink{e1000__82575_8c_a949360ec01a39ae4c5cc623903a1338f}{01043}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a949360ec01a39ae4c5cc623903a1338f}{e1000\_get\_link\_up\_info\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *speed,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01044}01044                                         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *duplex)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01045}01045 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01046}01046         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01047}01047 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01048}01048         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_link\_up\_info\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01049}01049 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01050}01050         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01051}01051                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_ae4676bc42521d471e47aebdb31b5c519}{e1000\_get\_pcs\_speed\_and\_duplex\_82575}}(hw, speed,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01052}01052                                                                duplex);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01053}01053         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01054}01054                 ret\_val = \mbox{\hyperlink{e1000__mac_8c_abe647c4de6ad51ce2ef783ff9e62e502}{e1000\_get\_speed\_and\_duplex\_copper\_generic}}(hw, speed,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01055}01055                                                                     duplex);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01056}01056 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01057}01057         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01058}01058 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01059}01059 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01067}\mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{01067}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{e1000\_check\_for\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01068}01068 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01069}01069         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01070}01070         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} speed, duplex;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01071}01071 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01072}01072         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_check\_for\_link\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01073}01073 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01074}01074         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01075}01075                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_ae4676bc42521d471e47aebdb31b5c519}{e1000\_get\_pcs\_speed\_and\_duplex\_82575}}(hw, \&speed,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01076}01076                                                                \&duplex);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01077}01077                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01078}01078 \textcolor{comment}{                 * Use this flag to determine if link needs to be checked or}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01079}01079 \textcolor{comment}{                 * not.  If we have link clear the flag so that we do not}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01080}01080 \textcolor{comment}{                 * continue to check for link.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01081}01081 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01082}01082                 hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a83591a9757870d53646dc1411834da17}{get\_link\_status}} = !hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_aaec49ef86ff2eb98fa7bdfe34324967e}{serdes\_has\_link}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01083}01083 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01084}01084                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01085}01085 \textcolor{comment}{                 * Configure Flow Control now that Auto-\/Neg has completed.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01086}01086 \textcolor{comment}{                 * First, we need to restore the desired flow control}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01087}01087 \textcolor{comment}{                 * settings because we may have had to re-\/autoneg with a}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01088}01088 \textcolor{comment}{                 * different link partner.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01089}01089 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01090}01090                 ret\_val = \mbox{\hyperlink{e1000__mac_8c_af0de0c44e69b6a773e8016e58b64d33f}{e1000\_config\_fc\_after\_link\_up\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01091}01091                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01092}01092                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Error configuring flow control\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01093}01093         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01094}01094                 ret\_val = \mbox{\hyperlink{e1000__mac_8c_a1fcbc4f0e04c1db63525e4eaff6a0ffa}{e1000\_check\_for\_copper\_link\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01095}01095         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01096}01096 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01097}01097         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01098}01098 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01099}01099 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01106}\mbox{\hyperlink{e1000__82575_8c_ac7458a1d30a52abbbbeb2d69693a41ec}{01106}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac7458a1d30a52abbbbeb2d69693a41ec}{e1000\_check\_for\_link\_media\_swap}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01107}01107 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01108}01108         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01109}01109         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01110}01110         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01111}01111         \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} port = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01112}01112 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01113}01113         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_check\_for\_link\_media\_swap"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01114}01114 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01115}01115         \textcolor{comment}{/* Check for copper. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01116}01116         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4911b4a60ca68f69c3f54ebaec9cce7d}{E1000\_M88E1112\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01117}01117         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01118}01118                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01119}01119 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01120}01120         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a032c04f00fe2d7d085f018579944e5b9}{E1000\_M88E1112\_STATUS}}, \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01121}01121         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01122}01122                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01123}01123 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01124}01124         \textcolor{keywordflow}{if} (data \& \mbox{\hyperlink{e1000__defines_8h_aa3ec8aafe2e3142633a7369ebb8aeff1}{E1000\_M88E1112\_STATUS\_LINK}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01125}01125                 port = \mbox{\hyperlink{e1000__defines_8h_aedd59566aea7431889037b96f396110f}{E1000\_MEDIA\_PORT\_COPPER}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01126}01126 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01127}01127         \textcolor{comment}{/* Check for other. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01128}01128         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4911b4a60ca68f69c3f54ebaec9cce7d}{E1000\_M88E1112\_PAGE\_ADDR}}, 1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01129}01129         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01130}01130                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01131}01131 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01132}01132         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a032c04f00fe2d7d085f018579944e5b9}{E1000\_M88E1112\_STATUS}}, \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01133}01133         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01134}01134                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01135}01135 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01136}01136         \textcolor{keywordflow}{if} (data \& \mbox{\hyperlink{e1000__defines_8h_aa3ec8aafe2e3142633a7369ebb8aeff1}{E1000\_M88E1112\_STATUS\_LINK}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01137}01137                 port = \mbox{\hyperlink{e1000__defines_8h_a72ecdd464be25f5a1b775789e9bea0f0}{E1000\_MEDIA\_PORT\_OTHER}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01138}01138 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01139}01139         \textcolor{comment}{/* Determine if a swap needs to happen. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01140}01140         \textcolor{keywordflow}{if} (port \&\& (hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_adf1cb849db24d357beaab12e8eb8670f}{media\_port}} != port)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01141}01141                 hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_adf1cb849db24d357beaab12e8eb8670f}{media\_port}} = port;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01142}01142                 hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_aab7f09ef77102be5dcd98828fac49d18}{media\_changed}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01143}01143         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01144}01144 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01145}01145         \textcolor{keywordflow}{if} (port == \mbox{\hyperlink{e1000__defines_8h_aedd59566aea7431889037b96f396110f}{E1000\_MEDIA\_PORT\_COPPER}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01146}01146                 \textcolor{comment}{/* reset page to 0 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01147}01147                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4911b4a60ca68f69c3f54ebaec9cce7d}{E1000\_M88E1112\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01148}01148                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01149}01149                         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01150}01150                 \mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{e1000\_check\_for\_link\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01151}01151         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01152}01152                 \mbox{\hyperlink{e1000__82575_8c_a92f5c080888357f78c9b576712cb35ee}{e1000\_check\_for\_link\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01153}01153                 \textcolor{comment}{/* reset page to 0 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01154}01154                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a4911b4a60ca68f69c3f54ebaec9cce7d}{E1000\_M88E1112\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01155}01155                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01156}01156                         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01157}01157         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01158}01158 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01159}01159         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01160}01160 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01161}01161 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01166}\mbox{\hyperlink{e1000__82575_8c_a3d97e1168c9065472ef9c0ded706ac65}{01166}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a3d97e1168c9065472ef9c0ded706ac65}{e1000\_power\_up\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01167}01167 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01168}01168         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} reg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01169}01169 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01170}01170         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_power\_up\_serdes\_link\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01171}01171 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01172}01172         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01173}01173             !\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01174}01174                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01175}01175 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01176}01176         \textcolor{comment}{/* Enable PCS to turn on link */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01177}01177         reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1e983c20762ef4f9f2b76e4ebc0ede21}{E1000\_PCS\_CFG0}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01178}01178         reg |= \mbox{\hyperlink{e1000__defines_8h_a71a96d2ecb64e4a9a719af5a1d3e83f5}{E1000\_PCS\_CFG\_PCS\_EN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01179}01179         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1e983c20762ef4f9f2b76e4ebc0ede21}{E1000\_PCS\_CFG0}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01180}01180 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01181}01181         \textcolor{comment}{/* Power up the laser */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01182}01182         reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01183}01183         reg \&= \string~E1000\_CTRL\_EXT\_SDP3\_DATA;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01184}01184         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01185}01185 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01186}01186         \textcolor{comment}{/* flush the write to verify completion */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01187}01187         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01188}01188         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01189}01189 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01190}01190 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01200}\mbox{\hyperlink{e1000__82575_8c_ae4676bc42521d471e47aebdb31b5c519}{01200}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ae4676bc42521d471e47aebdb31b5c519}{e1000\_get\_pcs\_speed\_and\_duplex\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01201}01201                                                 \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *speed, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *duplex)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01202}01202 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01203}01203         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__mac__info}{e1000\_mac\_info}} *mac = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01204}01204         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} pcs;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01205}01205         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01206}01206 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01207}01207         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_pcs\_speed\_and\_duplex\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01208}01208 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01209}01209         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01210}01210 \textcolor{comment}{         * Read the PCS Status register for link state. For non-\/copper mode,}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01211}01211 \textcolor{comment}{         * the status register is not accurate. The PCS status register is}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01212}01212 \textcolor{comment}{         * used instead.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01213}01213 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01214}01214         pcs = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ac56ac67a68673316009d7be03e4c7169}{E1000\_PCS\_LSTAT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01215}01215 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01216}01216         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01217}01217 \textcolor{comment}{         * The link up bit determines when link is up on autoneg.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01218}01218 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01219}01219         \textcolor{keywordflow}{if} (pcs \& \mbox{\hyperlink{e1000__defines_8h_a283d562706568dfb00f1042737e66813}{E1000\_PCS\_LSTS\_LINK\_OK}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01220}01220                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_aaec49ef86ff2eb98fa7bdfe34324967e}{serdes\_has\_link}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01221}01221 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01222}01222                 \textcolor{comment}{/* Detect and store PCS speed */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01223}01223                 \textcolor{keywordflow}{if} (pcs \& \mbox{\hyperlink{e1000__defines_8h_aa2eb4bb380a65346e1c34a27e2f96792}{E1000\_PCS\_LSTS\_SPEED\_1000}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01224}01224                         *speed = \mbox{\hyperlink{e1000__defines_8h_a4a779d35380578e71d9b3015e3441ab1}{SPEED\_1000}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01225}01225                 \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (pcs \& \mbox{\hyperlink{e1000__defines_8h_a6818356fb8fff846b574291fd2415207}{E1000\_PCS\_LSTS\_SPEED\_100}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01226}01226                         *speed = \mbox{\hyperlink{e1000__defines_8h_a336e90e6c7a7d8bc7925752a13faf849}{SPEED\_100}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01227}01227                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01228}01228                         *speed = \mbox{\hyperlink{e1000__defines_8h_ab830e8b55930052c8706c5aeae2497d0}{SPEED\_10}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01229}01229 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01230}01230                 \textcolor{comment}{/* Detect and store PCS duplex */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01231}01231                 \textcolor{keywordflow}{if} (pcs \& \mbox{\hyperlink{e1000__defines_8h_a079d0b89c2390040430e3a5650028cdc}{E1000\_PCS\_LSTS\_DUPLEX\_FULL}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01232}01232                         *duplex = \mbox{\hyperlink{e1000__defines_8h_af504250cb09e83fc0ccf68c2552f67c5}{FULL\_DUPLEX}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01233}01233                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01234}01234                         *duplex = \mbox{\hyperlink{e1000__defines_8h_a5de835b50b4229fe5869cc019ce6953f}{HALF\_DUPLEX}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01235}01235 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01236}01236                 \textcolor{comment}{/* Check if it is an I354 2.5Gb backplane connection. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01237}01237                 \textcolor{keywordflow}{if} (mac-\/>\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01238}01238                         status = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a7fad15ed91c7801a1b9c5f80843bab79}{E1000\_STATUS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01239}01239                         \textcolor{keywordflow}{if} ((status \& \mbox{\hyperlink{e1000__defines_8h_a79f529d23d7d05502c990fc00ac0955d}{E1000\_STATUS\_2P5\_SKU}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01240}01240                             !(status \& \mbox{\hyperlink{e1000__defines_8h_a55968dd9e43c59ef66c89ab8b658b088}{E1000\_STATUS\_2P5\_SKU\_OVER}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01241}01241                                 *speed = \mbox{\hyperlink{e1000__defines_8h_a591d4f62d20b4ae6439fc540848e6148}{SPEED\_2500}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01242}01242                                 *duplex = \mbox{\hyperlink{e1000__defines_8h_af504250cb09e83fc0ccf68c2552f67c5}{FULL\_DUPLEX}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01243}01243                                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}2500 Mbs, "{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01244}01244                                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Full Duplex\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01245}01245                         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01246}01246                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01247}01247 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01248}01248         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01249}01249                 mac-\/>\mbox{\hyperlink{structe1000__mac__info_aaec49ef86ff2eb98fa7bdfe34324967e}{serdes\_has\_link}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01250}01250                 *speed = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01251}01251                 *duplex = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01252}01252         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01253}01253 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01254}01254         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01255}01255 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01256}01256 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01264}\mbox{\hyperlink{e1000__82575_8c_a559764e9d8cf6b2e33d22932f81f52b8}{01264}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a559764e9d8cf6b2e33d22932f81f52b8}{e1000\_shutdown\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01265}01265 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01266}01266         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} reg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01267}01267 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01268}01268         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_shutdown\_serdes\_link\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01269}01269 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01270}01270         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01271}01271             !\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01272}01272                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01273}01273 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01274}01274         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{e1000__manage_8c_adad70f7d5275b5c55364d1af82077866}{e1000\_enable\_mng\_pass\_thru}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01275}01275                 \textcolor{comment}{/* Disable PCS to turn off link */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01276}01276                 reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1e983c20762ef4f9f2b76e4ebc0ede21}{E1000\_PCS\_CFG0}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01277}01277                 reg \&= \string~E1000\_PCS\_CFG\_PCS\_EN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01278}01278                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1e983c20762ef4f9f2b76e4ebc0ede21}{E1000\_PCS\_CFG0}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01279}01279 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01280}01280                 \textcolor{comment}{/* shutdown the laser */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01281}01281                 reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01282}01282                 reg |= \mbox{\hyperlink{e1000__defines_8h_aa8e968df5bcc6861d5900dbd62390a57}{E1000\_CTRL\_EXT\_SDP3\_DATA}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01283}01283                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01284}01284 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01285}01285                 \textcolor{comment}{/* flush the write to verify completion */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01286}01286                 \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01287}01287                 \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01288}01288         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01289}01289 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01290}01290         \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01291}01291 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01292}01292 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01299}\mbox{\hyperlink{e1000__82575_8c_a8a1d99f8b3166ec72e1e1680448a4023}{01299}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a8a1d99f8b3166ec72e1e1680448a4023}{e1000\_reset\_hw\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01300}01300 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01301}01301         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01302}01302         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01303}01303 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01304}01304         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_reset\_hw\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01305}01305 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01306}01306         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01307}01307 \textcolor{comment}{         * Prevent the PCI-\/E bus from sticking if there is no TLP connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01308}01308 \textcolor{comment}{         * on the last TLP read/write transaction when MAC is reset.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01309}01309 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01310}01310         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a5e25abf4189b7ed7ab278dbe588fef10}{e1000\_disable\_pcie\_master\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01311}01311         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01312}01312                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}PCI-\/E Master disable polling has failed.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01313}01313 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01314}01314         \textcolor{comment}{/* set the completion timeout for interface */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01315}01315         ret\_val = \mbox{\hyperlink{e1000__82575_8c_a0cc9f664c5fdc0d2ee379d3dce62436a}{e1000\_set\_pcie\_completion\_timeout}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01316}01316         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01317}01317                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}PCI-\/E Set completion timeout has failed.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01318}01318 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01319}01319         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Masking off all interrupts\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01320}01320         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa973aee1bbd05ec477353537a78aecdd}{E1000\_IMC}}, 0xffffffff);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01321}01321 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01322}01322         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a5f1910b475d9e03e92a2500b9b15923d}{E1000\_RCTL}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01323}01323         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a770f7e4f66d3516462df76bb289d73a6}{E1000\_TCTL}}, \mbox{\hyperlink{e1000__defines_8h_a4c1bb862221b24d23b9ad564c7d03101}{E1000\_TCTL\_PSP}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01324}01324         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01325}01325 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01326}01326         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(10);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01327}01327 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01328}01328         ctrl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01329}01329 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01330}01330         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Issuing a global reset to MAC\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01331}01331         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}}, ctrl | \mbox{\hyperlink{e1000__defines_8h_a8a24737d281c6e03e45e08d23b0212f2}{E1000\_CTRL\_RST}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01332}01332 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01333}01333         ret\_val = \mbox{\hyperlink{e1000__mac_8c_affc49c3cc92fa1b90594942a234d35db}{e1000\_get\_auto\_rd\_done\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01334}01334         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01335}01335                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01336}01336 \textcolor{comment}{                 * When auto config read does not complete, do not}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01337}01337 \textcolor{comment}{                 * return with an error. This can happen in situations}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01338}01338 \textcolor{comment}{                 * where there is no eeprom and prevents getting link.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01339}01339 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01340}01340                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Auto Read Done did not complete\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01341}01341         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01342}01342 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01343}01343         \textcolor{comment}{/* If EEPROM is not present, run manual init scripts */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01344}01344         \textcolor{keywordflow}{if} (!(\mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aecafc628fdb535d6ee60009e3460ada9}{E1000\_EECD}}) \& \mbox{\hyperlink{e1000__defines_8h_abf8284e76b6b89392688a71eab878568}{E1000\_EECD\_PRES}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01345}01345                 \mbox{\hyperlink{e1000__82575_8c_a60ce2f0cf85f34c15c790e7cca4cc69b}{e1000\_reset\_init\_script\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01346}01346 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01347}01347         \textcolor{comment}{/* Clear any pending interrupt events. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01348}01348         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa973aee1bbd05ec477353537a78aecdd}{E1000\_IMC}}, 0xffffffff);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01349}01349         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae3769f563a652045f35d90625fd7a4d9}{E1000\_ICR}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01350}01350 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01351}01351         \textcolor{comment}{/* Install any alternate MAC address into RAR0 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01352}01352         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a6c22230cbf31261f894a27c03b767a17}{e1000\_check\_alt\_mac\_addr\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01353}01353 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01354}01354         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01355}01355 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01356}01356 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01363}\mbox{\hyperlink{e1000__82575_8c_ae224fa353a8b373835fb7ebd63db3c54}{01363}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ae224fa353a8b373835fb7ebd63db3c54}{e1000\_init\_hw\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01364}01364 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01365}01365         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__mac__info}{e1000\_mac\_info}} *mac = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01366}01366         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01367}01367 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01368}01368         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_init\_hw\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01369}01369 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01370}01370         \textcolor{comment}{/* Initialize identification LED */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01371}01371         ret\_val = mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a079e16a31037c78bdb61d3961aca29b6}{id\_led\_init}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01372}01372         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01373}01373                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Error initializing identification LED\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01374}01374                 \textcolor{comment}{/* This is not fatal and we should not stop init due to this */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01375}01375         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01376}01376 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01377}01377         \textcolor{comment}{/* Disabling VLAN filtering */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01378}01378         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Initializing the IEEE VLAN\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01379}01379         mac-\/>\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a4c933d8f17c0d408c3ecb7ad5150d82d}{clear\_vfta}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01380}01380 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01381}01381         ret\_val = \mbox{\hyperlink{e1000__base_8c_a3df37a2342ca82900dea1931d283d189}{e1000\_init\_hw\_base}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01382}01382 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01383}01383         \textcolor{comment}{/* Set the default MTU size */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01384}01384         hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_a9f63025be826b24f150756fc28eed674}{mtu}} = 1500;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01385}01385 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01386}01386         \textcolor{comment}{/* Clear all of the statistics registers (clear on read).  It is}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01387}01387 \textcolor{comment}{         * important that we do this after we have tried to establish link}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01388}01388 \textcolor{comment}{         * because the symbol error count will increment wildly if there}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01389}01389 \textcolor{comment}{         * is no link.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01390}01390 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01391}01391         \mbox{\hyperlink{e1000__82575_8c_a42dcc0d1bb100de1a4ca83dda7e43ffc}{e1000\_clear\_hw\_cntrs\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01392}01392 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01393}01393         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01394}01394 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01403}\mbox{\hyperlink{e1000__82575_8c_a8bca0d5bb020a0a6b8806bbf94ca38b5}{01403}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a8bca0d5bb020a0a6b8806bbf94ca38b5}{e1000\_setup\_copper\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01404}01404 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01405}01405         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} phpm\_reg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01406}01406         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01407}01407         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01408}01408 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01409}01409         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_setup\_copper\_link\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01410}01410 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01411}01411         ctrl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01412}01412         ctrl |= \mbox{\hyperlink{e1000__defines_8h_a5f06340a38020afffe1155a5b70b1f15}{E1000\_CTRL\_SLU}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01413}01413         ctrl \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a3815f05fd60935d85c776d2461a2a919}{E1000\_CTRL\_FRCSPD}} | \mbox{\hyperlink{e1000__defines_8h_acefc86ce76f19aacaa28a1c7814bf29f}{E1000\_CTRL\_FRCDPX}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01414}01414         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}}, ctrl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01415}01415 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01416}01416         \textcolor{comment}{/* Clear Go Link Disconnect bit on supported devices */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01417}01417         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01418}01418         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01419}01419         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01420}01420         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a0a02928ffbcef71081d6ed205e44c5b2}{e1000\_i210}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01421}01421         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7acaa7f109a8c07e9c7264c1305b1046a7}{e1000\_i211}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01422}01422                 phpm\_reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01423}01423                 phpm\_reg \&= \string~E1000\_82580\_PM\_GO\_LINKD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01424}01424                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__phy_8h_a91808af1743266f10914616726d1f0af}{E1000\_82580\_PHY\_POWER\_MGMT}}, phpm\_reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01425}01425                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01426}01426         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01427}01427                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01428}01428         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01429}01429 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01430}01430         ret\_val = \mbox{\hyperlink{e1000__82575_8c_a9b372cd6a64b99c40168c63ce412e220}{e1000\_setup\_serdes\_link\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01431}01431         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01432}01432                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01433}01433 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01434}01434         \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01435}01435                 \textcolor{comment}{/* allow time for SFP cage time to power up phy */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01436}01436                 \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(300);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01437}01437 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01438}01438                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a3ab6ad8f43ef7959b126342fd89d3d8f}{reset}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01439}01439                 \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01440}01440                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Error resetting the PHY.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01441}01441                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01442}01442                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01443}01443         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01444}01444         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_ac5febc867b9f4604343ccb6ae0fc7bcb}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01445}01445         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a515b5122e91f5dd6b211bfd7d60cdcd6}{e1000\_phy\_i210}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01446}01446                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01447}01447         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a04ea36ae1e2764a1776c8cd61770b7ac}{e1000\_phy\_m88}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01448}01448                 \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01449}01449                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a48af3bebd515d7348da62893698190c8}{I347AT4\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01450}01450                         \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01451}01451                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a57eeee1360cc7e4d82227f07068a4f3e}{M88E1112\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01452}01452                         \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01453}01453                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a9be47ec5c3688043fd7ac7cc0282c4d0}{M88E1340M\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01454}01454                         \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01455}01455                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01456}01456                         \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01457}01457                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01458}01458                         \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01459}01459                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_af856a1789672b3f958884b4c70fb3c25}{I210\_I\_PHY\_ID}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01460}01460                         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a863335016162fb3341f6dd96391020ea}{e1000\_copper\_link\_setup\_m88\_gen2}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01461}01461                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01462}01462                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01463}01463                         ret\_val = \mbox{\hyperlink{e1000__phy_8c_abb4fdd94b645bfa522ed6db3a3dc942f}{e1000\_copper\_link\_setup\_m88}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01464}01464                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01465}01465                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01466}01466                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01467}01467         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87adef9f161e6181715455143385246d01f}{e1000\_phy\_igp\_3}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01468}01468                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_adfff042ce67f85061a4af206c76162d9}{e1000\_copper\_link\_setup\_igp}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01469}01469                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01470}01470         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a08193cfbe8cbed68a29346e24c190c87a538e982234b5b945e0745f6e72868584}{e1000\_phy\_82580}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01471}01471                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_aa735b9f73178b34e89d34516141d317c}{e1000\_copper\_link\_setup\_82577}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01472}01472                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01473}01473         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01474}01474                 ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_a07c74865349e0dc0f182ff9f2d6a7a5c}{E1000\_ERR\_PHY}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01475}01475                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01476}01476         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01477}01477 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01478}01478         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01479}01479                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01480}01480 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01481}01481         ret\_val = \mbox{\hyperlink{e1000__phy_8c_affecd1fe2d9f9fb557af86a82f718687}{e1000\_setup\_copper\_link\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01482}01482 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01483}01483         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01484}01484 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01485}01485 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01495}\mbox{\hyperlink{e1000__82575_8c_a9b372cd6a64b99c40168c63ce412e220}{01495}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a9b372cd6a64b99c40168c63ce412e220}{e1000\_setup\_serdes\_link\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01496}01496 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01497}01497         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext, ctrl\_reg, reg, anadv\_reg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01498}01498         \textcolor{keywordtype}{bool} pcs\_autoneg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01499}01499         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01500}01500         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01501}01501 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01502}01502         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_setup\_serdes\_link\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01503}01503 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01504}01504         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01505}01505             !\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01506}01506                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01507}01507 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01508}01508         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01509}01509 \textcolor{comment}{         * On the 82575, SerDes loopback mode persists until it is}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01510}01510 \textcolor{comment}{         * explicitly turned off or a power cycle is performed.  A read to}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01511}01511 \textcolor{comment}{         * the register does not indicate its status.  Therefore, we ensure}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01512}01512 \textcolor{comment}{         * loopback mode is disabled during initialization.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01513}01513 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01514}01514         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aaf3ba21e2c0b00547fd631286cb89990}{E1000\_SCTL}}, \mbox{\hyperlink{e1000__defines_8h_ad26299ecbe1786f75c85a49470555ab8}{E1000\_SCTL\_DISABLE\_SERDES\_LOOPBACK}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01515}01515 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01516}01516         \textcolor{comment}{/* power on the sfp cage if present */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01517}01517         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01518}01518         ctrl\_ext \&= \string~E1000\_CTRL\_EXT\_SDP3\_DATA;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01519}01519         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01520}01520 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01521}01521         ctrl\_reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01522}01522         ctrl\_reg |= \mbox{\hyperlink{e1000__defines_8h_a5f06340a38020afffe1155a5b70b1f15}{E1000\_CTRL\_SLU}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01523}01523 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01524}01524         \textcolor{comment}{/* set both sw defined pins on 82575/82576*/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01525}01525         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}} || hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01526}01526                 ctrl\_reg |= \mbox{\hyperlink{e1000__defines_8h_aca04b5746deb18c080deaf7a784e09aa}{E1000\_CTRL\_SWDPIN0}} | \mbox{\hyperlink{e1000__defines_8h_aa6b465d4c8460dddd6e228d1929aa1bf}{E1000\_CTRL\_SWDPIN1}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01527}01527 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01528}01528         reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a5b452253c193b7712f6ea85fa56a5330}{E1000\_PCS\_LCTL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01529}01529 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01530}01530         \textcolor{comment}{/* default pcs\_autoneg to the same setting as mac autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01531}01531         pcs\_autoneg = hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a29db1be99c81f08dc7f27be96a82cd3e}{autoneg}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01532}01532 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01533}01533         \textcolor{keywordflow}{switch} (ctrl\_ext \& \mbox{\hyperlink{e1000__defines_8h_a766e94480a68a8164b8cd8691454a6b5}{E1000\_CTRL\_EXT\_LINK\_MODE\_MASK}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01534}01534         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a2d4b54310b331d372d455ec5ac831897}{E1000\_CTRL\_EXT\_LINK\_MODE\_SGMII}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01535}01535                 \textcolor{comment}{/* sgmii mode lets the phy handle forcing speed/duplex */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01536}01536                 pcs\_autoneg = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01537}01537                 \textcolor{comment}{/* autoneg time out should be disabled for SGMII mode */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01538}01538                 reg \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a2a9ca3d0081fbf7bfd4a68ddbeefaa0f}{E1000\_PCS\_LCTL\_AN\_TIMEOUT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01539}01539                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01540}01540         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a75498b890688dcb3b7dea805b75fb49a}{E1000\_CTRL\_EXT\_LINK\_MODE\_1000BASE\_KX}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01541}01541                 \textcolor{comment}{/* disable PCS autoneg and support parallel detect only */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01542}01542                 pcs\_autoneg = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01543}01543                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01544}01544         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01545}01545                 \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}} ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01546}01546                     hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01547}01547                         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac630cf4ba9fdac1d516b73de5ddbdf97}{NVM\_COMPAT}}, 1, \&data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01548}01548                         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01549}01549                                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01550}01550                                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01551}01551                         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01552}01552 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01553}01553                         \textcolor{keywordflow}{if} (data \& \mbox{\hyperlink{e1000__82575_8h_a88150dbbeb441a806f8cf684b3552aeb}{E1000\_EEPROM\_PCS\_AUTONEG\_DISABLE\_BIT}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01554}01554                                 pcs\_autoneg = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01555}01555                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01556}01556 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01557}01557                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01558}01558 \textcolor{comment}{                 * non-\/SGMII modes only supports a speed of 1000/Full for the}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01559}01559 \textcolor{comment}{                 * link so it is best to just force the MAC and let the pcs}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01560}01560 \textcolor{comment}{                 * link either autoneg or be forced to 1000/Full}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01561}01561 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01562}01562                 ctrl\_reg |= \mbox{\hyperlink{e1000__defines_8h_aece847f8cd1de0a32886d5a5d1aa0447}{E1000\_CTRL\_SPD\_1000}} | \mbox{\hyperlink{e1000__defines_8h_a3815f05fd60935d85c776d2461a2a919}{E1000\_CTRL\_FRCSPD}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01563}01563                             \mbox{\hyperlink{e1000__defines_8h_a4b6c0bec940a326fd5c30b340bbd6a69}{E1000\_CTRL\_FD}} | \mbox{\hyperlink{e1000__defines_8h_acefc86ce76f19aacaa28a1c7814bf29f}{E1000\_CTRL\_FRCDPX}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01564}01564 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01565}01565                 \textcolor{comment}{/* set speed of 1000/Full if speed/duplex is forced */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01566}01566                 reg |= \mbox{\hyperlink{e1000__defines_8h_a8fc6e85237500bb1654f04576db02271}{E1000\_PCS\_LCTL\_FSV\_1000}} | \mbox{\hyperlink{e1000__defines_8h_ad899fb25cff9d225456101763a7d2900}{E1000\_PCS\_LCTL\_FDV\_FULL}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01567}01567                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01568}01568         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01569}01569 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01570}01570         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}}, ctrl\_reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01571}01571 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01572}01572         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01573}01573 \textcolor{comment}{         * New SerDes mode allows for forcing speed or autonegotiating speed}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01574}01574 \textcolor{comment}{         * at 1gb. Autoneg should be default set by most drivers. This is the}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01575}01575 \textcolor{comment}{         * mode that will be compatible with older link partners and switches.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01576}01576 \textcolor{comment}{         * However, both are supported by the hardware and some drivers/tools.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01577}01577 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01578}01578         reg \&= \string~(\mbox{\hyperlink{e1000__defines_8h_ae54e28ca50baf02c2d8ccb4f2bc827d3}{E1000\_PCS\_LCTL\_AN\_ENABLE}} | \mbox{\hyperlink{e1000__defines_8h_ac9fef709736f8a4c6034e75241de4a88}{E1000\_PCS\_LCTL\_FLV\_LINK\_UP}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01579}01579                  \mbox{\hyperlink{e1000__defines_8h_a2325d76a8e9332e14743e41e36a2faf8}{E1000\_PCS\_LCTL\_FSD}} | \mbox{\hyperlink{e1000__defines_8h_ac0d3d40a5f321ff15aaebf1ded0926ab}{E1000\_PCS\_LCTL\_FORCE\_LINK}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01580}01580 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01581}01581         \textcolor{keywordflow}{if} (pcs\_autoneg) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01582}01582                 \textcolor{comment}{/* Set PCS register for autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01583}01583                 reg |= \mbox{\hyperlink{e1000__defines_8h_ae54e28ca50baf02c2d8ccb4f2bc827d3}{E1000\_PCS\_LCTL\_AN\_ENABLE}} | \textcolor{comment}{/* Enable Autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01584}01584                        \mbox{\hyperlink{e1000__defines_8h_a8a6d09416b4b95fbcf704b4221d5a925}{E1000\_PCS\_LCTL\_AN\_RESTART}}; \textcolor{comment}{/* Restart autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01585}01585 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01586}01586                 \textcolor{comment}{/* Disable force flow control for autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01587}01587                 reg \&= \string~E1000\_PCS\_LCTL\_FORCE\_FCTRL;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01588}01588 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01589}01589                 \textcolor{comment}{/* Configure flow control advertisement for autoneg */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01590}01590                 anadv\_reg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4aadcce4a1def6dc37fe42b74d5b1d61}{E1000\_PCS\_ANADV}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01591}01591                 anadv\_reg \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a01802aabe3cc9089843b41ada1e28108}{E1000\_TXCW\_ASM\_DIR}} | \mbox{\hyperlink{e1000__defines_8h_aaeb3c08eca82ff133d19ee53aceb6241}{E1000\_TXCW\_PAUSE}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01592}01592 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01593}01593                 \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_ac89d5776dfeaa4962c6a4017958d0d4c}{fc}}.\mbox{\hyperlink{structe1000__fc__info_aa635b23ea4246008fbd10258f12d9b0f}{requested\_mode}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01594}01594                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a945f7c82643f147dea2193863639dfefaa30be89e4a21845b53d35c7dc7795523}{e1000\_fc\_full}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01595}01595                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a945f7c82643f147dea2193863639dfefaf2a0619360e6280a2bab9d4d2c622b0c}{e1000\_fc\_rx\_pause}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01596}01596                         anadv\_reg |= \mbox{\hyperlink{e1000__defines_8h_a01802aabe3cc9089843b41ada1e28108}{E1000\_TXCW\_ASM\_DIR}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01597}01597                         anadv\_reg |= \mbox{\hyperlink{e1000__defines_8h_aaeb3c08eca82ff133d19ee53aceb6241}{E1000\_TXCW\_PAUSE}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01598}01598                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01599}01599                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a945f7c82643f147dea2193863639dfefad503a1f2d088ac1204edce0bdb8b8186}{e1000\_fc\_tx\_pause}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01600}01600                         anadv\_reg |= \mbox{\hyperlink{e1000__defines_8h_a01802aabe3cc9089843b41ada1e28108}{E1000\_TXCW\_ASM\_DIR}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01601}01601                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01602}01602                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01603}01603                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01604}01604                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01605}01605 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01606}01606                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4aadcce4a1def6dc37fe42b74d5b1d61}{E1000\_PCS\_ANADV}}, anadv\_reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01607}01607 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01608}01608                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}Configuring Autoneg:PCS\_LCTL=0x\%08X\(\backslash\)n"{}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01609}01609         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01610}01610                 \textcolor{comment}{/* Set PCS register for forced link */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01611}01611                 reg |= \mbox{\hyperlink{e1000__defines_8h_a2325d76a8e9332e14743e41e36a2faf8}{E1000\_PCS\_LCTL\_FSD}};    \textcolor{comment}{/* Force Speed */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01612}01612 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01613}01613                 \textcolor{comment}{/* Force flow control for forced link */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01614}01614                 reg |= \mbox{\hyperlink{e1000__defines_8h_ac967774172579008cfc26dcf991a05fa}{E1000\_PCS\_LCTL\_FORCE\_FCTRL}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01615}01615 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01616}01616                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}Configuring Forced Link:PCS\_LCTL=0x\%08X\(\backslash\)n"{}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01617}01617         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01618}01618 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01619}01619         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a5b452253c193b7712f6ea85fa56a5330}{E1000\_PCS\_LCTL}}, reg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01620}01620 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01621}01621         \textcolor{keywordflow}{if} (!pcs\_autoneg \&\& !\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01622}01622                 \mbox{\hyperlink{e1000__mac_8c_a56a813905c9f1ee816655df5761a7eb8}{e1000\_force\_mac\_fc\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01623}01623 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01624}01624         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01625}01625 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01626}01626 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01638}\mbox{\hyperlink{e1000__82575_8c_aed98314ac26bac32dff26bcb00202ff8}{01638}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aed98314ac26bac32dff26bcb00202ff8}{e1000\_get\_media\_type\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01639}01639 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01640}01640         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__dev__spec__82575}{e1000\_dev\_spec\_82575}} *dev\_spec = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01641}01641         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01642}01642         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01643}01643         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} link\_mode = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01644}01644 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01645}01645         \textcolor{comment}{/* Set internal phy as default */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01646}01646         dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01647}01647         dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a2307cbf13bd176c1be3a9b16f1609eb9}{module\_plugged}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01648}01648 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01649}01649         \textcolor{comment}{/* Get CSR setting */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01650}01650         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01651}01651 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01652}01652         \textcolor{comment}{/* extract link mode setting */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01653}01653         link\_mode = ctrl\_ext \& \mbox{\hyperlink{e1000__defines_8h_a766e94480a68a8164b8cd8691454a6b5}{E1000\_CTRL\_EXT\_LINK\_MODE\_MASK}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01654}01654 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01655}01655         \textcolor{keywordflow}{switch} (link\_mode) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01656}01656         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a75498b890688dcb3b7dea805b75fb49a}{E1000\_CTRL\_EXT\_LINK\_MODE\_1000BASE\_KX}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01657}01657                 hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01658}01658                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01659}01659         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a12f7c2d8b7a232eadae7bd2797ce93dc}{E1000\_CTRL\_EXT\_LINK\_MODE\_GMII}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01660}01660                 hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01661}01661                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01662}01662         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a2d4b54310b331d372d455ec5ac831897}{E1000\_CTRL\_EXT\_LINK\_MODE\_SGMII}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01663}01663                 \textcolor{comment}{/* Get phy control interface type set (MDIO vs. I2C)*/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01664}01664                 \textcolor{keywordflow}{if} (\mbox{\hyperlink{e1000__82575_8c_af0c76a2e1a1d039252bd54829350fdcb}{e1000\_sgmii\_uses\_mdio\_82575}}(hw)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01665}01665                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01666}01666                         dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01667}01667                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01668}01668                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01669}01669                 \textcolor{comment}{/* fall through for I2C based SGMII */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01670}01670                 \textcolor{comment}{/* FALLTHROUGH */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01671}01671         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__defines_8h_a7d9183c347011ccfd19c0e632caa09f6}{E1000\_CTRL\_EXT\_LINK\_MODE\_PCIE\_SERDES}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01672}01672                 \textcolor{comment}{/* read media type from SFP EEPROM */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01673}01673                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_aaa792ac2b47577037e8844a19f76543e}{e1000\_set\_sfp\_media\_type\_82575}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01674}01674                 \textcolor{keywordflow}{if} ((ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01675}01675                     (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} == \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a00c11f8a4da92ff8ae64e59ddedd8c2e}{e1000\_media\_type\_unknown}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01676}01676                         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01677}01677 \textcolor{comment}{                         * If media type was not identified then return media}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01678}01678 \textcolor{comment}{                         * type defined by the CTRL\_EXT settings.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01679}01679 \textcolor{comment}{                         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01680}01680                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01681}01681 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01682}01682                         \textcolor{keywordflow}{if} (link\_mode == \mbox{\hyperlink{e1000__defines_8h_a2d4b54310b331d372d455ec5ac831897}{E1000\_CTRL\_EXT\_LINK\_MODE\_SGMII}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01683}01683                                 hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01684}01684                                 dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01685}01685                         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01686}01686 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01687}01687                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01688}01688                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01689}01689 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01690}01690                 \textcolor{comment}{/* do not change link mode for 100BaseFX */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01691}01691                 \textcolor{keywordflow}{if} (dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a9a0023a527ebb2055b8eb62a5a274079}{eth\_flags}}.\mbox{\hyperlink{structsfp__e1000__flags_a6e39cb583853788720e313af68dd7c71}{e100\_base\_fx}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01692}01692                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01693}01693 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01694}01694                 \textcolor{comment}{/* change current link mode setting */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01695}01695                 ctrl\_ext \&= \string~E1000\_CTRL\_EXT\_LINK\_MODE\_MASK;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01696}01696 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01697}01697                 \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} == \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01698}01698                         ctrl\_ext |= \mbox{\hyperlink{e1000__defines_8h_a2d4b54310b331d372d455ec5ac831897}{E1000\_CTRL\_EXT\_LINK\_MODE\_SGMII}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01699}01699                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01700}01700                         ctrl\_ext |= \mbox{\hyperlink{e1000__defines_8h_a7d9183c347011ccfd19c0e632caa09f6}{E1000\_CTRL\_EXT\_LINK\_MODE\_PCIE\_SERDES}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01701}01701 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01702}01702                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01703}01703 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01704}01704                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01705}01705         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01706}01706 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01707}01707         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01708}01708 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01709}01709 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01717}\mbox{\hyperlink{e1000__82575_8c_aaa792ac2b47577037e8844a19f76543e}{01717}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aaa792ac2b47577037e8844a19f76543e}{e1000\_set\_sfp\_media\_type\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01718}01718 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01719}01719         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ad776e411c87eeae0b82895b3acf144ac}{E1000\_ERR\_CONFIG}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01720}01720         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01721}01721         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__dev__spec__82575}{e1000\_dev\_spec\_82575}} *dev\_spec = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01722}01722         \textcolor{keyword}{struct }\mbox{\hyperlink{structsfp__e1000__flags}{sfp\_e1000\_flags}} *eth\_flags = \&dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a9a0023a527ebb2055b8eb62a5a274079}{eth\_flags}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01723}01723         \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} tranceiver\_type = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01724}01724         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} timeout = 3;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01725}01725 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01726}01726         \textcolor{comment}{/* Turn I2C interface ON and power on sfp cage */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01727}01727         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01728}01728         ctrl\_ext \&= \string~E1000\_CTRL\_EXT\_SDP3\_DATA;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01729}01729         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext | \mbox{\hyperlink{e1000__defines_8h_ab93ae7c5605624dbb14a37fbf0d27b04}{E1000\_CTRL\_I2C\_ENA}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01730}01730 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01731}01731         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01732}01732 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01733}01733         \textcolor{comment}{/* Read SFP module data */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01734}01734         \textcolor{keywordflow}{while} (timeout) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01735}01735                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a0e6a45b4f6fbb9ae28f522b6b5e923a7}{e1000\_read\_sfp\_data\_byte}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01736}01736                         \mbox{\hyperlink{e1000__defines_8h_a0e19ca44ea3408780169ee2e75f096fb}{E1000\_I2CCMD\_SFP\_DATA\_ADDR}}(\mbox{\hyperlink{e1000__phy_8h_a6223ea3931d00c87589896c86325aa98}{E1000\_SFF\_IDENTIFIER\_OFFSET}}),}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01737}01737                         \&tranceiver\_type);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01738}01738                 \textcolor{keywordflow}{if} (ret\_val == \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01739}01739                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01740}01740                 \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(100);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01741}01741                 timeout-\/-\/;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01742}01742         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01743}01743         \textcolor{keywordflow}{if} (ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01744}01744                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01745}01745 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01746}01746         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a0e6a45b4f6fbb9ae28f522b6b5e923a7}{e1000\_read\_sfp\_data\_byte}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01747}01747                         \mbox{\hyperlink{e1000__defines_8h_a0e19ca44ea3408780169ee2e75f096fb}{E1000\_I2CCMD\_SFP\_DATA\_ADDR}}(\mbox{\hyperlink{e1000__phy_8h_a648091ab7c611bf7085eb492417be5b6}{E1000\_SFF\_ETH\_FLAGS\_OFFSET}}),}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01748}01748                         (\mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} *)eth\_flags);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01749}01749         \textcolor{keywordflow}{if} (ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01750}01750                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01751}01751 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01752}01752         \textcolor{comment}{/* Check if there is some SFP module plugged and powered */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01753}01753         \textcolor{keywordflow}{if} ((tranceiver\_type == \mbox{\hyperlink{e1000__phy_8h_a3221575ac4210e01edddc2e5d63509fd}{E1000\_SFF\_IDENTIFIER\_SFP}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01754}01754             (tranceiver\_type == \mbox{\hyperlink{e1000__phy_8h_a430b854a79ae388d2137a2dd3beb783d}{E1000\_SFF\_IDENTIFIER\_SFF}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01755}01755                 dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a2307cbf13bd176c1be3a9b16f1609eb9}{module\_plugged}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01756}01756                 \textcolor{keywordflow}{if} (eth\_flags-\/>\mbox{\hyperlink{structsfp__e1000__flags_a9ed695efb15329ad489a438b7a5cec76}{e1000\_base\_lx}} || eth\_flags-\/>\mbox{\hyperlink{structsfp__e1000__flags_a544058414234459354c27d01fce5f1f1}{e1000\_base\_sx}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01757}01757                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01758}01758                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (eth\_flags-\/>\mbox{\hyperlink{structsfp__e1000__flags_a6e39cb583853788720e313af68dd7c71}{e100\_base\_fx}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01759}01759                         dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01760}01760                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01761}01761                 \} \textcolor{keywordflow}{else} \textcolor{keywordflow}{if} (eth\_flags-\/>\mbox{\hyperlink{structsfp__e1000__flags_a0dbb0c499eefebe71dbc379ccd8de1ad}{e1000\_base\_t}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01762}01762                         dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}} = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01763}01763                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01764}01764                 \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01765}01765                         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a00c11f8a4da92ff8ae64e59ddedd8c2e}{e1000\_media\_type\_unknown}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01766}01766                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}PHY module has not been recognized\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01767}01767                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01768}01768                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01769}01769         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01770}01770                 hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} = \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a00c11f8a4da92ff8ae64e59ddedd8c2e}{e1000\_media\_type\_unknown}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01771}01771         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01772}01772         ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01773}01773 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01774}01774         \textcolor{comment}{/* Restore I2C interface setting */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01775}01775         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01776}01776         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01777}01777 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01778}01778 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01787}\mbox{\hyperlink{e1000__82575_8c_a0daf27ab84c80456b628c26774d35d7a}{01787}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a0daf27ab84c80456b628c26774d35d7a}{e1000\_valid\_led\_default\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01788}01788 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01789}01789         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01790}01790 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01791}01791         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_valid\_led\_default\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01792}01792 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01793}01793         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, \mbox{\hyperlink{e1000__defines_8h_afa39ae61d95e57eb90d1df67b7d49296}{NVM\_ID\_LED\_SETTINGS}}, 1, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01794}01794         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01795}01795                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01796}01796                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01797}01797         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01798}01798 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01799}01799         \textcolor{keywordflow}{if} (*data == \mbox{\hyperlink{e1000__defines_8h_a0080d294d479bc94f3a8c96699b66a20}{ID\_LED\_RESERVED\_0000}} || *data == \mbox{\hyperlink{e1000__defines_8h_a79d2eff65fd80a339e15543885e7193b}{ID\_LED\_RESERVED\_FFFF}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01800}01800                 \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01801}01801                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01802}01802                         *data = \mbox{\hyperlink{e1000__82575_8h_a40bacf169b5844fdf9bdb5f0c8a7ea73}{ID\_LED\_DEFAULT\_82575\_SERDES}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01803}01803                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01804}01804                 \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01805}01805                 \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01806}01806                         *data = \mbox{\hyperlink{e1000__defines_8h_a2bd379f381a2984037aa3f1d1ab4540e}{ID\_LED\_DEFAULT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01807}01807                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01808}01808                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01809}01809         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01810}01810 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01811}01811         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01812}01812 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01813}01813 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01822}\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{01822}} \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01823}01823 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01824}01824         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__dev__spec__82575}{e1000\_dev\_spec\_82575}} *dev\_spec = \&hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01825}01825         \textcolor{keywordflow}{return} dev\_spec-\/>\mbox{\hyperlink{structe1000__dev__spec__82575_a589fceb753e63934c0ee2ebd472620d9}{sgmii\_active}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01826}01826 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01827}01827 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01835}\mbox{\hyperlink{e1000__82575_8c_a60ce2f0cf85f34c15c790e7cca4cc69b}{01835}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a60ce2f0cf85f34c15c790e7cca4cc69b}{e1000\_reset\_init\_script\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01836}01836 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01837}01837         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_reset\_init\_script\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01838}01838 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01839}01839         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a4366a2107c9391602e6f5fc679fea7f4}{e1000\_82575}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01840}01840                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Running reset init script for 82575\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01841}01841                 \textcolor{comment}{/* SerDes configuration via SERDESCTRL */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01842}01842                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_aaf3ba21e2c0b00547fd631286cb89990}{E1000\_SCTL}}, 0x00, 0x0C);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01843}01843                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_aaf3ba21e2c0b00547fd631286cb89990}{E1000\_SCTL}}, 0x01, 0x78);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01844}01844                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_aaf3ba21e2c0b00547fd631286cb89990}{E1000\_SCTL}}, 0x1B, 0x23);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01845}01845                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_aaf3ba21e2c0b00547fd631286cb89990}{E1000\_SCTL}}, 0x23, 0x15);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01846}01846 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01847}01847                 \textcolor{comment}{/* CCM configuration via CCMCTL register */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01848}01848                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a2fe3a110405a03075ae77db74e0ba45b}{E1000\_CCMCTL}}, 0x14, 0x00);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01849}01849                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a2fe3a110405a03075ae77db74e0ba45b}{E1000\_CCMCTL}}, 0x10, 0x00);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01850}01850 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01851}01851                 \textcolor{comment}{/* PCIe lanes configuration */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01852}01852                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4b296c39630f009413c3eb5bf7fa3d94}{E1000\_GIOCTL}}, 0x00, 0xEC);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01853}01853                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4b296c39630f009413c3eb5bf7fa3d94}{E1000\_GIOCTL}}, 0x61, 0xDF);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01854}01854                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4b296c39630f009413c3eb5bf7fa3d94}{E1000\_GIOCTL}}, 0x34, 0x05);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01855}01855                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4b296c39630f009413c3eb5bf7fa3d94}{E1000\_GIOCTL}}, 0x2F, 0x81);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01856}01856 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01857}01857                 \textcolor{comment}{/* PCIe PLL Configuration */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01858}01858                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_ada8a98c93b33a7d1d264b58fdbb7279d}{E1000\_SCCTL}}, 0x02, 0x47);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01859}01859                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_ada8a98c93b33a7d1d264b58fdbb7279d}{E1000\_SCCTL}}, 0x14, 0x00);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01860}01860                 \mbox{\hyperlink{e1000__mac_8c_afe5714ea7570925c711ed732cc082b92}{e1000\_write\_8bit\_ctrl\_reg\_generic}}(hw, \mbox{\hyperlink{e1000__regs_8h_ada8a98c93b33a7d1d264b58fdbb7279d}{E1000\_SCCTL}}, 0x10, 0x00);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01861}01861         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01862}01862 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01863}01863         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01864}01864 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01865}01865 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01870}\mbox{\hyperlink{e1000__82575_8c_af0fc4cf116bce4d4daf593b2f88ac2e7}{01870}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_af0fc4cf116bce4d4daf593b2f88ac2e7}{e1000\_read\_mac\_addr\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01871}01871 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01872}01872         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01873}01873 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01874}01874         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_read\_mac\_addr\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01875}01875 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01876}01876         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01877}01877 \textcolor{comment}{         * If there's an alternate MAC address place it in RAR0}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01878}01878 \textcolor{comment}{         * so that it will override the Si installed default perm}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01879}01879 \textcolor{comment}{         * address.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01880}01880 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01881}01881         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a6c22230cbf31261f894a27c03b767a17}{e1000\_check\_alt\_mac\_addr\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01882}01882         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01883}01883                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01884}01884 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01885}01885         ret\_val = \mbox{\hyperlink{e1000__nvm_8c_a50f297c99052ff736781b8c2b35b8827}{e1000\_read\_mac\_addr\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01886}01886 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01887}01887 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01888}01888         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01889}01889 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01890}01890 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01898}\mbox{\hyperlink{e1000__82575_8c_af0abe5dc7c4893013bcb0791be928619}{01898}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_af0abe5dc7c4893013bcb0791be928619}{e1000\_config\_collision\_dist\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01899}01899 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01900}01900         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} tctl\_ext;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01901}01901 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01902}01902         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_config\_collision\_dist\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01903}01903 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01904}01904         tctl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a00e0561db6334fd97236bc7de3ce94c0}{E1000\_TCTL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01905}01905 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01906}01906         tctl\_ext \&= \string~E1000\_TCTL\_EXT\_COLD;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01907}01907         tctl\_ext |= \mbox{\hyperlink{e1000__defines_8h_ad578a46fae09ff4df20c72db143c5918}{E1000\_COLLISION\_DISTANCE}} << \mbox{\hyperlink{e1000__82575_8h_a96ba70ddbf741fe4c2a144eb92832ecd}{E1000\_TCTL\_EXT\_COLD\_SHIFT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01908}01908 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01909}01909         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a00e0561db6334fd97236bc7de3ce94c0}{E1000\_TCTL\_EXT}}, tctl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01910}01910         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01911}01911 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01912}01912 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01919}\mbox{\hyperlink{e1000__82575_8c_a42dcc0d1bb100de1a4ca83dda7e43ffc}{01919}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a42dcc0d1bb100de1a4ca83dda7e43ffc}{e1000\_clear\_hw\_cntrs\_82575}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01920}01920 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01921}01921         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clear\_hw\_cntrs\_82575"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01922}01922 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01923}01923         \mbox{\hyperlink{e1000__mac_8c_a87c274dd49cf4dde219aa23dbbc42b2e}{e1000\_clear\_hw\_cntrs\_base\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01924}01924 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01925}01925         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a480843fa6caadeca9c142800e3bcf8c9}{E1000\_PRC64}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01926}01926         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a38f41ccb9ded1a4bbfd2f9340b252caa}{E1000\_PRC127}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01927}01927         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a2d239c45c7eff6d28a25dd5d8eeb36de}{E1000\_PRC255}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01928}01928         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ad02d2ce4b08f628725edd157e5b5c276}{E1000\_PRC511}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01929}01929         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ac398a70f3f56d96894d0a69bd75bd9d3}{E1000\_PRC1023}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01930}01930         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa77a0358edfcb22023257f34e943683f}{E1000\_PRC1522}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01931}01931         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aeb31ce6186c124dd1f3a42a1ece3c03f}{E1000\_PTC64}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01932}01932         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1dbe8bd2565a797da52b9897840044ef}{E1000\_PTC127}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01933}01933         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a15b2ae617834dbdb485e0fe2c5417683}{E1000\_PTC255}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01934}01934         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a2345ebdef2a50865480445a0f45144c2}{E1000\_PTC511}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01935}01935         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9981d37c30f89d3637d3c749d91d5992}{E1000\_PTC1023}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01936}01936         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a0c463f1186ea6031db5763751a8a677b}{E1000\_PTC1522}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01937}01937 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01938}01938         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8af465229553dbc486a2feb4e540612f}{E1000\_ALGNERRC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01939}01939         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a08e9c4b172c336c54dd0214d47c42e9d}{E1000\_RXERRC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01940}01940         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a53fb418977ca3762107c1ff75d488724}{E1000\_TNCRS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01941}01941         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae0e3da83a0be25204ce47fa28a6916e7}{E1000\_CEXTERR}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01942}01942         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af32fdf4ffbb2f597566b76402d48ab67}{E1000\_TSCTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01943}01943         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_adbcf675b4e89836f18daea56b0a24852}{E1000\_TSCTFC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01944}01944 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01945}01945         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8c1039015aec87f3a130870df679bb2c}{E1000\_MGTPRC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01946}01946         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aeebb0aae259dd12fddd384bcbb9cc62d}{E1000\_MGTPDC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01947}01947         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9c5a035394cd3d343960cdb72597bb4e}{E1000\_MGTPTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01948}01948 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01949}01949         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aedada490343b0f8c45a50dafb08e3ad9}{E1000\_IAC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01950}01950         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a7800a15ffbda86baf432336a8b092b2b}{E1000\_ICRXOC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01951}01951 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01952}01952         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a481bc5a2d9d2ad07ed1c9a182af72fc9}{E1000\_ICRXPTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01953}01953         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8ebbc07680d31bc4b2c80efa2621e7b7}{E1000\_ICRXATC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01954}01954         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ab9a3f2753a0cb22c7ad59503b1fd3ba2}{E1000\_ICTXPTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01955}01955         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4e03d50ab2c3100e36514ebd61412a28}{E1000\_ICTXATC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01956}01956         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a667fefee2a422aa52934bcdbb8f22f19}{E1000\_ICTXQEC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01957}01957         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a17fa67e2fe9a695c71e9a49a603ddbc8}{E1000\_ICTXQMTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01958}01958         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3022ab0bd419066b97c64b612bced6bf}{E1000\_ICRXDMTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01959}01959 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01960}01960         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a91130d6a63f3b84c9ac54293dbad89ed}{E1000\_CBTMPC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01961}01961         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af964953cef4d1a55c433c6ecd54da775}{E1000\_HTDPMC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01962}01962         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8db879259db0c4412f09a0dc494fea5b}{E1000\_CBRMPC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01963}01963         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af6403c671012d2e4bc4f499d4d8ef6a7}{E1000\_RPTHC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01964}01964         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a059a6ba524517706a98fee986e612038}{E1000\_HGPTC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01965}01965         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae7016cdf7515f7857a8089642be172e0}{E1000\_HTCBDPC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01966}01966         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a958c32fcdc96cbaef29b5219554e8365}{E1000\_HGORCL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01967}01967         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a2b85f8d882ea50350c85e14eb9474343}{E1000\_HGORCH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01968}01968         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a847d15391cb959c6c756e6050af9ca8e}{E1000\_HGOTCL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01969}01969         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1706ef57502886d19bfe4f23055f63c5}{E1000\_HGOTCH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01970}01970         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a703eed74952aee5bd02fef1da43503fc}{E1000\_LENERRS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01971}01971 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01972}01972         \textcolor{comment}{/* This register should not be read in copper configurations */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01973}01973         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} == \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981a445c1bf4bb72fed4afbd4555ba3b01a9}{e1000\_media\_type\_internal\_serdes}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01974}01974             \mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01975}01975                 \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ac10dbb7fcdf93c9a9281915a17390ba5}{E1000\_SCVPC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01976}01976 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01977}01977 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01988}\mbox{\hyperlink{e1000__82575_8c_a0cc9f664c5fdc0d2ee379d3dce62436a}{01988}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a0cc9f664c5fdc0d2ee379d3dce62436a}{e1000\_set\_pcie\_completion\_timeout}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01989}01989 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01990}01990         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} gcr = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a0bf6c1da204cb5e0b9c487774cf94592}{E1000\_GCR}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01991}01991         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01992}01992         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} pcie\_devctl2;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01993}01993 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01994}01994         \textcolor{comment}{/* only take action if timeout value is defaulted to 0 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01995}01995         \textcolor{keywordflow}{if} (gcr \& \mbox{\hyperlink{e1000__defines_8h_ab24af76cb7612baa69098e8481274c6e}{E1000\_GCR\_CMPL\_TMOUT\_MASK}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01996}01996                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01997}01997 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01998}01998         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l01999}01999 \textcolor{comment}{         * if capababilities version is type 1 we can write the}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02000}02000 \textcolor{comment}{         * timeout of 10ms to 200ms through the GCR register}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02001}02001 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02002}02002         \textcolor{keywordflow}{if} (!(gcr \& \mbox{\hyperlink{e1000__defines_8h_a5772f6ef1a0dd1dc26f9abeb445a19db}{E1000\_GCR\_CAP\_VER2}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02003}02003                 gcr |= \mbox{\hyperlink{e1000__defines_8h_a09f583fba2fd182cd0be1de8ede16953}{E1000\_GCR\_CMPL\_TMOUT\_10ms}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02004}02004                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02005}02005         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02006}02006 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02007}02007         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02008}02008 \textcolor{comment}{         * for version 2 capabilities we need to write the config space}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02009}02009 \textcolor{comment}{         * directly in order to set the completion timeout value for}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02010}02010 \textcolor{comment}{         * 16ms to 55ms}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02011}02011 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02012}02012         ret\_val = \mbox{\hyperlink{e1000__hw_8h_a8b729caf83504e15bd66120a27ba4916}{e1000\_read\_pcie\_cap\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a0488f1a4839d6d07399e2e34a19d052a}{PCIE\_DEVICE\_CONTROL2}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02013}02013                                           \&pcie\_devctl2);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02014}02014         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02015}02015                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02016}02016 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02017}02017         pcie\_devctl2 |= \mbox{\hyperlink{e1000__defines_8h_a5fab9036bc2bc31b8dbb410efaedda7b}{PCIE\_DEVICE\_CONTROL2\_16ms}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02018}02018 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02019}02019         ret\_val = \mbox{\hyperlink{e1000__hw_8h_aa64b71180f655e67ed7921e0c6baf696}{e1000\_write\_pcie\_cap\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a0488f1a4839d6d07399e2e34a19d052a}{PCIE\_DEVICE\_CONTROL2}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02020}02020                                            \&pcie\_devctl2);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02021}02021 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02022}02022         \textcolor{comment}{/* disable completion timeout resend */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02023}02023         gcr \&= \string~E1000\_GCR\_CMPL\_TMOUT\_RESEND;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02024}02024 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02025}02025         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a0bf6c1da204cb5e0b9c487774cf94592}{E1000\_GCR}}, gcr);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02026}02026         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02027}02027 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02028}02028 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02037}\mbox{\hyperlink{e1000__82575_8c_a696ad20508bb30046f256297e9624786}{02037}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a696ad20508bb30046f256297e9624786}{e1000\_vmdq\_set\_anti\_spoofing\_pf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} enable, \textcolor{keywordtype}{int} pf)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02038}02038 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02039}02039         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} reg\_val, reg\_offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02040}02040 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02041}02041         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02042}02042         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02043}02043                 reg\_offset = \mbox{\hyperlink{e1000__regs_8h_ab98dd7c36081b7cf5a91f8ba3c2186bd}{E1000\_DTXSWC}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02044}02044                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02045}02045         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02046}02046         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02047}02047                 reg\_offset = \mbox{\hyperlink{e1000__regs_8h_a38b770d34db1ca141d468ceb0bc08f58}{E1000\_TXSWC}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02048}02048                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02049}02049         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02050}02050                 \textcolor{keywordflow}{return};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02051}02051         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02052}02052 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02053}02053         reg\_val = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, reg\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02054}02054         \textcolor{keywordflow}{if} (enable) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02055}02055                 reg\_val |= (\mbox{\hyperlink{e1000__82575_8h_a206b1dc9e288b3e629c0438354d4d847}{E1000\_DTXSWC\_MAC\_SPOOF\_MASK}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02056}02056                              \mbox{\hyperlink{e1000__82575_8h_a7b024e9ccd3f2de39bfe1d9b15e0e270}{E1000\_DTXSWC\_VLAN\_SPOOF\_MASK}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02057}02057                 \textcolor{comment}{/* The PF can spoof -\/ it has to in order to}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02058}02058 \textcolor{comment}{                 * support emulation mode NICs}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02059}02059 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02060}02060                 reg\_val \string^= (1 << pf | 1 << (pf + \mbox{\hyperlink{e1000__82575_8h_a0f2052c856e4009936db16358d57b53c}{MAX\_NUM\_VFS}}));}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02061}02061         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02062}02062                 reg\_val \&= \string~(\mbox{\hyperlink{e1000__82575_8h_a206b1dc9e288b3e629c0438354d4d847}{E1000\_DTXSWC\_MAC\_SPOOF\_MASK}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02063}02063                              \mbox{\hyperlink{e1000__82575_8h_a7b024e9ccd3f2de39bfe1d9b15e0e270}{E1000\_DTXSWC\_VLAN\_SPOOF\_MASK}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02064}02064         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02065}02065         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, reg\_offset, reg\_val);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02066}02066 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02067}02067 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02075}\mbox{\hyperlink{e1000__82575_8c_a2c7369fc1093599133723aedda4cc1bc}{02075}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a2c7369fc1093599133723aedda4cc1bc}{e1000\_vmdq\_set\_loopback\_pf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} enable)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02076}02076 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02077}02077         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} dtxswc;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02078}02078 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02079}02079         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02080}02080         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a77501dd5b2063ff124729c98f2dd58ea}{e1000\_82576}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02081}02081                 dtxswc = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ab98dd7c36081b7cf5a91f8ba3c2186bd}{E1000\_DTXSWC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02082}02082                 \textcolor{keywordflow}{if} (enable)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02083}02083                         dtxswc |= \mbox{\hyperlink{e1000__82575_8h_a44138b6aee8da5b0a94fde67fdddcd9e}{E1000\_DTXSWC\_VMDQ\_LOOPBACK\_EN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02084}02084                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02085}02085                         dtxswc \&= \string~E1000\_DTXSWC\_VMDQ\_LOOPBACK\_EN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02086}02086                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ab98dd7c36081b7cf5a91f8ba3c2186bd}{E1000\_DTXSWC}}, dtxswc);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02087}02087                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02088}02088         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02089}02089         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a07834686c3b415230b07d3b27c10a897}{e1000\_i354}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02090}02090                 dtxswc = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a38b770d34db1ca141d468ceb0bc08f58}{E1000\_TXSWC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02091}02091                 \textcolor{keywordflow}{if} (enable)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02092}02092                         dtxswc |= \mbox{\hyperlink{e1000__82575_8h_a44138b6aee8da5b0a94fde67fdddcd9e}{E1000\_DTXSWC\_VMDQ\_LOOPBACK\_EN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02093}02093                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02094}02094                         dtxswc \&= \string~E1000\_DTXSWC\_VMDQ\_LOOPBACK\_EN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02095}02095                 \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a38b770d34db1ca141d468ceb0bc08f58}{E1000\_TXSWC}}, dtxswc);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02096}02096                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02097}02097         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02098}02098                 \textcolor{comment}{/* Currently no other hardware supports loopback */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02099}02099                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02100}02100         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02101}02101 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02102}02102 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02103}02103 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02104}02104 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02112}\mbox{\hyperlink{e1000__82575_8c_a8c613815c625c52173e1e26d08b02c84}{02112}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a8c613815c625c52173e1e26d08b02c84}{e1000\_vmdq\_set\_replication\_pf}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} enable)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02113}02113 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02114}02114         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} vt\_ctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a71e381268f1e7e95de51d785240e8067}{E1000\_VT\_CTL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02115}02115 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02116}02116         \textcolor{keywordflow}{if} (enable)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02117}02117                 vt\_ctl |= \mbox{\hyperlink{e1000__82575_8h_ae0332c8941d57b0e48e9dfc681168a37}{E1000\_VT\_CTL\_VM\_REPL\_EN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02118}02118         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02119}02119                 vt\_ctl \&= \string~E1000\_VT\_CTL\_VM\_REPL\_EN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02120}02120 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02121}02121         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a71e381268f1e7e95de51d785240e8067}{E1000\_VT\_CTL}}, vt\_ctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02122}02122 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02123}02123 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02133}\mbox{\hyperlink{e1000__82575_8c_aaee3f77c4148b572245c544cbd9f37db}{02133}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aaee3f77c4148b572245c544cbd9f37db}{e1000\_read\_phy\_reg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02134}02134 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02135}02135         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02136}02136 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02137}02137         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_read\_phy\_reg\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02138}02138 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02139}02139         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a75fe943d38470cd81dd76bf877a3dd62}{acquire}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02140}02140         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02141}02141                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02142}02142 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02143}02143         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a3121db8abfb48cd5e0759a12ee92567a}{e1000\_read\_phy\_reg\_mdic}}(hw, offset, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02144}02144 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02145}02145         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4f2c62beef3a2abd1fb85094170a0b35}{release}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02146}02146 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02147}02147 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02148}02148         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02149}02149 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02150}02150 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02159}\mbox{\hyperlink{e1000__82575_8c_a818126470a5a5cf80cbf10c95496cd01}{02159}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a818126470a5a5cf80cbf10c95496cd01}{e1000\_write\_phy\_reg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02160}02160 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02161}02161         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02162}02162 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02163}02163         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_write\_phy\_reg\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02164}02164 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02165}02165         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a75fe943d38470cd81dd76bf877a3dd62}{acquire}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02166}02166         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02167}02167                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02168}02168 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02169}02169         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a377289cbaf624fc093f57de2291da3e2}{e1000\_write\_phy\_reg\_mdic}}(hw, offset, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02170}02170 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02171}02171         hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a4f2c62beef3a2abd1fb85094170a0b35}{release}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02172}02172 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02173}02173 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02174}02174         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02175}02175 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02176}02176 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02185}\mbox{\hyperlink{e1000__82575_8c_ae02749ac9e32132418fc23b1a0fdbedf}{02185}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ae02749ac9e32132418fc23b1a0fdbedf}{e1000\_reset\_mdicnfg\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02186}02186 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02187}02187         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02188}02188         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} mdicnfg;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02189}02189         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} nvm\_data = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02190}02190 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02191}02191         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_reset\_mdicnfg\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02192}02192 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02193}02193         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} != \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02194}02194                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02195}02195         \textcolor{keywordflow}{if} (!\mbox{\hyperlink{e1000__82575_8c_a1c1ebc91e45075ddf255a87b500c079c}{e1000\_sgmii\_active\_82575}}(hw))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02196}02196                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02197}02197 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02198}02198         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, \mbox{\hyperlink{e1000__defines_8h_ae066ceb892c9a59ede2096eac3fa9fa7}{NVM\_INIT\_CONTROL3\_PORT\_A}} +}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02199}02199                                    \mbox{\hyperlink{e1000__defines_8h_a8f0e8c171818aa2a7b898838274e19db}{NVM\_82580\_LAN\_FUNC\_OFFSET}}(hw-\/>\mbox{\hyperlink{structe1000__hw_a54dfe65b05ea7457cd47b9c2a011d779}{bus}}.\mbox{\hyperlink{structe1000__bus__info_ac7dfcdcfb9d9c5a7272764c1c8cd5716}{func}}), 1,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02200}02200                                    \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02201}02201         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02202}02202                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02203}02203                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02204}02204         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02205}02205 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02206}02206         mdicnfg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9f6710a27a37d0a1d983994d4c3263c5}{E1000\_MDICNFG}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02207}02207         \textcolor{keywordflow}{if} (nvm\_data \& \mbox{\hyperlink{e1000__defines_8h_ad259de32c4bfaa5090294cbb96db0f31}{NVM\_WORD24\_EXT\_MDIO}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02208}02208                 mdicnfg |= \mbox{\hyperlink{e1000__defines_8h_ae3084938632664fb60c52fa915e2361c}{E1000\_MDICNFG\_EXT\_MDIO}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02209}02209         \textcolor{keywordflow}{if} (nvm\_data \& \mbox{\hyperlink{e1000__defines_8h_a632082617899adfbefb3307cbf9fa03f}{NVM\_WORD24\_COM\_MDIO}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02210}02210                 mdicnfg |= \mbox{\hyperlink{e1000__defines_8h_a3fcb8d8d18ada0748628fa51209c7552}{E1000\_MDICNFG\_COM\_MDIO}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02211}02211         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9f6710a27a37d0a1d983994d4c3263c5}{E1000\_MDICNFG}}, mdicnfg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02212}02212 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02213}02213         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02214}02214 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02215}02215 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02223}\mbox{\hyperlink{e1000__82575_8c_a26fa3947fb19e50be34ce8ad7c5b04d1}{02223}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a26fa3947fb19e50be34ce8ad7c5b04d1}{e1000\_reset\_hw\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02224}02224 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02225}02225         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02226}02226         \textcolor{comment}{/* BH SW mailbox bit in SW\_FW\_SYNC */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02227}02227         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} swmbsw\_mask = \mbox{\hyperlink{e1000__82575_8h_a924e72fcac1adae5621fb1f2efbe1f13}{E1000\_SW\_SYNCH\_MB}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02228}02228         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02229}02229         \textcolor{keywordtype}{bool} \mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} = hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02230}02230 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02231}02231         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_reset\_hw\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02232}02232 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02233}02233         hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02234}02234 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02235}02235         \textcolor{comment}{/* 82580 does not reliably do global\_device\_reset due to hw errata */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02236}02236         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} == \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a01c25b7740b67b3962269dcd75aedacd}{e1000\_82580}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02237}02237                 \mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02238}02238 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02239}02239         \textcolor{comment}{/* Get current control state. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02240}02240         ctrl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02241}02241 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02242}02242         \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02243}02243 \textcolor{comment}{         * Prevent the PCI-\/E bus from sticking if there is no TLP connection}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02244}02244 \textcolor{comment}{         * on the last TLP read/write transaction when MAC is reset.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02245}02245 \textcolor{comment}{         */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02246}02246         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a5e25abf4189b7ed7ab278dbe588fef10}{e1000\_disable\_pcie\_master\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02247}02247         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02248}02248                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}PCI-\/E Master disable polling has failed.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02249}02249 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02250}02250         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Masking off all interrupts\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02251}02251         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa973aee1bbd05ec477353537a78aecdd}{E1000\_IMC}}, 0xffffffff);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02252}02252         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a5f1910b475d9e03e92a2500b9b15923d}{E1000\_RCTL}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02253}02253         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a770f7e4f66d3516462df76bb289d73a6}{E1000\_TCTL}}, \mbox{\hyperlink{e1000__defines_8h_a4c1bb862221b24d23b9ad564c7d03101}{E1000\_TCTL\_PSP}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02254}02254         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02255}02255 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02256}02256         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(10);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02257}02257 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02258}02258         \textcolor{comment}{/* Determine whether or not a global dev reset is requested */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02259}02259         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} \&\& hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ac9bb313a4e1d3e740cd2fecc5cf7e059}{acquire\_swfw\_sync}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02260}02260             swmbsw\_mask))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02261}02261                         \mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} = \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02262}02262 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02263}02263         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}} \&\& !(\mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a7fad15ed91c7801a1b9c5f80843bab79}{E1000\_STATUS}}) \&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02264}02264             \mbox{\hyperlink{e1000__82575_8h_a6594112920ef07e1378fcac31869b867}{E1000\_STAT\_DEV\_RST\_SET}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02265}02265                 ctrl |= \mbox{\hyperlink{e1000__defines_8h_a1d66b2a834731d63d848ede5659185ee}{E1000\_CTRL\_DEV\_RST}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02266}02266         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02267}02267                 ctrl |= \mbox{\hyperlink{e1000__defines_8h_a8a24737d281c6e03e45e08d23b0212f2}{E1000\_CTRL\_RST}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02268}02268 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02269}02269         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa2a002308931f109d3f659112ae9fdc8}{E1000\_CTRL}}, ctrl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02270}02270 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02271}02271         \textcolor{keywordflow}{switch} (hw-\/>\mbox{\hyperlink{structe1000__hw_acdfddeb80cfc31b825b0ae6986a5cc92}{device\_id}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02272}02272         \textcolor{keywordflow}{case} \mbox{\hyperlink{e1000__hw_8h_a87f2750b476ccd38b544e0b25912797c}{E1000\_DEV\_ID\_DH89XXCC\_SGMII}}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02273}02273                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02274}02274         \textcolor{keywordflow}{default}:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02275}02275                 \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02276}02276                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02277}02277         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02278}02278 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02279}02279         \textcolor{comment}{/* Add delay to insure DEV\_RST or RST has time to complete */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02280}02280         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(5);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02281}02281 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02282}02282         ret\_val = \mbox{\hyperlink{e1000__mac_8c_affc49c3cc92fa1b90594942a234d35db}{e1000\_get\_auto\_rd\_done\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02283}02283         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02284}02284                 \textcolor{comment}{/*}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02285}02285 \textcolor{comment}{                 * When auto config read does not complete, do not}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02286}02286 \textcolor{comment}{                 * return with an error. This can happen in situations}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02287}02287 \textcolor{comment}{                 * where there is no eeprom and prevents getting link.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02288}02288 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02289}02289                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Auto Read Done did not complete\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02290}02290         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02291}02291 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02292}02292         \textcolor{comment}{/* clear global device reset status bit */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02293}02293         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a7fad15ed91c7801a1b9c5f80843bab79}{E1000\_STATUS}}, \mbox{\hyperlink{e1000__82575_8h_a6594112920ef07e1378fcac31869b867}{E1000\_STAT\_DEV\_RST\_SET}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02294}02294 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02295}02295         \textcolor{comment}{/* Clear any pending interrupt events. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02296}02296         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_aa973aee1bbd05ec477353537a78aecdd}{E1000\_IMC}}, 0xffffffff);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02297}02297         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae3769f563a652045f35d90625fd7a4d9}{E1000\_ICR}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02298}02298 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02299}02299         ret\_val = \mbox{\hyperlink{e1000__82575_8c_ae02749ac9e32132418fc23b1a0fdbedf}{e1000\_reset\_mdicnfg\_82580}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02300}02300         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02301}02301                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Could not reset MDICNFG based on EEPROM\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02302}02302 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02303}02303         \textcolor{comment}{/* Install any alternate MAC address into RAR0 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02304}02304         ret\_val = \mbox{\hyperlink{e1000__mac_8c_a6c22230cbf31261f894a27c03b767a17}{e1000\_check\_alt\_mac\_addr\_generic}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02305}02305 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02306}02306         \textcolor{comment}{/* Release semaphore */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02307}02307         \textcolor{keywordflow}{if} (\mbox{\hyperlink{structe1000__dev__spec__82575_ad24beaf75a218387bc5c698a07e15b93}{global\_device\_reset}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02308}02308                 hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a013bebb2132423f4fe9e15a8eb3b6b5c}{release\_swfw\_sync}}(hw, swmbsw\_mask);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02309}02309 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02310}02310         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02311}02311 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02312}02312 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02323}\mbox{\hyperlink{e1000__82575_8c_a337fc1069017f6a33e1a966ee604e046}{02323}} \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} \mbox{\hyperlink{e1000__82575_8c_a337fc1069017f6a33e1a966ee604e046}{e1000\_rxpbs\_adjust\_82580}}(\mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02324}02324 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02325}02325         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} ret\_val = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02326}02326 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02327}02327         \textcolor{keywordflow}{if} (data < \mbox{\hyperlink{e1000__82575_8c_a3f5975b461c3750e434f691d1e68ae8e}{E1000\_82580\_RXPBS\_TABLE\_SIZE}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02328}02328                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a44781ca6797588b50c29273ba4278a1a}{e1000\_82580\_rxpbs\_table}}[data];}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02329}02329 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02330}02330         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02331}02331 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02332}02332 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02342}\mbox{\hyperlink{e1000__82575_8c_a416cbfa3c424ec6e03caa79436f010c0}{02342}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a416cbfa3c424ec6e03caa79436f010c0}{e1000\_validate\_nvm\_checksum\_with\_offset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} offset)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02343}02343 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02344}02344         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02345}02345         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} checksum = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02346}02346         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} i, nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02347}02347 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02348}02348         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_validate\_nvm\_checksum\_with\_offset"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02349}02349 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02350}02350         \textcolor{keywordflow}{for} (i = offset; i < ((\mbox{\hyperlink{e1000__defines_8h_ac9d067abb7c0d057f3303579ecd36059}{NVM\_CHECKSUM\_REG}} + offset) + 1); i++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02351}02351                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, i, 1, \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02352}02352                 \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02353}02353                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02354}02354                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02355}02355                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02356}02356                 checksum += nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02357}02357         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02358}02358 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02359}02359         \textcolor{keywordflow}{if} (checksum != (\mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}}) \mbox{\hyperlink{e1000__defines_8h_acdf2bf8160ceaf1cd1765f5b72832c85}{NVM\_SUM}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02360}02360                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Checksum Invalid\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02361}02361                 ret\_val = -\/\mbox{\hyperlink{e1000__defines_8h_af3a521f3b56094a2f9019e0aa48ada4a}{E1000\_ERR\_NVM}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02362}02362                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02363}02363         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02364}02364 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02365}02365 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02366}02366         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02367}02367 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02368}02368 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02379}\mbox{\hyperlink{e1000__82575_8c_af90235acee5350043a98bc7445a7dfac}{02379}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_af90235acee5350043a98bc7445a7dfac}{e1000\_update\_nvm\_checksum\_with\_offset}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} offset)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02380}02380 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02381}02381         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02382}02382         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} checksum = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02383}02383         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} i, nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02384}02384 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02385}02385         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_update\_nvm\_checksum\_with\_offset"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02386}02386 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02387}02387         \textcolor{keywordflow}{for} (i = offset; i < (\mbox{\hyperlink{e1000__defines_8h_ac9d067abb7c0d057f3303579ecd36059}{NVM\_CHECKSUM\_REG}} + offset); i++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02388}02388                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, i, 1, \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02389}02389                 \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02390}02390                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error while updating checksum.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02391}02391                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02392}02392                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02393}02393                 checksum += nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02394}02394         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02395}02395         checksum = (\mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}}) \mbox{\hyperlink{e1000__defines_8h_acdf2bf8160ceaf1cd1765f5b72832c85}{NVM\_SUM}} -\/ checksum;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02396}02396         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_a5f78fa8be60d9b5b372230254fd41c7d}{write}}(hw, (\mbox{\hyperlink{e1000__defines_8h_ac9d067abb7c0d057f3303579ecd36059}{NVM\_CHECKSUM\_REG}} + offset), 1,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02397}02397                                     \&checksum);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02398}02398         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02399}02399                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Write Error while updating checksum.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02400}02400 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02401}02401 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02402}02402         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02403}02403 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02404}02404 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02413}\mbox{\hyperlink{e1000__82575_8c_ab2ce047fc8bed399e32d6fd204785372}{02413}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ab2ce047fc8bed399e32d6fd204785372}{e1000\_validate\_nvm\_checksum\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02414}02414 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02415}02415         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02416}02416         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} eeprom\_regions\_count = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02417}02417         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} j, nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02418}02418         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} nvm\_offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02419}02419 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02420}02420         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_validate\_nvm\_checksum\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02421}02421 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02422}02422         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, \mbox{\hyperlink{e1000__defines_8h_aab5f21f05af70a74fdd584944f7deb4a}{NVM\_COMPATIBILITY\_REG\_3}}, 1, \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02423}02423         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02424}02424                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02425}02425                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02426}02426         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02427}02427 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02428}02428         \textcolor{keywordflow}{if} (nvm\_data \& \mbox{\hyperlink{e1000__defines_8h_a7a0d8d223a4bd064ef3eb0c90ef4056b}{NVM\_COMPATIBILITY\_BIT\_MASK}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02429}02429                 \textcolor{comment}{/* if chekcsums compatibility bit is set validate checksums}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02430}02430 \textcolor{comment}{                 * for all 4 ports. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02431}02431                 eeprom\_regions\_count = 4;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02432}02432         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02433}02433 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02434}02434         \textcolor{keywordflow}{for} (j = 0; j < eeprom\_regions\_count; j++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02435}02435                 nvm\_offset = \mbox{\hyperlink{e1000__defines_8h_a8f0e8c171818aa2a7b898838274e19db}{NVM\_82580\_LAN\_FUNC\_OFFSET}}(j);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02436}02436                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a416cbfa3c424ec6e03caa79436f010c0}{e1000\_validate\_nvm\_checksum\_with\_offset}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02437}02437                                                                   nvm\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02438}02438                 \textcolor{keywordflow}{if} (ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02439}02439                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02440}02440         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02441}02441 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02442}02442 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02443}02443         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02444}02444 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02445}02445 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02454}\mbox{\hyperlink{e1000__82575_8c_a7ba99b3c6a244c8a287d0d62b412df03}{02454}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a7ba99b3c6a244c8a287d0d62b412df03}{e1000\_update\_nvm\_checksum\_82580}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02455}02455 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02456}02456         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02457}02457         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} j, nvm\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02458}02458         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} nvm\_offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02459}02459 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02460}02460         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_update\_nvm\_checksum\_82580"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02461}02461 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02462}02462         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_add376eae079ba142c4f41bb8ac8f739a}{read}}(hw, \mbox{\hyperlink{e1000__defines_8h_aab5f21f05af70a74fdd584944f7deb4a}{NVM\_COMPATIBILITY\_REG\_3}}, 1, \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02463}02463         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02464}02464                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Read Error while updating checksum compatibility bit.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02465}02465                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02466}02466         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02467}02467 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02468}02468         \textcolor{keywordflow}{if} (!(nvm\_data \& \mbox{\hyperlink{e1000__defines_8h_a7a0d8d223a4bd064ef3eb0c90ef4056b}{NVM\_COMPATIBILITY\_BIT\_MASK}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02469}02469                 \textcolor{comment}{/* set compatibility bit to validate checksums appropriately */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02470}02470                 nvm\_data = nvm\_data | \mbox{\hyperlink{e1000__defines_8h_a7a0d8d223a4bd064ef3eb0c90ef4056b}{NVM\_COMPATIBILITY\_BIT\_MASK}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02471}02471                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_a7da8a8328803abd295ca8691e964c202}{nvm}}.\mbox{\hyperlink{structe1000__nvm__info_a039acf6f4fa4fe5e22111f6a03253b4a}{ops}}.\mbox{\hyperlink{structe1000__nvm__operations_a5f78fa8be60d9b5b372230254fd41c7d}{write}}(hw, \mbox{\hyperlink{e1000__defines_8h_aab5f21f05af70a74fdd584944f7deb4a}{NVM\_COMPATIBILITY\_REG\_3}}, 1,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02472}02472                                             \&nvm\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02473}02473                 \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02474}02474                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}NVM Write Error while updating checksum compatibility bit.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02475}02475                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02476}02476                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02477}02477         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02478}02478 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02479}02479         \textcolor{keywordflow}{for} (j = 0; j < 4; j++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02480}02480                 nvm\_offset = \mbox{\hyperlink{e1000__defines_8h_a8f0e8c171818aa2a7b898838274e19db}{NVM\_82580\_LAN\_FUNC\_OFFSET}}(j);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02481}02481                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_af90235acee5350043a98bc7445a7dfac}{e1000\_update\_nvm\_checksum\_with\_offset}}(hw, nvm\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02482}02482                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02483}02483                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02484}02484         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02485}02485 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02486}02486 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02487}02487         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02488}02488 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02489}02489 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02498}\mbox{\hyperlink{e1000__82575_8c_a31c093f652777cb436874aa382e8e14c}{02498}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a31c093f652777cb436874aa382e8e14c}{e1000\_validate\_nvm\_checksum\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02499}02499 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02500}02500         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02501}02501         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} j;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02502}02502         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} nvm\_offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02503}02503 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02504}02504         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_validate\_nvm\_checksum\_i350"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02505}02505 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02506}02506         \textcolor{keywordflow}{for} (j = 0; j < 4; j++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02507}02507                 nvm\_offset = \mbox{\hyperlink{e1000__defines_8h_a8f0e8c171818aa2a7b898838274e19db}{NVM\_82580\_LAN\_FUNC\_OFFSET}}(j);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02508}02508                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_a416cbfa3c424ec6e03caa79436f010c0}{e1000\_validate\_nvm\_checksum\_with\_offset}}(hw,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02509}02509                                                                   nvm\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02510}02510                 \textcolor{keywordflow}{if} (ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02511}02511                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02512}02512         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02513}02513 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02514}02514 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02515}02515         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02516}02516 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02517}02517 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02526}\mbox{\hyperlink{e1000__82575_8c_a9535ded81e4c3c307ba1e22c5009688d}{02526}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a9535ded81e4c3c307ba1e22c5009688d}{e1000\_update\_nvm\_checksum\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02527}02527 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02528}02528         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02529}02529         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} j;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02530}02530         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} nvm\_offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02531}02531 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02532}02532         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_update\_nvm\_checksum\_i350"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02533}02533 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02534}02534         \textcolor{keywordflow}{for} (j = 0; j < 4; j++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02535}02535                 nvm\_offset = \mbox{\hyperlink{e1000__defines_8h_a8f0e8c171818aa2a7b898838274e19db}{NVM\_82580\_LAN\_FUNC\_OFFSET}}(j);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02536}02536                 ret\_val = \mbox{\hyperlink{e1000__82575_8c_af90235acee5350043a98bc7445a7dfac}{e1000\_update\_nvm\_checksum\_with\_offset}}(hw, nvm\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02537}02537                 \textcolor{keywordflow}{if} (ret\_val != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02538}02538                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02539}02539         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02540}02540 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02541}02541 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02542}02542         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02543}02543 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02544}02544 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02552}\mbox{\hyperlink{e1000__82575_8c_a1e5e7deba5d8bccdd58fc4c4869b1062}{02552}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a1e5e7deba5d8bccdd58fc4c4869b1062}{\_\_e1000\_access\_emi\_reg}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} address,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02553}02553                                   \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data, \textcolor{keywordtype}{bool} read)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02554}02554 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02555}02555         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02556}02556 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02557}02557         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}\_\_e1000\_access\_emi\_reg"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02558}02558 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02559}02559         ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__regs_8h_a4eee5002464ca8ec539fb0f9e5cbdd8b}{E1000\_EMIADD}}, address);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02560}02560         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02561}02561                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02562}02562 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02563}02563         \textcolor{keywordflow}{if} (read)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02564}02564                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae5f47d9827bcb8f1497acb4607d0b343}{E1000\_EMIDATA}}, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02565}02565         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02566}02566                 ret\_val = hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__regs_8h_ae5f47d9827bcb8f1497acb4607d0b343}{E1000\_EMIDATA}}, *data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02567}02567 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02568}02568         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02569}02569 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02570}02570 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02577}\mbox{\hyperlink{e1000__82575_8c_a3c2434c6b8940a6617c7b11ad95b97bf}{02577}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a3c2434c6b8940a6617c7b11ad95b97bf}{e1000\_read\_emi\_reg}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} addr, \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02578}02578 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02579}02579         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_read\_emi\_reg"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02580}02580 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02581}02581         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__82575_8c_a1e5e7deba5d8bccdd58fc4c4869b1062}{\_\_e1000\_access\_emi\_reg}}(hw, addr, data, \textcolor{keyword}{true});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02582}02582 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02583}02583 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02590}\mbox{\hyperlink{e1000__82575_8c_a8eff88009e8a3c1457378cffe7406c31}{02590}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a8eff88009e8a3c1457378cffe7406c31}{e1000\_initialize\_M88E1512\_phy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02591}02591 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02592}02592         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02593}02593         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02594}02594 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02595}02595         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_initialize\_M88E1512\_phy"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02596}02596 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02597}02597         \textcolor{comment}{/* Check if this is correct PHY. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02598}02598         \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02599}02599                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02600}02600 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02601}02601         \textcolor{comment}{/* Switch to PHY page 0xFF. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02602}02602         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x00FF);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02603}02603         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02604}02604                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02605}02605 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02606}02606         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0x214B);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02607}02607         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02608}02608                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02609}02609 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02610}02610         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2144);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02611}02611         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02612}02612                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02613}02613 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02614}02614         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0x0C28);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02615}02615         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02616}02616                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02617}02617 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02618}02618         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2146);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02619}02619         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02620}02620                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02621}02621 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02622}02622         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0xB233);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02623}02623         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02624}02624                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02625}02625 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02626}02626         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x214D);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02627}02627         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02628}02628                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02629}02629 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02630}02630         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0xCC0C);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02631}02631         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02632}02632                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02633}02633 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02634}02634         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2159);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02635}02635         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02636}02636                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02637}02637 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02638}02638         \textcolor{comment}{/* Switch to PHY page 0xFB. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02639}02639         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x00FB);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02640}02640         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02641}02641                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02642}02642 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02643}02643         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a073b37783530c59535124b8fa8732f85}{E1000\_M88E1512\_CFG\_REG\_3}}, 0x000D);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02644}02644         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02645}02645                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02646}02646 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02647}02647         \textcolor{comment}{/* Switch to PHY page 0x12. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02648}02648         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x12);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02649}02649         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02650}02650                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02651}02651 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02652}02652         \textcolor{comment}{/* Change mode to SGMII-\/to-\/Copper */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02653}02653         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a8968714c7f3ac7737a045762f48b6e30}{E1000\_M88E1512\_MODE}}, 0x8001);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02654}02654         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02655}02655                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02656}02656 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02657}02657         \textcolor{comment}{/* Return the PHY to page 0. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02658}02658         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02659}02659         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02660}02660                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02661}02661 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02662}02662         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ac610f9d9f6c42a94e51495d06945f013}{commit}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02663}02663         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02664}02664                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Error committing the PHY changes\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02665}02665                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02666}02666         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02667}02667 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02668}02668         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(1000);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02669}02669 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02670}02670         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02671}02671 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02672}02672 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02679}\mbox{\hyperlink{e1000__82575_8c_aa0973a2cede3672ff975ad71d4213683}{02679}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_aa0973a2cede3672ff975ad71d4213683}{e1000\_initialize\_M88E1543\_phy}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02680}02680 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02681}02681         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02682}02682         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02683}02683 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02684}02684         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_initialize\_M88E1543\_phy"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02685}02685 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02686}02686         \textcolor{comment}{/* Check if this is correct PHY. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02687}02687         \textcolor{keywordflow}{if} (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02688}02688                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02689}02689 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02690}02690         \textcolor{comment}{/* Switch to PHY page 0xFF. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02691}02691         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x00FF);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02692}02692         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02693}02693                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02694}02694 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02695}02695         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0x214B);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02696}02696         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02697}02697                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02698}02698 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02699}02699         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2144);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02700}02700         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02701}02701                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02702}02702 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02703}02703         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0x0C28);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02704}02704         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02705}02705                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02706}02706 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02707}02707         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2146);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02708}02708         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02709}02709                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02710}02710 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02711}02711         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0xB233);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02712}02712         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02713}02713                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02714}02714 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02715}02715         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x214D);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02716}02716         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02717}02717                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02718}02718 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02719}02719         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a89bae7ec758f814e8293de3217177035}{E1000\_M88E1512\_CFG\_REG\_2}}, 0xDC0C);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02720}02720         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02721}02721                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02722}02722 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02723}02723         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac633a774fefa34f9b1208fa67bff80b1}{E1000\_M88E1512\_CFG\_REG\_1}}, 0x2159);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02724}02724         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02725}02725                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02726}02726 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02727}02727         \textcolor{comment}{/* Switch to PHY page 0xFB. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02728}02728         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x00FB);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02729}02729         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02730}02730                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02731}02731 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02732}02732         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a073b37783530c59535124b8fa8732f85}{E1000\_M88E1512\_CFG\_REG\_3}}, 0xC00D);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02733}02733         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02734}02734                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02735}02735 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02736}02736         \textcolor{comment}{/* Switch to PHY page 0x12. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02737}02737         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x12);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02738}02738         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02739}02739                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02740}02740 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02741}02741         \textcolor{comment}{/* Change mode to SGMII-\/to-\/Copper */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02742}02742         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a8968714c7f3ac7737a045762f48b6e30}{E1000\_M88E1512\_MODE}}, 0x8001);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02743}02743         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02744}02744                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02745}02745 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02746}02746         \textcolor{comment}{/* Switch to PHY page 1. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02747}02747         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0x1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02748}02748         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02749}02749                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02750}02750 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02751}02751         \textcolor{comment}{/* Change mode to 1000BASE-\/X/SGMII and autoneg enable; reset */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02752}02752         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a33c0336dafacbe6bce4ff411f2409f60}{E1000\_M88E1543\_FIBER\_CTRL}}, 0x9140);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02753}02753         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02754}02754                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02755}02755 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02756}02756         \textcolor{comment}{/* Return the PHY to page 0. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02757}02757         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02758}02758         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02759}02759                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02760}02760 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02761}02761         ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ac610f9d9f6c42a94e51495d06945f013}{commit}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02762}02762         \textcolor{keywordflow}{if} (ret\_val) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02763}02763                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}Error committing the PHY changes\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02764}02764                 \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02765}02765         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02766}02766 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02767}02767         \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(1000);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02768}02768 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02769}02769         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02770}02770 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02771}02771 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02781}\mbox{\hyperlink{e1000__82575_8c_a46bb08696f2fadf4b6bf8f6e548c65ef}{02781}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a46bb08696f2fadf4b6bf8f6e548c65ef}{e1000\_set\_eee\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} adv1G, \textcolor{keywordtype}{bool} adv100M)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02782}02782 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02783}02783         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ipcnfg, eeer;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02784}02784 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02785}02785         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_eee\_i350"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02786}02786 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02787}02787         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_a47575986a62f26180c725bb6fd19e434}{type}} < \mbox{\hyperlink{e1000__hw_8h_a7f5871256d483a73ddb176218998f3a7a138a607af846034ccbc25c1552afcd75}{e1000\_i350}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02788}02788             (hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02789}02789                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02790}02790         ipcnfg = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9936fb8cc908f30a569cf177c5192a30}{E1000\_IPCNFG}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02791}02791         eeer = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8bf778abad834c819180b1dd4fa5a2c7}{E1000\_EEER}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02792}02792 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02793}02793         \textcolor{comment}{/* enable or disable per user setting */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02794}02794         \textcolor{keywordflow}{if} (!(hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_a2442bba3e7dae375464292fbc3bba6aa}{eee\_disable}})) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02795}02795                 \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} eee\_su = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a1c27a9753dbd1a6817d902328bd13889}{E1000\_EEE\_SU}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02796}02796 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02797}02797                 \textcolor{keywordflow}{if} (adv100M)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02798}02798                         ipcnfg |= \mbox{\hyperlink{e1000__defines_8h_ac58c1a4787dd4de07b66dac1deef201c}{E1000\_IPCNFG\_EEE\_100M\_AN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02799}02799                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02800}02800                         ipcnfg \&= \string~E1000\_IPCNFG\_EEE\_100M\_AN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02801}02801 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02802}02802                 \textcolor{keywordflow}{if} (adv1G)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02803}02803                         ipcnfg |= \mbox{\hyperlink{e1000__defines_8h_a6f52dcd9b6a1fafa8ba52f959004a75e}{E1000\_IPCNFG\_EEE\_1G\_AN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02804}02804                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02805}02805                         ipcnfg \&= \string~E1000\_IPCNFG\_EEE\_1G\_AN;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02806}02806 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02807}02807                 eeer |= (\mbox{\hyperlink{e1000__defines_8h_a965dafeb53a66914c8d76dfa57b7f7ea}{E1000\_EEER\_TX\_LPI\_EN}} | \mbox{\hyperlink{e1000__defines_8h_a00d09048669082793b92cf618e7f608f}{E1000\_EEER\_RX\_LPI\_EN}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02808}02808                          \mbox{\hyperlink{e1000__defines_8h_a0cbea8bed236bace7996ae483697c04c}{E1000\_EEER\_LPI\_FC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02809}02809 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02810}02810                 \textcolor{comment}{/* This bit should not be set in normal operation. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02811}02811                 \textcolor{keywordflow}{if} (eee\_su \& \mbox{\hyperlink{e1000__defines_8h_a573d85717715b90b6182303158dcb429}{E1000\_EEE\_SU\_LPI\_CLK\_STP}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02812}02812                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}LPI Clock Stop Bit should not be set!\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02813}02813         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02814}02814                 ipcnfg \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a6f52dcd9b6a1fafa8ba52f959004a75e}{E1000\_IPCNFG\_EEE\_1G\_AN}} | \mbox{\hyperlink{e1000__defines_8h_ac58c1a4787dd4de07b66dac1deef201c}{E1000\_IPCNFG\_EEE\_100M\_AN}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02815}02815                 eeer \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a965dafeb53a66914c8d76dfa57b7f7ea}{E1000\_EEER\_TX\_LPI\_EN}} | \mbox{\hyperlink{e1000__defines_8h_a00d09048669082793b92cf618e7f608f}{E1000\_EEER\_RX\_LPI\_EN}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02816}02816                           \mbox{\hyperlink{e1000__defines_8h_a0cbea8bed236bace7996ae483697c04c}{E1000\_EEER\_LPI\_FC}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02817}02817         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02818}02818         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9936fb8cc908f30a569cf177c5192a30}{E1000\_IPCNFG}}, ipcnfg);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02819}02819         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8bf778abad834c819180b1dd4fa5a2c7}{E1000\_EEER}}, eeer);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02820}02820         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a9936fb8cc908f30a569cf177c5192a30}{E1000\_IPCNFG}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02821}02821         \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a8bf778abad834c819180b1dd4fa5a2c7}{E1000\_EEER}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02822}02822 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02823}02823 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02824}02824         \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02825}02825 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02826}02826 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02836}\mbox{\hyperlink{e1000__82575_8c_a9104807bbe98022e1e3ce4b45e8780e8}{02836}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a9104807bbe98022e1e3ce4b45e8780e8}{e1000\_set\_eee\_i354}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} adv1G, \textcolor{keywordtype}{bool} adv100M)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02837}02837 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02838}02838         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02839}02839         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02840}02840         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} phy\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02841}02841 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02842}02842         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_eee\_i354"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02843}02843 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02844}02844         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02845}02845             ((phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02846}02846             (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}})))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02847}02847                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02848}02848 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02849}02849         \textcolor{keywordflow}{if} (!hw-\/>\mbox{\hyperlink{structe1000__hw_a166f8f6e4f6988f96cc484820dacc8f7}{dev\_spec}}.\mbox{\hyperlink{structe1000__hw_a7af532d4c4547e17913ca42780808a16}{\_82575}}.\mbox{\hyperlink{structe1000__dev__spec__82575_a2442bba3e7dae375464292fbc3bba6aa}{eee\_disable}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02850}02850                 \textcolor{comment}{/* Switch to PHY page 18. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02851}02851                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 18);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02852}02852                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02853}02853                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02854}02854 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02855}02855                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_a472bba2b1fc26159f92172e4b245ded9}{read\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a0e4e54ca00e5ce1db23376b927717b61}{E1000\_M88E1543\_EEE\_CTRL\_1}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02856}02856                                             \&phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02857}02857                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02858}02858                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02859}02859 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02860}02860                 phy\_data |= \mbox{\hyperlink{e1000__defines_8h_a97c799c36eb25680eb440fdcecaa64d4}{E1000\_M88E1543\_EEE\_CTRL\_1\_MS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02861}02861                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a0e4e54ca00e5ce1db23376b927717b61}{E1000\_M88E1543\_EEE\_CTRL\_1}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02862}02862                                              phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02863}02863                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02864}02864                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02865}02865 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02866}02866                 \textcolor{comment}{/* Return the PHY to page 0. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02867}02867                 ret\_val = phy-\/>\mbox{\hyperlink{structe1000__phy__info_a9f72e5ea9a53134dca331d957d8d65a9}{ops}}.\mbox{\hyperlink{structe1000__phy__operations_ab15c576fb4fabe5a72aa13be9cc2910a}{write\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_ac5b1505e131e1fec6b24a2bccd557e8a}{E1000\_M88E1543\_PAGE\_ADDR}}, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02868}02868                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02869}02869                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02870}02870 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02871}02871                 \textcolor{comment}{/* Turn on EEE advertisement. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02872}02872                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a24c2bf2dffd5f6d7bd5495c4a162e7a5}{e1000\_read\_xmdio\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a29df62a22c22d92fae77d290b1585887}{E1000\_EEE\_ADV\_ADDR\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02873}02873                                                \mbox{\hyperlink{e1000__defines_8h_a46f2ed4aafa56a54ba73e2140f4527c1}{E1000\_EEE\_ADV\_DEV\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02874}02874                                                \&phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02875}02875                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02876}02876                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02877}02877 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02878}02878                 \textcolor{keywordflow}{if} (adv100M)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02879}02879                         phy\_data |= \mbox{\hyperlink{e1000__defines_8h_a0ffd1ca96f7bdce28ef35681b24c587f}{E1000\_EEE\_ADV\_100\_SUPPORTED}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02880}02880                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02881}02881                         phy\_data \&= \string~E1000\_EEE\_ADV\_100\_SUPPORTED;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02882}02882 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02883}02883                 \textcolor{keywordflow}{if} (adv1G)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02884}02884                         phy\_data |= \mbox{\hyperlink{e1000__defines_8h_a015b6b44d9695ca15c16e8b0b1b950c4}{E1000\_EEE\_ADV\_1000\_SUPPORTED}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02885}02885                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02886}02886                         phy\_data \&= \string~E1000\_EEE\_ADV\_1000\_SUPPORTED;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02887}02887 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02888}02888                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a0daf8a1d739ee4034679ea9709547b55}{e1000\_write\_xmdio\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a29df62a22c22d92fae77d290b1585887}{E1000\_EEE\_ADV\_ADDR\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02889}02889                                                 \mbox{\hyperlink{e1000__defines_8h_a46f2ed4aafa56a54ba73e2140f4527c1}{E1000\_EEE\_ADV\_DEV\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02890}02890                                                 phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02891}02891         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02892}02892                 \textcolor{comment}{/* Turn off EEE advertisement. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02893}02893                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a24c2bf2dffd5f6d7bd5495c4a162e7a5}{e1000\_read\_xmdio\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a29df62a22c22d92fae77d290b1585887}{E1000\_EEE\_ADV\_ADDR\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02894}02894                                                \mbox{\hyperlink{e1000__defines_8h_a46f2ed4aafa56a54ba73e2140f4527c1}{E1000\_EEE\_ADV\_DEV\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02895}02895                                                \&phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02896}02896                 \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02897}02897                         \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02898}02898 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02899}02899                 phy\_data \&= \string~(\mbox{\hyperlink{e1000__defines_8h_a0ffd1ca96f7bdce28ef35681b24c587f}{E1000\_EEE\_ADV\_100\_SUPPORTED}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02900}02900                               \mbox{\hyperlink{e1000__defines_8h_a015b6b44d9695ca15c16e8b0b1b950c4}{E1000\_EEE\_ADV\_1000\_SUPPORTED}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02901}02901                 ret\_val = \mbox{\hyperlink{e1000__phy_8c_a0daf8a1d739ee4034679ea9709547b55}{e1000\_write\_xmdio\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a29df62a22c22d92fae77d290b1585887}{E1000\_EEE\_ADV\_ADDR\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02902}02902                                                 \mbox{\hyperlink{e1000__defines_8h_a46f2ed4aafa56a54ba73e2140f4527c1}{E1000\_EEE\_ADV\_DEV\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02903}02903                                                 phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02904}02904         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02905}02905 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02906}02906 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02907}02907         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02908}02908 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02909}02909 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02918}\mbox{\hyperlink{e1000__82575_8c_abaa810c2f2526ddecb836369e1b16ee0}{02918}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_abaa810c2f2526ddecb836369e1b16ee0}{e1000\_get\_eee\_status\_i354}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} *status)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02919}02919 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02920}02920         \textcolor{keyword}{struct }\mbox{\hyperlink{structe1000__phy__info}{e1000\_phy\_info}} *phy = \&hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02921}02921         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02922}02922         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} phy\_data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02923}02923 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02924}02924         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_eee\_status\_i354"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02925}02925 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02926}02926         \textcolor{comment}{/* Check if EEE is supported on this device. */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02927}02927         \textcolor{keywordflow}{if} ((hw-\/>\mbox{\hyperlink{structe1000__hw_aea1c0d5f50dd587c46f0828fb1fe1055}{phy}}.\mbox{\hyperlink{structe1000__phy__info_a6c7bf5b5de1d6beba7307c2e4b42a4a2}{media\_type}} != \mbox{\hyperlink{e1000__hw_8h_aa95ace41ad77553b3ac625bdc1aa4981af5a87a1c9fec89ed7e9de1053b57cdb8}{e1000\_media\_type\_copper}}) ||}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02928}02928             ((phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_a65a680fae94b75ff02b6dbba94b2e8e5}{M88E1543\_E\_PHY\_ID}}) \&\&}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02929}02929             (phy-\/>\mbox{\hyperlink{structe1000__phy__info_a01b896c7e29e7cd831d81eae6b40e55c}{id}} != \mbox{\hyperlink{e1000__defines_8h_aed14ccf4d6ee553adbb34ac71aef9049}{M88E1512\_E\_PHY\_ID}})))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02930}02930                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02931}02931 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02932}02932         ret\_val = \mbox{\hyperlink{e1000__phy_8c_a24c2bf2dffd5f6d7bd5495c4a162e7a5}{e1000\_read\_xmdio\_reg}}(hw, \mbox{\hyperlink{e1000__defines_8h_a1b21f8b8aba545bd7d8144d05248d782}{E1000\_PCS\_STATUS\_ADDR\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02933}02933                                        \mbox{\hyperlink{e1000__defines_8h_a488831280b9b34d2551cf5c67b138061}{E1000\_PCS\_STATUS\_DEV\_I354}},}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02934}02934                                        \&phy\_data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02935}02935         \textcolor{keywordflow}{if} (ret\_val)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02936}02936                 \textcolor{keywordflow}{goto} out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02937}02937 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02938}02938         *status = phy\_data \& (\mbox{\hyperlink{e1000__defines_8h_ac48e9f2cb196c3b32377c2f6f369b38d}{E1000\_PCS\_STATUS\_TX\_LPI\_RCVD}} |}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02939}02939                               \mbox{\hyperlink{e1000__defines_8h_adb0cca97ed4828d3188dc642d489baf2}{E1000\_PCS\_STATUS\_RX\_LPI\_RCVD}}) ? \textcolor{keyword}{true} : \textcolor{keyword}{false};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02940}02940 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02941}02941 out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02942}02942         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02943}02943 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02944}02944 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02945}02945 \textcolor{comment}{/* Due to a hw errata, if the host tries to  configure the VFTA register}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02946}02946 \textcolor{comment}{ * while performing queries from the BMC or DMA, then the VFTA in some}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02947}02947 \textcolor{comment}{ * cases won't be written.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02948}02948 \textcolor{comment}{ */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02949}02949 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02957}\mbox{\hyperlink{e1000__82575_8c_a7d784f79abfcab30c6f120ba9e382cd4}{02957}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a7d784f79abfcab30c6f120ba9e382cd4}{e1000\_clear\_vfta\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02958}02958 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02959}02959         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02960}02960         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02961}02961 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02962}02962         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clear\_vfta\_350"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02963}02963 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02964}02964         \textcolor{keywordflow}{for} (offset = 0; offset < \mbox{\hyperlink{e1000__defines_8h_a6f423ec0b5aaac995692b95081fd0e09}{E1000\_VLAN\_FILTER\_TBL\_SIZE}}; offset++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02965}02965                 \textcolor{keywordflow}{for} (i = 0; i < 10; i++)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02966}02966                         \mbox{\hyperlink{e1000__osdep_8h_a51d00d7b9d0972918fda9e17dc2fc9ce}{E1000\_WRITE\_REG\_ARRAY}}(hw, \mbox{\hyperlink{e1000__regs_8h_a323631ee91c6aac2506d2f1755cbd4a8}{E1000\_VFTA}}, offset, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02967}02967 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02968}02968                 \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02969}02969         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02970}02970 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02971}02971 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02981}\mbox{\hyperlink{e1000__82575_8c_a94872f018dc27eb2ae92f89313b75642}{02981}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a94872f018dc27eb2ae92f89313b75642}{e1000\_write\_vfta\_i350}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} offset, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} value)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02982}02982 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02983}02983         \textcolor{keywordtype}{int} i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02984}02984 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02985}02985         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_write\_vfta\_350"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02986}02986 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02987}02987         \textcolor{keywordflow}{for} (i = 0; i < 10; i++)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02988}02988                 \mbox{\hyperlink{e1000__osdep_8h_a51d00d7b9d0972918fda9e17dc2fc9ce}{E1000\_WRITE\_REG\_ARRAY}}(hw, \mbox{\hyperlink{e1000__regs_8h_a323631ee91c6aac2506d2f1755cbd4a8}{E1000\_VFTA}}, offset, value);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02989}02989 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02990}02990         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02991}02991 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02992}02992 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l02993}02993 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03001}\mbox{\hyperlink{e1000__82575_8c_ac56f17b7c16615e137eb054db21f9753}{03001}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac56f17b7c16615e137eb054db21f9753}{e1000\_set\_i2c\_bb}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03002}03002 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03003}03003         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} ret\_val = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03004}03004         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} ctrl\_ext, i2cparams;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03005}03005 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03006}03006         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_i2c\_bb"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03007}03007 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03008}03008         ctrl\_ext = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03009}03009         ctrl\_ext |= \mbox{\hyperlink{e1000__defines_8h_ab93ae7c5605624dbb14a37fbf0d27b04}{E1000\_CTRL\_I2C\_ENA}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03010}03010         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_af846c197c3825894a920b85a32115762}{E1000\_CTRL\_EXT}}, ctrl\_ext);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03011}03011         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03012}03012 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03013}03013         i2cparams = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03014}03014         i2cparams |= \mbox{\hyperlink{e1000__regs_8h_acd9eccdad3daee85c5e5edeb3d0440b9}{E1000\_I2CBB\_EN}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03015}03015         i2cparams |= \mbox{\hyperlink{e1000__regs_8h_aae10381ec579298e1f5984b9f340f05d}{E1000\_I2C\_DATA\_OE\_N}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03016}03016         i2cparams |= \mbox{\hyperlink{e1000__regs_8h_ac343d07482ed9992f446adc4c88cd79e}{E1000\_I2C\_CLK\_OE\_N}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03017}03017         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}}, i2cparams);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03018}03018         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03019}03019 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03020}03020         \textcolor{keywordflow}{return} ret\_val;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03021}03021 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03022}03022 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03033}\mbox{\hyperlink{e1000__82575_8c_a989162a5180c33d2103009297cfb7035}{03033}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a989162a5180c33d2103009297cfb7035}{e1000\_read\_i2c\_byte\_generic}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} byte\_offset,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03034}03034                                 \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} dev\_addr, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03035}03035 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03036}03036         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03037}03037         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} max\_retry = 10;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03038}03038         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} retry = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03039}03039         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} swfw\_mask = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03040}03040 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03041}03041         \textcolor{keywordtype}{bool} nack = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03042}03042 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03043}03043         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_read\_i2c\_byte\_generic"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03044}03044 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03045}03045         swfw\_mask = \mbox{\hyperlink{e1000__defines_8h_a757580bb7384de7a8ccec383e3a15277}{E1000\_SWFW\_PHY0\_SM}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03046}03046 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03047}03047         \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03048}03048                 \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ac9bb313a4e1d3e740cd2fecc5cf7e059}{acquire\_swfw\_sync}}(hw, swfw\_mask)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03049}03049                     != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03050}03050                         status = \mbox{\hyperlink{e1000__defines_8h_aa83850ca0ab5049e33137d3b203ea7e0}{E1000\_ERR\_SWFW\_SYNC}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03051}03051                         \textcolor{keywordflow}{goto} read\_byte\_out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03052}03052                 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03053}03053 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03054}03054                 \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03055}03055 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03056}03056                 \textcolor{comment}{/* Device Address and write indication */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03057}03057                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, dev\_addr);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03058}03058                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03059}03059                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03060}03060 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03061}03061                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03062}03062                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03063}03063                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03064}03064 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03065}03065                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, byte\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03066}03066                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03067}03067                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03068}03068 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03069}03069                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03070}03070                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03071}03071                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03072}03072 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03073}03073                 \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03074}03074 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03075}03075                 \textcolor{comment}{/* Device Address and read indication */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03076}03076                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, (dev\_addr | 0x1));}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03077}03077                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03078}03078                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03079}03079 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03080}03080                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03081}03081                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03082}03082                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03083}03083 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03084}03084                 \mbox{\hyperlink{e1000__82575_8c_aff633624adf8aea73c024516005a1759}{e1000\_clock\_in\_i2c\_byte}}(hw, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03085}03085 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03086}03086                 status = \mbox{\hyperlink{e1000__82575_8c_a96f7483ce3fa39c02adb2850779b4417}{e1000\_clock\_out\_i2c\_bit}}(hw, nack);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03087}03087                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03088}03088                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03089}03089 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03090}03090                 \mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{e1000\_i2c\_stop}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03091}03091                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03092}03092 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03093}03093 fail:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03094}03094                 hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a013bebb2132423f4fe9e15a8eb3b6b5c}{release\_swfw\_sync}}(hw, swfw\_mask);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03095}03095                 \mbox{\hyperlink{e1000__osdep_8h_a112d66cf3347afa4dcb69db64604682f}{msec\_delay}}(100);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03096}03096                 \mbox{\hyperlink{e1000__82575_8c_a28776e3addb8872f45bb8c11cfa55701}{e1000\_i2c\_bus\_clear}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03097}03097                 retry++;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03098}03098                 \textcolor{keywordflow}{if} (retry < max\_retry)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03099}03099                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}I2C byte read error -\/ Retrying.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03100}03100                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03101}03101                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}I2C byte read error.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03102}03102 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03103}03103         \} \textcolor{keywordflow}{while} (retry < max\_retry);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03104}03104 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03105}03105         hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a013bebb2132423f4fe9e15a8eb3b6b5c}{release\_swfw\_sync}}(hw, swfw\_mask);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03106}03106 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03107}03107 read\_byte\_out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03108}03108 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03109}03109         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03110}03110 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03111}03111 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03122}\mbox{\hyperlink{e1000__82575_8c_ab8e411d0cc47b3cb8d86b248412d20f5}{03122}} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ab8e411d0cc47b3cb8d86b248412d20f5}{e1000\_write\_i2c\_byte\_generic}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} byte\_offset,}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03123}03123                                  \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} dev\_addr, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03124}03124 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03125}03125         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03126}03126         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} max\_retry = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03127}03127         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} retry = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03128}03128         \mbox{\hyperlink{e1000__osdep_8h_ace9d960e74685e2cd84b36132dbbf8aa}{u16}} swfw\_mask = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03129}03129 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03130}03130         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_write\_i2c\_byte\_generic"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03131}03131 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03132}03132         swfw\_mask = \mbox{\hyperlink{e1000__defines_8h_a757580bb7384de7a8ccec383e3a15277}{E1000\_SWFW\_PHY0\_SM}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03133}03133 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03134}03134         \textcolor{keywordflow}{if} (hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_ac9bb313a4e1d3e740cd2fecc5cf7e059}{acquire\_swfw\_sync}}(hw, swfw\_mask) != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03135}03135                 status = \mbox{\hyperlink{e1000__defines_8h_aa83850ca0ab5049e33137d3b203ea7e0}{E1000\_ERR\_SWFW\_SYNC}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03136}03136                 \textcolor{keywordflow}{goto} write\_byte\_out;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03137}03137         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03138}03138 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03139}03139         \textcolor{keywordflow}{do} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03140}03140                 \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03141}03141 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03142}03142                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, dev\_addr);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03143}03143                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03144}03144                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03145}03145 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03146}03146                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03147}03147                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03148}03148                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03149}03149 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03150}03150                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, byte\_offset);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03151}03151                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03152}03152                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03153}03153 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03154}03154                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03155}03155                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03156}03156                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03157}03157 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03158}03158                 status = \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(hw, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03159}03159                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03160}03160                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03161}03161 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03162}03162                 status = \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03163}03163                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03164}03164                         \textcolor{keywordflow}{goto} fail;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03165}03165 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03166}03166                 \mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{e1000\_i2c\_stop}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03167}03167                 \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03168}03168 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03169}03169 fail:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03170}03170                 \mbox{\hyperlink{e1000__82575_8c_a28776e3addb8872f45bb8c11cfa55701}{e1000\_i2c\_bus\_clear}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03171}03171                 retry++;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03172}03172                 \textcolor{keywordflow}{if} (retry < max\_retry)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03173}03173                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}I2C byte write error -\/ Retrying.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03174}03174                 \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03175}03175                         \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}I2C byte write error.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03176}03176         \} \textcolor{keywordflow}{while} (retry < max\_retry);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03177}03177 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03178}03178         hw-\/>\mbox{\hyperlink{structe1000__hw_a6a1fb05566cea375c7ae3abdee093ad6}{mac}}.\mbox{\hyperlink{structe1000__mac__info_ad4dc5e9b487b5986db47069021017e37}{ops}}.\mbox{\hyperlink{structe1000__mac__operations_a013bebb2132423f4fe9e15a8eb3b6b5c}{release\_swfw\_sync}}(hw, swfw\_mask);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03179}03179 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03180}03180 write\_byte\_out:}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03181}03181 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03182}03182         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03183}03183 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03184}03184 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03191}\mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{03191}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03192}03192 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03193}03193         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03194}03194 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03195}03195         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_i2c\_start"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03196}03196 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03197}03197         \textcolor{comment}{/* Start condition must begin with data and clock high */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03198}03198         \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, 1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03199}03199         \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03200}03200 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03201}03201         \textcolor{comment}{/* Setup time for start condition (4.7us) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03202}03202         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_af96005062c486db2b9a2e365d6171c76}{E1000\_I2C\_T\_SU\_STA}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03203}03203 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03204}03204         \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03205}03205 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03206}03206         \textcolor{comment}{/* Hold time for start condition (4us) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03207}03207         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_aeef1be15f66ff62d05d86b69343e5ca2}{E1000\_I2C\_T\_HD\_STA}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03208}03208 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03209}03209         \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03210}03210 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03211}03211         \textcolor{comment}{/* Minimum low period of clock is 4.7 us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03212}03212         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a1819d42a08452fbaf67e77ee1e29030c}{E1000\_I2C\_T\_LOW}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03213}03213 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03214}03214 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03215}03215 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03222}\mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{03222}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{e1000\_i2c\_stop}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03223}03223 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03224}03224         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03225}03225 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03226}03226         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_i2c\_stop"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03227}03227 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03228}03228         \textcolor{comment}{/* Stop condition must begin with data low and clock high */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03229}03229         \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, 0);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03230}03230         \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03231}03231 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03232}03232         \textcolor{comment}{/* Setup time for stop condition (4us) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03233}03233         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_acc778d9ed4092f814edf5b2a7460f4bd}{E1000\_I2C\_T\_SU\_STO}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03234}03234 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03235}03235         \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, 1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03236}03236 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03237}03237         \textcolor{comment}{/* bus free time between stop and start (4.7us)*/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03238}03238         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a7e214b0d088bf3ed24ea6905a79886cc}{E1000\_I2C\_T\_BUF}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03239}03239 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03240}03240 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03248}\mbox{\hyperlink{e1000__82575_8c_aff633624adf8aea73c024516005a1759}{03248}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_aff633624adf8aea73c024516005a1759}{e1000\_clock\_in\_i2c\_byte}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03249}03249 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03250}03250         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03251}03251         \textcolor{keywordtype}{bool} bit = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03252}03252 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03253}03253         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clock\_in\_i2c\_byte"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03254}03254 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03255}03255         *data = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03256}03256         \textcolor{keywordflow}{for} (i = 7; i >= 0; i-\/-\/) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03257}03257                 \mbox{\hyperlink{e1000__82575_8c_a67d5a9aa4354ab4466efbe4f17b877ad}{e1000\_clock\_in\_i2c\_bit}}(hw, \&bit);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03258}03258                 *data |= bit << i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03259}03259         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03260}03260 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03261}03261 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03269}\mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{03269}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac9355591fd2dcd37da2fbdf0122b3506}{e1000\_clock\_out\_i2c\_byte}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_a92c50087ca0e64fa93fc59402c55f8ca}{u8}} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03270}03270 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03271}03271         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03272}03272         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03273}03273         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03274}03274         \textcolor{keywordtype}{bool} bit = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03275}03275 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03276}03276         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clock\_out\_i2c\_byte"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03277}03277 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03278}03278         \textcolor{keywordflow}{for} (i = 7; i >= 0; i-\/-\/) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03279}03279                 bit = (data >> i) \& 0x1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03280}03280                 status = \mbox{\hyperlink{e1000__82575_8c_a96f7483ce3fa39c02adb2850779b4417}{e1000\_clock\_out\_i2c\_bit}}(hw, bit);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03281}03281 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03282}03282                 \textcolor{keywordflow}{if} (status != \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03283}03283                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03284}03284         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03285}03285 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03286}03286         \textcolor{comment}{/* Release SDA line (set high) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03287}03287         i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03288}03288 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03289}03289         i2cctl |= \mbox{\hyperlink{e1000__regs_8h_aae10381ec579298e1f5984b9f340f05d}{E1000\_I2C\_DATA\_OE\_N}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03290}03290         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}}, i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03291}03291         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03292}03292 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03293}03293         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03294}03294 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03295}03295 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03302}\mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{03302}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a31066319a89802c1be6c7b9542b84010}{e1000\_get\_i2c\_ack}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03303}03303 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03304}03304         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03305}03305         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03306}03306         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03307}03307         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} timeout = 10;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03308}03308         \textcolor{keywordtype}{bool} ack = \textcolor{keyword}{true};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03309}03309 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03310}03310         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_i2c\_ack"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03311}03311 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03312}03312         \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03313}03313 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03314}03314         \textcolor{comment}{/* Minimum high period of clock is 4us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03315}03315         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_adbdc508a436f69418d67e8af5d8532bc}{E1000\_I2C\_T\_HIGH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03316}03316 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03317}03317         \textcolor{comment}{/* Wait until SCL returns high */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03318}03318         \textcolor{keywordflow}{for} (i = 0; i < timeout; i++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03319}03319                 \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03320}03320                 i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03321}03321                 \textcolor{keywordflow}{if} (i2cctl \& \mbox{\hyperlink{e1000__regs_8h_a56be6c347e6c0357b4bc09a53ace7040}{E1000\_I2C\_CLK\_IN}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03322}03322                         \textcolor{keywordflow}{break};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03323}03323         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03324}03324         \textcolor{keywordflow}{if} (!(i2cctl \& \mbox{\hyperlink{e1000__regs_8h_a56be6c347e6c0357b4bc09a53ace7040}{E1000\_I2C\_CLK\_IN}}))}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03325}03325                 \textcolor{keywordflow}{return} \mbox{\hyperlink{e1000__defines_8h_aa8ab675949a8bb6fc44f98448c0cd442}{E1000\_ERR\_I2C}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03326}03326 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03327}03327         ack = \mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{e1000\_get\_i2c\_data}}(\&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03328}03328         \textcolor{keywordflow}{if} (ack) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03329}03329                 \mbox{\hyperlink{e1000__osdep_8h_acf358ee75cab3e9eb271e46bf983aaff}{DEBUGOUT}}(\textcolor{stringliteral}{"{}I2C ack was not received.\(\backslash\)n"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03330}03330                 status = \mbox{\hyperlink{e1000__defines_8h_aa8ab675949a8bb6fc44f98448c0cd442}{E1000\_ERR\_I2C}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03331}03331         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03332}03332 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03333}03333         \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03334}03334 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03335}03335         \textcolor{comment}{/* Minimum low period of clock is 4.7 us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03336}03336         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a1819d42a08452fbaf67e77ee1e29030c}{E1000\_I2C\_T\_LOW}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03337}03337 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03338}03338         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03339}03339 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03340}03340 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03348}\mbox{\hyperlink{e1000__82575_8c_a67d5a9aa4354ab4466efbe4f17b877ad}{03348}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a67d5a9aa4354ab4466efbe4f17b877ad}{e1000\_clock\_in\_i2c\_bit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} *data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03349}03349 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03350}03350         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03351}03351 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03352}03352         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clock\_in\_i2c\_bit"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03353}03353 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03354}03354         \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03355}03355 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03356}03356         \textcolor{comment}{/* Minimum high period of clock is 4us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03357}03357         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_adbdc508a436f69418d67e8af5d8532bc}{E1000\_I2C\_T\_HIGH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03358}03358 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03359}03359         i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03360}03360         *data = \mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{e1000\_get\_i2c\_data}}(\&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03361}03361 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03362}03362         \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03363}03363 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03364}03364         \textcolor{comment}{/* Minimum low period of clock is 4.7 us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03365}03365         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a1819d42a08452fbaf67e77ee1e29030c}{E1000\_I2C\_T\_LOW}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03366}03366 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03367}03367 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03375}\mbox{\hyperlink{e1000__82575_8c_a96f7483ce3fa39c02adb2850779b4417}{03375}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_a96f7483ce3fa39c02adb2850779b4417}{e1000\_clock\_out\_i2c\_bit}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \textcolor{keywordtype}{bool} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03376}03376 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03377}03377         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03378}03378         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03379}03379 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03380}03380         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_clock\_out\_i2c\_bit"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03381}03381 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03382}03382         status = \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03383}03383         \textcolor{keywordflow}{if} (status == \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}}) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03384}03384                 \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03385}03385 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03386}03386                 \textcolor{comment}{/* Minimum high period of clock is 4us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03387}03387                 \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_adbdc508a436f69418d67e8af5d8532bc}{E1000\_I2C\_T\_HIGH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03388}03388 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03389}03389                 \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03390}03390 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03391}03391                 \textcolor{comment}{/* Minimum low period of clock is 4.7 us.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03392}03392 \textcolor{comment}{                 * This also takes care of the data hold time.}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03393}03393 \textcolor{comment}{                 */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03394}03394                 \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a1819d42a08452fbaf67e77ee1e29030c}{E1000\_I2C\_T\_LOW}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03395}03395         \} \textcolor{keywordflow}{else} \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03396}03396                 status = \mbox{\hyperlink{e1000__defines_8h_aa8ab675949a8bb6fc44f98448c0cd442}{E1000\_ERR\_I2C}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03397}03397                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}I2C data was not set to \%X\(\backslash\)n"{}}, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03398}03398         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03399}03399 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03400}03400         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03401}03401 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03409}\mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{03409}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03410}03410 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03411}03411         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_raise\_i2c\_clk"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03412}03412 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03413}03413         *i2cctl |= \mbox{\hyperlink{e1000__regs_8h_a78845e222be2c2889e72f1cd331a5643}{E1000\_I2C\_CLK\_OUT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03414}03414         *i2cctl \&= \string~E1000\_I2C\_CLK\_OE\_N;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03415}03415         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}}, *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03416}03416         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03417}03417 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03418}03418         \textcolor{comment}{/* SCL rise time (1000ns) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03419}03419         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a84a26c827c05d82e6add90378db238ff}{E1000\_I2C\_T\_RISE}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03420}03420 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03421}03421 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03429}\mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{03429}} \textcolor{keyword}{static} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03430}03430 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03431}03431 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03432}03432         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_lower\_i2c\_clk"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03433}03433 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03434}03434         *i2cctl \&= \string~E1000\_I2C\_CLK\_OUT;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03435}03435         *i2cctl \&= \string~E1000\_I2C\_CLK\_OE\_N;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03436}03436         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}}, *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03437}03437         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03438}03438 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03439}03439         \textcolor{comment}{/* SCL fall time (300ns) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03440}03440         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a2b725176db96332a2ea2627520789c90}{E1000\_I2C\_T\_FALL}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03441}03441 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03442}03442 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03451}\mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{03451}} \textcolor{keyword}{static} \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw, \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl, \textcolor{keywordtype}{bool} data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03452}03452 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03453}03453         \mbox{\hyperlink{e1000__osdep_8h_ae9b1af5c037e57a98884758875d3a7c4}{s32}} status = \mbox{\hyperlink{e1000__defines_8h_ade686b442ce8b2b1dede6968fec28c10}{E1000\_SUCCESS}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03454}03454 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03455}03455         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_set\_i2c\_data"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03456}03456 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03457}03457         \textcolor{keywordflow}{if} (data)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03458}03458                 *i2cctl |= \mbox{\hyperlink{e1000__regs_8h_a847c38ebe622ab8e614e7f22adf27786}{E1000\_I2C\_DATA\_OUT}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03459}03459         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03460}03460                 *i2cctl \&= \string~E1000\_I2C\_DATA\_OUT;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03461}03461 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03462}03462         *i2cctl \&= \string~E1000\_I2C\_DATA\_OE\_N;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03463}03463         *i2cctl |= \mbox{\hyperlink{e1000__regs_8h_ac343d07482ed9992f446adc4c88cd79e}{E1000\_I2C\_CLK\_OE\_N}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03464}03464         \mbox{\hyperlink{e1000__osdep_8h_ac145012091e766065f03f1caf81dda69}{E1000\_WRITE\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}}, *i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03465}03465         \mbox{\hyperlink{e1000__osdep_8h_abd4ee915cc9a2dadc190fa88437f8792}{E1000\_WRITE\_FLUSH}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03466}03466 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03467}03467         \textcolor{comment}{/* Data rise/fall (1000ns/300ns) and set-\/up time (250ns) */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03468}03468         \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a84a26c827c05d82e6add90378db238ff}{E1000\_I2C\_T\_RISE}} + \mbox{\hyperlink{e1000__82575_8h_a2b725176db96332a2ea2627520789c90}{E1000\_I2C\_T\_FALL}} + \mbox{\hyperlink{e1000__82575_8h_a4b4be34582c05a0e218030ac546c5b64}{E1000\_I2C\_T\_SU\_DATA}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03469}03469 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03470}03470         *i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03471}03471         \textcolor{keywordflow}{if} (data != \mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{e1000\_get\_i2c\_data}}(i2cctl)) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03472}03472                 status = \mbox{\hyperlink{e1000__defines_8h_aa8ab675949a8bb6fc44f98448c0cd442}{E1000\_ERR\_I2C}};}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03473}03473                 \mbox{\hyperlink{e1000__osdep_8h_a05001c9eb96d2f4a2ad39e927fc81cfa}{DEBUGOUT1}}(\textcolor{stringliteral}{"{}Error -\/ I2C data was not set to \%X.\(\backslash\)n"{}}, data);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03474}03474         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03475}03475 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03476}03476         \textcolor{keywordflow}{return} status;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03477}03477 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03478}03478 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03485}\mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{03485}} \textcolor{keyword}{static} \textcolor{keywordtype}{bool} \mbox{\hyperlink{e1000__82575_8c_a5977d2da29cbf8637d020b3f8808c419}{e1000\_get\_i2c\_data}}(\mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} *i2cctl)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03486}03486 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03487}03487         \textcolor{keywordtype}{bool} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03488}03488 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03489}03489         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_get\_i2c\_data"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03490}03490 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03491}03491         \textcolor{keywordflow}{if} (*i2cctl \& \mbox{\hyperlink{e1000__regs_8h_ac6713ddf159c51f46e99fec81f2d0c74}{E1000\_I2C\_DATA\_IN}})}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03492}03492                 data = 1;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03493}03493         \textcolor{keywordflow}{else}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03494}03494                 data = 0;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03495}03495 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03496}03496         \textcolor{keywordflow}{return} data;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03497}03497 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03498}03498 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03506}\mbox{\hyperlink{e1000__82575_8c_a28776e3addb8872f45bb8c11cfa55701}{03506}} \textcolor{keywordtype}{void} \mbox{\hyperlink{e1000__82575_8c_a28776e3addb8872f45bb8c11cfa55701}{e1000\_i2c\_bus\_clear}}(\textcolor{keyword}{struct} \mbox{\hyperlink{structe1000__hw}{e1000\_hw}} *hw)}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03507}03507 \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03508}03508         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i2cctl = \mbox{\hyperlink{e1000__osdep_8h_adf44652e7ae409a70af12a085510c0b0}{E1000\_READ\_REG}}(hw, \mbox{\hyperlink{e1000__regs_8h_a3045831bdce6e1a426b0badb39ee5ff7}{E1000\_I2CPARAMS}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03509}03509         \mbox{\hyperlink{e1000__osdep_8h_afaa62991928fb9fb18ff0db62a040aba}{u32}} i;}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03510}03510 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03511}03511         \mbox{\hyperlink{e1000__osdep_8h_aa7aa4601bde10555b6aa50cd14dba16d}{DEBUGFUNC}}(\textcolor{stringliteral}{"{}e1000\_i2c\_bus\_clear"{}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03512}03512 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03513}03513         \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03514}03514 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03515}03515         \mbox{\hyperlink{e1000__82575_8c_ac0d92b570263de0c018c2ebf9a85cab9}{e1000\_set\_i2c\_data}}(hw, \&i2cctl, 1);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03516}03516 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03517}03517         \textcolor{keywordflow}{for} (i = 0; i < 9; i++) \{}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03518}03518                 \mbox{\hyperlink{e1000__82575_8c_acda5a0c1f12cdc4d2eb730e8bac0df28}{e1000\_raise\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03519}03519 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03520}03520                 \textcolor{comment}{/* Min high period of clock is 4us */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03521}03521                 \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_adbdc508a436f69418d67e8af5d8532bc}{E1000\_I2C\_T\_HIGH}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03522}03522 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03523}03523                 \mbox{\hyperlink{e1000__82575_8c_a7f90d77cecf31926412c946380727938}{e1000\_lower\_i2c\_clk}}(hw, \&i2cctl);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03524}03524 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03525}03525                 \textcolor{comment}{/* Min low period of clock is 4.7us*/}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03526}03526                 \mbox{\hyperlink{e1000__osdep_8h_a43e7beeb12e2b50153ba0f215b68bb85}{usec\_delay}}(\mbox{\hyperlink{e1000__82575_8h_a1819d42a08452fbaf67e77ee1e29030c}{E1000\_I2C\_T\_LOW}});}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03527}03527         \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03528}03528 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03529}03529         \mbox{\hyperlink{e1000__82575_8c_a44bcec3e59ad34f8878e9f0304458ea6}{e1000\_i2c\_start}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03530}03530 }
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03531}03531         \textcolor{comment}{/* Put the i2c bus back to default state */}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03532}03532         \mbox{\hyperlink{e1000__82575_8c_a22d83c91b88e0f2c27e4aa5d26b280fd}{e1000\_i2c\_stop}}(hw);}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03533}03533 \}}
\DoxyCodeLine{\Hypertarget{e1000__82575_8c_source_l03534}03534 }

\end{DoxyCode}
