summaryrefslogtreecommitdiffstats
path: root/drivers/parport
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-02-16 01:07:24 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-02-16 01:07:24 +0000
commit95db6b748fc86297827fbd9c9ef174d491c9ad89 (patch)
tree27a92a942821cde1edda9a1b088718d436b3efe4 /drivers/parport
parent45b27b0a0652331d104c953a5b192d843fff88f8 (diff)
Merge with Linux 2.3.40.
Diffstat (limited to 'drivers/parport')
-rw-r--r--drivers/parport/Config.in2
-rw-r--r--drivers/parport/ieee1284_ops.c1
-rw-r--r--drivers/parport/parport_pc.c25
3 files changed, 8 insertions, 20 deletions
diff --git a/drivers/parport/Config.in b/drivers/parport/Config.in
index 3297568f0..d2af7d8f6 100644
--- a/drivers/parport/Config.in
+++ b/drivers/parport/Config.in
@@ -14,7 +14,7 @@ if [ "$CONFIG_PARPORT" != "n" ]; then
if [ "$CONFIG_PARPORT_PC" = "y" ]; then
# Don't bother with this if parport_pc is a module; it only affects
# the presence or not of some __init's, which are no-ops for modules.
- if [ "$CONFIG_PCMCIA" != "n" ]; then
+ if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
bool ' Support for PCMCIA management for PC-style ports' CONFIG_PARPORT_PC_PCMCIA
fi
fi
diff --git a/drivers/parport/ieee1284_ops.c b/drivers/parport/ieee1284_ops.c
index 41dd5abb9..df2779bb5 100644
--- a/drivers/parport/ieee1284_ops.c
+++ b/drivers/parport/ieee1284_ops.c
@@ -56,6 +56,7 @@ size_t parport_ieee1284_write_compat (struct parport *port,
}
port->physport->ieee1284.phase = IEEE1284_PH_FWD_DATA;
+ parport_write_control (port, ctl);
while (count < len) {
long expire = jiffies + dev->timeout;
long wait = (HZ + 99) / 100;
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
index 376d01d30..57e6ac684 100644
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -153,9 +153,7 @@ static int get_fifo_residue (struct parport *p)
const struct parport_pc_private *priv = p->physport->private_data;
/* Prevent further data transfer. */
- parport_frob_control (p,
- PARPORT_CONTROL_STROBE,
- PARPORT_CONTROL_STROBE);
+ frob_econtrol (p, 0xe0, ECR_TST << 5);
/* Adjust for the contents of the FIFO. */
for (residue = priv->fifo_depth; ; residue--) {
@@ -171,7 +169,6 @@ static int get_fifo_residue (struct parport *p)
/* Reset the FIFO. */
frob_econtrol (p, 0xe0, ECR_PS2 << 5);
- parport_frob_control (p, PARPORT_CONTROL_STROBE, 0);
/* Now change to config mode and clean up. FIXME */
frob_econtrol (p, 0xe0, ECR_CNF << 5);
@@ -500,7 +497,7 @@ static size_t parport_pc_fifo_write_block_pio (struct parport *port,
ret = 0;
if (!time_before (jiffies, expire)) {
/* Timed out. */
- printk (KERN_DEBUG "Timed out\n");
+ printk (KERN_DEBUG "FIFO write timed out\n");
break;
}
ecrval = inb (ECONTROL (port));
@@ -601,7 +598,7 @@ static size_t parport_pc_fifo_write_block_dma (struct parport *port,
ret = 0;
if (!time_before (jiffies, expire)) {
/* Timed out. */
- printk (KERN_DEBUG "Timed out\n");
+ printk (KERN_DEBUG "DMA write timed out\n");
break;
}
/* Is serviceIntr set? */
@@ -677,9 +674,7 @@ size_t parport_pc_compat_write_block_pio (struct parport *port,
printk (KERN_DEBUG "%s: FIFO is stuck\n", port->name);
/* Prevent further data transfer. */
- parport_frob_control (port,
- PARPORT_CONTROL_STROBE,
- PARPORT_CONTROL_STROBE);
+ frob_econtrol (port, 0xe0, ECR_TST << 5);
/* Adjust for the contents of the FIFO. */
for (written -= priv->fifo_depth; ; written++) {
@@ -692,9 +687,6 @@ size_t parport_pc_compat_write_block_pio (struct parport *port,
/* Reset the FIFO and return to PS2 mode. */
frob_econtrol (port, 0xe0, ECR_PS2 << 5);
-
- /* De-assert strobe. */
- parport_frob_control (port, PARPORT_CONTROL_STROBE, 0);
}
parport_wait_peripheral (port,
@@ -748,9 +740,7 @@ size_t parport_pc_ecp_write_block_pio (struct parport *port,
printk (KERN_DEBUG "%s: FIFO is stuck\n", port->name);
/* Prevent further data transfer. */
- parport_frob_control (port,
- PARPORT_CONTROL_STROBE,
- PARPORT_CONTROL_STROBE);
+ frob_econtrol (port, 0xe0, ECR_TST << 5);
/* Adjust for the contents of the FIFO. */
for (written -= priv->fifo_depth; ; written++) {
@@ -764,9 +754,6 @@ size_t parport_pc_ecp_write_block_pio (struct parport *port,
/* Reset the FIFO and return to PS2 mode. */
frob_econtrol (port, 0xe0, ECR_PS2 << 5);
- /* De-assert strobe. */
- parport_frob_control (port, PARPORT_CONTROL_STROBE, 0);
-
/* Host transfer recovery. */
parport_pc_data_reverse (port); /* Must be in PS2 mode */
udelay (5);
@@ -878,7 +865,7 @@ size_t parport_pc_ecp_read_block_pio (struct parport *port,
ret = 0;
if (!time_before (jiffies, expire)) {
/* Timed out. */
- printk (KERN_DEBUG "Timed out\n");
+ printk (KERN_DEBUG "PIO read timed out\n");
break;
}
ecrval = inb (ECONTROL (port));