Changeset 1889786 in mainline for uspace/drv/uhci-hcd/pci.c
- Timestamp:
- 2011-05-25T18:05:51Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 14e7959, 9ca8539, b8cab5c
- Parents:
- c9256c5 (diff), fb2de0a (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/uhci-hcd/pci.c
rc9256c5 r1889786 52 52 * @return Error code. 53 53 */ 54 int pci_get_my_registers( ddf_dev_t *dev,54 int pci_get_my_registers(const ddf_dev_t *dev, 55 55 uintptr_t *io_reg_address, size_t *io_reg_size, int *irq_no) 56 56 { 57 assert(dev != NULL); 57 assert(dev); 58 assert(io_reg_address); 59 assert(io_reg_size); 60 assert(irq_no); 58 61 59 62 int parent_phone = … … 66 69 int rc = hw_res_get_resource_list(parent_phone, &hw_resources); 67 70 if (rc != EOK) { 68 goto leave; 71 async_hangup(parent_phone); 72 return rc; 69 73 } 70 74 … … 78 82 size_t i; 79 83 for (i = 0; i < hw_resources.count; i++) { 80 hw_resource_t *res = &hw_resources.resources[i];84 const hw_resource_t *res = &hw_resources.resources[i]; 81 85 switch (res->type) 82 86 { … … 99 103 } 100 104 } 105 async_hangup(parent_phone); 101 106 102 if (!io_found || !irq_found) { 103 rc = ENOENT; 104 goto leave; 105 } 107 if (!io_found || !irq_found) 108 return ENOENT; 106 109 107 110 *io_reg_address = io_address; … … 109 112 *irq_no = irq; 110 113 111 rc = EOK; 112 leave: 113 async_hangup(parent_phone); 114 return rc; 114 return EOK; 115 115 } 116 116 /*----------------------------------------------------------------------------*/ … … 120 120 * @return Error code. 121 121 */ 122 int pci_enable_interrupts( ddf_dev_t *device)122 int pci_enable_interrupts(const ddf_dev_t *device) 123 123 { 124 int parent_phone = devman_parent_device_connect(device->handle, 125 IPC_FLAG_BLOCKING); 126 bool enabled = hw_res_enable_interrupt(parent_phone); 124 const int parent_phone = 125 devman_parent_device_connect(device->handle, IPC_FLAG_BLOCKING); 126 if (parent_phone < 0) { 127 return parent_phone; 128 } 129 const bool enabled = hw_res_enable_interrupt(parent_phone); 127 130 async_hangup(parent_phone); 128 131 return enabled ? EOK : EIO; … … 134 137 * @return Error code. 135 138 */ 136 int pci_disable_legacy( ddf_dev_t *device)139 int pci_disable_legacy(const ddf_dev_t *device) 137 140 { 138 141 assert(device); 139 int parent_phone =142 const int parent_phone = 140 143 devman_parent_device_connect(device->handle, IPC_FLAG_BLOCKING); 141 144 if (parent_phone < 0) { … … 145 148 /* See UHCI design guide for these values p.45, 146 149 * write all WC bits in USB legacy register */ 147 sysarg_t address = 0xc0;148 sysarg_t value = 0xaf00;150 const sysarg_t address = 0xc0; 151 const sysarg_t value = 0xaf00; 149 152 150 int rc = async_req_3_0(parent_phone, DEV_IFACE_ID(PCI_DEV_IFACE),153 const int rc = async_req_3_0(parent_phone, DEV_IFACE_ID(PCI_DEV_IFACE), 151 154 IPC_M_CONFIG_SPACE_WRITE_16, address, value); 152 155 async_hangup(parent_phone);
Note:
See TracChangeset
for help on using the changeset viewer.