* Driver initialization and cleanup
  */
 
+static const struct uvc_menu_info power_line_frequency_controls_limited[] = {
+       { 1, "50 Hz" },
+       { 2, "60 Hz" },
+};
+
+static const struct uvc_control_mapping uvc_ctrl_power_line_mapping_limited = {
+       .id             = V4L2_CID_POWER_LINE_FREQUENCY,
+       .entity         = UVC_GUID_UVC_PROCESSING,
+       .selector       = UVC_PU_POWER_LINE_FREQUENCY_CONTROL,
+       .size           = 2,
+       .offset         = 0,
+       .v4l2_type      = V4L2_CTRL_TYPE_MENU,
+       .data_type      = UVC_CTRL_DATA_TYPE_ENUM,
+       .menu_info      = power_line_frequency_controls_limited,
+       .menu_count     = ARRAY_SIZE(power_line_frequency_controls_limited),
+};
+
+static const struct uvc_device_info uvc_ctrl_power_line_limited = {
+       .mappings = (const struct uvc_control_mapping *[]) {
+               &uvc_ctrl_power_line_mapping_limited,
+               NULL, /* Sentinel */
+       },
+};
+
 static const struct uvc_device_info uvc_quirk_probe_minmax = {
        .quirks = UVC_QUIRK_PROBE_MINMAX,
 };
  * though they are compliant.
  */
 static const struct usb_device_id uvc_ids[] = {
+       /* Quanta USB2.0 HD UVC Webcam */
+       { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
+                               | USB_DEVICE_ID_MATCH_INT_INFO,
+         .idVendor             = 0x0408,
+         .idProduct            = 0x3090,
+         .bInterfaceClass      = USB_CLASS_VIDEO,
+         .bInterfaceSubClass   = 1,
+         .bInterfaceProtocol   = 0,
+         .driver_info          = (kernel_ulong_t)&uvc_ctrl_power_line_limited },
        /* LogiLink Wireless Webcam */
        { .match_flags          = USB_DEVICE_ID_MATCH_DEVICE
                                | USB_DEVICE_ID_MATCH_INT_INFO,