[Linux-parport] EPP modes
Adam Baker
parport at baker-net.org.uk
Mon Mar 3 13:41:17 EST 2008
On Monday 03 March 2008 10:22, Leopold Palomo-Avellaneda wrote:
> Hi,
>
>
> I have realised that all the boxes that we have here using 2.6.18 (debian
> kernel stock and 2.6.22) nones has EPP active. Also with kernels more
> recent. Also, only in a lab of 7 different boxes, only one could support
> EPP, when _ALL_ of them the bios claims to support it.
>
> So my question are:
> Is this a problem of the driver? This driver is unmaintained?
>
Short answer, you need to patch your kernel, as per the patch below
(which is against 2.6.25-rc2 but this code hasn't changed in ages).
Longer answer: A long time ago (~ 10 years), Intel produced a chipset that
included broken EPP support. The Linux parport driver was written to detect
such a chipset and disable EPP support on it. Unfortunately the test that was
written gives false positives for many current chipsets and no-one seems to
know exactly what the problem hardware was, let alone have a sample of it to
see if a better test can be written. After such a long time it is probably
appropriate to just remove the test (on average it does more harm than good)
however you are correct in asserting the driver is unmaintained so no-one is
bothering to fix it.
In theory the way to get the change into mainline in that case is to post to
LKML but you should then be prepared to test development kernels etc. so I
haven't bothered. If you want to chase it up feel free to add
Signed-off-by: Adam Baker <linux at baker-net.org.uk>
to the patch.
---
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index e9743d3..363c13f 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -1903,18 +1903,6 @@ static int parport_EPP_supported(struct
return 0; /* No way to clear timeout */
}
- /* Check for Intel bug. */
- if (priv->ecr) {
- unsigned char i;
- for (i = 0x00; i < 0x80; i += 0x20) {
- ECR_WRITE (pb, i);
- if (clear_epp_timeout (pb)) {
- /* Phony EPP in ECP. */
- return 0;
- }
- }
- }
-
pb->modes |= PARPORT_MODE_EPP;
/* Set up access functions to use EPP hardware. */
More information about the Linux-parport
mailing list