Lines Matching refs:msi

901 			cfg->msi.msi_location = ptr;
902 cfg->msi.msi_ctrl = REG(ptr + PCIR_MSI_CTRL, 2);
903 cfg->msi.msi_msgnum = 1 << ((cfg->msi.msi_ctrl &
1771 if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
2297 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2300 pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR,
2302 if (msi->msi_ctrl & PCIM_MSICTRL_64BIT) {
2303 pci_write_config(child, msi->msi_location + PCIR_MSI_ADDR_HIGH,
2305 pci_write_config(child, msi->msi_location + PCIR_MSI_DATA_64BIT,
2308 pci_write_config(child, msi->msi_location + PCIR_MSI_DATA, data,
2312 msi->msi_ctrl |= PCIM_MSICTRL_MSI_ENABLE;
2313 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2314 msi->msi_ctrl, 2);
2324 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2330 msi->msi_ctrl &= ~PCIM_MSICTRL_MSI_ENABLE;
2331 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2332 msi->msi_ctrl, 2);
2344 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2348 if (msi->msi_ctrl & PCIM_MSICTRL_MSI_ENABLE) {
2349 address = msi->msi_addr;
2350 data = msi->msi_data;
2351 pci_write_config(dev, msi->msi_location + PCIR_MSI_ADDR,
2353 if (msi->msi_ctrl & PCIM_MSICTRL_64BIT) {
2354 pci_write_config(dev, msi->msi_location +
2356 pci_write_config(dev, msi->msi_location +
2359 pci_write_config(dev, msi->msi_location + PCIR_MSI_DATA,
2362 pci_write_config(dev, msi->msi_location + PCIR_MSI_CTRL, msi->msi_ctrl,
2383 if (cfg->msi.msi_alloc > 0) {
2386 if (cfg->msi.msi_handlers == 0)
2388 for (i = 0; i < cfg->msi.msi_alloc; i++) {
2397 dinfo->cfg.msi.msi_addr = addr;
2398 dinfo->cfg.msi.msi_data = data;
2552 if (cfg->msi.msi_alloc != 0 || cfg->msix.msix_alloc != 0)
2560 if (cfg->msi.msi_location == 0 || !pci_do_msi)
2566 *count, cfg->msi.msi_msgnum);
2569 actual = min(*count, cfg->msi.msi_msgnum);
2639 ctrl = cfg->msi.msi_ctrl;
2642 cfg->msi.msi_ctrl = ctrl;
2643 pci_write_config(child, cfg->msi.msi_location + PCIR_MSI_CTRL, ctrl, 2);
2646 cfg->msi.msi_alloc = actual;
2647 cfg->msi.msi_handlers = 0;
2657 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2667 if (msi->msi_alloc == 0)
2669 KASSERT(msi->msi_alloc <= 32, ("more than 32 alloc'd messages"));
2672 if (msi->msi_handlers > 0)
2674 for (i = 0; i < msi->msi_alloc; i++) {
2683 KASSERT(!(msi->msi_ctrl & PCIM_MSICTRL_MSI_ENABLE),
2685 msi->msi_ctrl &= ~PCIM_MSICTRL_MME_MASK;
2686 pci_write_config(child, msi->msi_location + PCIR_MSI_CTRL,
2687 msi->msi_ctrl, 2);
2690 PCIB_RELEASE_MSI(device_get_parent(dev), child, msi->msi_alloc, irqs);
2691 for (i = 0; i < msi->msi_alloc; i++)
2695 msi->msi_alloc = 0;
2696 msi->msi_addr = 0;
2697 msi->msi_data = 0;
2711 struct pcicfg_msi *msi = &dinfo->cfg.msi;
2713 if (pci_do_msi && msi->msi_location != 0)
2714 return (msi->msi_msgnum);
2974 if (cfg->msi.msi_location) {
2977 ctrl = cfg->msi.msi_ctrl;
2979 cfg->msi.msi_msgnum,
2980 (cfg->msi.msi_msgnum == 1) ? "" : "s",
4708 if (dinfo->cfg.msi.msi_alloc > 0) {
4709 if (dinfo->cfg.msi.msi_addr == 0) {
4710 KASSERT(dinfo->cfg.msi.msi_handlers == 0,
4716 dinfo->cfg.msi.msi_addr = addr;
4717 dinfo->cfg.msi.msi_data = data;
4719 if (dinfo->cfg.msi.msi_handlers == 0)
4720 pci_enable_msi(child, dinfo->cfg.msi.msi_addr,
4721 dinfo->cfg.msi.msi_data);
4722 dinfo->cfg.msi.msi_handlers++;
4811 if (dinfo->cfg.msi.msi_alloc > 0) {
4812 KASSERT(rid <= dinfo->cfg.msi.msi_alloc,
4814 if (dinfo->cfg.msi.msi_handlers == 0)
4816 dinfo->cfg.msi.msi_handlers--;
4817 if (dinfo->cfg.msi.msi_handlers == 0)
5027 if (dinfo->cfg.msi.msi_alloc != 0 || dinfo->cfg.msix.msix_alloc != 0) {
5486 if (*rid == 0 && (cfg->msi.msi_alloc > 0 ||
6026 if (dinfo->cfg.msi.msi_location != 0)