Lines Matching refs:io

140 	struct si_sm_io io;
272 dev_dbg(smi_info->io.dev, "**%s: %lld.%9.9ld\n",
422 if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
432 if ((smi_info->io.irq) && (smi_info->interrupt_disabled)) {
507 if (((smi_info->io.irq && !smi_info->interrupt_disabled) ||
513 smi_info->io.irq && !smi_info->interrupt_disabled &&
524 u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG);
532 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
535 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0);
595 dev_warn_ratelimited(smi_info->io.dev,
687 dev_warn_ratelimited(smi_info->io.dev,
695 if (smi_info->io.si_type == SI_BT)
725 dev_warn_ratelimited(smi_info->io.dev,
848 if (smi_info->supports_event_msg_buff || smi_info->io.irq) {
1090 if ((smi_info->io.irq) && (!smi_info->interrupt_disabled)) {
1122 if (smi_info->io.si_type == SI_BT)
1124 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG,
1153 if (new_smi->io.irq_setup) {
1154 new_smi->io.irq_handler_data = new_smi;
1155 new_smi->io.irq_setup(&new_smi->io);
1167 else if ((new_smi->io.si_type != SI_BT) && (!new_smi->io.irq))
1174 dev_notice(new_smi->io.dev,
1188 data->addr_src = smi->io.addr_source;
1189 data->dev = smi->io.dev;
1190 data->addr_info = smi->io.addr_info;
1191 get_device(smi->io.dev);
1236 void ipmi_irq_finish_setup(struct si_sm_io *io)
1238 if (io->si_type == SI_BT)
1240 io->outputb(io, IPMI_BT_INTMASK_REG,
1244 void ipmi_irq_start_cleanup(struct si_sm_io *io)
1246 if (io->si_type == SI_BT)
1248 io->outputb(io, IPMI_BT_INTMASK_REG, 0);
1251 static void std_irq_cleanup(struct si_sm_io *io)
1253 ipmi_irq_start_cleanup(io);
1254 free_irq(io->irq, io->irq_handler_data);
1257 int ipmi_std_irq_setup(struct si_sm_io *io)
1261 if (!io->irq)
1264 rv = request_irq(io->irq,
1268 io->irq_handler_data);
1270 dev_warn(io->dev, "%s unable to claim interrupt %d, running polled\n",
1271 SI_DEVICE_NAME, io->irq);
1272 io->irq = 0;
1274 io->irq_cleanup = std_irq_cleanup;
1275 ipmi_irq_finish_setup(io);
1276 dev_info(io->dev, "Using irq %d\n", io->irq);
1347 dev_warn_ratelimited(smi_info->io.dev,
1376 dev_warn(smi_info->io.dev,
1389 dev_warn(smi_info->io.dev,
1424 dev_warn(smi_info->io.dev,
1436 dev_warn(smi_info->io.dev,
1472 dev_err(smi_info->io.dev,
1482 dev_warn(smi_info->io.dev,
1498 if (!smi_info->io.irq)
1508 dev_err(smi_info->io.dev,
1518 dev_warn(smi_info->io.dev,
1617 return sysfs_emit(buf, "%s\n", si_to_str[smi_info->io.si_type]);
1626 int enabled = smi_info->io.irq && !smi_info->interrupt_disabled;
1652 si_to_str[smi_info->io.si_type],
1653 addr_space_to_str[smi_info->io.addr_space],
1654 smi_info->io.addr_data,
1655 smi_info->io.regspacing,
1656 smi_info->io.regsize,
1657 smi_info->io.regshift,
1658 smi_info->io.irq,
1659 smi_info->io.slave_addr);
1806 smi_info->io.si_type == SI_BT)
1850 if (e->io.addr_space != info->io.addr_space)
1852 if (e->io.addr_data == info->io.addr_data) {
1858 if (info->io.slave_addr && !e->io.slave_addr)
1859 e->io.slave_addr = info->io.slave_addr;
1867 int ipmi_si_add_smi(struct si_sm_io *io)
1877 if (io->addr_source != SI_HARDCODED && io->addr_source != SI_HOTMOD &&
1878 ipmi_si_hardcode_match(io->addr_space, io->addr_data)) {
1879 dev_info(io->dev,
1884 if (!io->io_setup) {
1885 if (io->addr_space == IPMI_IO_ADDR_SPACE) {
1886 io->io_setup = ipmi_si_port_setup;
1887 } else if (io->addr_space == IPMI_MEM_ADDR_SPACE) {
1888 io->io_setup = ipmi_si_mem_setup;
1899 new_smi->io = *io;
1904 if (new_smi->io.addr_source == SI_ACPI &&
1905 dup->io.addr_source == SI_SMBIOS) {
1907 dev_info(dup->io.dev,
1909 si_to_str[new_smi->io.si_type]);
1912 dev_info(new_smi->io.dev,
1914 ipmi_addr_src_to_str(new_smi->io.addr_source),
1915 si_to_str[new_smi->io.si_type]);
1923 ipmi_addr_src_to_str(new_smi->io.addr_source),
1924 si_to_str[new_smi->io.si_type]);
1946 ipmi_addr_src_to_str(new_smi->io.addr_source),
1947 si_to_str[new_smi->io.si_type],
1948 addr_space_to_str[new_smi->io.addr_space],
1949 new_smi->io.addr_data,
1950 new_smi->io.slave_addr, new_smi->io.irq);
1952 switch (new_smi->io.si_type) {
1974 if (!new_smi->io.dev) {
1986 new_smi->io.io_size = new_smi->handlers->init_data(new_smi->si_sm,
1987 &new_smi->io);
1990 rv = new_smi->io.io_setup(&new_smi->io);
1992 dev_err(new_smi->io.dev, "Could not set up I/O space\n");
1998 if (new_smi->io.addr_source)
1999 dev_err(new_smi->io.dev,
2011 if (new_smi->io.addr_source)
2012 dev_err(new_smi->io.dev,
2045 if (new_smi->io.irq) {
2050 dev_set_drvdata(new_smi->io.dev, new_smi);
2051 rv = device_add_group(new_smi->io.dev, &ipmi_si_dev_attr_group);
2053 dev_err(new_smi->io.dev,
2062 new_smi->io.dev,
2063 new_smi->io.slave_addr);
2065 dev_err(new_smi->io.dev,
2074 dev_info(new_smi->io.dev, "IPMI %s interface initialized\n",
2075 si_to_str[new_smi->io.si_type]);
2077 WARN_ON(new_smi->io.dev->init_name != NULL);
2080 if (rv && new_smi->io.io_cleanup) {
2081 new_smi->io.io_cleanup(&new_smi->io);
2082 new_smi->io.io_cleanup = NULL;
2120 if (e->io.irq && (!type || e->io.addr_source == type)) {
2122 type = e->io.addr_source;
2134 if (!e->io.irq && (!type || e->io.addr_source == type)) {
2136 type = e->io.addr_source;
2180 device_remove_group(smi_info->io.dev, &ipmi_si_dev_attr_group);
2183 if (smi_info->io.dev)
2184 dev_set_drvdata(smi_info->io.dev, NULL);
2191 if (smi_info->io.irq_cleanup) {
2192 smi_info->io.irq_cleanup(&smi_info->io);
2193 smi_info->io.irq_cleanup = NULL;
2219 if (smi_info->io.io_cleanup) {
2220 smi_info->io.io_cleanup(&smi_info->io);
2221 smi_info->io.io_cleanup = NULL;
2250 if (e->io.dev == dev) {
2267 if (e->io.addr_space != addr_space)
2269 if (e->io.si_type != si_type)
2271 if (e->io.addr_data == addr) {
2272 dev = get_device(e->io.dev);