static DECLARE_BITMAP(devices_used, SNDRV_CARDS);
 
 /* Offsets from information register. */
+#define INFO_OFFSET_BEBOB_VERSION      0x08
 #define INFO_OFFSET_GUID               0x10
 #define INFO_OFFSET_HW_MODEL_ID                0x18
 #define INFO_OFFSET_HW_MODEL_REVISION  0x1c
        u32 hw_id;
        u32 data[2] = {0};
        u32 revision;
+       u32 version;
        int err;
 
        /* get vendor name from root directory */
        if (err < 0)
                goto end;
 
+       err = snd_bebob_read_quad(bebob->unit, INFO_OFFSET_BEBOB_VERSION,
+                                 &version);
+       if (err < 0)
+               goto end;
+       bebob->version = version;
+
        strcpy(bebob->card->driver, "BeBoB");
        strcpy(bebob->card->shortname, model);
        strcpy(bebob->card->mixername, model);
 
        /* for M-Audio special devices */
        void *maudio_special_quirk;
        bool deferred_registration;
+
+       /* For BeBoB version quirk. */
+       unsigned int version;
 };
 
 static inline int