diff --git a/drivers/media/dvb/ttpci/av7110.c b/drivers/media/dvb/ttpci/av7110.c
index 87767af..ab4f77d 100644
--- a/drivers/media/dvb/ttpci/av7110.c
+++ b/drivers/media/dvb/ttpci/av7110.c
@@ -122,11 +122,11 @@
 	/* set internal volume control to maximum */
 	av7110->adac_type = DVB_ADAC_TI;
 	ret = av7110_set_volume(av7110, av7110->mixer.volume_left, av7110->mixer.volume_right);
-	if (ret<0)
+	if (ret < 0)
 		printk("dvb-ttpci:cannot set internal volume to maximum:%d\n",ret);
 
 	ret = av7710_set_video_mode(av7110, vidmode);
-	if (ret<0)
+	if (ret < 0)
 		printk("dvb-ttpci:cannot set video mode:%d\n",ret);
 
 	/* handle different card types */
@@ -162,10 +162,10 @@
 	if (av7110->adac_type == DVB_ADAC_NONE || av7110->adac_type == DVB_ADAC_MSP) {
 		// switch DVB SCART on
 		ret = av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, MainSwitch, 1, 0);
-		if (ret<0)
+		if (ret < 0)
 			printk("dvb-ttpci:cannot switch on SCART(Main):%d\n",ret);
 		ret = av7110_fw_cmd(av7110, COMTYPE_AUDIODAC, ADSwitch, 1, 1);
-		if (ret<0)
+		if (ret < 0)
 			printk("dvb-ttpci:cannot switch on SCART(AD):%d\n",ret);
 		if (rgb_on &&
 		    (av7110->dev->pci->subsystem_vendor == 0x110a) && (av7110->dev->pci->subsystem_device == 0x0000)) {
@@ -175,10 +175,10 @@
 	}
 
 	ret = av7110_set_volume(av7110, av7110->mixer.volume_left, av7110->mixer.volume_right);
-	if (ret<0)
+	if (ret < 0)
 		printk("dvb-ttpci:cannot set volume :%d\n",ret);
 	ret = av7110_setup_irc_config(av7110, 0);
-	if (ret<0)
+	if (ret < 0)
 		printk("dvb-ttpci:cannot setup irc config :%d\n",ret);
 }
 
diff --git a/drivers/media/dvb/ttpci/av7110_av.c b/drivers/media/dvb/ttpci/av7110_av.c
index bbfad6d..0696a5a 100644
--- a/drivers/media/dvb/ttpci/av7110_av.c
+++ b/drivers/media/dvb/ttpci/av7110_av.c
@@ -1126,7 +1126,7 @@
 		//note: arg is ignored by firmware
 		if (av7110->playing & RP_VIDEO)
 			ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-				      __Scan_I, 2, AV_PES, 0);
+					    __Scan_I, 2, AV_PES, 0);
 		else
 			ret = vidcom(av7110, VIDEO_CMD_FFWD, arg);
 		if (!ret) {
@@ -1164,15 +1164,15 @@
 
 		if (av7110->playing == RP_AV) {
 			ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-				      __Play, 2, AV_PES, 0);
+					    __Play, 2, AV_PES, 0);
 			if (ret)
 				break;
 			if (av7110->trickmode == TRICK_FAST)
 				ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-					      __Scan_I, 2, AV_PES, 0);
+						    __Scan_I, 2, AV_PES, 0);
 			if (av7110->trickmode == TRICK_SLOW) {
 				ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-					      __Slow, 2, 0, 0);
+						    __Slow, 2, 0, 0);
 				if (!ret)
 					ret = vidcom(av7110, VIDEO_CMD_SLOW, arg);
 			}
@@ -1303,7 +1303,7 @@
 		av7110_ipack_reset(&av7110->ipack[0]);
 		if (av7110->playing == RP_AV)
 			ret = av7110_fw_cmd(av7110, COMTYPE_REC_PLAY,
-			       __Play, 2, AV_PES, 0);
+					    __Play, 2, AV_PES, 0);
 		break;
 	case AUDIO_SET_ID:
 
