parport: remove unused dead code from lowlevel drivers
This unused code has been untouched for over 7 years and must go. Signed-off-by: Matt Porter <mporter@ti.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1790625feb
commit
991214386d
5 changed files with 0 additions and 377 deletions
|
@ -48,23 +48,6 @@ static unsigned char amiga_read_data(struct parport *p)
|
||||||
return ciaa.prb;
|
return ciaa.prb;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static unsigned char control_pc_to_amiga(unsigned char control)
|
|
||||||
{
|
|
||||||
unsigned char ret = 0;
|
|
||||||
|
|
||||||
if (control & PARPORT_CONTROL_SELECT) /* XXX: What is SELECP? */
|
|
||||||
;
|
|
||||||
if (control & PARPORT_CONTROL_INIT) /* INITP */
|
|
||||||
/* reset connected to cpu reset pin */;
|
|
||||||
if (control & PARPORT_CONTROL_AUTOFD) /* AUTOLF */
|
|
||||||
/* Not connected */;
|
|
||||||
if (control & PARPORT_CONTROL_STROBE) /* Strobe */
|
|
||||||
/* Handled only directly by hardware */;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static unsigned char control_amiga_to_pc(unsigned char control)
|
static unsigned char control_amiga_to_pc(unsigned char control)
|
||||||
{
|
{
|
||||||
return PARPORT_CONTROL_SELECT |
|
return PARPORT_CONTROL_SELECT |
|
||||||
|
@ -95,25 +78,6 @@ static unsigned char amiga_frob_control( struct parport *p, unsigned char mask,
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* currently unused */
|
|
||||||
static unsigned char status_pc_to_amiga(unsigned char status)
|
|
||||||
{
|
|
||||||
unsigned char ret = 1;
|
|
||||||
|
|
||||||
if (status & PARPORT_STATUS_BUSY) /* Busy */
|
|
||||||
ret &= ~1;
|
|
||||||
if (status & PARPORT_STATUS_ACK) /* Ack */
|
|
||||||
/* handled in hardware */;
|
|
||||||
if (status & PARPORT_STATUS_PAPEROUT) /* PaperOut */
|
|
||||||
ret |= 2;
|
|
||||||
if (status & PARPORT_STATUS_SELECT) /* select */
|
|
||||||
ret |= 4;
|
|
||||||
if (status & PARPORT_STATUS_ERROR) /* error */
|
|
||||||
/* not connected */;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static unsigned char status_amiga_to_pc(unsigned char status)
|
static unsigned char status_amiga_to_pc(unsigned char status)
|
||||||
{
|
{
|
||||||
unsigned char ret = PARPORT_STATUS_BUSY | PARPORT_STATUS_ACK | PARPORT_STATUS_ERROR;
|
unsigned char ret = PARPORT_STATUS_BUSY | PARPORT_STATUS_ACK | PARPORT_STATUS_ERROR;
|
||||||
|
|
|
@ -130,15 +130,6 @@ parport_atari_data_forward(struct parport *p)
|
||||||
static void
|
static void
|
||||||
parport_atari_data_reverse(struct parport *p)
|
parport_atari_data_reverse(struct parport *p)
|
||||||
{
|
{
|
||||||
#if 0 /* too dangerous, can kill sound chip */
|
|
||||||
unsigned long flags;
|
|
||||||
|
|
||||||
local_irq_save(flags);
|
|
||||||
/* Soundchip port B as input. */
|
|
||||||
sound_ym.rd_data_reg_sel = 7;
|
|
||||||
sound_ym.wd_data = sound_ym.rd_data_reg_sel & ~0x40;
|
|
||||||
local_irq_restore(flags);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct parport_operations parport_atari_ops = {
|
static struct parport_operations parport_atari_ops = {
|
||||||
|
|
|
@ -147,25 +147,6 @@ DPRINTK(KERN_DEBUG "frob_control mask %02x, value %02x\n",mask,val);
|
||||||
return old;
|
return old;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* currently unused */
|
|
||||||
static unsigned char status_pc_to_mfc3(unsigned char status)
|
|
||||||
{
|
|
||||||
unsigned char ret = 1;
|
|
||||||
|
|
||||||
if (status & PARPORT_STATUS_BUSY) /* Busy */
|
|
||||||
ret &= ~1;
|
|
||||||
if (status & PARPORT_STATUS_ACK) /* Ack */
|
|
||||||
ret |= 8;
|
|
||||||
if (status & PARPORT_STATUS_PAPEROUT) /* PaperOut */
|
|
||||||
ret |= 2;
|
|
||||||
if (status & PARPORT_STATUS_SELECT) /* select */
|
|
||||||
ret |= 4;
|
|
||||||
if (status & PARPORT_STATUS_ERROR) /* error */
|
|
||||||
ret |= 16;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static unsigned char status_mfc3_to_pc(unsigned char status)
|
static unsigned char status_mfc3_to_pc(unsigned char status)
|
||||||
{
|
{
|
||||||
unsigned char ret = PARPORT_STATUS_BUSY;
|
unsigned char ret = PARPORT_STATUS_BUSY;
|
||||||
|
@ -184,14 +165,6 @@ static unsigned char status_mfc3_to_pc(unsigned char status)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* currently unused */
|
|
||||||
static void mfc3_write_status( struct parport *p, unsigned char status)
|
|
||||||
{
|
|
||||||
DPRINTK(KERN_DEBUG "write_status %02x\n",status);
|
|
||||||
pia(p)->ppra = (pia(p)->ppra & 0xe0) | status_pc_to_mfc3(status);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static unsigned char mfc3_read_status(struct parport *p)
|
static unsigned char mfc3_read_status(struct parport *p)
|
||||||
{
|
{
|
||||||
unsigned char status;
|
unsigned char status;
|
||||||
|
@ -201,14 +174,6 @@ DPRINTK(KERN_DEBUG "read_status %02x\n", status);
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0 /* currently unused */
|
|
||||||
static void mfc3_change_mode( struct parport *p, int m)
|
|
||||||
{
|
|
||||||
/* XXX: This port only has one mode, and I am
|
|
||||||
not sure about the corresponding PC-style mode*/
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static int use_cnt = 0;
|
static int use_cnt = 0;
|
||||||
|
|
||||||
static irqreturn_t mfc3_interrupt(int irq, void *dev_id)
|
static irqreturn_t mfc3_interrupt(int irq, void *dev_id)
|
||||||
|
|
|
@ -197,54 +197,6 @@ static int change_mode(struct parport *p, int m)
|
||||||
ECR_WRITE(p, oecr);
|
ECR_WRITE(p, oecr);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PARPORT_1284
|
|
||||||
/* Find FIFO lossage; FIFO is reset */
|
|
||||||
#if 0
|
|
||||||
static int get_fifo_residue(struct parport *p)
|
|
||||||
{
|
|
||||||
int residue;
|
|
||||||
int cnfga;
|
|
||||||
const struct parport_pc_private *priv = p->physport->private_data;
|
|
||||||
|
|
||||||
/* Adjust for the contents of the FIFO. */
|
|
||||||
for (residue = priv->fifo_depth; ; residue--) {
|
|
||||||
if (inb(ECONTROL(p)) & 0x2)
|
|
||||||
/* Full up. */
|
|
||||||
break;
|
|
||||||
|
|
||||||
outb(0, FIFO(p));
|
|
||||||
}
|
|
||||||
|
|
||||||
printk(KERN_DEBUG "%s: %d PWords were left in FIFO\n", p->name,
|
|
||||||
residue);
|
|
||||||
|
|
||||||
/* Reset the FIFO. */
|
|
||||||
frob_set_mode(p, ECR_PS2);
|
|
||||||
|
|
||||||
/* Now change to config mode and clean up. FIXME */
|
|
||||||
frob_set_mode(p, ECR_CNF);
|
|
||||||
cnfga = inb(CONFIGA(p));
|
|
||||||
printk(KERN_DEBUG "%s: cnfgA contains 0x%02x\n", p->name, cnfga);
|
|
||||||
|
|
||||||
if (!(cnfga & (1<<2))) {
|
|
||||||
printk(KERN_DEBUG "%s: Accounting for extra byte\n", p->name);
|
|
||||||
residue++;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Don't care about partial PWords until support is added for
|
|
||||||
* PWord != 1 byte. */
|
|
||||||
|
|
||||||
/* Back to PS2 mode. */
|
|
||||||
frob_set_mode(p, ECR_PS2);
|
|
||||||
|
|
||||||
DPRINTK(KERN_DEBUG
|
|
||||||
"*** get_fifo_residue: done residue collecting (ecr = 0x%2.2x)\n",
|
|
||||||
inb(ECONTROL(p)));
|
|
||||||
return residue;
|
|
||||||
}
|
|
||||||
#endif /* 0 */
|
|
||||||
#endif /* IEEE 1284 support */
|
|
||||||
#endif /* FIFO support */
|
#endif /* FIFO support */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -940,234 +892,6 @@ static size_t parport_pc_ecp_write_block_pio(struct parport *port,
|
||||||
|
|
||||||
return written;
|
return written;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static size_t parport_pc_ecp_read_block_pio(struct parport *port,
|
|
||||||
void *buf, size_t length,
|
|
||||||
int flags)
|
|
||||||
{
|
|
||||||
size_t left = length;
|
|
||||||
size_t fifofull;
|
|
||||||
int r;
|
|
||||||
const int fifo = FIFO(port);
|
|
||||||
const struct parport_pc_private *priv = port->physport->private_data;
|
|
||||||
const int fifo_depth = priv->fifo_depth;
|
|
||||||
char *bufp = buf;
|
|
||||||
|
|
||||||
port = port->physport;
|
|
||||||
DPRINTK(KERN_DEBUG "parport_pc: parport_pc_ecp_read_block_pio\n");
|
|
||||||
dump_parport_state("enter fcn", port);
|
|
||||||
|
|
||||||
/* Special case: a timeout of zero means we cannot call schedule().
|
|
||||||
* Also if O_NONBLOCK is set then use the default implementation. */
|
|
||||||
if (port->cad->timeout <= PARPORT_INACTIVITY_O_NONBLOCK)
|
|
||||||
return parport_ieee1284_ecp_read_data(port, buf,
|
|
||||||
length, flags);
|
|
||||||
|
|
||||||
if (port->ieee1284.mode == IEEE1284_MODE_ECPRLE) {
|
|
||||||
/* If the peripheral is allowed to send RLE compressed
|
|
||||||
* data, it is possible for a byte to expand to 128
|
|
||||||
* bytes in the FIFO. */
|
|
||||||
fifofull = 128;
|
|
||||||
} else {
|
|
||||||
fifofull = fifo_depth;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If the caller wants less than a full FIFO's worth of data,
|
|
||||||
* go through software emulation. Otherwise we may have to throw
|
|
||||||
* away data. */
|
|
||||||
if (length < fifofull)
|
|
||||||
return parport_ieee1284_ecp_read_data(port, buf,
|
|
||||||
length, flags);
|
|
||||||
|
|
||||||
if (port->ieee1284.phase != IEEE1284_PH_REV_IDLE) {
|
|
||||||
/* change to reverse-idle phase (must be in forward-idle) */
|
|
||||||
|
|
||||||
/* Event 38: Set nAutoFd low (also make sure nStrobe is high) */
|
|
||||||
parport_frob_control(port,
|
|
||||||
PARPORT_CONTROL_AUTOFD
|
|
||||||
| PARPORT_CONTROL_STROBE,
|
|
||||||
PARPORT_CONTROL_AUTOFD);
|
|
||||||
parport_pc_data_reverse(port); /* Must be in PS2 mode */
|
|
||||||
udelay(5);
|
|
||||||
/* Event 39: Set nInit low to initiate bus reversal */
|
|
||||||
parport_frob_control(port,
|
|
||||||
PARPORT_CONTROL_INIT,
|
|
||||||
0);
|
|
||||||
/* Event 40: Wait for nAckReverse (PError) to go low */
|
|
||||||
r = parport_wait_peripheral(port, PARPORT_STATUS_PAPEROUT, 0);
|
|
||||||
if (r) {
|
|
||||||
printk(KERN_DEBUG "%s: PE timeout Event 40 (%d) "
|
|
||||||
"in ecp_read_block_pio\n", port->name, r);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Set up ECP FIFO mode.*/
|
|
||||||
/* parport_pc_frob_control(port,
|
|
||||||
PARPORT_CONTROL_STROBE |
|
|
||||||
PARPORT_CONTROL_AUTOFD,
|
|
||||||
PARPORT_CONTROL_AUTOFD); */
|
|
||||||
r = change_mode(port, ECR_ECP); /* ECP FIFO */
|
|
||||||
if (r)
|
|
||||||
printk(KERN_DEBUG "%s: Warning change_mode ECR_ECP failed\n",
|
|
||||||
port->name);
|
|
||||||
|
|
||||||
port->ieee1284.phase = IEEE1284_PH_REV_DATA;
|
|
||||||
|
|
||||||
/* the first byte must be collected manually */
|
|
||||||
dump_parport_state("pre 43", port);
|
|
||||||
/* Event 43: Wait for nAck to go low */
|
|
||||||
r = parport_wait_peripheral(port, PARPORT_STATUS_ACK, 0);
|
|
||||||
if (r) {
|
|
||||||
/* timed out while reading -- no data */
|
|
||||||
printk(KERN_DEBUG "PIO read timed out (initial byte)\n");
|
|
||||||
goto out_no_data;
|
|
||||||
}
|
|
||||||
/* read byte */
|
|
||||||
*bufp++ = inb(DATA(port));
|
|
||||||
left--;
|
|
||||||
dump_parport_state("43-44", port);
|
|
||||||
/* Event 44: nAutoFd (HostAck) goes high to acknowledge */
|
|
||||||
parport_pc_frob_control(port,
|
|
||||||
PARPORT_CONTROL_AUTOFD,
|
|
||||||
0);
|
|
||||||
dump_parport_state("pre 45", port);
|
|
||||||
/* Event 45: Wait for nAck to go high */
|
|
||||||
/* r = parport_wait_peripheral(port, PARPORT_STATUS_ACK,
|
|
||||||
PARPORT_STATUS_ACK); */
|
|
||||||
dump_parport_state("post 45", port);
|
|
||||||
r = 0;
|
|
||||||
if (r) {
|
|
||||||
/* timed out while waiting for peripheral to respond to ack */
|
|
||||||
printk(KERN_DEBUG "ECP PIO read timed out (waiting for nAck)\n");
|
|
||||||
|
|
||||||
/* keep hold of the byte we've got already */
|
|
||||||
goto out_no_data;
|
|
||||||
}
|
|
||||||
/* Event 46: nAutoFd (HostAck) goes low to accept more data */
|
|
||||||
parport_pc_frob_control(port,
|
|
||||||
PARPORT_CONTROL_AUTOFD,
|
|
||||||
PARPORT_CONTROL_AUTOFD);
|
|
||||||
|
|
||||||
|
|
||||||
dump_parport_state("rev idle", port);
|
|
||||||
/* Do the transfer. */
|
|
||||||
while (left > fifofull) {
|
|
||||||
int ret;
|
|
||||||
unsigned long expire = jiffies + port->cad->timeout;
|
|
||||||
unsigned char ecrval = inb(ECONTROL(port));
|
|
||||||
|
|
||||||
if (need_resched() && time_before(jiffies, expire))
|
|
||||||
/* Can't yield the port. */
|
|
||||||
schedule();
|
|
||||||
|
|
||||||
/* At this point, the FIFO may already be full. In
|
|
||||||
* that case ECP is already holding back the
|
|
||||||
* peripheral (assuming proper design) with a delayed
|
|
||||||
* handshake. Work fast to avoid a peripheral
|
|
||||||
* timeout. */
|
|
||||||
|
|
||||||
if (ecrval & 0x01) {
|
|
||||||
/* FIFO is empty. Wait for interrupt. */
|
|
||||||
dump_parport_state("FIFO empty", port);
|
|
||||||
|
|
||||||
/* Anyone else waiting for the port? */
|
|
||||||
if (port->waithead) {
|
|
||||||
printk(KERN_DEBUG "Somebody wants the port\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Clear serviceIntr */
|
|
||||||
ECR_WRITE(port, ecrval & ~(1<<2));
|
|
||||||
false_alarm:
|
|
||||||
dump_parport_state("waiting", port);
|
|
||||||
ret = parport_wait_event(port, HZ);
|
|
||||||
DPRINTK(KERN_DEBUG "parport_wait_event returned %d\n",
|
|
||||||
ret);
|
|
||||||
if (ret < 0)
|
|
||||||
break;
|
|
||||||
ret = 0;
|
|
||||||
if (!time_before(jiffies, expire)) {
|
|
||||||
/* Timed out. */
|
|
||||||
dump_parport_state("timeout", port);
|
|
||||||
printk(KERN_DEBUG "PIO read timed out\n");
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ecrval = inb(ECONTROL(port));
|
|
||||||
if (!(ecrval & (1<<2))) {
|
|
||||||
if (need_resched() &&
|
|
||||||
time_before(jiffies, expire)) {
|
|
||||||
schedule();
|
|
||||||
}
|
|
||||||
goto false_alarm;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Depending on how the FIFO threshold was
|
|
||||||
* set, how long interrupt service took, and
|
|
||||||
* how fast the peripheral is, we might be
|
|
||||||
* lucky and have a just filled FIFO. */
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ecrval & 0x02) {
|
|
||||||
/* FIFO is full. */
|
|
||||||
dump_parport_state("FIFO full", port);
|
|
||||||
insb(fifo, bufp, fifo_depth);
|
|
||||||
bufp += fifo_depth;
|
|
||||||
left -= fifo_depth;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
DPRINTK(KERN_DEBUG
|
|
||||||
"*** ecp_read_block_pio: reading one byte from the FIFO\n");
|
|
||||||
|
|
||||||
/* FIFO not filled. We will cycle this loop for a while
|
|
||||||
* and either the peripheral will fill it faster,
|
|
||||||
* tripping a fast empty with insb, or we empty it. */
|
|
||||||
*bufp++ = inb(fifo);
|
|
||||||
left--;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* scoop up anything left in the FIFO */
|
|
||||||
while (left && !(inb(ECONTROL(port) & 0x01))) {
|
|
||||||
*bufp++ = inb(fifo);
|
|
||||||
left--;
|
|
||||||
}
|
|
||||||
|
|
||||||
port->ieee1284.phase = IEEE1284_PH_REV_IDLE;
|
|
||||||
dump_parport_state("rev idle2", port);
|
|
||||||
|
|
||||||
out_no_data:
|
|
||||||
|
|
||||||
/* Go to forward idle mode to shut the peripheral up (event 47). */
|
|
||||||
parport_frob_control(port, PARPORT_CONTROL_INIT, PARPORT_CONTROL_INIT);
|
|
||||||
|
|
||||||
/* event 49: PError goes high */
|
|
||||||
r = parport_wait_peripheral(port,
|
|
||||||
PARPORT_STATUS_PAPEROUT,
|
|
||||||
PARPORT_STATUS_PAPEROUT);
|
|
||||||
if (r) {
|
|
||||||
printk(KERN_DEBUG
|
|
||||||
"%s: PE timeout FWDIDLE (%d) in ecp_read_block_pio\n",
|
|
||||||
port->name, r);
|
|
||||||
}
|
|
||||||
|
|
||||||
port->ieee1284.phase = IEEE1284_PH_FWD_IDLE;
|
|
||||||
|
|
||||||
/* Finish up. */
|
|
||||||
{
|
|
||||||
int lost = get_fifo_residue(port);
|
|
||||||
if (lost)
|
|
||||||
/* Shouldn't happen with compliant peripherals. */
|
|
||||||
printk(KERN_DEBUG "%s: DATA LOSS (%d bytes)!\n",
|
|
||||||
port->name, lost);
|
|
||||||
}
|
|
||||||
|
|
||||||
dump_parport_state("fwd idle", port);
|
|
||||||
return length - left;
|
|
||||||
}
|
|
||||||
#endif /* 0 */
|
|
||||||
#endif /* IEEE 1284 support */
|
#endif /* IEEE 1284 support */
|
||||||
#endif /* Allowed to use FIFO/DMA */
|
#endif /* Allowed to use FIFO/DMA */
|
||||||
|
|
||||||
|
|
|
@ -82,27 +82,6 @@ static unsigned char parport_sunbpp_read_data(struct parport *p)
|
||||||
return sbus_readb(®s->p_dr);
|
return sbus_readb(®s->p_dr);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
static void control_pc_to_sunbpp(struct parport *p, unsigned char status)
|
|
||||||
{
|
|
||||||
struct bpp_regs __iomem *regs = (struct bpp_regs __iomem *)p->base;
|
|
||||||
unsigned char value_tcr = sbus_readb(®s->p_tcr);
|
|
||||||
unsigned char value_or = sbus_readb(®s->p_or);
|
|
||||||
|
|
||||||
if (status & PARPORT_CONTROL_STROBE)
|
|
||||||
value_tcr |= P_TCR_DS;
|
|
||||||
if (status & PARPORT_CONTROL_AUTOFD)
|
|
||||||
value_or |= P_OR_AFXN;
|
|
||||||
if (status & PARPORT_CONTROL_INIT)
|
|
||||||
value_or |= P_OR_INIT;
|
|
||||||
if (status & PARPORT_CONTROL_SELECT)
|
|
||||||
value_or |= P_OR_SLCT_IN;
|
|
||||||
|
|
||||||
sbus_writeb(value_or, ®s->p_or);
|
|
||||||
sbus_writeb(value_tcr, ®s->p_tcr);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static unsigned char status_sunbpp_to_pc(struct parport *p)
|
static unsigned char status_sunbpp_to_pc(struct parport *p)
|
||||||
{
|
{
|
||||||
struct bpp_regs __iomem *regs = (struct bpp_regs __iomem *)p->base;
|
struct bpp_regs __iomem *regs = (struct bpp_regs __iomem *)p->base;
|
||||||
|
|
Loading…
Add table
Reference in a new issue