Package: discover-data
Version: 2.2005.02.13-1

The name of the usb HCD kerne; modules changed between kernel versions 2.4 and 2.6.

This means that linux/module/name needs to return different values, based on the kernel version, for devices requiring these modules.

In pci-devices.xml this can be represented by a version attribute on data elements.

For most devices this has indeed been done. Discover retruns the correct module name, depending on kernel version, if it is supplied to discover supplying the output of "uname -r" as the value of the --data-version option to discover, and this mechanism is used in, for example, discover-modprobe.

  module_details=$(${discover} --data-path=linux/module/name \
  --data-path=linux/module/options --format="%s %s" \
  --data-version=`uname -r` ${types} | grep -E -v '^ *$')

This is because the corresponding device tag in pci-devices.xml contains a snippet like the following.

    <data class='linux'>
      <data version='[2.6,inf)' class='module'>
        <data class='name'>uhci-hcd</data>
      </data>
      <data version='[2.2,2.6)' class='module'>
        <data class='name'>usb-uhci</data>
      </data>
      <data class='last-updated'>2004-04-08</data>
      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
    </data>

However, for a few devices this versioning has not been applied, and discover returns the wrong answer for 2.6 kernels. That is because their device element contains only the following.

    <data class='linux'>
      <data class='module'>
        <data class='name'>usb-uhci</data>
      </data>
      <data class='last-updated'>2004-08-31</data>
      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
    </data>

With such an entry without versioning, discover will return the correct value for 2.4 kernels but not for 2.6.

It seems to me that the correct fix would be to replace entries which look like the latter snippet with one which looks like the former. I cannot envisage likely situations where this will cause any problems to existing setups, and will cause these devices to function correctly with discover on 2.6 kernels.

I have encountered this problem, in practice, on a modern machine with such a device running under 2.6. Discover failed, I applied a patch, as described above, and it now works.

I attach the patch for your consideration.

Dan.
--- /lib/discover/pci-device.xml        2005-02-13 18:30:32.000000000 +0000
+++ /root/initrd-nfs/lib/discover/pci-device.xml        2006-02-13 
16:29:04.000000000 +0000
@@ -19054,11 +19054,14 @@
   </device>
   <device model='2482' vendor='8086' model_name='82801CA/CAM USB (Hub #1)'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-08-31</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='2482' model_name='82801CA/CAM USB (Hub #1)' 
subsystem_name='ThinkPad A/T/X Series' subvendor='1014' vendor='8086' 
subdevice='0220'/>
@@ -19074,11 +19077,14 @@
   <device model='2483' model_name='82801CA/CAM SMBus Controller' 
subsystem_name='vpr Matrix 170B4' subvendor='8086' vendor='8086' 
subdevice='1958'/>
   <device model='2484' vendor='8086' model_name='82801CA/CAM USB (Hub #2)'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-08-31</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='2484' model_name='82801CA/CAM USB (Hub #2)' 
subsystem_name='ThinkPad A/T/X Series' subvendor='1014' vendor='8086' 
subdevice='0220'/>
@@ -19123,11 +19129,14 @@
   <device model='2486' model_name="82801CA/CAM AC'97 Modem Controller" 
subsystem_name='MD56ORD V.92 MDC Modem' subvendor='14f1' vendor='8086' 
subdevice='5421'/>
   <device model='2487' vendor='8086' model_name='82801CA/CAM USB (Hub #3)'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-08-31</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='2487' model_name='82801CA/CAM USB (Hub #3)' 
subsystem_name='ThinkPad A/T/X Series' subvendor='1014' vendor='8086' 
subdevice='0220'/>
@@ -19180,9 +19189,14 @@
   <device model='24c1' vendor='8086' model_name='82801DBL (ICH4-L) IDE 
Controller'/>
   <device model='24c2' vendor='8086' model_name='82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24c2' model_name='82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB 
UHCI Controller #1' subsystem_name='NetVista A30p' subvendor='1014' 
vendor='8086' subdevice='0267'/>
@@ -19203,9 +19217,14 @@
   <device model='24c3' model_name='82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) SMBus 
Controller' subsystem_name='Cx9 / Vx9 mainboard' subvendor='4c53' vendor='8086' 
subdevice='1090'/>
   <device model='24c4' vendor='8086' model_name='82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24c4' model_name='82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB 
UHCI Controller #2' subsystem_name='NetVista A30p' subvendor='1014' 
vendor='8086' subdevice='0267'/>
@@ -19240,9 +19259,14 @@
   <device model='24c6' model_name="82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 
Modem Controller" subsystem_name='MIM2000' subvendor='1071' vendor='8086' 
subdevice='8160'/>
   <device model='24c7' vendor='8086' model_name='82801DB/DBL/DBM 
(ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24c7' model_name='82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB 
UHCI Controller #3' subsystem_name='NetVista A30p' subvendor='1014' 
vendor='8086' subdevice='0267'/>
@@ -19321,9 +19345,14 @@
   <device model='24d1' model_name='82801EB (ICH5) SATA Controller' 
subsystem_name='D865PERL mainboard' subvendor='8086' vendor='8086' 
subdevice='524c'/>
   <device model='24d2' vendor='8086' model_name='82801EB/ER (ICH5/ICH5R) USB 
UHCI Controller #1'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24d2' model_name='82801EB/ER (ICH5/ICH5R) USB UHCI Controller 
#1' subsystem_name='d530 CMT (DG746A)' subvendor='103c' vendor='8086' 
subdevice='12bc'/>
@@ -19340,9 +19369,14 @@
   <device model='24d3' model_name='82801EB/ER (ICH5/ICH5R) SMBus Controller' 
subsystem_name='D865PERL mainboard' subvendor='8086' vendor='8086' 
subdevice='524c'/>
   <device model='24d4' vendor='8086' model_name='82801EB/ER (ICH5/ICH5R) USB 
UHCI Controller #2'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24d4' model_name='82801EB/ER (ICH5/ICH5R) USB UHCI Controller 
#2' subsystem_name='d530 CMT (DG746A)' subvendor='103c' vendor='8086' 
subdevice='12bc'/>
@@ -19371,9 +19405,14 @@
   <device model='24d6' vendor='8086' model_name="82801EB/ER (ICH5/ICH5R) AC'97 
Modem Controller"/>
   <device model='24d7' vendor='8086' model_name='82801EB/ER (ICH5/ICH5R) USB 
UHCI #3'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24d7' model_name='82801EB/ER (ICH5/ICH5R) USB UHCI #3' 
subsystem_name='d530 CMT (DG746A)' subvendor='103c' vendor='8086' 
subdevice='12bc'/>
@@ -19416,9 +19455,14 @@
   <device model='24dd' model_name='82801EB/ER (ICH5/ICH5R) USB2 EHCI 
Controller' subsystem_name='D865PERL mainboard' subvendor='8086' vendor='8086' 
subdevice='524c'/>
   <device model='24de' vendor='8086' model_name='82801EB/ER (ICH5/ICH5R) USB 
UHCI Controller #4'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='24de' model_name='82801EB/ER (ICH5/ICH5R) USB UHCI Controller 
#4' subsystem_name='P4P800 Mainboard' subvendor='1043' vendor='8086' 
subdevice='80a6'/>
@@ -19660,41 +19704,53 @@
   <device model='2653' vendor='8086' model_name='82801FBM (ICH6M) SATA 
Controller'/>
   <device model='2658' vendor='8086' model_name='82801FB/FBM/FR/FW/FRW (ICH6 
Family) USB UHCI #1'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-04-26</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='2658' model_name='82801FB/FBM/FR/FW/FRW (ICH6 Family) USB 
UHCI #1' subsystem_name='Optiplex GX280' subvendor='1028' vendor='8086' 
subdevice='0179'/>
   <device model='2659' vendor='8086' model_name='82801FB/FBM/FR/FW/FRW (ICH6 
Family) USB UHCI #2'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-11-19</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='2659' model_name='82801FB/FBM/FR/FW/FRW (ICH6 Family) USB 
UHCI #2' subsystem_name='Optiplex GX280' subvendor='1028' vendor='8086' 
subdevice='0179'/>
   <device model='265a' vendor='8086' model_name='82801FB/FBM/FR/FW/FRW (ICH6 
Family) USB UHCI #3'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-11-19</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='265a' model_name='82801FB/FBM/FR/FW/FRW (ICH6 Family) USB 
UHCI #3' subsystem_name='Optiplex GX280' subvendor='1028' vendor='8086' 
subdevice='0179'/>
   <device model='265b' vendor='8086' model_name='82801FB/FBM/FR/FW/FRW (ICH6 
Family) USB UHCI #4'>
     <data class='linux'>
-      <data class='module'>
+      <data version='[2.6,inf)' class='module'>
+        <data class='name'>uhci-hcd</data>
+      </data>
+      <data version='[2.2,2.6)' class='module'>
         <data class='name'>usb-uhci</data>
       </data>
-      <data class='last-updated'>2004-11-19</data>
-      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
+      <data class='last-updated'>2006-02-13</data>
+      <data class='last-updated-by'>[EMAIL PROTECTED]</data>
     </data>
   </device>
   <device model='265b' model_name='82801FB/FBM/FR/FW/FRW (ICH6 Family) USB 
UHCI #4' subsystem_name='Optiplex GX280' subvendor='1028' vendor='8086' 
subdevice='0179'/>

Reply via email to