Lines Matching refs:io
186 struct si_sm_io io; member
1165 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in si_bt_irq_handler()
1382 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, 0); in std_irq_cleanup()
1401 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, in std_irq_setup()
1422 static unsigned char port_inb(struct si_sm_io *io, unsigned int offset) in port_inb() argument
1424 unsigned int addr = io->addr_data; in port_inb()
1426 return inb(addr + (offset * io->regspacing)); in port_inb()
1429 static void port_outb(struct si_sm_io *io, unsigned int offset, in port_outb() argument
1432 unsigned int addr = io->addr_data; in port_outb()
1434 outb(b, addr + (offset * io->regspacing)); in port_outb()
1437 static unsigned char port_inw(struct si_sm_io *io, unsigned int offset) in port_inw() argument
1439 unsigned int addr = io->addr_data; in port_inw()
1441 return (inw(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inw()
1444 static void port_outw(struct si_sm_io *io, unsigned int offset, in port_outw() argument
1447 unsigned int addr = io->addr_data; in port_outw()
1449 outw(b << io->regshift, addr + (offset * io->regspacing)); in port_outw()
1452 static unsigned char port_inl(struct si_sm_io *io, unsigned int offset) in port_inl() argument
1454 unsigned int addr = io->addr_data; in port_inl()
1456 return (inl(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inl()
1459 static void port_outl(struct si_sm_io *io, unsigned int offset, in port_outl() argument
1462 unsigned int addr = io->addr_data; in port_outl()
1464 outl(b << io->regshift, addr+(offset * io->regspacing)); in port_outl()
1469 unsigned int addr = info->io.addr_data; in port_cleanup()
1474 release_region(addr + idx * info->io.regspacing, in port_cleanup()
1475 info->io.regsize); in port_cleanup()
1481 unsigned int addr = info->io.addr_data; in port_setup()
1493 switch (info->io.regsize) { in port_setup()
1495 info->io.inputb = port_inb; in port_setup()
1496 info->io.outputb = port_outb; in port_setup()
1499 info->io.inputb = port_inw; in port_setup()
1500 info->io.outputb = port_outw; in port_setup()
1503 info->io.inputb = port_inl; in port_setup()
1504 info->io.outputb = port_outl; in port_setup()
1508 info->io.regsize); in port_setup()
1519 if (request_region(addr + idx * info->io.regspacing, in port_setup()
1520 info->io.regsize, DEVICE_NAME) == NULL) { in port_setup()
1523 release_region(addr + idx * info->io.regspacing, in port_setup()
1524 info->io.regsize); in port_setup()
1532 static unsigned char intf_mem_inb(struct si_sm_io *io, unsigned int offset) in intf_mem_inb() argument
1534 return readb((io->addr)+(offset * io->regspacing)); in intf_mem_inb()
1537 static void intf_mem_outb(struct si_sm_io *io, unsigned int offset, in intf_mem_outb() argument
1540 writeb(b, (io->addr)+(offset * io->regspacing)); in intf_mem_outb()
1543 static unsigned char intf_mem_inw(struct si_sm_io *io, unsigned int offset) in intf_mem_inw() argument
1545 return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inw()
1549 static void intf_mem_outw(struct si_sm_io *io, unsigned int offset, in intf_mem_outw() argument
1552 writeb(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outw()
1555 static unsigned char intf_mem_inl(struct si_sm_io *io, unsigned int offset) in intf_mem_inl() argument
1557 return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inl()
1561 static void intf_mem_outl(struct si_sm_io *io, unsigned int offset, in intf_mem_outl() argument
1564 writel(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outl()
1568 static unsigned char mem_inq(struct si_sm_io *io, unsigned int offset) in mem_inq() argument
1570 return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) in mem_inq()
1574 static void mem_outq(struct si_sm_io *io, unsigned int offset, in mem_outq() argument
1577 writeq(b << io->regshift, (io->addr)+(offset * io->regspacing)); in mem_outq()
1583 unsigned long addr = info->io.addr_data; in mem_cleanup()
1586 if (info->io.addr) { in mem_cleanup()
1587 iounmap(info->io.addr); in mem_cleanup()
1589 mapsize = ((info->io_size * info->io.regspacing) in mem_cleanup()
1590 - (info->io.regspacing - info->io.regsize)); in mem_cleanup()
1598 unsigned long addr = info->io.addr_data; in mem_setup()
1610 switch (info->io.regsize) { in mem_setup()
1612 info->io.inputb = intf_mem_inb; in mem_setup()
1613 info->io.outputb = intf_mem_outb; in mem_setup()
1616 info->io.inputb = intf_mem_inw; in mem_setup()
1617 info->io.outputb = intf_mem_outw; in mem_setup()
1620 info->io.inputb = intf_mem_inl; in mem_setup()
1621 info->io.outputb = intf_mem_outl; in mem_setup()
1625 info->io.inputb = mem_inq; in mem_setup()
1626 info->io.outputb = mem_outq; in mem_setup()
1631 info->io.regsize); in mem_setup()
1642 mapsize = ((info->io_size * info->io.regspacing) in mem_setup()
1643 - (info->io.regspacing - info->io.regsize)); in mem_setup()
1648 info->io.addr = ioremap(addr, mapsize); in mem_setup()
1649 if (info->io.addr == NULL) { in mem_setup()
1867 info->io.addr_data = addr; in hotmod_handler()
1868 info->io.addr_type = addr_space; in hotmod_handler()
1874 info->io.addr = NULL; in hotmod_handler()
1875 info->io.regspacing = regspacing; in hotmod_handler()
1876 if (!info->io.regspacing) in hotmod_handler()
1877 info->io.regspacing = DEFAULT_REGSPACING; in hotmod_handler()
1878 info->io.regsize = regsize; in hotmod_handler()
1879 if (!info->io.regsize) in hotmod_handler()
1880 info->io.regsize = DEFAULT_REGSPACING; in hotmod_handler()
1881 info->io.regshift = regshift; in hotmod_handler()
1903 if (e->io.addr_type != addr_space) in hotmod_handler()
1907 if (e->io.addr_data == addr) in hotmod_handler()
1953 info->io.addr_data = ports[i]; in hardcode_find_bmc()
1954 info->io.addr_type = IPMI_IO_ADDR_SPACE; in hardcode_find_bmc()
1958 info->io.addr_data = addrs[i]; in hardcode_find_bmc()
1959 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in hardcode_find_bmc()
1968 info->io.addr = NULL; in hardcode_find_bmc()
1969 info->io.regspacing = regspacings[i]; in hardcode_find_bmc()
1970 if (!info->io.regspacing) in hardcode_find_bmc()
1971 info->io.regspacing = DEFAULT_REGSPACING; in hardcode_find_bmc()
1972 info->io.regsize = regsizes[i]; in hardcode_find_bmc()
1973 if (!info->io.regsize) in hardcode_find_bmc()
1974 info->io.regsize = DEFAULT_REGSPACING; in hardcode_find_bmc()
1975 info->io.regshift = regshifts[i]; in hardcode_find_bmc()
2159 info->io.regspacing = spmi->addr.bit_width / 8; in try_init_spmi()
2161 info->io.regspacing = DEFAULT_REGSPACING; in try_init_spmi()
2163 info->io.regsize = info->io.regspacing; in try_init_spmi()
2164 info->io.regshift = spmi->addr.bit_offset; in try_init_spmi()
2168 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_spmi()
2171 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_spmi()
2177 info->io.addr_data = spmi->addr.address; in try_init_spmi()
2180 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_spmi()
2181 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_spmi()
2261 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pnp_probe()
2266 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pnp_probe()
2273 info->io.addr_data = res->start; in ipmi_pnp_probe()
2275 info->io.regspacing = DEFAULT_REGSPACING; in ipmi_pnp_probe()
2277 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? in ipmi_pnp_probe()
2281 if (res_second->start > info->io.addr_data) in ipmi_pnp_probe()
2282 info->io.regspacing = res_second->start - info->io.addr_data; in ipmi_pnp_probe()
2284 info->io.regsize = DEFAULT_REGSPACING; in ipmi_pnp_probe()
2285 info->io.regshift = 0; in ipmi_pnp_probe()
2301 res, info->io.regsize, info->io.regspacing, in ipmi_pnp_probe()
2440 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_dmi()
2445 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_dmi()
2454 info->io.addr_data = ipmi_data->base_addr; in try_init_dmi()
2456 info->io.regspacing = ipmi_data->offset; in try_init_dmi()
2457 if (!info->io.regspacing) in try_init_dmi()
2458 info->io.regspacing = DEFAULT_REGSPACING; in try_init_dmi()
2459 info->io.regsize = DEFAULT_REGSPACING; in try_init_dmi()
2460 info->io.regshift = 0; in try_init_dmi()
2469 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_dmi()
2470 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_dmi()
2519 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
2520 info->io.regshift = 0; in ipmi_pci_probe_regspacing()
2526 info->io.regspacing = regspacing; in ipmi_pci_probe_regspacing()
2533 info->io.outputb(&info->io, 1, 0x10); in ipmi_pci_probe_regspacing()
2535 status = info->io.inputb(&info->io, 1); in ipmi_pci_probe_regspacing()
2590 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
2593 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
2595 info->io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
2597 info->io.regspacing = ipmi_pci_probe_regspacing(info); in ipmi_pci_probe()
2598 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
2599 info->io.regshift = 0; in ipmi_pci_probe()
2609 &pdev->resource[0], info->io.regsize, info->io.regspacing, in ipmi_pci_probe()
2702 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_probe()
2705 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_probe()
2708 info->io.addr_data = resource.start; in ipmi_probe()
2710 info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE; in ipmi_probe()
2711 info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING; in ipmi_probe()
2712 info->io.regshift = regshift ? be32_to_cpup(regshift) : 0; in ipmi_probe()
2718 info->io.addr_data, info->io.regsize, info->io.regspacing, in ipmi_probe()
2778 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_parisc_probe()
2779 info->io.addr_data = dev->hpa.start; in ipmi_parisc_probe()
2780 info->io.regsize = 1; in ipmi_parisc_probe()
2781 info->io.regspacing = 1; in ipmi_parisc_probe()
2782 info->io.regshift = 0; in ipmi_parisc_probe()
2787 dev_dbg(&dev->dev, "addr 0x%lx\n", info->io.addr_data); in ipmi_parisc_probe()
3025 addr_space_to_str[smi->io.addr_type], in smi_params_proc_show()
3026 smi->io.addr_data, in smi_params_proc_show()
3027 smi->io.regspacing, in smi_params_proc_show()
3028 smi->io.regsize, in smi_params_proc_show()
3029 smi->io.regshift, in smi_params_proc_show()
3234 info->io.addr_data = ipmi_defaults[i].port; in default_find_bmc()
3235 info->io.addr_type = IPMI_IO_ADDR_SPACE; in default_find_bmc()
3237 info->io.addr = NULL; in default_find_bmc()
3238 info->io.regspacing = DEFAULT_REGSPACING; in default_find_bmc()
3239 info->io.regsize = DEFAULT_REGSPACING; in default_find_bmc()
3240 info->io.regshift = 0; in default_find_bmc()
3248 addr_space_to_str[info->io.addr_type], in default_find_bmc()
3249 info->io.addr_data); in default_find_bmc()
3263 if (e->io.addr_type != info->io.addr_type) in is_new_interface()
3265 if (e->io.addr_data == info->io.addr_data) in is_new_interface()
3310 addr_space_to_str[new_smi->io.addr_type], in try_smi_init()
3311 new_smi->io.addr_data, in try_smi_init()
3342 &new_smi->io); in try_smi_init()