Changeset 8e9becf6 in mainline for uspace/drv/pciintel/pci.c
- Timestamp:
- 2011-03-08T20:00:47Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 021351c
- Parents:
- 0588062e (diff), d2fc1c2 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/pciintel/pci.c
r0588062e r8e9becf6 94 94 sysarg_t apic; 95 95 sysarg_t i8259; 96 96 97 int irc_phone = -1; 97 98 int irc_service = 0; … … 103 104 } 104 105 105 if (irc_service) { 106 while (irc_phone < 0) 107 irc_phone = service_connect_blocking(irc_service, 0, 0); 108 } else { 106 if (irc_service == 0) 109 107 return false; 110 } 108 109 irc_phone = service_connect_blocking(irc_service, 0, 0); 110 if (irc_phone < 0) 111 return false; 111 112 112 113 size_t i; … … 114 115 if (dev_data->hw_resources.resources[i].type == INTERRUPT) { 115 116 int irq = dev_data->hw_resources.resources[i].res.interrupt.irq; 116 async_msg_1(irc_phone, IRC_ENABLE_INTERRUPT, irq); 117 int rc = async_req_1_0(irc_phone, IRC_ENABLE_INTERRUPT, irq); 118 if (rc != EOK) { 119 async_hangup(irc_phone); 120 return false; 121 } 117 122 } 118 123 } … … 122 127 } 123 128 124 static int pci_config_space_write_16(ddf_fun_t *fun, uint32_t address, uint16_t data) 129 static int pci_config_space_write_32( 130 ddf_fun_t *fun, uint32_t address, uint32_t data) 131 { 132 if (address > 252) 133 return EINVAL; 134 pci_conf_write_32(PCI_FUN(fun), address, data); 135 return EOK; 136 } 137 138 static int pci_config_space_write_16( 139 ddf_fun_t *fun, uint32_t address, uint16_t data) 125 140 { 126 141 if (address > 254) … … 130 145 } 131 146 147 static int pci_config_space_write_8( 148 ddf_fun_t *fun, uint32_t address, uint8_t data) 149 { 150 if (address > 255) 151 return EINVAL; 152 pci_conf_write_8(PCI_FUN(fun), address, data); 153 return EOK; 154 } 155 156 static int pci_config_space_read_32( 157 ddf_fun_t *fun, uint32_t address, uint32_t *data) 158 { 159 if (address > 252) 160 return EINVAL; 161 *data = pci_conf_read_32(PCI_FUN(fun), address); 162 return EOK; 163 } 164 165 static int pci_config_space_read_16( 166 ddf_fun_t *fun, uint32_t address, uint16_t *data) 167 { 168 if (address > 254) 169 return EINVAL; 170 *data = pci_conf_read_16(PCI_FUN(fun), address); 171 return EOK; 172 } 173 174 static int pci_config_space_read_8( 175 ddf_fun_t *fun, uint32_t address, uint8_t *data) 176 { 177 if (address > 255) 178 return EINVAL; 179 *data = pci_conf_read_8(PCI_FUN(fun), address); 180 return EOK; 181 } 132 182 133 183 static hw_res_ops_t pciintel_hw_res_ops = { … … 137 187 138 188 static pci_dev_iface_t pci_dev_ops = { 139 .config_space_read_8 = NULL,140 .config_space_read_16 = NULL,141 .config_space_read_32 = NULL,142 .config_space_write_8 = NULL,189 .config_space_read_8 = &pci_config_space_read_8, 190 .config_space_read_16 = &pci_config_space_read_16, 191 .config_space_read_32 = &pci_config_space_read_32, 192 .config_space_write_8 = &pci_config_space_write_8, 143 193 .config_space_write_16 = &pci_config_space_write_16, 144 .config_space_write_32 = NULL194 .config_space_write_32 = &pci_config_space_write_32 145 195 }; 146 196
Note:
See TracChangeset
for help on using the changeset viewer.