提交 4edb3869 编写于 作者: H Helge Deller

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: NHelge Deller <deller@gmx.de>
上级 c218c713
...@@ -234,7 +234,7 @@ static int parport_PS2_supported(struct parport *pb) ...@@ -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, ...@@ -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, ...@@ -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) ...@@ -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); ...@@ -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 */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册