Lines Matching refs:io
180 struct si_sm_io io; member
607 u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG); in check_bt_irq()
615 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in check_bt_irq()
618 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0); in check_bt_irq()
1234 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in si_bt_irq_handler()
1449 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, 0); in std_irq_cleanup()
1468 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, in std_irq_setup()
1489 static unsigned char port_inb(const struct si_sm_io *io, unsigned int offset) in port_inb() argument
1491 unsigned int addr = io->addr_data; in port_inb()
1493 return inb(addr + (offset * io->regspacing)); in port_inb()
1496 static void port_outb(const struct si_sm_io *io, unsigned int offset, in port_outb() argument
1499 unsigned int addr = io->addr_data; in port_outb()
1501 outb(b, addr + (offset * io->regspacing)); in port_outb()
1504 static unsigned char port_inw(const struct si_sm_io *io, unsigned int offset) in port_inw() argument
1506 unsigned int addr = io->addr_data; in port_inw()
1508 return (inw(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inw()
1511 static void port_outw(const struct si_sm_io *io, unsigned int offset, in port_outw() argument
1514 unsigned int addr = io->addr_data; in port_outw()
1516 outw(b << io->regshift, addr + (offset * io->regspacing)); in port_outw()
1519 static unsigned char port_inl(const struct si_sm_io *io, unsigned int offset) in port_inl() argument
1521 unsigned int addr = io->addr_data; in port_inl()
1523 return (inl(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inl()
1526 static void port_outl(const struct si_sm_io *io, unsigned int offset, in port_outl() argument
1529 unsigned int addr = io->addr_data; in port_outl()
1531 outl(b << io->regshift, addr+(offset * io->regspacing)); in port_outl()
1536 unsigned int addr = info->io.addr_data; in port_cleanup()
1541 release_region(addr + idx * info->io.regspacing, in port_cleanup()
1542 info->io.regsize); in port_cleanup()
1548 unsigned int addr = info->io.addr_data; in port_setup()
1560 switch (info->io.regsize) { in port_setup()
1562 info->io.inputb = port_inb; in port_setup()
1563 info->io.outputb = port_outb; in port_setup()
1566 info->io.inputb = port_inw; in port_setup()
1567 info->io.outputb = port_outw; in port_setup()
1570 info->io.inputb = port_inl; in port_setup()
1571 info->io.outputb = port_outl; in port_setup()
1575 info->io.regsize); in port_setup()
1586 if (request_region(addr + idx * info->io.regspacing, in port_setup()
1587 info->io.regsize, DEVICE_NAME) == NULL) { in port_setup()
1590 release_region(addr + idx * info->io.regspacing, in port_setup()
1591 info->io.regsize); in port_setup()
1598 static unsigned char intf_mem_inb(const struct si_sm_io *io, in intf_mem_inb() argument
1601 return readb((io->addr)+(offset * io->regspacing)); in intf_mem_inb()
1604 static void intf_mem_outb(const struct si_sm_io *io, unsigned int offset, in intf_mem_outb() argument
1607 writeb(b, (io->addr)+(offset * io->regspacing)); in intf_mem_outb()
1610 static unsigned char intf_mem_inw(const struct si_sm_io *io, in intf_mem_inw() argument
1613 return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inw()
1617 static void intf_mem_outw(const struct si_sm_io *io, unsigned int offset, in intf_mem_outw() argument
1620 writeb(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outw()
1623 static unsigned char intf_mem_inl(const struct si_sm_io *io, in intf_mem_inl() argument
1626 return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inl()
1630 static void intf_mem_outl(const struct si_sm_io *io, unsigned int offset, in intf_mem_outl() argument
1633 writel(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outl()
1637 static unsigned char mem_inq(const struct si_sm_io *io, unsigned int offset) in mem_inq() argument
1639 return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) in mem_inq()
1643 static void mem_outq(const struct si_sm_io *io, unsigned int offset, in mem_outq() argument
1646 writeq(b << io->regshift, (io->addr)+(offset * io->regspacing)); in mem_outq()
1652 unsigned long addr = info->io.addr_data; in mem_region_cleanup()
1656 release_mem_region(addr + idx * info->io.regspacing, in mem_region_cleanup()
1657 info->io.regsize); in mem_region_cleanup()
1662 if (info->io.addr) { in mem_cleanup()
1663 iounmap(info->io.addr); in mem_cleanup()
1670 unsigned long addr = info->io.addr_data; in mem_setup()
1682 switch (info->io.regsize) { in mem_setup()
1684 info->io.inputb = intf_mem_inb; in mem_setup()
1685 info->io.outputb = intf_mem_outb; in mem_setup()
1688 info->io.inputb = intf_mem_inw; in mem_setup()
1689 info->io.outputb = intf_mem_outw; in mem_setup()
1692 info->io.inputb = intf_mem_inl; in mem_setup()
1693 info->io.outputb = intf_mem_outl; in mem_setup()
1697 info->io.inputb = mem_inq; in mem_setup()
1698 info->io.outputb = mem_outq; in mem_setup()
1703 info->io.regsize); in mem_setup()
1714 if (request_mem_region(addr + idx * info->io.regspacing, in mem_setup()
1715 info->io.regsize, DEVICE_NAME) == NULL) { in mem_setup()
1729 mapsize = ((info->io_size * info->io.regspacing) in mem_setup()
1730 - (info->io.regspacing - info->io.regsize)); in mem_setup()
1731 info->io.addr = ioremap(addr, mapsize); in mem_setup()
1732 if (info->io.addr == NULL) { in mem_setup()
1947 info->io.addr_data = addr; in hotmod_handler()
1948 info->io.addr_type = addr_space; in hotmod_handler()
1954 info->io.addr = NULL; in hotmod_handler()
1955 info->io.regspacing = regspacing; in hotmod_handler()
1956 if (!info->io.regspacing) in hotmod_handler()
1957 info->io.regspacing = DEFAULT_REGSPACING; in hotmod_handler()
1958 info->io.regsize = regsize; in hotmod_handler()
1959 if (!info->io.regsize) in hotmod_handler()
1960 info->io.regsize = DEFAULT_REGSIZE; in hotmod_handler()
1961 info->io.regshift = regshift; in hotmod_handler()
1985 if (e->io.addr_type != addr_space) in hotmod_handler()
1989 if (e->io.addr_data == addr) in hotmod_handler()
2034 info->io.addr_data = ports[i]; in hardcode_find_bmc()
2035 info->io.addr_type = IPMI_IO_ADDR_SPACE; in hardcode_find_bmc()
2039 info->io.addr_data = addrs[i]; in hardcode_find_bmc()
2040 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in hardcode_find_bmc()
2048 info->io.addr = NULL; in hardcode_find_bmc()
2049 info->io.regspacing = regspacings[i]; in hardcode_find_bmc()
2050 if (!info->io.regspacing) in hardcode_find_bmc()
2051 info->io.regspacing = DEFAULT_REGSPACING; in hardcode_find_bmc()
2052 info->io.regsize = regsizes[i]; in hardcode_find_bmc()
2053 if (!info->io.regsize) in hardcode_find_bmc()
2054 info->io.regsize = DEFAULT_REGSIZE; in hardcode_find_bmc()
2055 info->io.regshift = regshifts[i]; in hardcode_find_bmc()
2236 info->io.regspacing = spmi->addr.bit_width / 8; in try_init_spmi()
2238 info->io.regspacing = DEFAULT_REGSPACING; in try_init_spmi()
2240 info->io.regsize = info->io.regspacing; in try_init_spmi()
2241 info->io.regshift = spmi->addr.bit_offset; in try_init_spmi()
2245 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_spmi()
2248 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_spmi()
2254 info->io.addr_data = spmi->addr.address; in try_init_spmi()
2257 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_spmi()
2258 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_spmi()
2300 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_get_info_from_resources()
2305 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_get_info_from_resources()
2312 info->io.addr_data = res->start; in ipmi_get_info_from_resources()
2314 info->io.regspacing = DEFAULT_REGSPACING; in ipmi_get_info_from_resources()
2316 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? in ipmi_get_info_from_resources()
2320 if (res_second->start > info->io.addr_data) in ipmi_get_info_from_resources()
2321 info->io.regspacing = in ipmi_get_info_from_resources()
2322 res_second->start - info->io.addr_data; in ipmi_get_info_from_resources()
2324 info->io.regsize = DEFAULT_REGSIZE; in ipmi_get_info_from_resources()
2325 info->io.regshift = 0; in ipmi_get_info_from_resources()
2392 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in dmi_ipmi_probe()
2393 info->io.addr_data, info->io.regsize, info->io.regspacing, in dmi_ipmi_probe()
2438 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
2439 info->io.regshift = 0; in ipmi_pci_probe_regspacing()
2445 info->io.regspacing = regspacing; in ipmi_pci_probe_regspacing()
2452 info->io.outputb(&info->io, 1, 0x10); in ipmi_pci_probe_regspacing()
2454 status = info->io.inputb(&info->io, 1); in ipmi_pci_probe_regspacing()
2521 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
2524 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
2526 info->io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
2528 info->io.regspacing = ipmi_pci_probe_regspacing(info); in ipmi_pci_probe()
2529 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
2530 info->io.regshift = 0; in ipmi_pci_probe()
2540 &pdev->resource[0], info->io.regsize, info->io.regspacing, in ipmi_pci_probe()
2642 info->io.addr_type = IPMI_IO_ADDR_SPACE; in of_ipmi_probe()
2645 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in of_ipmi_probe()
2648 info->io.addr_data = resource.start; in of_ipmi_probe()
2650 info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE; in of_ipmi_probe()
2651 info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING; in of_ipmi_probe()
2652 info->io.regshift = regshift ? be32_to_cpup(regshift) : 0; in of_ipmi_probe()
2658 info->io.addr_data, info->io.regsize, info->io.regspacing, in of_ipmi_probe()
2698 if (info->io.addr_type == IPMI_MEM_ADDR_SPACE) in find_slave_address()
2702 info->io.addr_data); in find_slave_address()
2785 res, info->io.regsize, info->io.regspacing, in acpi_ipmi_probe()
2857 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_parisc_probe()
2858 info->io.addr_data = dev->hpa.start; in ipmi_parisc_probe()
2859 info->io.regsize = 1; in ipmi_parisc_probe()
2860 info->io.regspacing = 1; in ipmi_parisc_probe()
2861 info->io.regshift = 0; in ipmi_parisc_probe()
2866 dev_dbg(&dev->dev, "addr 0x%lx\n", info->io.addr_data); in ipmi_parisc_probe()
3273 addr_space_to_str[smi->io.addr_type], in smi_params_proc_show()
3274 smi->io.addr_data, in smi_params_proc_show()
3275 smi->io.regspacing, in smi_params_proc_show()
3276 smi->io.regsize, in smi_params_proc_show()
3277 smi->io.regshift, in smi_params_proc_show()
3460 if (e->io.addr_type != info->io.addr_type) in find_dup_si()
3462 if (e->io.addr_data == info->io.addr_data) { in find_dup_si()
3532 addr_space_to_str[new_smi->io.addr_type], in try_smi_init()
3533 new_smi->io.addr_data, in try_smi_init()
3586 &new_smi->io); in try_smi_init()