struct w1_therm_family_converter
 {
-       u8                      fid;
        u8                      broken;
        u16                     reserved;
        struct w1_family        *f;
 
 static struct w1_therm_family_converter w1_therm_families[] = {
        {
-               .fid            = W1_THERM_DS18S20,
                .f              = &w1_therm_family_DS18S20,
                .convert        = w1_DS18S20_convert_temp
        },
        {
-               .fid            = W1_THERM_DS1822,
                .f              = &w1_therm_family_DS1822,
                .convert        = w1_DS18B20_convert_temp
        },
        {
-               .fid            = W1_THERM_DS18B20,
                .f              = &w1_therm_family_DS18B20,
                .convert        = w1_DS18B20_convert_temp
        },
        int i;
 
        for (i=0; i<sizeof(w1_therm_families)/sizeof(w1_therm_families[0]); ++i)
-               if (w1_therm_families[i].fid == fid)
+               if (w1_therm_families[i].f->fid == fid)
                        return w1_therm_families[i].convert(rom);
 
        return 0;