Changeset cccd60c3 in mainline for uspace/drv/bus
- Timestamp:
- 2017-10-10T06:51:02Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- c46bfbc
- Parents:
- 2bdf92a5
- Location:
- uspace/drv/bus
- Files:
-
- 2 edited
-
isa/isa.c (modified) (1 diff)
-
pci/pciintel/pci.c (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/isa/isa.c
r2bdf92a5 rcccd60c3 115 115 } 116 116 117 static bool isa_fun_enable_interrupt(ddf_fun_t *fnode) 118 { 119 /* This is an old ugly way, copied from pci driver */ 120 assert(fnode); 117 static int isa_fun_enable_interrupt(ddf_fun_t *fnode, int irq) 118 { 121 119 isa_fun_t *fun = isa_fun(fnode); 122 assert(fun);123 124 120 const hw_resource_list_t *res = &fun->hw_resources; 125 assert(res); 121 bool found; 122 123 /* Check that specified irq really belongs to the function */ 124 found = false; 126 125 for (size_t i = 0; i < res->count; ++i) { 127 if (res->resources[i].type == INTERRUPT) { 128 int rc = irc_enable_interrupt( 129 res->resources[i].res.interrupt.irq); 130 131 if (rc != EOK) 132 return false; 133 } 134 } 135 136 return true; 126 if (res->resources[i].type == INTERRUPT && 127 res->resources[i].res.interrupt.irq == irq) { 128 found = true; 129 break; 130 } 131 } 132 133 if (!found) 134 return EINVAL; 135 136 return irc_enable_interrupt(irq); 137 137 } 138 138 -
uspace/drv/bus/pci/pciintel/pci.c
r2bdf92a5 rcccd60c3 99 99 } 100 100 101 static bool pciintel_enable_interrupt(ddf_fun_t *fnode) 102 { 103 /* This is an old ugly way */ 104 assert(fnode); 101 static int pciintel_enable_interrupt(ddf_fun_t *fnode, int irq) 102 { 105 103 pci_fun_t *dev_data = pci_fun(fnode); 106 104 107 size_t i = 0;105 size_t i; 108 106 hw_resource_list_t *res = &dev_data->hw_resources; 109 for (; i < res->count; i++) { 107 bool found = false; 108 109 found = false; 110 for (i = 0; i < res->count; i++) { 110 111 if (res->resources[i].type == INTERRUPT) { 111 int rc = irc_enable_interrupt( 112 res->resources[i].res.interrupt.irq); 113 114 if (rc != EOK) 115 return false; 112 found = true; 113 break; 116 114 } 117 115 } 118 116 119 return true; 117 if (!found) 118 return EINVAL; 119 120 return irc_enable_interrupt(irq); 120 121 } 121 122
Note:
See TracChangeset
for help on using the changeset viewer.
