Lines Matching defs:msi
932 cfg->msi.msi_location = ptr;
933 cfg->msi.msi_ctrl = REG(ptr + PCIR_MSI_CTRL, 2);
934 cfg->msi.msi_msgnum = 1 << ((cfg->msi.msi_ctrl &
1817 if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
2343 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2346 pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR,
2348 if (msi->msi_ctrl & PCIM_MSICTRL_64BIT) {
2349 pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR_HIGH,
2351 pci_write_config(child, msi->msi_location + PCIR_MSI_DATA_64BIT,
2354 pci_write_config(child, msi->msi_location + PCIR_MSI_DATA, data,
2358 msi->msi_ctrl |= PCIM_MSICTRL_MSI_ENABLE;
2359 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2360 msi->msi_ctrl, 2);
2370 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2376 msi->msi_ctrl &= ~PCIM_MSICTRL_MSI_ENABLE;
2377 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2378 msi->msi_ctrl, 2);
2390 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2394 if (msi->msi_ctrl & PCIM_MSICTRL_MSI_ENABLE) {
2395 address = msi->msi_addr;
2396 data = msi->msi_data;
2397 pci_write_config(dev, msi->msi_location + PCIR_MSI_ADDR,
2399 if (msi->msi_ctrl & PCIM_MSICTRL_64BIT) {
2400 pci_write_config(dev, msi->msi_location +
2402 pci_write_config(dev, msi->msi_location +
2405 pci_write_config(dev, msi->msi_location + PCIR_MSI_DATA,
2408 pci_write_config(dev, msi->msi_location + PCIR_MSI_CTRL, msi->msi_ctrl,
2429 if (cfg->msi.msi_alloc > 0) {
2431 if (cfg->msi.msi_handlers == 0)
2433 for (i = 0; i < cfg->msi.msi_alloc; i++) {
2442 dinfo->cfg.msi.msi_addr = addr;
2443 dinfo->cfg.msi.msi_data = data;
2600 if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
2608 if (cfg->msi.msi_location == 0 || !pci_do_msi)
2614 *count, cfg->msi.msi_msgnum);
2617 actual = min(*count, cfg->msi.msi_msgnum);
2686 ctrl = cfg->msi.msi_ctrl;
2689 cfg->msi.msi_ctrl = ctrl;
2690 pci_write_config(child, cfg->msi.msi_location + PCIR_MSI_CTRL, ctrl, 2);
2693 cfg->msi.msi_alloc = actual;
2694 cfg->msi.msi_handlers = 0;
2704 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2714 if (msi->msi_alloc == 0)
2716 KASSERT(msi->msi_alloc <= 32, ("more than 32 alloc'd messages"));
2719 if (msi->msi_handlers > 0)
2721 for (i = 0; i < msi->msi_alloc; i++) {
2730 KASSERT(!(msi->msi_ctrl & PCIM_MSICTRL_MSI_ENABLE),
2732 msi->msi_ctrl &= ~PCIM_MSICTRL_MME_MASK;
2733 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2734 msi->msi_ctrl, 2);
2737 PCIB_RELEASE_MSI(device_get_parent(dev), child, msi->msi_alloc, irqs);
2738 for (i = 0; i < msi->msi_alloc; i++)
2742 msi->msi_alloc = 0;
2743 msi->msi_addr = 0;
2744 msi->msi_data = 0;
2758 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2760 if (pci_do_msi && msi->msi_location != 0)
2761 return (msi->msi_msgnum);
3014 if (cfg->msi.msi_location) {
3017 ctrl = cfg->msi.msi_ctrl;
3019 cfg->msi.msi_msgnum,
3020 (cfg->msi.msi_msgnum == 1) ? "" : "s",
4767 if (dinfo->cfg.msi.msi_alloc > 0) {
4768 if (dinfo->cfg.msi.msi_addr == 0) {
4769 KASSERT(dinfo->cfg.msi.msi_handlers == 0,
4775 dinfo->cfg.msi.msi_addr = addr;
4776 dinfo->cfg.msi.msi_data = data;
4778 if (dinfo->cfg.msi.msi_handlers == 0)
4779 pci_enable_msi(child, dinfo->cfg.msi.msi_addr,
4780 dinfo->cfg.msi.msi_data);
4781 dinfo->cfg.msi.msi_handlers++;
4870 if (dinfo->cfg.msi.msi_alloc > 0) {
4871 KASSERT(rid <= dinfo->cfg.msi.msi_alloc,
4873 if (dinfo->cfg.msi.msi_handlers == 0)
4875 dinfo->cfg.msi.msi_handlers--;
4876 if (dinfo->cfg.msi.msi_handlers == 0)
5087 if (dinfo->cfg.msi.msi_alloc != 0 || dinfo->cfg.msix.msix_alloc != 0) {
5088 if (dinfo->cfg.msi.msi_alloc != 0)
5090 "vectors\n", dinfo->cfg.msi.msi_alloc);
5546 if (*rid == 0 && (cfg->msi.msi_alloc > 0 ||
6238 if (dinfo->cfg.msi.msi_location != 0)