Changeset c90aed4 in mainline for uspace/drv/bus/pci/pciintel/pci.c


Ignore:
Timestamp:
2013-05-23T17:25:28Z (12 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
192565b, 94dfb92
Parents:
4a5a18be
Message:

explicitly enable PCI bus mastering for each PCI bus function (this fixes #539)
a nicer way would be to enable the bus mastering only for devices/functions actually claimed by a driver, but the DDF needs some polishing in these areas

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/pci/pciintel/pci.c

    r4a5a18be rc90aed4  
    327327
    328328        /* Vendor ID & Device ID, length(incl \0) 22 */
    329         rc = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04x&dev=%04x",
    330             fun->vendor_id, fun->device_id);
     329        rc = snprintf(match_id_str, ID_MAX_STR_LEN, "pci/ven=%04"
     330            PRIx16 "&dev=%04" PRIx16, fun->vendor_id, fun->device_id);
    331331        if (rc < 0) {
    332332                ddf_msg(LVL_ERROR, "Failed creating match ID str: %s",
     
    758758        fun->vendor_id = pci_conf_read_16(fun, PCI_VENDOR_ID);
    759759        fun->device_id = pci_conf_read_16(fun, PCI_DEVICE_ID);
     760       
     761        /* Explicitly enable PCI bus mastering */
     762        fun->command = pci_conf_read_16(fun, PCI_COMMAND) |
     763            PCI_COMMAND_MASTER;
     764        pci_conf_write_16(fun, PCI_COMMAND, fun->command);
     765       
    760766        fun->class_code = pci_conf_read_8(fun, PCI_BASE_CLASS);
    761767        fun->subclass_code = pci_conf_read_8(fun, PCI_SUB_CLASS);
Note: See TracChangeset for help on using the changeset viewer.