summaryrefslogtreecommitdiff
path: root/usr/src/uts/common/sys
diff options
context:
space:
mode:
authorgovinda <none@none>2005-11-22 09:04:33 -0800
committergovinda <none@none>2005-11-22 09:04:33 -0800
commit9c75c6bf17b72bb057d7a8879feba77ece65241a (patch)
treeb57f6279f6889ff9a74d728102c7a18ac2739e22 /usr/src/uts/common/sys
parente487bac029356f425a49182e98c030a816c1fd60 (diff)
downloadillumos-joyent-9c75c6bf17b72bb057d7a8879feba77ece65241a.tar.gz
6344060 Add MSI software support in bge driver
6344997 Add MSI software support in ohci driver 6344998 Add MSI software support in ehci driver 6348120 Add MSI software support in uhci driver 6349315 Add support for MSI64 transactions 6347105 Update MSI software support in mpt driver 6347109 Fix DDI framework MSI-X issues 6352670 Use proper behavior flag while calling ddi_intr_alloc 6343017 ddi_intr_remove_handler() returns DDI_FAILURE for MSI interrupts 6349316 px_pci should register legacy/fixed interrupt if MSIs are not available 6342807 Fire/Oberon driver panics on detach 6343874 Fire/Oberon Sun4u interrupt vector removal sequence incorrect 6343908 implement sun4v version of px_ib_intr_reset() 6348244 NGDR: panic when addboard resume on Starfire with socal 6348171 panic in ddi framework during esp_attach 6352440 sparc MDB ::interrupts output cleanup
Diffstat (limited to 'usr/src/uts/common/sys')
-rw-r--r--usr/src/uts/common/sys/bge_impl.h6
-rw-r--r--usr/src/uts/common/sys/ddi_intr_impl.h8
-rw-r--r--usr/src/uts/common/sys/pci.h6
-rw-r--r--usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h8
-rw-r--r--usr/src/uts/common/sys/usb/hcd/openhci/ohcid.h3
-rw-r--r--usr/src/uts/common/sys/usb/hcd/uhci/uhcid.h4
6 files changed, 22 insertions, 13 deletions
diff --git a/usr/src/uts/common/sys/bge_impl.h b/usr/src/uts/common/sys/bge_impl.h
index b1c74ca83c..9739b57cc3 100644
--- a/usr/src/uts/common/sys/bge_impl.h
+++ b/usr/src/uts/common/sys/bge_impl.h
@@ -569,7 +569,7 @@ typedef struct {
uint64_t hw_mac_addr; /* from chip register */
bge_mac_addr_t vendor_addr; /* transform of same */
- boolean_t bge_msi_enabled; /* default to false */
+ boolean_t msi_enabled; /* default to true */
} chip_id_t;
#define CHIP_FLAG_SUPPORTED 0x80
@@ -730,8 +730,6 @@ typedef struct bge {
ddi_intr_handle_t *htable; /* For array of interrupts */
int intr_type; /* What type of interrupt */
int intr_cnt; /* # of intrs count returned */
- size_t intr_size; /* Size of intr array to */
- /* allocate */
uint_t intr_pri; /* Interrupt priority */
int intr_cap; /* Interrupt capabilities */
uint32_t progress; /* attach tracking */
@@ -1134,7 +1132,7 @@ uint_t bge_chip_factotum(caddr_t arg);
void bge_chip_cyclic(void *arg);
enum ioc_reply bge_chip_ioctl(bge_t *bgep, queue_t *wq, mblk_t *mp,
struct iocblk *iocp);
-uint_t bge_intr(caddr_t arg);
+uint_t bge_intr(caddr_t arg1, caddr_t arg2);
extern uint32_t bge_rx_ticks_norm;
extern uint32_t bge_tx_ticks_norm;
extern uint32_t bge_rx_count_norm;
diff --git a/usr/src/uts/common/sys/ddi_intr_impl.h b/usr/src/uts/common/sys/ddi_intr_impl.h
index 24a1a86310..1afcca6faa 100644
--- a/usr/src/uts/common/sys/ddi_intr_impl.h
+++ b/usr/src/uts/common/sys/ddi_intr_impl.h
@@ -155,13 +155,13 @@ typedef struct ddi_intr_msix {
/* MSI-X Table related information */
ddi_acc_handle_t msix_tbl_hdl; /* MSI-X table handle */
- caddr_t msix_tbl_addr; /* MSI-X table addr */
- offset_t msix_tbl_offset; /* MSI-X table offset */
+ uint32_t *msix_tbl_addr; /* MSI-X table addr */
+ uint32_t msix_tbl_offset; /* MSI-X table offset */
/* MSI-X PBA Table related information */
ddi_acc_handle_t msix_pba_hdl; /* MSI-X PBA handle */
- caddr_t msix_pba_addr; /* MSI-X PBA addr */
- offset_t msix_pba_offset; /* MSI-X PBA offset */
+ uint32_t *msix_pba_addr; /* MSI-X PBA addr */
+ uint32_t msix_pba_offset; /* MSI-X PBA offset */
ddi_device_acc_attr_t msix_dev_attr; /* MSI-X device attr */
} ddi_intr_msix_t;
diff --git a/usr/src/uts/common/sys/pci.h b/usr/src/uts/common/sys/pci.h
index bd0bb7cd52..cfbe0d84a9 100644
--- a/usr/src/uts/common/sys/pci.h
+++ b/usr/src/uts/common/sys/pci.h
@@ -679,9 +679,9 @@ extern "C" {
*/
#define PCI_MSIX_CTRL 0x02 /* MSI-X control register, 2 bytes */
#define PCI_MSIX_TBL_OFFSET 0x04 /* MSI-X table offset, 4 bytes */
-#define PCI_MSIX_TBL_BIR_MASK 0x0003 /* MSI-X table BIR mask */
-#define PCI_MSIX_PBA_OFFSET 0x0C /* MSI-X pending bit array, 4 bytes */
-#define PCI_MSIX_PBA_BIR_MASK 0x0003 /* MSI-X PBA BIR mask */
+#define PCI_MSIX_TBL_BIR_MASK 0x0007 /* MSI-X table BIR mask */
+#define PCI_MSIX_PBA_OFFSET 0x08 /* MSI-X pending bit array, 4 bytes */
+#define PCI_MSIX_PBA_BIR_MASK 0x0007 /* MSI-X PBA BIR mask */
#define PCI_MSIX_TBL_SIZE_MASK 0x07FF /* table size mask in MSI-X ctrl reg */
#define PCI_MSIX_FUNCTION_MASK 0x4000 /* function mask in MSI-X ctrl reg */
diff --git a/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h b/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h
index af98789cef..478b3cd747 100644
--- a/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h
+++ b/usr/src/uts/common/sys/usb/hcd/ehci/ehcid.h
@@ -90,7 +90,11 @@ typedef struct ehci_state {
ddi_dma_attr_t ehci_dma_attr; /* DMA attributes */
ddi_intr_handle_t *ehci_htable; /* intr handle */
+ int ehci_intr_type; /* intr type used */
+ int ehci_intr_cnt; /* # of intrs inuse */
uint_t ehci_intr_pri; /* intr priority */
+ int ehci_intr_cap; /* intr capabilities */
+ boolean_t ehci_msi_enabled; /* default to true */
kmutex_t ehci_int_mutex; /* Global EHCI mutex */
/* Periodic Frame List area */
@@ -1006,7 +1010,6 @@ typedef struct setup_pkt {
#define PRINT_MASK_DUMPING 0x00000100 /* Dump ehci info */
#define PRINT_MASK_ALL 0xFFFFFFFF
-
/*
* workaround for ALI chips
*/
@@ -1135,7 +1138,8 @@ void ehci_handle_root_hub_pipe_stop_intr_polling(
/*
* EHCI Interrupt Handler entry point.
*/
-uint_t ehci_intr(caddr_t arg);
+uint_t ehci_intr(caddr_t arg1,
+ caddr_t arg2);
#ifdef __cplusplus
}
diff --git a/usr/src/uts/common/sys/usb/hcd/openhci/ohcid.h b/usr/src/uts/common/sys/usb/hcd/openhci/ohcid.h
index a0f553e77f..518727dc1b 100644
--- a/usr/src/uts/common/sys/usb/hcd/openhci/ohcid.h
+++ b/usr/src/uts/common/sys/usb/hcd/openhci/ohcid.h
@@ -138,7 +138,10 @@ typedef struct ohci_state {
ddi_dma_attr_t ohci_dma_attr; /* DMA attributes */
ddi_intr_handle_t *ohci_htable; /* intr handle */
+ int ohci_intr_type; /* intr type used */
+ int ohci_intr_cnt; /* # of intrs inuse */
uint_t ohci_intr_pri; /* intr priority */
+ int ohci_intr_cap; /* intr capabilities */
kmutex_t ohci_int_mutex; /* Mutex for struct */
/* HCCA area */
diff --git a/usr/src/uts/common/sys/usb/hcd/uhci/uhcid.h b/usr/src/uts/common/sys/usb/hcd/uhci/uhcid.h
index b428e37b38..1c817837b9 100644
--- a/usr/src/uts/common/sys/usb/hcd/uhci/uhcid.h
+++ b/usr/src/uts/common/sys/usb/hcd/uhci/uhcid.h
@@ -137,6 +137,10 @@ typedef struct uhci_state {
ddi_dma_attr_t uhci_dma_attr; /* DMA attributes */
ddi_intr_handle_t *uhci_htable; /* intr handle */
+ int uhci_intr_type; /* intr type used */
+ int uhci_intr_cnt; /* # of intrs inuse */
+ uint_t uhci_intr_pri; /* intr priority */
+ int uhci_intr_cap; /* intr capabilities */
kmutex_t uhci_int_mutex; /* Mutex for struct */
frame_lst_table_t *uhci_frame_lst_tablep; /* Virtual HCCA ptr */