}
 
 /* used on Voodoo TV/FM (Voodoo 200), S0 wired to 0x10000 */
-void bttv_tda9880_setnorm(struct bttv *btv, int norm)
+void bttv_tda9880_setnorm(struct bttv *btv, unsigned int norm)
 {
        /* fix up our card entry */
        if(norm==V4L2_STD_NTSC) {
 
 }
 
 static void
-bttv_crop_reset(struct bttv_crop *c, int norm)
+bttv_crop_reset(struct bttv_crop *c, unsigned int norm)
 {
        c->rect = bttv_tvnorms[norm].cropcap.defrect;
        bttv_crop_calc_limits(c);
        const struct bttv_tvnorm *tvnorm;
        v4l2_std_id id;
 
-       if (norm < 0 || norm >= BTTV_TVNORMS)
-               return -EINVAL;
+       BUG_ON(norm >= BTTV_TVNORMS);
+       BUG_ON(btv->tvnorm >= BTTV_TVNORMS);
 
        tvnorm = &bttv_tvnorms[norm];
 
-       if (btv->tvnorm < 0 ||
-           btv->tvnorm >= BTTV_TVNORMS ||
-           0 != memcmp(&bttv_tvnorms[btv->tvnorm].cropcap,
-                       &tvnorm->cropcap,
-                       sizeof (tvnorm->cropcap))) {
+       if (!memcmp(&bttv_tvnorms[btv->tvnorm].cropcap, &tvnorm->cropcap,
+                   sizeof (tvnorm->cropcap))) {
                bttv_crop_reset(&btv->crop[0], norm);
                btv->crop[1] = btv->crop[0]; /* current = default */
 
 
        return 0;
 }
 
-void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, int norm)
+void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, unsigned int norm)
 {
        const struct bttv_tvnorm *tvnorm;
        unsigned int real_samples_per_line;
 
 
 /* card-specific funtions */
 extern void tea5757_set_freq(struct bttv *btv, unsigned short freq);
-extern void bttv_tda9880_setnorm(struct bttv *btv, int norm);
+extern void bttv_tda9880_setnorm(struct bttv *btv, unsigned int norm);
 
 /* extra tweaks for some chipsets */
 extern void bttv_check_chipset(void);
 
 
        /* bttv specific */
        const struct bttv_format   *fmt;
-       int                        tvnorm;
+       unsigned int               tvnorm;
        int                        btformat;
        int                        btswap;
        struct bttv_geometry       geo;
 };
 
 struct bttv_overlay {
-       int                    tvnorm;
+       unsigned int           tvnorm;
        struct v4l2_rect       w;
        enum v4l2_field        field;
        struct v4l2_clip       *clips;
 };
 
 /* bttv-vbi.c */
-void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, int norm);
+void bttv_vbi_fmt_reset(struct bttv_vbi_fmt *f, unsigned int norm);
 
 struct bttv_crop {
        /* A cropping rectangle in struct bttv_tvnorm.cropcap units. */
        unsigned int audio;
        unsigned int mute;
        unsigned long freq;
-       int tvnorm,hue,contrast,bright,saturation;
+       unsigned int tvnorm;
+       int hue, contrast, bright, saturation;
        struct v4l2_framebuffer fbuf;
        unsigned int field_count;