Lines Matching refs:io

28 static void ipmi_pci_cleanup(struct si_sm_io *io)  in ipmi_pci_cleanup()  argument
30 struct pci_dev *pdev = io->addr_source_data; in ipmi_pci_cleanup()
35 static int ipmi_pci_probe_regspacing(struct si_sm_io *io) in ipmi_pci_probe_regspacing() argument
37 if (io->si_type == SI_KCS) { in ipmi_pci_probe_regspacing()
41 io->regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
42 io->regshift = 0; in ipmi_pci_probe_regspacing()
46 io->regspacing = regspacing; in ipmi_pci_probe_regspacing()
47 if (io->io_setup(io)) { in ipmi_pci_probe_regspacing()
48 dev_err(io->dev, in ipmi_pci_probe_regspacing()
53 io->outputb(io, 1, 0x10); in ipmi_pci_probe_regspacing()
55 status = io->inputb(io, 1); in ipmi_pci_probe_regspacing()
56 io->io_cleanup(io); in ipmi_pci_probe_regspacing()
78 struct si_sm_io io; in ipmi_pci_probe() local
83 memset(&io, 0, sizeof(io)); in ipmi_pci_probe()
84 io.addr_source = SI_PCI; in ipmi_pci_probe()
89 io.si_type = SI_SMIC; in ipmi_pci_probe()
93 io.si_type = SI_KCS; in ipmi_pci_probe()
97 io.si_type = SI_BT; in ipmi_pci_probe()
111 io.addr_source_cleanup = ipmi_pci_cleanup; in ipmi_pci_probe()
112 io.addr_source_data = pdev; in ipmi_pci_probe()
115 io.addr_type = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
116 io.io_setup = ipmi_si_port_setup; in ipmi_pci_probe()
118 io.addr_type = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
119 io.io_setup = ipmi_si_mem_setup; in ipmi_pci_probe()
121 io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
123 io.regspacing = ipmi_pci_probe_regspacing(&io); in ipmi_pci_probe()
124 io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
125 io.regshift = 0; in ipmi_pci_probe()
127 io.irq = pdev->irq; in ipmi_pci_probe()
128 if (io.irq) in ipmi_pci_probe()
129 io.irq_setup = ipmi_std_irq_setup; in ipmi_pci_probe()
131 io.dev = &pdev->dev; in ipmi_pci_probe()
134 &pdev->resource[0], io.regsize, io.regspacing, io.irq); in ipmi_pci_probe()
136 rv = ipmi_si_add_smi(&io); in ipmi_pci_probe()