Hello community,

here is the log from the commit of package ethtool for openSUSE:Factory checked 
in at 2017-04-17 10:20:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ethtool (Old)
 and      /work/SRC/openSUSE:Factory/.ethtool.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ethtool"

Mon Apr 17 10:20:43 2017 rev:46 rq:483738 version:4.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/ethtool/ethtool.changes  2016-10-22 
13:01:34.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.ethtool.new/ethtool.changes     2017-04-17 
10:20:46.121310884 +0200
@@ -1,0 +2,9 @@
+Thu Mar 30 05:57:23 UTC 2017 - mkube...@suse.cz
+
+- Update to new upstream release 4.10
+  * Fix: Fix the "advertise" parameter logic.
+  * Feature: Implement ETHTOOL_PHY_GTUNABLE/ETHTOOL_PHY_STUNABLE and PHY 
downshift
+  * Feature: add register dump support for fjes driver (-d option)
+- add keyring with John Linville's key for tarball verification
+
+-------------------------------------------------------------------

Old:
----
  ethtool-4.8.tar.sign
  ethtool-4.8.tar.xz

New:
----
  ethtool-4.10.tar.sign
  ethtool-4.10.tar.xz
  ethtool.keyring

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ethtool.spec ++++++
--- /var/tmp/diff_new_pack.voj60v/_old  2017-04-17 10:20:46.885202699 +0200
+++ /var/tmp/diff_new_pack.voj60v/_new  2017-04-17 10:20:46.889202132 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package ethtool
 #
-# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           ethtool
-Version:        4.8
+Version:        4.10
 Release:        0
 Summary:        Examine and Tune Ethernet-Based Network Interfaces
 License:        GPL-2.0
@@ -27,6 +27,7 @@
 #Git-Clone:    git://git.kernel.org/pub/scm/network/ethtool/ethtool
 Source:         
http://kernel.org/pub/software/network/ethtool/%{name}-%{version}.tar.xz
 Source2:        
http://kernel.org/pub/software/network/ethtool/%{name}-%{version}.tar.sign
+Source3:        %{name}.keyring
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  xz
 

++++++ ethtool-4.8.tar.xz -> ethtool-4.10.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/Makefile.am new/ethtool-4.10/Makefile.am
--- old/ethtool-4.8/Makefile.am 2016-08-24 21:47:26.000000000 +0200
+++ new/ethtool-4.10/Makefile.am        2016-11-23 15:52:43.000000000 +0100
@@ -14,7 +14,7 @@
                  pcnet32.c realtek.c tg3.c marvell.c vioc.c    \
                  smsc911x.c at76c50x-usb.c sfc.c stmmac.c      \
                  sff-common.c sff-common.h sfpid.c sfpdiag.c   \
-                 ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h
+                 ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c
 endif
 
 TESTS = test-cmdline test-features
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/Makefile.in new/ethtool-4.10/Makefile.in
--- old/ethtool-4.8/Makefile.in 2016-10-04 16:53:05.000000000 +0200
+++ new/ethtool-4.10/Makefile.in        2017-03-24 18:53:18.000000000 +0100
@@ -93,7 +93,7 @@
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@                pcnet32.c realtek.c tg3.c 
marvell.c vioc.c    \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@                smsc911x.c at76c50x-usb.c 
sfc.c stmmac.c      \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@                sff-common.c sff-common.h 
sfpid.c sfpdiag.c   \
-@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@                ixgbevf.c tse.c vmxnet3.c 
qsfp.c qsfp.h
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@                ixgbevf.c tse.c vmxnet3.c 
qsfp.c qsfp.h fjes.c
 
 TESTS = test-cmdline$(EXEEXT) test-features$(EXEEXT)
 check_PROGRAMS = test-cmdline$(EXEEXT) test-features$(EXEEXT)
@@ -118,7 +118,7 @@
        natsemi.c pcnet32.c realtek.c tg3.c marvell.c vioc.c \
        smsc911x.c at76c50x-usb.c sfc.c stmmac.c sff-common.c \
        sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c vmxnet3.c \
