static int pvr2_hdw_cmd_usbstream(struct pvr2_hdw *hdw,int runFl);
 static int pvr2_hdw_commit_setup(struct pvr2_hdw *hdw);
 static int pvr2_hdw_get_eeprom_addr(struct pvr2_hdw *hdw);
-static void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw);
-static void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw);
 static void pvr2_hdw_quiescent_timeout(unsigned long);
 static void pvr2_hdw_decoder_stabilization_timeout(unsigned long);
 static void pvr2_hdw_encoder_wait_timeout(unsigned long);
        ns = (ns & ~m) | (v & m);
        if (ns == hdw->std_mask_avail) return 0;
        hdw->std_mask_avail = ns;
-       pvr2_hdw_internal_set_std_avail(hdw);
-       pvr2_hdw_internal_find_stdenum(hdw);
+       hdw->std_info_cur.def.type_bitmask.valid_bits = hdw->std_mask_avail;
        return 0;
 }
 
        if (ns == hdw->std_mask_cur) return 0;
        hdw->std_mask_cur = ns;
        hdw->std_dirty = !0;
-       pvr2_hdw_internal_find_stdenum(hdw);
        return 0;
 }
 
 }
 
 
-static int ctrl_stdenumcur_set(struct pvr2_ctrl *cptr,int m,int v)
-{
-       struct pvr2_hdw *hdw = cptr->hdw;
-       if (v < 0) return -EINVAL;
-       if (v > hdw->std_enum_cnt) return -EINVAL;
-       hdw->std_enum_cur = v;
-       if (!v) return 0;
-       v--;
-       if (hdw->std_mask_cur == hdw->std_defs[v].id) return 0;
-       hdw->std_mask_cur = hdw->std_defs[v].id;
-       hdw->std_dirty = !0;
-       return 0;
-}
-
-
-static int ctrl_stdenumcur_get(struct pvr2_ctrl *cptr,int *vp)
-{
-       *vp = cptr->hdw->std_enum_cur;
-       return 0;
-}
-
-
-static int ctrl_stdenumcur_is_dirty(struct pvr2_ctrl *cptr)
-{
-       return cptr->hdw->std_dirty != 0;
-}
-
-
-static void ctrl_stdenumcur_clear_dirty(struct pvr2_ctrl *cptr)
-{
-       cptr->hdw->std_dirty = 0;
-}
-
-
 #define DEFINT(vmin,vmax) \
        .type = pvr2_ctl_int, \
        .def.type_int.min_value = vmin, \
                .val_to_sym = ctrl_std_val_to_sym,
                .sym_to_val = ctrl_std_sym_to_val,
                .type = pvr2_ctl_bitmask,
-       },{
-               .desc = "Video Standard Name",
-               .name = "video_standard",
-               .internal_id = PVR2_CID_STDENUM,
-               .skip_init = !0,
-               .get_value = ctrl_stdenumcur_get,
-               .set_value = ctrl_stdenumcur_set,
-               .is_dirty = ctrl_stdenumcur_is_dirty,
-               .clear_dirty = ctrl_stdenumcur_clear_dirty,
-               .type = pvr2_ctl_enum,
        },{
                .desc = "Video Standards Detected Mask",
                .name = "video_standard_mask_detected",
                hdw->std_mask_avail |= std2;
        }
 
-       pvr2_hdw_internal_set_std_avail(hdw);
+       hdw->std_info_cur.def.type_bitmask.valid_bits = hdw->std_mask_avail;
 
        if (std1) {
                bcnt = pvr2_std_id_to_str(buf,sizeof(buf),std1);
                           bcnt,buf);
                hdw->std_mask_cur = std1;
                hdw->std_dirty = !0;
-               pvr2_hdw_internal_find_stdenum(hdw);
                return;
        }
        if (std3) {
                           " (determined by device type): %.*s",bcnt,buf);
                hdw->std_mask_cur = std3;
                hdw->std_dirty = !0;
-               pvr2_hdw_internal_find_stdenum(hdw);
                return;
        }
 
                                   bcnt,buf);
                        hdw->std_mask_cur = std_eeprom_maps[idx].std;
                        hdw->std_dirty = !0;
-                       pvr2_hdw_internal_find_stdenum(hdw);
                        return;
                }
        }
 
-       if (hdw->std_enum_cnt > 1) {
-               // Autoselect the first listed standard
-               hdw->std_enum_cur = 1;
-               hdw->std_mask_cur = hdw->std_defs[hdw->std_enum_cur-1].id;
-               hdw->std_dirty = !0;
-               pvr2_trace(PVR2_TRACE_STD,
-                          "Initial video standard auto-selected to %s",
-                          hdw->std_defs[hdw->std_enum_cur-1].name);
-               return;
-       }
-
-       pvr2_trace(PVR2_TRACE_ERROR_LEGS,
-                  "Unable to select a viable initial video standard");
 }
 
 
                cptr->info = ciptr;
        }
 
