The detection of Intel EPP bug is known to produce much false positives.
The new option is introduced to force enable EPP in spite of the test
result.
Tested-by: Heiko Andreas Sommer <hsommer@xxxxxxx>
Signed-off-by: Matwey V. Kornilov <matwey@xxxxxxxxxx>
---
drivers/parport/parport_pc.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 4b851bb..1a15b9c 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -105,6 +105,9 @@ static int user_specified;
(defined(CONFIG_PARPORT_1284) && defined(CONFIG_PARPORT_PC_FIFO))
static int verbose_probing;
#endif
+#ifdef CONFIG_PARPORT_1284
+static int force_epp;
+#endif
static int pci_registered_parport;
static int pnp_registered_parport;
@@ -1765,7 +1768,7 @@ static int parport_EPP_supported(struct parport *pb)
return 0; /* No way to clear timeout */
/* Check for Intel bug. */
- if (intel_bug_present(pb))
+ if (!force_epp && intel_bug_present(pb))
return 0;
pb->modes |= PARPORT_MODE_EPP;
@@ -3148,6 +3151,10 @@ module_param_array(dma, charp, NULL, 0);
MODULE_PARM_DESC(verbose_probing, "Log chit-chat during initialisation");
module_param(verbose_probing, int, 0644);
#endif
+#ifdef CONFIG_PARPORT_1284
+MODULE_PARM_DESC(force_epp, "Do not disable EPP when it is detected to
be broken (default is false)");
+module_param(force_epp, int, 0);
+#endif
#ifdef CONFIG_PCI
static char *init_mode;
MODULE_PARM_DESC(init_mode,