.fx2_firmware.lst = pvr2_fw1_names_29xxx,
                .fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_29xxx),
                .flag_has_hauppauge_rom = !0,
+               .flag_has_fmradio = !0,
                .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
 };
 
                .flag_has_wm8775 = !0,
                .flag_has_hauppauge_rom = !0,
                .flag_has_hauppauge_custom_ir = !0,
+               .flag_has_fmradio = !0,
                .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
 };
 
                .client_modules.lst = pvr2_client_onair_creator,
                .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_creator),
                .default_tuner_type = TUNER_LG_TDVS_H06XF,
+               .flag_has_digitaltuner = !0,
                .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
 };
 #endif
                .client_modules.lst = pvr2_client_onair_usb2,
                .client_modules.cnt = ARRAY_SIZE(pvr2_client_onair_usb2),
                .default_tuner_type = TUNER_PHILIPS_ATSC,
+               .flag_has_digitaltuner = !0,
                .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
 };
 #endif
                .fx2_firmware.cnt = ARRAY_SIZE(pvr2_fw1_names_75xxx),
                .flag_has_cx25840 = !0,
                .flag_has_hauppauge_rom = !0,
+               .flag_has_digitaltuner = !0,
                .signal_routing_scheme = PVR2_ROUTING_SCHEME_HAUPPAUGE,
                .default_std_mask = V4L2_STD_NTSC_M,
 };
 
           implement the virtual receiver in terms of appropriate FX2
           commands. */
        char flag_has_hauppauge_custom_ir;
+
+       /* Device has FM radio capability. */
+       char flag_has_fmradio;
+
+       /* Device has a digital tuner; if this is set then we enable extra
+          functionality to switch between analog and digital modes. */
+       char flag_has_digitaltuner;
 };
 
 extern struct usb_device_id pvr2_device_table[];