diff --git a/drivers/media/pci/mantis/hopper_cards.c b/drivers/media/pci/mantis/hopper_cards.c
index 97b7a32..68b5800 100644
--- a/drivers/media/pci/mantis/hopper_cards.c
+++ b/drivers/media/pci/mantis/hopper_cards.c
@@ -107,7 +107,8 @@
 	if (stat & MANTIS_INT_IRQ1) {
 		dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
 		spin_lock(&mantis->intmask_lock);
-		mmwrite(mmread(MANTIS_INT_MASK) & ~MANTIS_INT_IRQ1, MANTIS_INT_MASK);
+		mmwrite(mmread(MANTIS_INT_MASK) & ~MANTIS_INT_IRQ1,
+			MANTIS_INT_MASK);
 		spin_unlock(&mantis->intmask_lock);
 		schedule_work(&mantis->uart_work);
 	}
@@ -169,7 +170,7 @@
 		goto fail0;
 	}
 
-	drvdata			= (struct mantis_pci_drvdata *) pci_id->driver_data;
+	drvdata			= (void *)pci_id->driver_data;
 	mantis->num		= devs;
 	mantis->verbose		= verbose;
 	mantis->pdev		= pdev;
@@ -256,7 +257,7 @@
 
 static struct pci_device_id hopper_pci_table[] = {
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_3028_DVB_T, &vp3028_config,
-		NULL),
+		   NULL),
 	{ }
 };
 
diff --git a/drivers/media/pci/mantis/mantis_cards.c b/drivers/media/pci/mantis/mantis_cards.c
index 6b64bfd..cdefffc 100644
--- a/drivers/media/pci/mantis/mantis_cards.c
+++ b/drivers/media/pci/mantis/mantis_cards.c
@@ -117,7 +117,8 @@
 	if (stat & MANTIS_INT_IRQ1) {
 		dprintk(MANTIS_DEBUG, 0, "<%s>", label[2]);
 		spin_lock(&mantis->intmask_lock);
-		mmwrite(mmread(MANTIS_INT_MASK) & ~MANTIS_INT_IRQ1, MANTIS_INT_MASK);
+		mmwrite(mmread(MANTIS_INT_MASK) & ~MANTIS_INT_IRQ1,
+			MANTIS_INT_MASK);
 		spin_unlock(&mantis->intmask_lock);
 		schedule_work(&mantis->uart_work);
 	}
@@ -178,7 +179,7 @@
 		return -ENOMEM;
 	}
 
-	drvdata			= (struct mantis_pci_drvdata *) pci_id->driver_data;
+	drvdata			= (void *)pci_id->driver_data;
 	mantis->num		= devs;
 	mantis->verbose		= verbose;
 	mantis->pdev		= pdev;
@@ -227,7 +228,8 @@
 
 	err = mantis_input_init(mantis);
 	if (err < 0) {
-		dprintk(MANTIS_ERROR, 1, "ERROR: Mantis DVB initialization failed <%d>", err);
+		dprintk(MANTIS_ERROR, 1,
+			"ERROR: Mantis DVB initialization failed <%d>", err);
 		goto err_dvb_exit;
 	}
 
@@ -281,27 +283,27 @@
 
 static struct pci_device_id mantis_pci_table[] = {
 	MAKE_ENTRY(TECHNISAT, CABLESTAR_HD2, &vp2040_config,
-		RC_MAP_TECHNISAT_TS35),
+		   RC_MAP_TECHNISAT_TS35),
 	MAKE_ENTRY(TECHNISAT, SKYSTAR_HD2_10, &vp1041_config,
-		NULL),
+		   NULL),
 	MAKE_ENTRY(TECHNISAT, SKYSTAR_HD2_20, &vp1041_config,
-		NULL),
+		   NULL),
 	MAKE_ENTRY(TERRATEC, CINERGY_C, &vp2040_config,
-		RC_MAP_TERRATEC_CINERGY_C_PCI),
+		   RC_MAP_TERRATEC_CINERGY_C_PCI),
 	MAKE_ENTRY(TERRATEC, CINERGY_S2_PCI_HD, &vp1041_config,
-		RC_MAP_TERRATEC_CINERGY_S2_HD),
+		   RC_MAP_TERRATEC_CINERGY_S2_HD),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1033_DVB_S, &vp1033_config,
-		NULL),
+		   NULL),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1034_DVB_S, &vp1034_config,
-		NULL),
+		   NULL),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_1041_DVB_S2, &vp1041_config,
-		RC_MAP_TWINHAN_DTV_CAB_CI),
+		   RC_MAP_TWINHAN_DTV_CAB_CI),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_2033_DVB_C, &vp2033_config,
-		RC_MAP_TWINHAN_DTV_CAB_CI),
+		   RC_MAP_TWINHAN_DTV_CAB_CI),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_2040_DVB_C, &vp2040_config,
-		NULL),
+		   NULL),
 	MAKE_ENTRY(TWINHAN_TECHNOLOGIES, MANTIS_VP_3030_DVB_T, &vp3030_config,
-		NULL),
+		   NULL),
 	{ }
 };
 