-       qsfp.c qsfp.h
+       qsfp.c qsfp.h fjes.c
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_1 = amd8111e.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      de2104x.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      e100.$(OBJEXT) \
@@ -145,7 +145,7 @@
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      ixgbevf.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      tse.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      vmxnet3.$(OBJEXT) \
-@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      qsfp.$(OBJEXT)
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      qsfp.$(OBJEXT) fjes.$(OBJEXT)
 am_ethtool_OBJECTS = ethtool.$(OBJEXT) rxclass.$(OBJEXT) \
        $(am__objects_1)
 ethtool_OBJECTS = $(am_ethtool_OBJECTS)
@@ -157,7 +157,7 @@
        ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c realtek.c tg3.c \
        marvell.c vioc.c smsc911x.c at76c50x-usb.c sfc.c stmmac.c \
        sff-common.c sff-common.h sfpid.c sfpdiag.c ixgbevf.c tse.c \
-       vmxnet3.c qsfp.c qsfp.h
+       vmxnet3.c qsfp.c qsfp.h fjes.c
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_2 = 
test_cmdline-amd8111e.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-de2104x.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-e100.$(OBJEXT) \
@@ -184,7 +184,8 @@
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-ixgbevf.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-tse.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-vmxnet3.$(OBJEXT) \
-@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-qsfp.$(OBJEXT)
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-qsfp.$(OBJEXT) \
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_cmdline-fjes.$(OBJEXT)
 am__objects_3 = test_cmdline-ethtool.$(OBJEXT) \
        test_cmdline-rxclass.$(OBJEXT) $(am__objects_2)
 am_test_cmdline_OBJECTS = test_cmdline-test-cmdline.$(OBJEXT) \
@@ -200,7 +201,7 @@
        fec_8xx.c ibm_emac.c ixgb.c ixgbe.c natsemi.c pcnet32.c \
        realtek.c tg3.c marvell.c vioc.c smsc911x.c at76c50x-usb.c \
        sfc.c stmmac.c sff-common.c sff-common.h sfpid.c sfpdiag.c \
-       ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h
+       ixgbevf.c tse.c vmxnet3.c qsfp.c qsfp.h fjes.c
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@am__objects_4 = 
test_features-amd8111e.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-de2104x.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-e100.$(OBJEXT) \
@@ -227,7 +228,8 @@
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-ixgbevf.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-tse.$(OBJEXT) \
 @ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-vmxnet3.$(OBJEXT) \
-@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-qsfp.$(OBJEXT)
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-qsfp.$(OBJEXT) \
+@ETHTOOL_ENABLE_PRETTY_DUMP_TRUE@      test_features-fjes.$(OBJEXT)
 am__objects_5 = test_features-ethtool.$(OBJEXT) \
        test_features-rxclass.$(OBJEXT) $(am__objects_4)
 am_test_features_OBJECTS = test_features-test-features.$(OBJEXT) \
@@ -755,6 +757,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/et131x.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ethtool.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fec_8xx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fjes.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ibm_emac.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/igb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ixgb.Po@am__quote@
@@ -780,6 +783,7 @@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-et131x.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-ethtool.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-fec_8xx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-fjes.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-ibm_emac.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/test_cmdline-igb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_cmdline-ixgb.Po@am__quote@
@@ -811,6 +815,7 @@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-et131x.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-ethtool.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-fec_8xx.Po@am__quote@
+@AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-fjes.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-ibm_emac.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-igb.Po@am__quote@
 @AMDEP_TRUE@@am__include@ 
@am__quote@./$(DEPDIR)/test_features-ixgb.Po@am__quote@
@@ -1287,6 +1292,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o 
test_cmdline-qsfp.obj `if test -f 'qsfp.c'; then $(CYGPATH_W) 'qsfp.c'; else 
$(CYGPATH_W) '$(srcdir)/qsfp.c'; fi`
 
