Message ID | 20090527231542.GA19664@clala-laptop |
---|---|
State | Awaiting Upstream, archived |
Delegated to: | David Miller |
Headers | show |
On Wed, May 27, 2009 at 4:15 PM, Chaitanya Lala <clala@riverbed.com> wrote: > Ethtool is a standard way of getting information about ethernet > interfaces. We enhance ethtool kernel interface & e1000e to make > the MDI-X status readable via ethtool in userspace. > > Signed-off-by: Chaitanya Lala <clala@riverbed.com> > Signed-off-by: Arthur Jones <ajones@riverbed.com> > --- > drivers/net/e1000e/ethtool.c | 8 ++++++++ > include/linux/ethtool.h | 8 +++++++- > 2 files changed, 15 insertions(+), 1 deletions(-) > > diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c > index 4d25ede..b6aea6b 100644 > --- a/drivers/net/e1000e/ethtool.c > +++ b/drivers/net/e1000e/ethtool.c > @@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev, > > ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || > hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE; > + > + /* MDI-X => 2; MDI =>1; Invalid =>0 */ > + if ((hw->phy.media_type == e1000_media_type_copper) && > + !hw->mac.get_link_status) > + ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI; > + else > + ecmd->is_mdix = MDI_INVALID; > + > return 0; > } > > diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h > index 380b042..b553bdb 100644 > --- a/include/linux/ethtool.h > +++ b/include/linux/ethtool.h > @@ -30,7 +30,8 @@ struct ethtool_cmd { > __u32 maxtxpkt; /* Tx pkts before generating tx int */ > __u32 maxrxpkt; /* Rx pkts before generating rx int */ > __u16 speed_hi; > - __u16 reserved2; > + __u8 is_mdix; > + __u8 reserved2; > __u32 lp_advertising; /* Features the link partner advertises */ > __u32 reserved[2]; > }; > @@ -632,6 +633,11 @@ struct ethtool_ops { > #define AUTONEG_DISABLE 0x00 > #define AUTONEG_ENABLE 0x01 > > +/* Mode MDI or MDI-X */ > +#define MDI_INVALID 0x00 > +#define MDI 0x01 > +#define MDI_X 0x02 > + > /* Wake-On-Lan options. */ > #define WAKE_PHY (1 << 0) > #define WAKE_UCAST (1 << 1) > -- > 1.6.0.4 > I have pulled this into my queue for testing and submission, thanks.
On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: [...] > diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h > index 380b042..b553bdb 100644 > --- a/include/linux/ethtool.h > +++ b/include/linux/ethtool.h > @@ -30,7 +30,8 @@ struct ethtool_cmd { > __u32 maxtxpkt; /* Tx pkts before generating tx int */ > __u32 maxrxpkt; /* Rx pkts before generating rx int */ > __u16 speed_hi; > - __u16 reserved2; > + __u8 is_mdix; Since this is specific to Ethernet over twisted-pair cable, could you please rename this to "eth_tp_mdix". > + __u8 reserved2; > __u32 lp_advertising; /* Features the link partner advertises */ > __u32 reserved[2]; > }; > @@ -632,6 +633,11 @@ struct ethtool_ops { > #define AUTONEG_DISABLE 0x00 > #define AUTONEG_ENABLE 0x01 > > +/* Mode MDI or MDI-X */ > +#define MDI_INVALID 0x00 > +#define MDI 0x01 > +#define MDI_X 0x02 [...] Similarly, please add the prefix "ETH_TP_" to these. Ben.
Ben Hutchings wrote: > On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: > [...] > >> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h >> index 380b042..b553bdb 100644 >> --- a/include/linux/ethtool.h >> +++ b/include/linux/ethtool.h >> @@ -30,7 +30,8 @@ struct ethtool_cmd { >> __u32 maxtxpkt; /* Tx pkts before generating tx int */ >> __u32 maxrxpkt; /* Rx pkts before generating rx int */ >> __u16 speed_hi; >> - __u16 reserved2; >> + __u8 is_mdix; >> > > Since this is specific to Ethernet over twisted-pair cable, could you > please rename this to "eth_tp_mdix". > Will do for sure. > >> + __u8 reserved2; >> __u32 lp_advertising; /* Features the link partner advertises */ >> __u32 reserved[2]; >> }; >> @@ -632,6 +633,11 @@ struct ethtool_ops { >> #define AUTONEG_DISABLE 0x00 >> #define AUTONEG_ENABLE 0x01 >> >> +/* Mode MDI or MDI-X */ >> +#define MDI_INVALID 0x00 >> +#define MDI 0x01 >> +#define MDI_X 0x02 >> > [...] > > Similarly, please add the prefix "ETH_TP_" to these. > Sure. > Ben. > > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> wrote: > Ben Hutchings wrote: >> >> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: >> [...] >> >>> >>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h >>> index 380b042..b553bdb 100644 >>> --- a/include/linux/ethtool.h >>> +++ b/include/linux/ethtool.h >>> @@ -30,7 +30,8 @@ struct ethtool_cmd { >>> __u32 maxtxpkt; /* Tx pkts before generating tx int */ >>> __u32 maxrxpkt; /* Rx pkts before generating rx int */ >>> __u16 speed_hi; >>> - __u16 reserved2; >>> + __u8 is_mdix; >>> >> >> Since this is specific to Ethernet over twisted-pair cable, could you >> please rename this to "eth_tp_mdix". >> > > Will do for sure. >> >> >>> >>> + __u8 reserved2; >>> __u32 lp_advertising; /* Features the link partner advertises */ >>> __u32 reserved[2]; >>> }; >>> @@ -632,6 +633,11 @@ struct ethtool_ops { >>> #define AUTONEG_DISABLE 0x00 >>> #define AUTONEG_ENABLE 0x01 >>> +/* Mode MDI or MDI-X */ >>> +#define MDI_INVALID 0x00 >>> +#define MDI 0x01 >>> +#define MDI_X 0x02 >>> >> >> [...] >> >> Similarly, please add the prefix "ETH_TP_" to these. >> > > Sure. Chaitanya, I have made the requested changes to the patch in my tree.
Jeff Kirsher wrote: > On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> wrote: > >> Ben Hutchings wrote: >> >>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: >>> [...] >>> >>> >>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h >>>> index 380b042..b553bdb 100644 >>>> --- a/include/linux/ethtool.h >>>> +++ b/include/linux/ethtool.h >>>> @@ -30,7 +30,8 @@ struct ethtool_cmd { >>>> __u32 maxtxpkt; /* Tx pkts before generating tx int */ >>>> __u32 maxrxpkt; /* Rx pkts before generating rx int */ >>>> __u16 speed_hi; >>>> - __u16 reserved2; >>>> + __u8 is_mdix; >>>> >>>> >>> Since this is specific to Ethernet over twisted-pair cable, could you >>> please rename this to "eth_tp_mdix". >>> >>> >> Will do for sure. >> >>> >>>> + __u8 reserved2; >>>> __u32 lp_advertising; /* Features the link partner advertises */ >>>> __u32 reserved[2]; >>>> }; >>>> @@ -632,6 +633,11 @@ struct ethtool_ops { >>>> #define AUTONEG_DISABLE 0x00 >>>> #define AUTONEG_ENABLE 0x01 >>>> +/* Mode MDI or MDI-X */ >>>> +#define MDI_INVALID 0x00 >>>> +#define MDI 0x01 >>>> +#define MDI_X 0x02 >>>> >>>> >>> [...] >>> >>> Similarly, please add the prefix "ETH_TP_" to these. >>> >>> >> Sure. >> > > Chaitanya, I have made the requested changes to the patch in my tree. > > Thanks. I am very new to procedure of submitting kernel patches. Just want to make sure if this means that I not need to send another patch to netdev ? Thanks, Chaitanya -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Wed, Jun 3, 2009 at 2:19 PM, Chaitanya Lala <clala@riverbed.com> wrote: > Jeff Kirsher wrote: >> >> On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> >> wrote: >> >>> >>> Ben Hutchings wrote: >>> >>>> >>>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: >>>> [...] >>>> >>>> >>>>> >>>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h >>>>> index 380b042..b553bdb 100644 >>>>> --- a/include/linux/ethtool.h >>>>> +++ b/include/linux/ethtool.h >>>>> @@ -30,7 +30,8 @@ struct ethtool_cmd { >>>>> __u32 maxtxpkt; /* Tx pkts before generating tx int */ >>>>> __u32 maxrxpkt; /* Rx pkts before generating rx int */ >>>>> __u16 speed_hi; >>>>> - __u16 reserved2; >>>>> + __u8 is_mdix; >>>>> >>>>> >>>> >>>> Since this is specific to Ethernet over twisted-pair cable, could you >>>> please rename this to "eth_tp_mdix". >>>> >>>> >>> >>> Will do for sure. >>> >>>> >>>> >>>>> >>>>> + __u8 reserved2; >>>>> __u32 lp_advertising; /* Features the link partner advertises >>>>> */ >>>>> __u32 reserved[2]; >>>>> }; >>>>> @@ -632,6 +633,11 @@ struct ethtool_ops { >>>>> #define AUTONEG_DISABLE 0x00 >>>>> #define AUTONEG_ENABLE 0x01 >>>>> +/* Mode MDI or MDI-X */ >>>>> +#define MDI_INVALID 0x00 >>>>> +#define MDI 0x01 >>>>> +#define MDI_X 0x02 >>>>> >>>>> >>>> >>>> [...] >>>> >>>> Similarly, please add the prefix "ETH_TP_" to these. >>>> >>>> >>> >>> Sure. >>> >> >> Chaitanya, I have made the requested changes to the patch in my tree. >> >> > > Thanks. I am very new to procedure of submitting kernel patches. Just want > to make sure if this means that I not need to send another patch to netdev ? > > Thanks, > Chaitanya > -- When there are changes requested on a patch, yes the patch needs to be re-submitted to netdev. Since I will be pushing this patch along with other patches for Intel drivers to Dave once testing has been completed, there is no need for you to re-submit this patch. I have already sucked in the changes that Ben has requested into the patch that is in my tree.
Jeff Kirsher wrote: > On Wed, Jun 3, 2009 at 2:19 PM, Chaitanya Lala <clala@riverbed.com> wrote: > >> Jeff Kirsher wrote: >> >>> On Wed, Jun 3, 2009 at 10:45 AM, Chaitanya Lala <clala@riverbed.com> >>> wrote: >>> >>> >>>> Ben Hutchings wrote: >>>> >>>> >>>>> On Wed, 2009-05-27 at 16:15 -0700, Chaitanya Lala wrote: >>>>> [...] >>>>> >>>>> >>>>> >>>>>> diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h >>>>>> index 380b042..b553bdb 100644 >>>>>> --- a/include/linux/ethtool.h >>>>>> +++ b/include/linux/ethtool.h >>>>>> @@ -30,7 +30,8 @@ struct ethtool_cmd { >>>>>> __u32 maxtxpkt; /* Tx pkts before generating tx int */ >>>>>> __u32 maxrxpkt; /* Rx pkts before generating rx int */ >>>>>> __u16 speed_hi; >>>>>> - __u16 reserved2; >>>>>> + __u8 is_mdix; >>>>>> >>>>>> >>>>>> >>>>> Since this is specific to Ethernet over twisted-pair cable, could you >>>>> please rename this to "eth_tp_mdix". >>>>> >>>>> >>>>> >>>> Will do for sure. >>>> >>>> >>>>> >>>>>> + __u8 reserved2; >>>>>> __u32 lp_advertising; /* Features the link partner advertises >>>>>> */ >>>>>> __u32 reserved[2]; >>>>>> }; >>>>>> @@ -632,6 +633,11 @@ struct ethtool_ops { >>>>>> #define AUTONEG_DISABLE 0x00 >>>>>> #define AUTONEG_ENABLE 0x01 >>>>>> +/* Mode MDI or MDI-X */ >>>>>> +#define MDI_INVALID 0x00 >>>>>> +#define MDI 0x01 >>>>>> +#define MDI_X 0x02 >>>>>> >>>>>> >>>>>> >>>>> [...] >>>>> >>>>> Similarly, please add the prefix "ETH_TP_" to these. >>>>> >>>>> >>>>> >>>> Sure. >>>> >>>> >>> Chaitanya, I have made the requested changes to the patch in my tree. >>> >>> >>> >> Thanks. I am very new to procedure of submitting kernel patches. Just want >> to make sure if this means that I not need to send another patch to netdev ? >> >> Thanks, >> Chaitanya >> -- >> > > When there are changes requested on a patch, yes the patch needs to be > re-submitted to netdev. Since I will be pushing this patch along with > other patches for Intel drivers to Dave once testing has been > completed, there is no need for you to re-submit this patch. I have > already sucked in the changes that Ben has requested into the patch > that is in my tree. > > Thanks for the clarification. Chaitanya -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/e1000e/ethtool.c b/drivers/net/e1000e/ethtool.c index 4d25ede..b6aea6b 100644 --- a/drivers/net/e1000e/ethtool.c +++ b/drivers/net/e1000e/ethtool.c @@ -167,6 +167,14 @@ static int e1000_get_settings(struct net_device *netdev, ecmd->autoneg = ((hw->phy.media_type == e1000_media_type_fiber) || hw->mac.autoneg) ? AUTONEG_ENABLE : AUTONEG_DISABLE; + + /* MDI-X => 2; MDI =>1; Invalid =>0 */ + if ((hw->phy.media_type == e1000_media_type_copper) && + !hw->mac.get_link_status) + ecmd->is_mdix = hw->phy.is_mdix ? MDI_X : MDI; + else + ecmd->is_mdix = MDI_INVALID; + return 0; } diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 380b042..b553bdb 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -30,7 +30,8 @@ struct ethtool_cmd { __u32 maxtxpkt; /* Tx pkts before generating tx int */ __u32 maxrxpkt; /* Rx pkts before generating rx int */ __u16 speed_hi; - __u16 reserved2; + __u8 is_mdix; + __u8 reserved2; __u32 lp_advertising; /* Features the link partner advertises */ __u32 reserved[2]; }; @@ -632,6 +633,11 @@ struct ethtool_ops { #define AUTONEG_DISABLE 0x00 #define AUTONEG_ENABLE 0x01 +/* Mode MDI or MDI-X */ +#define MDI_INVALID 0x00 +#define MDI 0x01 +#define MDI_X 0x02 + /* Wake-On-Lan options. */ #define WAKE_PHY (1 << 0) #define WAKE_UCAST (1 << 1)