diff --git a/drivers/media/pci/mantis/mantis_input.c b/drivers/media/pci/mantis/mantis_input.c
index abf0ddf..7f7f1d4 100644
--- a/drivers/media/pci/mantis/mantis_input.c
+++ b/drivers/media/pci/mantis/mantis_input.c
@@ -12,10 +12,6 @@
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.
-
-	You should have received a copy of the GNU General Public License
-	along with this program; if not, write to the Free Software
-	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
 #include <media/rc-core.h>
@@ -51,9 +47,9 @@
 	}
 
 	snprintf(mantis->input_name, sizeof(mantis->input_name),
-		"Mantis %s IR receiver", mantis->hwconfig->model_name);
+		 "Mantis %s IR receiver", mantis->hwconfig->model_name);
 	snprintf(mantis->input_phys, sizeof(mantis->input_phys),
-		"pci-%s/ir0", pci_name(mantis->pdev));
+		 "pci-%s/ir0", pci_name(mantis->pdev));
 
 	dev->input_name         = mantis->input_name;
 	dev->input_phys         = mantis->input_phys;
diff --git a/drivers/media/pci/mantis/mantis_input.h b/drivers/media/pci/mantis/mantis_input.h
index 3bbde8b..0fbd929 100644
--- a/drivers/media/pci/mantis/mantis_input.h
+++ b/drivers/media/pci/mantis/mantis_input.h
@@ -12,17 +12,13 @@
 	but WITHOUT ANY WARRANTY; without even the implied warranty of
 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 	GNU General Public License for more details.
-
-	You should have received a copy of the GNU General Public License
-	along with this program; if not, write to the Free Software
-	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
 #ifndef __MANTIS_INPUT_H
 #define __MANTIS_INPUT_H
 
-extern int mantis_input_init(struct mantis_pci *mantis);
-extern void mantis_input_exit(struct mantis_pci *mantis);
-extern void mantis_input_process(struct mantis_pci *mantis, int scancode);
+int mantis_input_init(struct mantis_pci *mantis);
+void mantis_input_exit(struct mantis_pci *mantis);
+void mantis_input_process(struct mantis_pci *mantis, int scancode);
 
 #endif /* __MANTIS_UART_H */
diff --git a/drivers/media/pci/mantis/mantis_uart.c b/drivers/media/pci/mantis/mantis_uart.c
index 4834109..f1c96ae 100644
--- a/drivers/media/pci/mantis/mantis_uart.c
+++ b/drivers/media/pci/mantis/mantis_uart.c
@@ -70,6 +70,7 @@
 	dprintk(MANTIS_DEBUG, 1, "UART Reading ...");
 	for (i = 0; i < (config->bytes + 1); i++) {
 		int data = mmread(MANTIS_UART_RXD);
+
 		dprintk(MANTIS_DEBUG, 0, " <%02x>", data);
 
 		scancode = (scancode << 8) | (data & 0x3f);
@@ -98,8 +99,8 @@
 		dprintk(MANTIS_ERROR, 1, "RX Fifo FULL");
 
 	/*
-	 * MANTIS_UART_RXFIFO_DATA is only set if at least config->bytes + 1 bytes
-	 * are in the FIFO.
+	 * MANTIS_UART_RXFIFO_DATA is only set if at least
+	 * config->bytes + 1 bytes are in the FIFO.
 	 */
 	while (stat & MANTIS_UART_RXFIFO_DATA) {
 		mantis_uart_read(mantis);
