Lines Matching refs:io

138 	struct si_sm_io io;  member
422 if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) { in disable_si_irq()
432 if ((smi_info->io.irq) && (smi_info->interrupt_disabled)) { in enable_si_irq()
507 if (((smi_info->io.irq && !smi_info->interrupt_disabled) || in current_global_enables()
513 smi_info->io.irq && !smi_info->interrupt_disabled && in current_global_enables()
524 u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG); in check_bt_irq()
532 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in check_bt_irq()
535 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0); in check_bt_irq()
595 dev_warn(smi_info->io.dev, in handle_transaction_done()
687 dev_warn(smi_info->io.dev, in handle_transaction_done()
689 dev_warn(smi_info->io.dev, in handle_transaction_done()
695 if (smi_info->io.si_type == SI_BT) in handle_transaction_done()
725 dev_warn(smi_info->io.dev, in handle_transaction_done()
848 if (smi_info->supports_event_msg_buff || smi_info->io.irq) { in smi_event_handler()
1091 if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) { in smi_timeout()
1123 if (smi_info->io.si_type == SI_BT) in ipmi_si_irq_handler()
1125 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in ipmi_si_irq_handler()
1154 if (new_smi->io.irq_setup) { in smi_start_processing()
1155 new_smi->io.irq_handler_data = new_smi; in smi_start_processing()
1156 new_smi->io.irq_setup(&new_smi->io); in smi_start_processing()
1168 else if ((new_smi->io.si_type != SI_BT) && (!new_smi->io.irq)) in smi_start_processing()
1175 dev_notice(new_smi->io.dev, "Could not start" in smi_start_processing()
1190 data->addr_src = smi->io.addr_source; in get_smi_info()
1191 data->dev = smi->io.dev; in get_smi_info()
1192 data->addr_info = smi->io.addr_info; in get_smi_info()
1193 get_device(smi->io.dev); in get_smi_info()
1241 void ipmi_irq_finish_setup(struct si_sm_io *io) in ipmi_irq_finish_setup() argument
1243 if (io->si_type == SI_BT) in ipmi_irq_finish_setup()
1245 io->outputb(io, IPMI_BT_INTMASK_REG, in ipmi_irq_finish_setup()
1249 void ipmi_irq_start_cleanup(struct si_sm_io *io) in ipmi_irq_start_cleanup() argument
1251 if (io->si_type == SI_BT) in ipmi_irq_start_cleanup()
1253 io->outputb(io, IPMI_BT_INTMASK_REG, 0); in ipmi_irq_start_cleanup()
1256 static void std_irq_cleanup(struct si_sm_io *io) in std_irq_cleanup() argument
1258 ipmi_irq_start_cleanup(io); in std_irq_cleanup()
1259 free_irq(io->irq, io->irq_handler_data); in std_irq_cleanup()
1262 int ipmi_std_irq_setup(struct si_sm_io *io) in ipmi_std_irq_setup() argument
1266 if (!io->irq) in ipmi_std_irq_setup()
1269 rv = request_irq(io->irq, in ipmi_std_irq_setup()
1273 io->irq_handler_data); in ipmi_std_irq_setup()
1275 dev_warn(io->dev, "%s unable to claim interrupt %d," in ipmi_std_irq_setup()
1277 DEVICE_NAME, io->irq); in ipmi_std_irq_setup()
1278 io->irq = 0; in ipmi_std_irq_setup()
1280 io->irq_cleanup = std_irq_cleanup; in ipmi_std_irq_setup()
1281 ipmi_irq_finish_setup(io); in ipmi_std_irq_setup()
1282 dev_info(io->dev, "Using irq %d\n", io->irq); in ipmi_std_irq_setup()
1367 dev_warn(smi_info->io.dev, in get_global_enables()
1380 dev_warn(smi_info->io.dev, in get_global_enables()
1415 dev_warn(smi_info->io.dev, in set_global_enables()
1427 dev_warn(smi_info->io.dev, in set_global_enables()
1463 dev_err(smi_info->io.dev, in check_clr_rcv_irq()
1473 dev_warn(smi_info->io.dev, in check_clr_rcv_irq()
1489 if (!smi_info->io.irq) in check_set_rcv_irq()
1499 dev_err(smi_info->io.dev, in check_set_rcv_irq()
1509 dev_warn(smi_info->io.dev, in check_set_rcv_irq()
1608 return snprintf(buf, 10, "%s\n", si_to_str[smi_info->io.si_type]); in ipmi_type_show()
1617 int enabled = smi_info->io.irq && !smi_info->interrupt_disabled; in ipmi_interrupts_enabled_show()
1644 si_to_str[smi_info->io.si_type], in ipmi_params_show()
1645 addr_space_to_str[smi_info->io.addr_type], in ipmi_params_show()
1646 smi_info->io.addr_data, in ipmi_params_show()
1647 smi_info->io.regspacing, in ipmi_params_show()
1648 smi_info->io.regsize, in ipmi_params_show()
1649 smi_info->io.regshift, in ipmi_params_show()
1650 smi_info->io.irq, in ipmi_params_show()
1651 smi_info->io.slave_addr); in ipmi_params_show()
1798 smi_info->io.si_type == SI_BT) in setup_dell_poweredge_bt_xaction_handler()
1843 if (e->io.addr_type != info->io.addr_type) in find_dup_si()
1845 if (e->io.addr_data == info->io.addr_data) { in find_dup_si()
1851 if (info->io.slave_addr && !e->io.slave_addr) in find_dup_si()
1852 e->io.slave_addr = info->io.slave_addr; in find_dup_si()
1860 int ipmi_si_add_smi(struct si_sm_io *io) in ipmi_si_add_smi() argument
1865 if (!io->io_setup) { in ipmi_si_add_smi()
1866 if (io->addr_type == IPMI_IO_ADDR_SPACE) { in ipmi_si_add_smi()
1867 io->io_setup = ipmi_si_port_setup; in ipmi_si_add_smi()
1868 } else if (io->addr_type == IPMI_MEM_ADDR_SPACE) { in ipmi_si_add_smi()
1869 io->io_setup = ipmi_si_mem_setup; in ipmi_si_add_smi()
1880 new_smi->io = *io; in ipmi_si_add_smi()
1885 if (new_smi->io.addr_source == SI_ACPI && in ipmi_si_add_smi()
1886 dup->io.addr_source == SI_SMBIOS) { in ipmi_si_add_smi()
1888 dev_info(dup->io.dev, in ipmi_si_add_smi()
1890 si_to_str[new_smi->io.si_type]); in ipmi_si_add_smi()
1893 dev_info(new_smi->io.dev, in ipmi_si_add_smi()
1895 ipmi_addr_src_to_str(new_smi->io.addr_source), in ipmi_si_add_smi()
1896 si_to_str[new_smi->io.si_type]); in ipmi_si_add_smi()
1904 ipmi_addr_src_to_str(new_smi->io.addr_source), in ipmi_si_add_smi()
1905 si_to_str[new_smi->io.si_type]); in ipmi_si_add_smi()
1928 ipmi_addr_src_to_str(new_smi->io.addr_source), in try_smi_init()
1929 si_to_str[new_smi->io.si_type], in try_smi_init()
1930 addr_space_to_str[new_smi->io.addr_type], in try_smi_init()
1931 new_smi->io.addr_data, in try_smi_init()
1932 new_smi->io.slave_addr, new_smi->io.irq); in try_smi_init()
1934 switch (new_smi->io.si_type) { in try_smi_init()
1956 if (!new_smi->io.dev) { in try_smi_init()
1971 new_smi->io.dev = &new_smi->pdev->dev; in try_smi_init()
1972 new_smi->io.dev->driver = &ipmi_platform_driver.driver; in try_smi_init()
1974 new_smi->io.dev->init_name = init_name; in try_smi_init()
1983 new_smi->io.io_size = new_smi->handlers->init_data(new_smi->si_sm, in try_smi_init()
1984 &new_smi->io); in try_smi_init()
1987 rv = new_smi->io.io_setup(&new_smi->io); in try_smi_init()
1989 dev_err(new_smi->io.dev, "Could not set up I/O space\n"); in try_smi_init()
1995 if (new_smi->io.addr_source) in try_smi_init()
1996 dev_err(new_smi->io.dev, in try_smi_init()
2008 if (new_smi->io.addr_source) in try_smi_init()
2009 dev_err(new_smi->io.dev, in try_smi_init()
2042 if (new_smi->io.irq) { in try_smi_init()
2050 dev_err(new_smi->io.dev, in try_smi_init()
2058 dev_set_drvdata(new_smi->io.dev, new_smi); in try_smi_init()
2059 rv = device_add_group(new_smi->io.dev, &ipmi_si_dev_attr_group); in try_smi_init()
2061 dev_err(new_smi->io.dev, in try_smi_init()
2070 new_smi->io.dev, in try_smi_init()
2071 new_smi->io.slave_addr); in try_smi_init()
2073 dev_err(new_smi->io.dev, in try_smi_init()
2082 dev_info(new_smi->io.dev, "IPMI %s interface initialized\n", in try_smi_init()
2083 si_to_str[new_smi->io.si_type]); in try_smi_init()
2085 WARN_ON(new_smi->io.dev->init_name != NULL); in try_smi_init()
2122 if (e->io.irq && (!type || e->io.addr_source == type)) { in init_ipmi_si()
2124 type = e->io.addr_source; in init_ipmi_si()
2136 if (!e->io.irq && (!type || e->io.addr_source == type)) { in init_ipmi_si()
2138 type = e->io.addr_source; in init_ipmi_si()
2168 device_remove_group(smi_info->io.dev, &ipmi_si_dev_attr_group); in shutdown_smi()
2171 if (smi_info->io.dev) in shutdown_smi()
2172 dev_set_drvdata(smi_info->io.dev, NULL); in shutdown_smi()
2179 if (smi_info->io.irq_cleanup) { in shutdown_smi()
2180 smi_info->io.irq_cleanup(&smi_info->io); in shutdown_smi()
2181 smi_info->io.irq_cleanup = NULL; in shutdown_smi()
2210 if (smi_info->io.addr_source_cleanup) { in shutdown_smi()
2211 smi_info->io.addr_source_cleanup(&smi_info->io); in shutdown_smi()
2212 smi_info->io.addr_source_cleanup = NULL; in shutdown_smi()
2214 if (smi_info->io.io_cleanup) { in shutdown_smi()
2215 smi_info->io.io_cleanup(&smi_info->io); in shutdown_smi()
2216 smi_info->io.io_cleanup = NULL; in shutdown_smi()
2256 if (e->io.dev == dev) { in ipmi_si_remove_by_dev()
2275 if (e->io.addr_type != addr_space) in ipmi_si_remove_by_data()
2277 if (e->io.si_type != si_type) in ipmi_si_remove_by_data()
2279 if (e->io.addr_data == addr) in ipmi_si_remove_by_data()