diff --git a/drivers/media/dvb/dvb-usb/cxusb.c b/drivers/media/dvb/dvb-usb/cxusb.c
index deeb3871a2aaf00c08baf06c0b3ad383c5840b9d..c58365005ac1cb32e0f7739918f6e3b3f8a37a97 100644
--- a/drivers/media/dvb/dvb-usb/cxusb.c
+++ b/drivers/media/dvb/dvb-usb/cxusb.c
@@ -513,7 +513,6 @@ static int cxusb_dvico_xc3028_tuner_attach(struct dvb_usb_adapter *adap)
 		.callback  = dvico_bluebird_xc2028_callback,
 	};
 	static struct xc2028_ctrl ctl = {
-		.type        = XC2028_FIRM_NORMAL,
 		.fname       = "xc3028-dvico-au-01.fw",
 		.max_len     = 64,
 		.scode_table = ZARLINK456,
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index c40b9d9b30702a5297ea77bfbc7ee6d52e278b61..29e935f41098906e61aa4927643ff1c741e5afa4 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -154,7 +154,7 @@ struct em28xx_board em28xx_boards[] = {
 		.tda9887_conf = TDA9887_PRESENT,
 		.tuner_type   = TUNER_XC2028,
 		.has_tuner    = 1,
-		.xc2028_type  = XC2028_FIRM_MTS,
+		.mts_firmware = 1,
 		.decoder      = EM28XX_TVP5150,
 		.input          = {{
 			.type     = EM28XX_VMUX_TELEVISION,
@@ -476,7 +476,7 @@ static void em28xx_config_tuner (struct em28xx *dev)
 
 		ctl.fname   = XC2028_DEFAULT_FIRMWARE;
 		ctl.max_len = 64;
-		ctl.type = em28xx_boards[dev->model].xc2028_type;
+		ctl.mts = em28xx_boards[dev->model].mts_firmware;
 
 		xc2028_cfg.tuner = TUNER_XC2028;
 		xc2028_cfg.priv  = &ctl;
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index db82b51c85ffe3a43ea7129d8bd6bec9106eeac3..93007cc72f4d0f907b877656ed11a457a682e1a5 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -176,9 +176,9 @@ struct em28xx_board {
 
 	unsigned int has_tuner:1;
 	unsigned int has_msp34xx:1;
+	unsigned int mts_firmware:1;
 
 	enum em28xx_decoder decoder;
-	int xc2028_type;
 
 	struct em28xx_input       input[MAX_EM28XX_INPUT];
 };
diff --git a/drivers/media/video/tuner-xc2028.c b/drivers/media/video/tuner-xc2028.c
index 8fa3ab76fd5cf9dc5fb5b44745163e92dcff8164..6a6642ea48cec5d5f8e11f46dd7da1c0a717e450 100644
--- a/drivers/media/video/tuner-xc2028.c
+++ b/drivers/media/video/tuner-xc2028.c
@@ -631,7 +631,7 @@ static int check_firmware(struct dvb_frontend *fe, enum tuner_mode new_mode,
 			return rc;
 	}
 
-	if (priv->ctrl.type == XC2028_FIRM_MTS)
+	if (priv->ctrl.mts)
 		type |= MTS;
 	if (bandwidth == BANDWIDTH_7_MHZ || bandwidth == BANDWIDTH_8_MHZ)
 		type |= F8MHZ;
diff --git a/drivers/media/video/tuner-xc2028.h b/drivers/media/video/tuner-xc2028.h
index 16259b14ce904099922d813a445d0f4f601fb782..f24fb2a00f6fb15b886e2dc89691316ad898f4ab 100644
--- a/drivers/media/video/tuner-xc2028.h
+++ b/drivers/media/video/tuner-xc2028.h
@@ -11,17 +11,12 @@
 
 #define XC2028_DEFAULT_FIRMWARE "xc3028-v27.fw"
 
-enum xc2028_firm_type {
-	XC2028_FIRM_NORMAL,
-	XC2028_FIRM_MTS,
-};
-
 struct xc2028_ctrl {
-	enum xc2028_firm_type	type;
 	char			*fname;
 	int			max_len;
-	int			d2633:1;
 	unsigned int		scode_table;
+	unsigned int		mts  :1;
+	unsigned int		d2633:1;
 };
 
 struct xc2028_config {