+test_cmdline-fjes.o: fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -MT 
test_cmdline-fjes.o -MD -MP -MF $(DEPDIR)/test_cmdline-fjes.Tpo -c -o 
test_cmdline-fjes.o `test -f 'fjes.c' || echo '$(srcdir)/'`fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_cmdline-fjes.Tpo 
$(DEPDIR)/test_cmdline-fjes.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fjes.c' 
object='test_cmdline-fjes.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o 
test_cmdline-fjes.o `test -f 'fjes.c' || echo '$(srcdir)/'`fjes.c
+
+test_cmdline-fjes.obj: fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -MT 
test_cmdline-fjes.obj -MD -MP -MF $(DEPDIR)/test_cmdline-fjes.Tpo -c -o 
test_cmdline-fjes.obj `if test -f 'fjes.c'; then $(CYGPATH_W) 'fjes.c'; else 
$(CYGPATH_W) '$(srcdir)/fjes.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_cmdline-fjes.Tpo 
$(DEPDIR)/test_cmdline-fjes.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fjes.c' 
object='test_cmdline-fjes.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_cmdline_CFLAGS) $(CFLAGS) -c -o 
test_cmdline-fjes.obj `if test -f 'fjes.c'; then $(CYGPATH_W) 'fjes.c'; else 
$(CYGPATH_W) '$(srcdir)/fjes.c'; fi`
+
 test_features-test-features.o: test-features.c
 @am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT 
test_features-test-features.o -MD -MP -MF 
$(DEPDIR)/test_features-test-features.Tpo -c -o test_features-test-features.o 
`test -f 'test-features.c' || echo '$(srcdir)/'`test-features.c
 @am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) 
$(DEPDIR)/test_features-test-features.Tpo 
$(DEPDIR)/test_features-test-features.Po
@@ -1720,6 +1739,20 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='qsfp.c' 
object='test_features-qsfp.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o 
test_features-qsfp.obj `if test -f 'qsfp.c'; then $(CYGPATH_W) 'qsfp.c'; else 
$(CYGPATH_W) '$(srcdir)/qsfp.c'; fi`
+
+test_features-fjes.o: fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT 
test_features-fjes.o -MD -MP -MF $(DEPDIR)/test_features-fjes.Tpo -c -o 
test_features-fjes.o `test -f 'fjes.c' || echo '$(srcdir)/'`fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_features-fjes.Tpo 
$(DEPDIR)/test_features-fjes.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fjes.c' 
object='test_features-fjes.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o 
test_features-fjes.o `test -f 'fjes.c' || echo '$(srcdir)/'`fjes.c
+
+test_features-fjes.obj: fjes.c
+@am__fastdepCC_TRUE@   $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) 
$(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -MT 
test_features-fjes.obj -MD -MP -MF $(DEPDIR)/test_features-fjes.Tpo -c -o 
test_features-fjes.obj `if test -f 'fjes.c'; then $(CYGPATH_W) 'fjes.c'; else 
$(CYGPATH_W) '$(srcdir)/fjes.c'; fi`
+@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/test_features-fjes.Tpo 
$(DEPDIR)/test_features-fjes.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='fjes.c' 
object='test_features-fjes.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) 
$(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) 
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(test_features_CFLAGS) $(CFLAGS) -c -o 
test_features-fjes.obj `if test -f 'fjes.c'; then $(CYGPATH_W) 'fjes.c'; else 
$(CYGPATH_W) '$(srcdir)/fjes.c'; fi`
 install-man8: $(man_MANS)
        @$(NORMAL_INSTALL)
        @list1=''; \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/NEWS new/ethtool-4.10/NEWS
--- old/ethtool-4.8/NEWS        2016-10-04 16:02:53.000000000 +0200
+++ new/ethtool-4.10/NEWS       2017-03-24 18:52:01.000000000 +0100
@@ -1,3 +1,10 @@
+Version 4.10 - March 24, 2016
+
+       * Fix: Fix the "advertise" parameter logic.
+       * Feature: Implement ETHTOOL_PHY_GTUNABLE/ETHTOOL_PHY_STUNABLE and PHY 
downshift
+       * Feature: add register dump support for fjes driver (-d option)
+
+
 Version 4.8 - October 3, 2016
 
        * Feature: QSFP Plus/QSFP28 Diagnostics Information Support
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/configure new/ethtool-4.10/configure
--- old/ethtool-4.8/configure   2016-10-04 16:53:05.000000000 +0200
+++ new/ethtool-4.10/configure  2017-03-24 18:53:18.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for ethtool 4.8.
+# Generated by GNU Autoconf 2.69 for ethtool 4.10.
 #
 # Report bugs to <net...@vger.kernel.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='ethtool'
 PACKAGE_TARNAME='ethtool'
-PACKAGE_VERSION='4.8'
-PACKAGE_STRING='ethtool 4.8'
+PACKAGE_VERSION='4.10'
+PACKAGE_STRING='ethtool 4.10'
 PACKAGE_BUGREPORT='net...@vger.kernel.org'
 PACKAGE_URL=''
 
@@ -1237,7 +1237,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures ethtool 4.8 to adapt to many kinds of systems.
+\`configure' configures ethtool 4.10 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1303,7 +1303,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of ethtool 4.8:";;
+     short | recursive ) echo "Configuration of ethtool 4.10:";;
    esac
   cat <<\_ACEOF
 
@@ -1398,7 +1398,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-ethtool configure 4.8
+ethtool configure 4.10
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1645,7 +1645,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by ethtool $as_me 4.8, which was
+It was created by ethtool $as_me 4.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2510,7 +2510,7 @@
 
 # Define the identity of the package.
  PACKAGE='ethtool'
- VERSION='4.8'
+ VERSION='4.10'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4695,7 +4695,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by ethtool $as_me 4.8, which was
+This file was extended by ethtool $as_me 4.10, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -4761,7 +4761,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-ethtool config.status 4.8
+ethtool config.status 4.10
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/configure.ac 
new/ethtool-4.10/configure.ac
--- old/ethtool-4.8/configure.ac        2016-10-04 16:02:53.000000000 +0200
+++ new/ethtool-4.10/configure.ac       2017-03-24 18:48:14.000000000 +0100
@@ -1,5 +1,5 @@
 dnl Process this file with autoconf to produce a configure script.
-AC_INIT(ethtool, 4.8, net...@vger.kernel.org)
+AC_INIT(ethtool, 4.10, net...@vger.kernel.org)
 AC_PREREQ(2.52)
 AC_CONFIG_SRCDIR([ethtool.c])
 AM_INIT_AUTOMAKE([gnu])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/ethtool-copy.h 
new/ethtool-4.10/ethtool-copy.h
--- old/ethtool-4.8/ethtool-copy.h      2016-09-06 22:13:07.000000000 +0200
+++ new/ethtool-4.10/ethtool-copy.h     2016-12-02 21:10:48.000000000 +0100
@@ -117,8 +117,7 @@
 static __inline__ void ethtool_cmd_speed_set(struct ethtool_cmd *ep,
                                         __u32 speed)
 {
-
-       ep->speed = (__u16)speed;
+       ep->speed = (__u16)(speed & 0xFFFF);
        ep->speed_hi = (__u16)(speed >> 16);
 }
 
@@ -247,6 +246,19 @@
        void    *data[0];
 };
 
+#define DOWNSHIFT_DEV_DEFAULT_COUNT    0xff
+#define DOWNSHIFT_DEV_DISABLE          0
+
+enum phy_tunable_id {
+       ETHTOOL_PHY_ID_UNSPEC,
+       ETHTOOL_PHY_DOWNSHIFT,
+       /*
+        * Add your fresh new phy tunable attribute above and remember to update
+        * phy_tunable_strings[] in net/core/ethtool.c
+        */
+       __ETHTOOL_PHY_TUNABLE_COUNT,
+};
+
 /**
  * struct ethtool_regs - hardware register dump
  * @cmd: Command number = %ETHTOOL_GREGS
@@ -547,6 +559,7 @@
  * @ETH_SS_FEATURES: Device feature names
  * @ETH_SS_RSS_HASH_FUNCS: RSS hush function names
  * @ETH_SS_PHY_STATS: Statistic names, for use with %ETHTOOL_GPHYSTATS
+ * @ETH_SS_PHY_TUNABLES: PHY tunable names
  */
 enum ethtool_stringset {
        ETH_SS_TEST             = 0,
@@ -557,6 +570,7 @@
        ETH_SS_RSS_HASH_FUNCS,
        ETH_SS_TUNABLES,
        ETH_SS_PHY_STATS,
+       ETH_SS_PHY_TUNABLES,
 };
 
 /**
@@ -1312,7 +1326,8 @@
 
 #define ETHTOOL_GLINKSETTINGS  0x0000004c /* Get ethtool_link_settings */
 #define ETHTOOL_SLINKSETTINGS  0x0000004d /* Set ethtool_link_settings */
-
+#define ETHTOOL_PHY_GTUNABLE   0x0000004e /* Get PHY tunable configuration */
+#define ETHTOOL_PHY_STUNABLE   0x0000004f /* Set PHY tunable configuration */
 
 /* compatibility with older code */
 #define SPARC_ETH_GSET         ETHTOOL_GSET
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/ethtool.8 new/ethtool-4.10/ethtool.8
--- old/ethtool-4.8/ethtool.8   2016-10-04 16:53:06.000000000 +0200
+++ new/ethtool-4.10/ethtool.8  2017-03-24 18:53:19.000000000 +0100
@@ -113,7 +113,7 @@
 .  hy \\n(HY
 ..
 .
-.TH ETHTOOL 8 "October 2016" "Ethtool version 4.8"
+.TH ETHTOOL 8 "March 2017" "Ethtool version 4.10"
 .SH NAME
 ethtool \- query or control network driver and hardware settings
 .
@@ -340,6 +340,18 @@
 .B2 tx-lpi on off
 .BN tx-timer
 .BN advertise
+.HP
+.B ethtool \-\-set\-phy\-tunable
+.I devname
+.RB [
+.B downshift
+.A1 on off
+.BN count
+.RB ]
+.HP
+.B ethtool \-\-get\-phy\-tunable
+.I devname
+.RB [ downshift ]
 .
 .\" Adjust lines (i.e. full justification) and hyphenate.
 .ad
@@ -947,6 +959,34 @@
 Sets the amount of time the device should stay in idle mode prior to asserting
 its Tx LPI (in microseconds). This has meaning only when Tx LPI is enabled.
 .RE
+.TP
+.B \-\-set\-phy\-tunable
+Sets the PHY tunable parameters.
+.RS 4
+.TP
+.A2 downshift on off
+Specifies whether downshift should be enabled
+.TS
+nokeep;
+lB     l.
+.BI count \ N
+Sets the PHY downshift re-tries count.
+.TE
+.PD
+.RE
+.TP
+.B \-\-get\-phy\-tunable
+Gets the PHY tunable parameters.
+.RS 4
+.TP
+.B downshift
+For operation in cabling environments that are incompatible with 1000BASE-T,
+PHY device provides an automatic link speed downshift operation.
+Link speed downshift after N failed 1000BASE-T auto-negotiation attempts.
+Downshift is useful where cable does not have the 4 pairs instance.
+
+Gets the PHY downshift count/status.
+.RE
 .SH BUGS
 Not supported (in part or whole) on all network drivers.
 .SH AUTHOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/ethtool.8.in 
new/ethtool-4.10/ethtool.8.in
--- old/ethtool-4.8/ethtool.8.in        2016-10-04 16:02:53.000000000 +0200
+++ new/ethtool-4.10/ethtool.8.in       2017-03-24 18:49:24.000000000 +0100
@@ -113,7 +113,7 @@
 .  hy \\n(HY
 ..
 .
-.TH ETHTOOL 8 "October 2016" "Ethtool version @VERSION@"
+.TH ETHTOOL 8 "March 2017" "Ethtool version @VERSION@"
 .SH NAME
 ethtool \- query or control network driver and hardware settings
 .
@@ -340,6 +340,18 @@
 .B2 tx-lpi on off
 .BN tx-timer
 .BN advertise
+.HP
+.B ethtool \-\-set\-phy\-tunable
+.I devname
+.RB [
+.B downshift
+.A1 on off
+.BN count
+.RB ]
+.HP
+.B ethtool \-\-get\-phy\-tunable
+.I devname
+.RB [ downshift ]
 .
 .\" Adjust lines (i.e. full justification) and hyphenate.
 .ad
@@ -947,6 +959,34 @@
 Sets the amount of time the device should stay in idle mode prior to asserting
 its Tx LPI (in microseconds). This has meaning only when Tx LPI is enabled.
 .RE
+.TP
+.B \-\-set\-phy\-tunable
+Sets the PHY tunable parameters.
+.RS 4
+.TP
+.A2 downshift on off
+Specifies whether downshift should be enabled
+.TS
+nokeep;
+lB     l.
+.BI count \ N
+Sets the PHY downshift re-tries count.
+.TE
+.PD
+.RE
+.TP
+.B \-\-get\-phy\-tunable
+Gets the PHY tunable parameters.
+.RS 4
+.TP
+.B downshift
+For operation in cabling environments that are incompatible with 1000BASE-T,
+PHY device provides an automatic link speed downshift operation.
+Link speed downshift after N failed 1000BASE-T auto-negotiation attempts.
+Downshift is useful where cable does not have the 4 pairs instance.
+
+Gets the PHY downshift count/status.
+.RE
 .SH BUGS
 Not supported (in part or whole) on all network drivers.
 .SH AUTHOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/ethtool.c new/ethtool-4.10/ethtool.c
--- old/ethtool-4.8/ethtool.c   2016-10-04 16:02:53.000000000 +0200
+++ new/ethtool-4.10/ethtool.c  2016-12-02 21:10:48.000000000 +0100
@@ -1136,6 +1136,7 @@
        { "et131x", et131x_dump_regs },
        { "altera_tse", altera_tse_dump_regs },
        { "vmxnet3", vmxnet3_dump_regs },
+       { "fjes", fjes_dump_regs },
 #endif
 };
 
@@ -2971,7 +2972,8 @@
                                fprintf(stderr, "\n");
                        }
                        if (autoneg_wanted == AUTONEG_ENABLE &&
-                           advertising_wanted == NULL) {
+                           advertising_wanted == NULL &&
+                           full_advertising_wanted == NULL) {
                                unsigned int i;
 
                                /* Auto negotiation enabled, but with
@@ -4520,6 +4522,146 @@
        return 0;
 }
 
+static int do_get_phy_tunable(struct cmd_context *ctx)
+{
+       int argc = ctx->argc;
+       char **argp = ctx->argp;
+       int err, i;
+       u8 downshift_changed = 0;
+
+       if (argc < 1)
+               exit_bad_args();
+       for (i = 0; i < argc; i++) {
+               if (!strcmp(argp[i], "downshift")) {
+                       downshift_changed = 1;
+                       i += 1;
+                       if (i < argc)
+                               exit_bad_args();
+               } else  {
+                       exit_bad_args();
+               }
+       }
+
+       if (downshift_changed) {
+               struct ethtool_tunable ds;
+               u8 count = 0;
+
+               ds.cmd = ETHTOOL_PHY_GTUNABLE;
+               ds.id = ETHTOOL_PHY_DOWNSHIFT;
+               ds.type_id = ETHTOOL_TUNABLE_U8;
+               ds.len = 1;
+               ds.data[0] = &count;
+               err = send_ioctl(ctx, &ds);
+               if (err < 0) {
+                       perror("Cannot Get PHY downshift count");
+                       return 87;
+               }
+               count = *((u8 *)&ds.data[0]);
+               if (count)
+                       fprintf(stdout, "Downshift count: %d\n", count);
+               else
+                       fprintf(stdout, "Downshift disabled\n");
+       }
+
+       return err;
+}
+
+static int parse_named_bool(struct cmd_context *ctx, const char *name, u8 *on)
+{
+       if (ctx->argc < 2)
+               return 0;
+
+       if (strcmp(*ctx->argp, name))
+               return 0;
+
+       if (!strcmp(*(ctx->argp + 1), "on")) {
+               *on = 1;
+       } else if (!strcmp(*(ctx->argp + 1), "off")) {
+               *on = 0;
+       } else {
+               fprintf(stderr, "Invalid boolean\n");
+               exit_bad_args();
+       }
+
+       ctx->argc -= 2;
+       ctx->argp += 2;
+
+       return 1;
+}
+
+static int parse_named_u8(struct cmd_context *ctx, const char *name, u8 *val)
+{
+       if (ctx->argc < 2)
+               return 0;
+
+       if (strcmp(*ctx->argp, name))
+               return 0;
+
+       *val = get_uint_range(*(ctx->argp + 1), 0, 0xff);
+
+       ctx->argc -= 2;
+       ctx->argp += 2;
+
+       return 1;
+}
+
+static int do_set_phy_tunable(struct cmd_context *ctx)
+{
+       int err = 0;
+       u8 ds_cnt = DOWNSHIFT_DEV_DEFAULT_COUNT;
+       u8 ds_changed = 0, ds_has_cnt = 0, ds_enable = 0;
+
+       if (ctx->argc == 0)
+               exit_bad_args();
+
+       /* Parse arguments */
+       while (ctx->argc) {
+               if (parse_named_bool(ctx, "downshift", &ds_enable)) {
+                       ds_changed = 1;
+                       ds_has_cnt = parse_named_u8(ctx, "count", &ds_cnt);
+               } else {
+                       exit_bad_args();
+               }
+       }
+
+       /* Validate parameters */
+       if (ds_changed) {
+               if (!ds_enable && ds_has_cnt) {
+                       fprintf(stderr, "'count' may not be set when downshift "
+                                       "is off.\n");
+                       exit_bad_args();
+               }
+
+               if (ds_enable && ds_has_cnt && ds_cnt == 0) {
+                       fprintf(stderr, "'count' may not be zero.\n");
+                       exit_bad_args();
+               }
+
+               if (!ds_enable)
+                       ds_cnt = DOWNSHIFT_DEV_DISABLE;
+       }
+
+       /* Do it */
+       if (ds_changed) {
+               struct ethtool_tunable ds;
+               u8 count;
+
+               ds.cmd = ETHTOOL_PHY_STUNABLE;
+               ds.id = ETHTOOL_PHY_DOWNSHIFT;
+               ds.type_id = ETHTOOL_TUNABLE_U8;
+               ds.len = 1;
+               ds.data[0] = &count;
+               *((u8 *)&ds.data[0]) = ds_cnt;
+               err = send_ioctl(ctx, &ds);
+               if (err < 0) {
+                       perror("Cannot Set PHY downshift count");
+                       err = 87;
+               }
+       }
+
+       return err;
+}
+
 #ifndef TEST_ETHTOOL
 int send_ioctl(struct cmd_context *ctx, void *cmd)
 {
@@ -4681,6 +4823,10 @@
          "             [ advertise %x ]\n"
          "             [ tx-lpi on|off ]\n"
          "             [ tx-timer %d ]\n"},
+       { "--set-phy-tunable", 1, do_set_phy_tunable, "Set PHY tunable",
+         "             [ downshift on|off [count N] ]\n"},
+       { "--get-phy-tunable", 1, do_get_phy_tunable, "Get PHY tunable",
+         "             [ downshift ]\n"},
        { "-h|--help", 0, show_usage, "Show this help" },
        { "--version", 0, do_version, "Show version number" },
        {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/ethtool.spec 
new/ethtool-4.10/ethtool.spec
--- old/ethtool-4.8/ethtool.spec        2016-10-04 16:53:07.000000000 +0200
+++ new/ethtool-4.10/ethtool.spec       2017-03-24 18:53:19.000000000 +0100
@@ -1,5 +1,5 @@
 Name           : ethtool
-Version                : 4.8
+Version                : 4.10
 Release                : 1
 Group          : Utilities
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/fjes.c new/ethtool-4.10/fjes.c
--- old/ethtool-4.8/fjes.c      1970-01-01 01:00:00.000000000 +0100
+++ new/ethtool-4.10/fjes.c     2016-11-23 15:52:43.000000000 +0100
@@ -0,0 +1,89 @@
+/* Copyright (c) 2016 FUJITSU LIMITED */
+#include <stdio.h>
+#include "internal.h"
+
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs)
+{
+       u32 *regs_buff = (u32 *)regs->data;
+
+       if (regs->version != 1)
+               return -1;
+
+       /* Information registers */
+       fprintf(stdout,
+               "0x0000: OWNER_EPID    (Owner EPID)                       
0x%08X\n",
+               regs_buff[0]);
+
+       fprintf(stdout,
+               "0x0004: MAX_EP        (Maximum EP)                       
0x%08X\n",
+               regs_buff[1]);
+
+       /* Device Control registers */
+       fprintf(stdout,
+               "0x0010: DCTL          (Device Control)                   
0x%08X\n",
+               regs_buff[4]);
+
+       /* Command Control registers */
+       fprintf(stdout,
+               "0x0020: CR            (Command request)                  
0x%08X\n",
+               regs_buff[8]);
+
+       fprintf(stdout,
+               "0x0024: CS            (Command status)                   
0x%08X\n",
+               regs_buff[9]);
+
+       fprintf(stdout,
+               "0x0028: SHSTSAL       (Share status address Low)         
0x%08X\n",
+               regs_buff[10]);
+
+       fprintf(stdout,
+               "0x002C: SHSTSAH       (Share status address High)        
0x%08X\n",
+               regs_buff[11]);
+
+       fprintf(stdout,
+               "0x0034: REQBL         (Request Buffer length)            
0x%08X\n",
+               regs_buff[13]);
+
+       fprintf(stdout,
+               "0x0038: REQBAL        (Request Buffer Address Low)       
0x%08X\n",
+               regs_buff[14]);
+
+       fprintf(stdout,
+               "0x003C: REQBAH        (Request Buffer Address High)      
0x%08X\n",
+               regs_buff[15]);
+
+       fprintf(stdout,
+               "0x0044: RESPBL        (Response Buffer Length)           
0x%08X\n",
+               regs_buff[17]);
+
+       fprintf(stdout,
+               "0x0048: RESPBAL       (Response Buffer Address Low)      
0x%08X\n",
+               regs_buff[18]);
+
+       fprintf(stdout,
+               "0x004C: RESPBAH       (Response Buffer Address High)     
0x%08X\n",
+               regs_buff[19]);
+
+       /* Interrupt Control registers */
+       fprintf(stdout,
+               "0x0080: IS            (Interrupt status)                 
0x%08X\n",
+               regs_buff[32]);
+
+       fprintf(stdout,
+               "0x0084: IMS           (Interrupt mask set)               
0x%08X\n",
+               regs_buff[33]);
+
+       fprintf(stdout,
+               "0x0088: IMC           (Interrupt mask clear)             
0x%08X\n",
+               regs_buff[34]);
+
+       fprintf(stdout,
+               "0x008C: IG            (Interrupt generator)              
0x%08X\n",
+               regs_buff[35]);
+
+       fprintf(stdout,
+               "0x0090: ICTL          (Interrupt control)                
0x%08X\n",
+               regs_buff[36]);
+
+       return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ethtool-4.8/internal.h new/ethtool-4.10/internal.h
--- old/ethtool-4.8/internal.h  2016-08-24 21:47:26.000000000 +0200
+++ new/ethtool-4.10/internal.h 2016-11-23 15:52:43.000000000 +0100
@@ -348,4 +348,6 @@
 /* QSFP Optics diagnostics */
 void sff8636_show_all(const __u8 *id, __u32 eeprom_len);
 
+/* FUJITSU Extended Socket network device */
+int fjes_dump_regs(struct ethtool_drvinfo *info, struct ethtool_regs *regs);
 #endif /* ETHTOOL_INTERNAL_H__ */


Reply via email to