diff options
| author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-11 14:37:45 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-02-11 14:37:45 -0500 |
| commit | c827ba4cb49a30ce581201fd0ba2be77cde412c7 (patch) | |
| tree | b573020e4d30ecdf69b22fcd1ced3dbb0e024ed3 /include | |
| parent | fdba0f2da4b1db682b829b76302b2f25c376051c (diff) | |
| parent | 784020fb950741cbb7390c6b622321da626fb1e8 (diff) | |
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC64]: Update defconfig.
[SPARC64]: Add PCI MSI support on Niagara.
[SPARC64] IRQ: Use irq_desc->chip_data instead of irq_desc->handler_data
[SPARC64]: Add obppath sysfs attribute for SBUS and PCI devices.
[PARTITION]: Add whole_disk attribute.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-sparc64/irq.h | 4 | ||||
| -rw-r--r-- | include/asm-sparc64/pbm.h | 28 | ||||
| -rw-r--r-- | include/linux/genhd.h | 8 |
3 files changed, 39 insertions, 1 deletions
diff --git a/include/asm-sparc64/irq.h b/include/asm-sparc64/irq.h index 905e59b4a737..5d233b42fe13 100644 --- a/include/asm-sparc64/irq.h +++ b/include/asm-sparc64/irq.h | |||
| @@ -46,6 +46,10 @@ extern void irq_install_pre_handler(int virt_irq, | |||
| 46 | #define irq_canonicalize(irq) (irq) | 46 | #define irq_canonicalize(irq) (irq) |
| 47 | extern unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap); | 47 | extern unsigned int build_irq(int inofixup, unsigned long iclr, unsigned long imap); |
| 48 | extern unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino); | 48 | extern unsigned int sun4v_build_irq(u32 devhandle, unsigned int devino); |
| 49 | extern unsigned int sun4v_build_msi(u32 devhandle, unsigned int *virt_irq_p, | ||
| 50 | unsigned int msi_devino_start, | ||
| 51 | unsigned int msi_devino_end); | ||
| 52 | extern void sun4v_destroy_msi(unsigned int virt_irq); | ||
| 49 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); | 53 | extern unsigned int sbus_build_irq(void *sbus, unsigned int ino); |
| 50 | 54 | ||
| 51 | static __inline__ void set_softint(unsigned long bits) | 55 | static __inline__ void set_softint(unsigned long bits) |
diff --git a/include/asm-sparc64/pbm.h b/include/asm-sparc64/pbm.h index dcfa7629358c..7a246d8a1828 100644 --- a/include/asm-sparc64/pbm.h +++ b/include/asm-sparc64/pbm.h | |||
| @@ -11,6 +11,7 @@ | |||
| 11 | #include <linux/pci.h> | 11 | #include <linux/pci.h> |
| 12 | #include <linux/ioport.h> | 12 | #include <linux/ioport.h> |
| 13 | #include <linux/spinlock.h> | 13 | #include <linux/spinlock.h> |
| 14 | #include <linux/msi.h> | ||
| 14 | 15 | ||
| 15 | #include <asm/io.h> | 16 | #include <asm/io.h> |
| 16 | #include <asm/page.h> | 17 | #include <asm/page.h> |
| @@ -177,6 +178,24 @@ struct pci_pbm_info { | |||
| 177 | int is_66mhz_capable; | 178 | int is_66mhz_capable; |
| 178 | int all_devs_66mhz; | 179 | int all_devs_66mhz; |
| 179 | 180 | ||
| 181 | #ifdef CONFIG_PCI_MSI | ||
| 182 | /* MSI info. */ | ||
| 183 | u32 msiq_num; | ||
| 184 | u32 msiq_ent_count; | ||
| 185 | u32 msiq_first; | ||
| 186 | u32 msiq_first_devino; | ||
| 187 | u32 msi_num; | ||
| 188 | u32 msi_first; | ||
| 189 | u32 msi_data_mask; | ||
| 190 | u32 msix_data_width; | ||
| 191 | u64 msi32_start; | ||
| 192 | u64 msi64_start; | ||
| 193 | u32 msi32_len; | ||
| 194 | u32 msi64_len; | ||
| 195 | void *msi_queues; | ||
| 196 | unsigned long *msi_bitmap; | ||
| 197 | #endif /* !(CONFIG_PCI_MSI) */ | ||
| 198 | |||
| 180 | /* This PBM's streaming buffer. */ | 199 | /* This PBM's streaming buffer. */ |
| 181 | struct pci_strbuf stc; | 200 | struct pci_strbuf stc; |
| 182 | 201 | ||
| @@ -213,6 +232,12 @@ struct pci_controller_info { | |||
| 213 | void (*base_address_update)(struct pci_dev *, int); | 232 | void (*base_address_update)(struct pci_dev *, int); |
| 214 | void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *); | 233 | void (*resource_adjust)(struct pci_dev *, struct resource *, struct resource *); |
| 215 | 234 | ||
| 235 | #ifdef CONFIG_PCI_MSI | ||
| 236 | int (*setup_msi_irq)(unsigned int *virt_irq_p, struct pci_dev *pdev, | ||
| 237 | struct msi_desc *entry); | ||
| 238 | void (*teardown_msi_irq)(unsigned int virt_irq, struct pci_dev *pdev); | ||
| 239 | #endif | ||
| 240 | |||
| 216 | /* Now things for the actual PCI bus probes. */ | 241 | /* Now things for the actual PCI bus probes. */ |
| 217 | struct pci_ops *pci_ops; | 242 | struct pci_ops *pci_ops; |
| 218 | unsigned int pci_first_busno; | 243 | unsigned int pci_first_busno; |
| @@ -231,6 +256,9 @@ struct pcidev_cookie { | |||
| 231 | int num_prom_regs; | 256 | int num_prom_regs; |
| 232 | struct linux_prom_pci_registers prom_assignments[PROMREG_MAX]; | 257 | struct linux_prom_pci_registers prom_assignments[PROMREG_MAX]; |
| 233 | int num_prom_assignments; | 258 | int num_prom_assignments; |
| 259 | #ifdef CONFIG_PCI_MSI | ||
| 260 | unsigned int msi_num; | ||
| 261 | #endif | ||
| 234 | }; | 262 | }; |
| 235 | 263 | ||
| 236 | /* Currently these are the same across all PCI controllers | 264 | /* Currently these are the same across all PCI controllers |
diff --git a/include/linux/genhd.h b/include/linux/genhd.h index 7a566fad3f72..2c65da7cabb2 100644 --- a/include/linux/genhd.h +++ b/include/linux/genhd.h | |||
| @@ -20,6 +20,8 @@ enum { | |||
| 20 | LINUX_EXTENDED_PARTITION = 0x85, | 20 | LINUX_EXTENDED_PARTITION = 0x85, |
| 21 | WIN98_EXTENDED_PARTITION = 0x0f, | 21 | WIN98_EXTENDED_PARTITION = 0x0f, |
| 22 | 22 | ||
| 23 | SUN_WHOLE_DISK = DOS_EXTENDED_PARTITION, | ||
| 24 | |||
| 23 | LINUX_SWAP_PARTITION = 0x82, | 25 | LINUX_SWAP_PARTITION = 0x82, |
| 24 | LINUX_DATA_PARTITION = 0x83, | 26 | LINUX_DATA_PARTITION = 0x83, |
| 25 | LINUX_LVM_PARTITION = 0x8e, | 27 | LINUX_LVM_PARTITION = 0x8e, |
| @@ -402,10 +404,14 @@ struct unixware_disklabel { | |||
| 402 | 404 | ||
| 403 | #ifdef __KERNEL__ | 405 | #ifdef __KERNEL__ |
| 404 | 406 | ||
| 407 | #define ADDPART_FLAG_NONE 0 | ||
| 408 | #define ADDPART_FLAG_RAID 1 | ||
| 409 | #define ADDPART_FLAG_WHOLEDISK 2 | ||
| 410 | |||
| 405 | char *disk_name (struct gendisk *hd, int part, char *buf); | 411 | char *disk_name (struct gendisk *hd, int part, char *buf); |
| 406 | 412 | ||
| 407 | extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); | 413 | extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev); |
| 408 | extern void add_partition(struct gendisk *, int, sector_t, sector_t); | 414 | extern void add_partition(struct gendisk *, int, sector_t, sector_t, int); |
| 409 | extern void delete_partition(struct gendisk *, int); | 415 | extern void delete_partition(struct gendisk *, int); |
| 410 | 416 | ||
| 411 | extern struct gendisk *alloc_disk_node(int minors, int node_id); | 417 | extern struct gendisk *alloc_disk_node(int minors, int node_id); |
