*ver = nv_ro08(bios, dcb);
 
-       if (*ver >= 0x41) {
+       if (*ver >= 0x42) {
                nv_warn(bios, "DCB version 0x%02x unknown\n", *ver);
                return 0x0000;
        } else
                                        break;
                                }
 
-                               switch (conf & 0x0f000000) {
-                               case 0x0f000000:
-                                       outp->dpconf.link_nr = 4;
-                                       break;
-                               case 0x03000000:
-                                       outp->dpconf.link_nr = 2;
-                                       break;
-                               case 0x01000000:
-                               default:
-                                       outp->dpconf.link_nr = 1;
-                                       break;
+                               outp->dpconf.link_nr = (conf & 0x0f000000) >> 24;
+                               if (*ver < 0x41) {
+                                       switch (outp->dpconf.link_nr) {
+                                       case 0x0f:
+                                               outp->dpconf.link_nr = 4;
+                                               break;
+                                       case 0x03:
+                                               outp->dpconf.link_nr = 2;
+                                               break;
+                                       case 0x01:
+                                       default:
+                                               outp->dpconf.link_nr = 1;
+                                               break;
+                                       }
                                }
 
                                /* fall-through... */