mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
parisc: parport0: fix this legacy no-device port driver!
Fix the above kernel error from parport_announce_port() on 32bit GSC machines (e.g. B160L). The parport driver requires now a pointer to the device struct. Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
c218c713c5
commit
4edb38695d
@ -234,7 +234,7 @@ static int parport_PS2_supported(struct parport *pb)
|
|||||||
|
|
||||||
struct parport *parport_gsc_probe_port(unsigned long base,
|
struct parport *parport_gsc_probe_port(unsigned long base,
|
||||||
unsigned long base_hi, int irq,
|
unsigned long base_hi, int irq,
|
||||||
int dma, struct pci_dev *dev)
|
int dma, struct parisc_device *padev)
|
||||||
{
|
{
|
||||||
struct parport_gsc_private *priv;
|
struct parport_gsc_private *priv;
|
||||||
struct parport_operations *ops;
|
struct parport_operations *ops;
|
||||||
@ -258,7 +258,6 @@ struct parport *parport_gsc_probe_port(unsigned long base,
|
|||||||
priv->ctr_writable = 0xff;
|
priv->ctr_writable = 0xff;
|
||||||
priv->dma_buf = 0;
|
priv->dma_buf = 0;
|
||||||
priv->dma_handle = 0;
|
priv->dma_handle = 0;
|
||||||
priv->dev = dev;
|
|
||||||
p->base = base;
|
p->base = base;
|
||||||
p->base_hi = base_hi;
|
p->base_hi = base_hi;
|
||||||
p->irq = irq;
|
p->irq = irq;
|
||||||
@ -282,6 +281,7 @@ struct parport *parport_gsc_probe_port(unsigned long base,
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
p->dev = &padev->dev;
|
||||||
p->base_hi = base_hi;
|
p->base_hi = base_hi;
|
||||||
p->modes = tmp.modes;
|
p->modes = tmp.modes;
|
||||||
p->size = (p->modes & PARPORT_MODE_EPP)?8:3;
|
p->size = (p->modes & PARPORT_MODE_EPP)?8:3;
|
||||||
@ -373,7 +373,7 @@ static int parport_init_chip(struct parisc_device *dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
p = parport_gsc_probe_port(port, 0, dev->irq,
|
p = parport_gsc_probe_port(port, 0, dev->irq,
|
||||||
/* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, NULL);
|
/* PARPORT_IRQ_NONE */ PARPORT_DMA_NONE, dev);
|
||||||
if (p)
|
if (p)
|
||||||
parport_count++;
|
parport_count++;
|
||||||
dev_set_drvdata(&dev->dev, p);
|
dev_set_drvdata(&dev->dev, p);
|
||||||
|
@ -217,6 +217,6 @@ extern void parport_gsc_dec_use_count(void);
|
|||||||
extern struct parport *parport_gsc_probe_port(unsigned long base,
|
extern struct parport *parport_gsc_probe_port(unsigned long base,
|
||||||
unsigned long base_hi,
|
unsigned long base_hi,
|
||||||
int irq, int dma,
|
int irq, int dma,
|
||||||
struct pci_dev *dev);
|
struct parisc_device *padev);
|
||||||
|
|
||||||
#endif /* __DRIVERS_PARPORT_PARPORT_GSC_H */
|
#endif /* __DRIVERS_PARPORT_PARPORT_GSC_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user