Lines Matching refs:io
177 struct si_sm_io io; member
602 u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG); in check_bt_irq()
610 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in check_bt_irq()
613 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0); in check_bt_irq()
1219 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in si_bt_irq_handler()
1437 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, 0); in std_irq_cleanup()
1456 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, in std_irq_setup()
1477 static unsigned char port_inb(const struct si_sm_io *io, unsigned int offset) in port_inb() argument
1479 unsigned int addr = io->addr_data; in port_inb()
1481 return inb(addr + (offset * io->regspacing)); in port_inb()
1484 static void port_outb(const struct si_sm_io *io, unsigned int offset, in port_outb() argument
1487 unsigned int addr = io->addr_data; in port_outb()
1489 outb(b, addr + (offset * io->regspacing)); in port_outb()
1492 static unsigned char port_inw(const struct si_sm_io *io, unsigned int offset) in port_inw() argument
1494 unsigned int addr = io->addr_data; in port_inw()
1496 return (inw(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inw()
1499 static void port_outw(const struct si_sm_io *io, unsigned int offset, in port_outw() argument
1502 unsigned int addr = io->addr_data; in port_outw()
1504 outw(b << io->regshift, addr + (offset * io->regspacing)); in port_outw()
1507 static unsigned char port_inl(const struct si_sm_io *io, unsigned int offset) in port_inl() argument
1509 unsigned int addr = io->addr_data; in port_inl()
1511 return (inl(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inl()
1514 static void port_outl(const struct si_sm_io *io, unsigned int offset, in port_outl() argument
1517 unsigned int addr = io->addr_data; in port_outl()
1519 outl(b << io->regshift, addr+(offset * io->regspacing)); in port_outl()
1524 unsigned int addr = info->io.addr_data; in port_cleanup()
1529 release_region(addr + idx * info->io.regspacing, in port_cleanup()
1530 info->io.regsize); in port_cleanup()
1536 unsigned int addr = info->io.addr_data; in port_setup()
1548 switch (info->io.regsize) { in port_setup()
1550 info->io.inputb = port_inb; in port_setup()
1551 info->io.outputb = port_outb; in port_setup()
1554 info->io.inputb = port_inw; in port_setup()
1555 info->io.outputb = port_outw; in port_setup()
1558 info->io.inputb = port_inl; in port_setup()
1559 info->io.outputb = port_outl; in port_setup()
1563 info->io.regsize); in port_setup()
1574 if (request_region(addr + idx * info->io.regspacing, in port_setup()
1575 info->io.regsize, DEVICE_NAME) == NULL) { in port_setup()
1578 release_region(addr + idx * info->io.regspacing, in port_setup()
1579 info->io.regsize); in port_setup()
1587 static unsigned char intf_mem_inb(const struct si_sm_io *io, in intf_mem_inb() argument
1590 return readb((io->addr)+(offset * io->regspacing)); in intf_mem_inb()
1593 static void intf_mem_outb(const struct si_sm_io *io, unsigned int offset, in intf_mem_outb() argument
1596 writeb(b, (io->addr)+(offset * io->regspacing)); in intf_mem_outb()
1599 static unsigned char intf_mem_inw(const struct si_sm_io *io, in intf_mem_inw() argument
1602 return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inw()
1606 static void intf_mem_outw(const struct si_sm_io *io, unsigned int offset, in intf_mem_outw() argument
1609 writeb(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outw()
1612 static unsigned char intf_mem_inl(const struct si_sm_io *io, in intf_mem_inl() argument
1615 return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inl()
1619 static void intf_mem_outl(const struct si_sm_io *io, unsigned int offset, in intf_mem_outl() argument
1622 writel(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outl()
1626 static unsigned char mem_inq(const struct si_sm_io *io, unsigned int offset) in mem_inq() argument
1628 return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) in mem_inq()
1632 static void mem_outq(const struct si_sm_io *io, unsigned int offset, in mem_outq() argument
1635 writeq(b << io->regshift, (io->addr)+(offset * io->regspacing)); in mem_outq()
1641 unsigned long addr = info->io.addr_data; in mem_cleanup()
1644 if (info->io.addr) { in mem_cleanup()
1645 iounmap(info->io.addr); in mem_cleanup()
1647 mapsize = ((info->io_size * info->io.regspacing) in mem_cleanup()
1648 - (info->io.regspacing - info->io.regsize)); in mem_cleanup()
1656 unsigned long addr = info->io.addr_data; in mem_setup()
1668 switch (info->io.regsize) { in mem_setup()
1670 info->io.inputb = intf_mem_inb; in mem_setup()
1671 info->io.outputb = intf_mem_outb; in mem_setup()
1674 info->io.inputb = intf_mem_inw; in mem_setup()
1675 info->io.outputb = intf_mem_outw; in mem_setup()
1678 info->io.inputb = intf_mem_inl; in mem_setup()
1679 info->io.outputb = intf_mem_outl; in mem_setup()
1683 info->io.inputb = mem_inq; in mem_setup()
1684 info->io.outputb = mem_outq; in mem_setup()
1689 info->io.regsize); in mem_setup()
1700 mapsize = ((info->io_size * info->io.regspacing) in mem_setup()
1701 - (info->io.regspacing - info->io.regsize)); in mem_setup()
1706 info->io.addr = ioremap(addr, mapsize); in mem_setup()
1707 if (info->io.addr == NULL) { in mem_setup()
1925 info->io.addr_data = addr; in hotmod_handler()
1926 info->io.addr_type = addr_space; in hotmod_handler()
1932 info->io.addr = NULL; in hotmod_handler()
1933 info->io.regspacing = regspacing; in hotmod_handler()
1934 if (!info->io.regspacing) in hotmod_handler()
1935 info->io.regspacing = DEFAULT_REGSPACING; in hotmod_handler()
1936 info->io.regsize = regsize; in hotmod_handler()
1937 if (!info->io.regsize) in hotmod_handler()
1938 info->io.regsize = DEFAULT_REGSPACING; in hotmod_handler()
1939 info->io.regshift = regshift; in hotmod_handler()
1961 if (e->io.addr_type != addr_space) in hotmod_handler()
1965 if (e->io.addr_data == addr) in hotmod_handler()
2011 info->io.addr_data = ports[i]; in hardcode_find_bmc()
2012 info->io.addr_type = IPMI_IO_ADDR_SPACE; in hardcode_find_bmc()
2016 info->io.addr_data = addrs[i]; in hardcode_find_bmc()
2017 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in hardcode_find_bmc()
2026 info->io.addr = NULL; in hardcode_find_bmc()
2027 info->io.regspacing = regspacings[i]; in hardcode_find_bmc()
2028 if (!info->io.regspacing) in hardcode_find_bmc()
2029 info->io.regspacing = DEFAULT_REGSPACING; in hardcode_find_bmc()
2030 info->io.regsize = regsizes[i]; in hardcode_find_bmc()
2031 if (!info->io.regsize) in hardcode_find_bmc()
2032 info->io.regsize = DEFAULT_REGSPACING; in hardcode_find_bmc()
2033 info->io.regshift = regshifts[i]; in hardcode_find_bmc()
2214 info->io.regspacing = spmi->addr.bit_width / 8; in try_init_spmi()
2216 info->io.regspacing = DEFAULT_REGSPACING; in try_init_spmi()
2218 info->io.regsize = info->io.regspacing; in try_init_spmi()
2219 info->io.regshift = spmi->addr.bit_offset; in try_init_spmi()
2223 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_spmi()
2226 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_spmi()
2232 info->io.addr_data = spmi->addr.address; in try_init_spmi()
2235 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_spmi()
2236 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_spmi()
2372 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_dmi()
2377 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_dmi()
2386 info->io.addr_data = ipmi_data->base_addr; in try_init_dmi()
2388 info->io.regspacing = ipmi_data->offset; in try_init_dmi()
2389 if (!info->io.regspacing) in try_init_dmi()
2390 info->io.regspacing = DEFAULT_REGSPACING; in try_init_dmi()
2391 info->io.regsize = DEFAULT_REGSPACING; in try_init_dmi()
2392 info->io.regshift = 0; in try_init_dmi()
2401 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_dmi()
2402 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_dmi()
2451 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
2452 info->io.regshift = 0; in ipmi_pci_probe_regspacing()
2458 info->io.regspacing = regspacing; in ipmi_pci_probe_regspacing()
2465 info->io.outputb(&info->io, 1, 0x10); in ipmi_pci_probe_regspacing()
2467 status = info->io.inputb(&info->io, 1); in ipmi_pci_probe_regspacing()
2522 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
2525 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
2527 info->io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
2529 info->io.regspacing = ipmi_pci_probe_regspacing(info); in ipmi_pci_probe()
2530 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
2531 info->io.regshift = 0; in ipmi_pci_probe()
2541 &pdev->resource[0], info->io.regsize, info->io.regspacing, in ipmi_pci_probe()
2644 info->io.addr_type = IPMI_IO_ADDR_SPACE; in of_ipmi_probe()
2647 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in of_ipmi_probe()
2650 info->io.addr_data = resource.start; in of_ipmi_probe()
2652 info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE; in of_ipmi_probe()
2653 info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING; in of_ipmi_probe()
2654 info->io.regshift = regshift ? be32_to_cpup(regshift) : 0; in of_ipmi_probe()
2660 info->io.addr_data, info->io.regsize, info->io.regspacing, in of_ipmi_probe()
2731 info->io.addr_type = IPMI_IO_ADDR_SPACE; in acpi_ipmi_probe()
2736 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in acpi_ipmi_probe()
2743 info->io.addr_data = res->start; in acpi_ipmi_probe()
2745 info->io.regspacing = DEFAULT_REGSPACING; in acpi_ipmi_probe()
2747 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? in acpi_ipmi_probe()
2751 if (res_second->start > info->io.addr_data) in acpi_ipmi_probe()
2752 info->io.regspacing = in acpi_ipmi_probe()
2753 res_second->start - info->io.addr_data; in acpi_ipmi_probe()
2755 info->io.regsize = DEFAULT_REGSPACING; in acpi_ipmi_probe()
2756 info->io.regshift = 0; in acpi_ipmi_probe()
2776 res, info->io.regsize, info->io.regspacing, in acpi_ipmi_probe()
2845 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_parisc_probe()
2846 info->io.addr_data = dev->hpa.start; in ipmi_parisc_probe()
2847 info->io.regsize = 1; in ipmi_parisc_probe()
2848 info->io.regspacing = 1; in ipmi_parisc_probe()
2849 info->io.regshift = 0; in ipmi_parisc_probe()
2854 dev_dbg(&dev->dev, "addr 0x%lx\n", info->io.addr_data); in ipmi_parisc_probe()
3265 addr_space_to_str[smi->io.addr_type], in smi_params_proc_show()
3266 smi->io.addr_data, in smi_params_proc_show()
3267 smi->io.regspacing, in smi_params_proc_show()
3268 smi->io.regsize, in smi_params_proc_show()
3269 smi->io.regshift, in smi_params_proc_show()
3477 info->io.addr_data = ipmi_defaults[i].port; in default_find_bmc()
3478 info->io.addr_type = IPMI_IO_ADDR_SPACE; in default_find_bmc()
3480 info->io.addr = NULL; in default_find_bmc()
3481 info->io.regspacing = DEFAULT_REGSPACING; in default_find_bmc()
3482 info->io.regsize = DEFAULT_REGSPACING; in default_find_bmc()
3483 info->io.regshift = 0; in default_find_bmc()
3491 addr_space_to_str[info->io.addr_type], in default_find_bmc()
3492 info->io.addr_data); in default_find_bmc()
3506 if (e->io.addr_type != info->io.addr_type) in is_new_interface()
3508 if (e->io.addr_data == info->io.addr_data) in is_new_interface()
3553 addr_space_to_str[new_smi->io.addr_type], in try_smi_init()
3554 new_smi->io.addr_data, in try_smi_init()
3585 &new_smi->io); in try_smi_init()