diff options
author | David Brownell <david-b@pacbell.net> | 2007-05-08 03:27:35 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:05 -0400 |
commit | c15a3837d2aa30e3ea41aed49d80abed355ab6bd (patch) | |
tree | 23da1c16c1e73ac5679f81c3264fc0faeb92fcf2 /include | |
parent | d2d9433a4c84c9e7ed78d633fdbffb35d5afda17 (diff) |
parport->dev driver model support
Currently a parport_driver can't get a handle on the device node for the
underlying parport (PNPACPI, PCI, etc). That prevents correct placement of
sysfs child nodes, which can affect things like power management.
This patch adds a field to "struct parport" pointing to that device node, and
updates non-legacy port drivers to initialize that device pointer. That field
replaces the analagous PCI-only support in parport_pc.
[akpm@linux-foundation.org: fix powerpc build]
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-powerpc/parport.h | 5 | ||||
-rw-r--r-- | include/linux/parport.h | 8 | ||||
-rw-r--r-- | include/linux/parport_pc.h | 3 |
3 files changed, 7 insertions, 9 deletions
diff --git a/include/asm-powerpc/parport.h b/include/asm-powerpc/parport.h index b37b81e37278..414c50e2e881 100644 --- a/include/asm-powerpc/parport.h +++ b/include/asm-powerpc/parport.h | |||
@@ -12,11 +12,6 @@ | |||
12 | 12 | ||
13 | #include <asm/prom.h> | 13 | #include <asm/prom.h> |
14 | 14 | ||
15 | extern struct parport *parport_pc_probe_port (unsigned long int base, | ||
16 | unsigned long int base_hi, | ||
17 | int irq, int dma, | ||
18 | struct pci_dev *dev); | ||
19 | |||
20 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) | 15 | static int __devinit parport_pc_find_nonpci_ports (int autoirq, int autodma) |
21 | { | 16 | { |
22 | struct device_node *np; | 17 | struct device_node *np; |
diff --git a/include/linux/parport.h b/include/linux/parport.h index 80682aaa8f18..9cdd6943e01b 100644 --- a/include/linux/parport.h +++ b/include/linux/parport.h | |||
@@ -279,6 +279,10 @@ struct parport { | |||
279 | int dma; | 279 | int dma; |
280 | int muxport; /* which muxport (if any) this is */ | 280 | int muxport; /* which muxport (if any) this is */ |
281 | int portnum; /* which physical parallel port (not mux) */ | 281 | int portnum; /* which physical parallel port (not mux) */ |
282 | struct device *dev; /* Physical device associated with IO/DMA. | ||
283 | * This may unfortulately be null if the | ||
284 | * port has a legacy driver. | ||
285 | */ | ||
282 | 286 | ||
283 | struct parport *physport; | 287 | struct parport *physport; |
284 | /* If this is a non-default mux | 288 | /* If this is a non-default mux |
@@ -289,7 +293,7 @@ struct parport { | |||
289 | following structure members are | 293 | following structure members are |
290 | meaningless: devices, cad, muxsel, | 294 | meaningless: devices, cad, muxsel, |
291 | waithead, waittail, flags, pdir, | 295 | waithead, waittail, flags, pdir, |
292 | ieee1284, *_lock. | 296 | dev, ieee1284, *_lock. |
293 | 297 | ||
294 | It this is a default mux parport, or | 298 | It this is a default mux parport, or |
295 | there is no mux involved, this points to | 299 | there is no mux involved, this points to |
@@ -302,7 +306,7 @@ struct parport { | |||
302 | 306 | ||
303 | struct pardevice *waithead; | 307 | struct pardevice *waithead; |
304 | struct pardevice *waittail; | 308 | struct pardevice *waittail; |
305 | 309 | ||
306 | struct list_head list; | 310 | struct list_head list; |
307 | unsigned int flags; | 311 | unsigned int flags; |
308 | 312 | ||
diff --git a/include/linux/parport_pc.h b/include/linux/parport_pc.h index 1cc0f6b1a49a..ea8c6d84996d 100644 --- a/include/linux/parport_pc.h +++ b/include/linux/parport_pc.h | |||
@@ -38,7 +38,6 @@ struct parport_pc_private { | |||
38 | /* buffer suitable for DMA, if DMA enabled */ | 38 | /* buffer suitable for DMA, if DMA enabled */ |
39 | char *dma_buf; | 39 | char *dma_buf; |
40 | dma_addr_t dma_handle; | 40 | dma_addr_t dma_handle; |
41 | struct pci_dev *dev; | ||
42 | struct list_head list; | 41 | struct list_head list; |
43 | struct parport *port; | 42 | struct parport *port; |
44 | }; | 43 | }; |
@@ -232,7 +231,7 @@ extern int parport_pc_claim_resources(struct parport *p); | |||
232 | extern struct parport *parport_pc_probe_port (unsigned long base, | 231 | extern struct parport *parport_pc_probe_port (unsigned long base, |
233 | unsigned long base_hi, | 232 | unsigned long base_hi, |
234 | int irq, int dma, | 233 | int irq, int dma, |
235 | struct pci_dev *dev); | 234 | struct device *dev); |
236 | extern void parport_pc_unregister_port (struct parport *p); | 235 | extern void parport_pc_unregister_port (struct parport *p); |
237 | 236 | ||
238 | #endif | 237 | #endif |