Lines Matching refs:io
178 struct si_sm_io io; member
593 u8 irqstate = smi_info->io.inputb(&smi_info->io, IPMI_BT_INTMASK_REG); in check_bt_irq()
601 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in check_bt_irq()
604 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, 0); in check_bt_irq()
1207 smi_info->io.outputb(&smi_info->io, IPMI_BT_INTMASK_REG, in si_bt_irq_handler()
1424 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, 0); in std_irq_cleanup()
1443 info->io.outputb(&info->io, IPMI_BT_INTMASK_REG, in std_irq_setup()
1464 static unsigned char port_inb(struct si_sm_io *io, unsigned int offset) in port_inb() argument
1466 unsigned int addr = io->addr_data; in port_inb()
1468 return inb(addr + (offset * io->regspacing)); in port_inb()
1471 static void port_outb(struct si_sm_io *io, unsigned int offset, in port_outb() argument
1474 unsigned int addr = io->addr_data; in port_outb()
1476 outb(b, addr + (offset * io->regspacing)); in port_outb()
1479 static unsigned char port_inw(struct si_sm_io *io, unsigned int offset) in port_inw() argument
1481 unsigned int addr = io->addr_data; in port_inw()
1483 return (inw(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inw()
1486 static void port_outw(struct si_sm_io *io, unsigned int offset, in port_outw() argument
1489 unsigned int addr = io->addr_data; in port_outw()
1491 outw(b << io->regshift, addr + (offset * io->regspacing)); in port_outw()
1494 static unsigned char port_inl(struct si_sm_io *io, unsigned int offset) in port_inl() argument
1496 unsigned int addr = io->addr_data; in port_inl()
1498 return (inl(addr + (offset * io->regspacing)) >> io->regshift) & 0xff; in port_inl()
1501 static void port_outl(struct si_sm_io *io, unsigned int offset, in port_outl() argument
1504 unsigned int addr = io->addr_data; in port_outl()
1506 outl(b << io->regshift, addr+(offset * io->regspacing)); in port_outl()
1511 unsigned int addr = info->io.addr_data; in port_cleanup()
1516 release_region(addr + idx * info->io.regspacing, in port_cleanup()
1517 info->io.regsize); in port_cleanup()
1523 unsigned int addr = info->io.addr_data; in port_setup()
1535 switch (info->io.regsize) { in port_setup()
1537 info->io.inputb = port_inb; in port_setup()
1538 info->io.outputb = port_outb; in port_setup()
1541 info->io.inputb = port_inw; in port_setup()
1542 info->io.outputb = port_outw; in port_setup()
1545 info->io.inputb = port_inl; in port_setup()
1546 info->io.outputb = port_outl; in port_setup()
1550 info->io.regsize); in port_setup()
1561 if (request_region(addr + idx * info->io.regspacing, in port_setup()
1562 info->io.regsize, DEVICE_NAME) == NULL) { in port_setup()
1565 release_region(addr + idx * info->io.regspacing, in port_setup()
1566 info->io.regsize); in port_setup()
1574 static unsigned char intf_mem_inb(struct si_sm_io *io, unsigned int offset) in intf_mem_inb() argument
1576 return readb((io->addr)+(offset * io->regspacing)); in intf_mem_inb()
1579 static void intf_mem_outb(struct si_sm_io *io, unsigned int offset, in intf_mem_outb() argument
1582 writeb(b, (io->addr)+(offset * io->regspacing)); in intf_mem_outb()
1585 static unsigned char intf_mem_inw(struct si_sm_io *io, unsigned int offset) in intf_mem_inw() argument
1587 return (readw((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inw()
1591 static void intf_mem_outw(struct si_sm_io *io, unsigned int offset, in intf_mem_outw() argument
1594 writeb(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outw()
1597 static unsigned char intf_mem_inl(struct si_sm_io *io, unsigned int offset) in intf_mem_inl() argument
1599 return (readl((io->addr)+(offset * io->regspacing)) >> io->regshift) in intf_mem_inl()
1603 static void intf_mem_outl(struct si_sm_io *io, unsigned int offset, in intf_mem_outl() argument
1606 writel(b << io->regshift, (io->addr)+(offset * io->regspacing)); in intf_mem_outl()
1610 static unsigned char mem_inq(struct si_sm_io *io, unsigned int offset) in mem_inq() argument
1612 return (readq((io->addr)+(offset * io->regspacing)) >> io->regshift) in mem_inq()
1616 static void mem_outq(struct si_sm_io *io, unsigned int offset, in mem_outq() argument
1619 writeq(b << io->regshift, (io->addr)+(offset * io->regspacing)); in mem_outq()
1625 unsigned long addr = info->io.addr_data; in mem_cleanup()
1628 if (info->io.addr) { in mem_cleanup()
1629 iounmap(info->io.addr); in mem_cleanup()
1631 mapsize = ((info->io_size * info->io.regspacing) in mem_cleanup()
1632 - (info->io.regspacing - info->io.regsize)); in mem_cleanup()
1640 unsigned long addr = info->io.addr_data; in mem_setup()
1652 switch (info->io.regsize) { in mem_setup()
1654 info->io.inputb = intf_mem_inb; in mem_setup()
1655 info->io.outputb = intf_mem_outb; in mem_setup()
1658 info->io.inputb = intf_mem_inw; in mem_setup()
1659 info->io.outputb = intf_mem_outw; in mem_setup()
1662 info->io.inputb = intf_mem_inl; in mem_setup()
1663 info->io.outputb = intf_mem_outl; in mem_setup()
1667 info->io.inputb = mem_inq; in mem_setup()
1668 info->io.outputb = mem_outq; in mem_setup()
1673 info->io.regsize); in mem_setup()
1684 mapsize = ((info->io_size * info->io.regspacing) in mem_setup()
1685 - (info->io.regspacing - info->io.regsize)); in mem_setup()
1690 info->io.addr = ioremap(addr, mapsize); in mem_setup()
1691 if (info->io.addr == NULL) { in mem_setup()
1909 info->io.addr_data = addr; in hotmod_handler()
1910 info->io.addr_type = addr_space; in hotmod_handler()
1916 info->io.addr = NULL; in hotmod_handler()
1917 info->io.regspacing = regspacing; in hotmod_handler()
1918 if (!info->io.regspacing) in hotmod_handler()
1919 info->io.regspacing = DEFAULT_REGSPACING; in hotmod_handler()
1920 info->io.regsize = regsize; in hotmod_handler()
1921 if (!info->io.regsize) in hotmod_handler()
1922 info->io.regsize = DEFAULT_REGSPACING; in hotmod_handler()
1923 info->io.regshift = regshift; in hotmod_handler()
1945 if (e->io.addr_type != addr_space) in hotmod_handler()
1949 if (e->io.addr_data == addr) in hotmod_handler()
1995 info->io.addr_data = ports[i]; in hardcode_find_bmc()
1996 info->io.addr_type = IPMI_IO_ADDR_SPACE; in hardcode_find_bmc()
2000 info->io.addr_data = addrs[i]; in hardcode_find_bmc()
2001 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in hardcode_find_bmc()
2010 info->io.addr = NULL; in hardcode_find_bmc()
2011 info->io.regspacing = regspacings[i]; in hardcode_find_bmc()
2012 if (!info->io.regspacing) in hardcode_find_bmc()
2013 info->io.regspacing = DEFAULT_REGSPACING; in hardcode_find_bmc()
2014 info->io.regsize = regsizes[i]; in hardcode_find_bmc()
2015 if (!info->io.regsize) in hardcode_find_bmc()
2016 info->io.regsize = DEFAULT_REGSPACING; in hardcode_find_bmc()
2017 info->io.regshift = regshifts[i]; in hardcode_find_bmc()
2198 info->io.regspacing = spmi->addr.bit_width / 8; in try_init_spmi()
2200 info->io.regspacing = DEFAULT_REGSPACING; in try_init_spmi()
2202 info->io.regsize = info->io.regspacing; in try_init_spmi()
2203 info->io.regshift = spmi->addr.bit_offset; in try_init_spmi()
2207 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_spmi()
2210 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_spmi()
2216 info->io.addr_data = spmi->addr.address; in try_init_spmi()
2219 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_spmi()
2220 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_spmi()
2305 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pnp_probe()
2310 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pnp_probe()
2317 info->io.addr_data = res->start; in ipmi_pnp_probe()
2319 info->io.regspacing = DEFAULT_REGSPACING; in ipmi_pnp_probe()
2321 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? in ipmi_pnp_probe()
2325 if (res_second->start > info->io.addr_data) in ipmi_pnp_probe()
2326 info->io.regspacing = res_second->start - info->io.addr_data; in ipmi_pnp_probe()
2328 info->io.regsize = DEFAULT_REGSPACING; in ipmi_pnp_probe()
2329 info->io.regshift = 0; in ipmi_pnp_probe()
2345 res, info->io.regsize, info->io.regspacing, in ipmi_pnp_probe()
2484 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in try_init_dmi()
2489 info->io.addr_type = IPMI_IO_ADDR_SPACE; in try_init_dmi()
2498 info->io.addr_data = ipmi_data->base_addr; in try_init_dmi()
2500 info->io.regspacing = ipmi_data->offset; in try_init_dmi()
2501 if (!info->io.regspacing) in try_init_dmi()
2502 info->io.regspacing = DEFAULT_REGSPACING; in try_init_dmi()
2503 info->io.regsize = DEFAULT_REGSPACING; in try_init_dmi()
2504 info->io.regshift = 0; in try_init_dmi()
2513 (info->io.addr_type == IPMI_IO_ADDR_SPACE) ? "io" : "mem", in try_init_dmi()
2514 info->io.addr_data, info->io.regsize, info->io.regspacing, in try_init_dmi()
2563 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
2564 info->io.regshift = 0; in ipmi_pci_probe_regspacing()
2570 info->io.regspacing = regspacing; in ipmi_pci_probe_regspacing()
2577 info->io.outputb(&info->io, 1, 0x10); in ipmi_pci_probe_regspacing()
2579 status = info->io.inputb(&info->io, 1); in ipmi_pci_probe_regspacing()
2634 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
2637 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
2639 info->io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
2641 info->io.regspacing = ipmi_pci_probe_regspacing(info); in ipmi_pci_probe()
2642 info->io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
2643 info->io.regshift = 0; in ipmi_pci_probe()
2653 &pdev->resource[0], info->io.regsize, info->io.regspacing, in ipmi_pci_probe()
2746 info->io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_probe()
2749 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_probe()
2752 info->io.addr_data = resource.start; in ipmi_probe()
2754 info->io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE; in ipmi_probe()
2755 info->io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING; in ipmi_probe()
2756 info->io.regshift = regshift ? be32_to_cpup(regshift) : 0; in ipmi_probe()
2762 info->io.addr_data, info->io.regsize, info->io.regspacing, in ipmi_probe()
2821 info->io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_parisc_probe()
2822 info->io.addr_data = dev->hpa.start; in ipmi_parisc_probe()
2823 info->io.regsize = 1; in ipmi_parisc_probe()
2824 info->io.regspacing = 1; in ipmi_parisc_probe()
2825 info->io.regshift = 0; in ipmi_parisc_probe()
2830 dev_dbg(&dev->dev, "addr 0x%lx\n", info->io.addr_data); in ipmi_parisc_probe()
3165 addr_space_to_str[smi->io.addr_type], in smi_params_proc_show()
3166 smi->io.addr_data, in smi_params_proc_show()
3167 smi->io.regspacing, in smi_params_proc_show()
3168 smi->io.regsize, in smi_params_proc_show()
3169 smi->io.regshift, in smi_params_proc_show()
3371 info->io.addr_data = ipmi_defaults[i].port; in default_find_bmc()
3372 info->io.addr_type = IPMI_IO_ADDR_SPACE; in default_find_bmc()
3374 info->io.addr = NULL; in default_find_bmc()
3375 info->io.regspacing = DEFAULT_REGSPACING; in default_find_bmc()
3376 info->io.regsize = DEFAULT_REGSPACING; in default_find_bmc()
3377 info->io.regshift = 0; in default_find_bmc()
3385 addr_space_to_str[info->io.addr_type], in default_find_bmc()
3386 info->io.addr_data); in default_find_bmc()
3400 if (e->io.addr_type != info->io.addr_type) in is_new_interface()
3402 if (e->io.addr_data == info->io.addr_data) in is_new_interface()
3447 addr_space_to_str[new_smi->io.addr_type], in try_smi_init()
3448 new_smi->io.addr_data, in try_smi_init()
3479 &new_smi->io); in try_smi_init()