-       // Initialize video standard enum dynamic control
-       cptr = pvr2_hdw_get_ctrl_by_id(hdw,PVR2_CID_STDENUM);
-       if (cptr) {
-               memcpy(&hdw->std_info_enum,cptr->info,
-                      sizeof(hdw->std_info_enum));
-               cptr->info = &hdw->std_info_enum;
-
-       }
        // Initialize control data regarding video standard masks
        valid_std_mask = pvr2_std_get_usable();
        for (idx = 0; idx < 32; idx++) {
                kfree(hdw->ctl_write_buffer);
                kfree(hdw->controls);
                kfree(hdw->mpeg_ctrl_info);
-               kfree(hdw->std_defs);
-               kfree(hdw->std_enum_names);
                kfree(hdw);
        }
        return NULL;
        } while (0); mutex_unlock(&pvr2_unit_mtx);
        kfree(hdw->controls);
        kfree(hdw->mpeg_ctrl_info);
-       kfree(hdw->std_defs);
-       kfree(hdw->std_enum_names);
        kfree(hdw);
 }
 
 }
 
 
-// Attempt to autoselect an appropriate value for std_enum_cur given
-// whatever is currently in std_mask_cur
-static void pvr2_hdw_internal_find_stdenum(struct pvr2_hdw *hdw)
-{
-       unsigned int idx;
-       for (idx = 1; idx < hdw->std_enum_cnt; idx++) {
-               if (hdw->std_defs[idx-1].id == hdw->std_mask_cur) {
-                       hdw->std_enum_cur = idx;
-                       return;
-               }
-       }
-       hdw->std_enum_cur = 0;
-}
-
-
-// Calculate correct set of enumerated standards based on currently known
-// set of available standards bits.
-static void pvr2_hdw_internal_set_std_avail(struct pvr2_hdw *hdw)
-{
-       struct v4l2_standard *newstd;
-       unsigned int std_cnt;
-       unsigned int idx;
-
-       newstd = pvr2_std_create_enum(&std_cnt,hdw->std_mask_avail);
-
-       if (hdw->std_defs) {
-               kfree(hdw->std_defs);
-               hdw->std_defs = NULL;
-       }
-       hdw->std_enum_cnt = 0;
-       if (hdw->std_enum_names) {
-               kfree(hdw->std_enum_names);
-               hdw->std_enum_names = NULL;
-       }
-
-       if (!std_cnt) {
-               pvr2_trace(
-                       PVR2_TRACE_ERROR_LEGS,
-                       "WARNING: Failed to identify any viable standards");
-       }
-
-       /* Set up the dynamic control for this standard */
-       hdw->std_enum_names = kmalloc(sizeof(char *)*(std_cnt+1),GFP_KERNEL);
-       if (hdw->std_enum_names) {
-               hdw->std_enum_names[0] = "none";
-               for (idx = 0; idx < std_cnt; idx++)
-                       hdw->std_enum_names[idx+1] = newstd[idx].name;
-               hdw->std_info_enum.def.type_enum.value_names =
-                                               hdw->std_enum_names;
-               hdw->std_info_enum.def.type_enum.count = std_cnt+1;
-       } else {
-               pvr2_trace(
-                       PVR2_TRACE_ERROR_LEGS,
-                       "WARNING: Failed to alloc memory for names");
-               hdw->std_info_enum.def.type_enum.value_names = NULL;
-               hdw->std_info_enum.def.type_enum.count = 0;
-       }
-       hdw->std_defs = newstd;
-       hdw->std_enum_cnt = std_cnt+1;
-       hdw->std_enum_cur = 0;
-       hdw->std_info_cur.def.type_bitmask.valid_bits = hdw->std_mask_avail;
-}
-
-
-int pvr2_hdw_get_stdenum_value(struct pvr2_hdw *hdw,
-                              struct v4l2_standard *std,
-                              unsigned int idx)
-{
-       int ret = -EINVAL;
-       if (!idx) return ret;
-       LOCK_TAKE(hdw->big_lock); do {
-               if (idx >= hdw->std_enum_cnt) break;
-               idx--;
-               memcpy(std,hdw->std_defs+idx,sizeof(*std));
-               ret = 0;
-       } while (0); LOCK_GIVE(hdw->big_lock);
-       return ret;
-}
-
-
 /* Get the number of defined controls */
 unsigned int pvr2_hdw_get_ctrl_count(struct pvr2_hdw *hdw)
 {