diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 7f1cca701c11eb2b73e60885e0ea8af1752918a3..1032d5fdbd423ce8736d72e85f8f6d3edbcd6eed 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -2290,6 +2290,9 @@ struct parport *parport_pc_probe_port(unsigned long int base,
 		if (IS_ERR(pdev))
 			return NULL;
 		dev = &pdev->dev;
+
+		dev->coherent_dma_mask = DMA_BIT_MASK(24);
+		dev->dma_mask = &dev->coherent_dma_mask;
 	}
 
 	ops = kmalloc(sizeof(struct parport_operations), GFP_KERNEL);