Changeset 6dbc500 in mainline for uspace/drv/bus/pci/pciintel/pci.c
- Timestamp:
- 2013-09-11T17:35:28Z (11 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0a428943
- Parents:
- 65ac220
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/pci/pciintel/pci.c
r65ac220 r6dbc500 57 57 #include <ops/hw_res.h> 58 58 #include <device/hw_res.h> 59 #include <ops/pio_window.h> 60 #include <device/pio_window.h> 59 61 #include <ddi.h> 60 62 #include <pci_dev_iface.h> … … 141 143 } 142 144 145 static pio_window_t *pciintel_get_pio_window(ddf_fun_t *fnode) 146 { 147 pci_fun_t *fun = pci_fun(fnode); 148 149 if (fun == NULL) 150 return NULL; 151 return &fun->pio_window; 152 } 153 154 143 155 static int pci_config_space_write_32(ddf_fun_t *fun, uint32_t address, 144 156 uint32_t data) … … 198 210 .get_resource_list = &pciintel_get_resources, 199 211 .enable_interrupt = &pciintel_enable_interrupt, 212 }; 213 214 static pio_window_ops_t pciintel_pio_window_ops = { 215 .get_pio_window = &pciintel_get_pio_window 200 216 }; 201 217 … … 211 227 static ddf_dev_ops_t pci_fun_ops = { 212 228 .interfaces[HW_RES_DEV_IFACE] = &pciintel_hw_res_ops, 229 .interfaces[PIO_WINDOW_DEV_IFACE] = &pciintel_pio_window_ops, 213 230 .interfaces[PCI_DEV_IFACE] = &pci_dev_ops 214 231 }; … … 617 634 pci_read_bars(fun); 618 635 pci_read_interrupt(fun); 636 637 /* Propagate the PIO window to the function. */ 638 fun->pio_window = bus->pio_win; 619 639 620 640 ddf_fun_set_ops(fun->fnode, &pci_fun_ops); … … 647 667 static int pci_dev_add(ddf_dev_t *dnode) 648 668 { 669 hw_resource_list_t hw_resources; 649 670 pci_bus_t *bus = NULL; 650 671 ddf_fun_t *ctl = NULL; … … 672 693 goto fail; 673 694 } 674 675 hw_resource_list_t hw_resources; 695 696 rc = pio_window_get(sess, &bus->pio_win); 697 if (rc != EOK) { 698 ddf_msg(LVL_ERROR, "pci_dev_add failed to get PIO window " 699 "for the device."); 700 goto fail; 701 } 676 702 677 703 rc = hw_res_get_resource_list(sess, &hw_resources); … … 763 789 { 764 790 ddf_log_init(NAME); 765 pci_fun_ops.interfaces[HW_RES_DEV_IFACE] = &pciintel_hw_res_ops;766 pci_fun_ops.interfaces[PCI_DEV_IFACE] = &pci_dev_ops;767 791 } 768 792
Note:
See TracChangeset
for help on using the changeset viewer.