Lines Matching full:io

24 static void ipmi_pci_cleanup(struct si_sm_io *io)  in ipmi_pci_cleanup()  argument
26 struct pci_dev *pdev = io->addr_source_data; in ipmi_pci_cleanup()
31 static int ipmi_pci_probe_regspacing(struct si_sm_io *io) in ipmi_pci_probe_regspacing() argument
33 if (io->si_type == SI_KCS) { in ipmi_pci_probe_regspacing()
37 io->regsize = DEFAULT_REGSIZE; in ipmi_pci_probe_regspacing()
38 io->regshift = 0; in ipmi_pci_probe_regspacing()
42 io->regspacing = regspacing; in ipmi_pci_probe_regspacing()
43 if (io->io_setup(io)) { in ipmi_pci_probe_regspacing()
44 dev_err(io->dev, "Could not setup I/O space\n"); in ipmi_pci_probe_regspacing()
48 io->outputb(io, 1, 0x10); in ipmi_pci_probe_regspacing()
50 status = io->inputb(io, 1); in ipmi_pci_probe_regspacing()
51 io->io_cleanup(io); in ipmi_pci_probe_regspacing()
73 struct si_sm_io io; in ipmi_pci_probe() local
78 memset(&io, 0, sizeof(io)); in ipmi_pci_probe()
79 io.addr_source = SI_PCI; in ipmi_pci_probe()
84 io.si_type = SI_SMIC; in ipmi_pci_probe()
88 io.si_type = SI_KCS; in ipmi_pci_probe()
92 io.si_type = SI_BT; in ipmi_pci_probe()
106 io.addr_source_cleanup = ipmi_pci_cleanup; in ipmi_pci_probe()
107 io.addr_source_data = pdev; in ipmi_pci_probe()
110 io.addr_space = IPMI_IO_ADDR_SPACE; in ipmi_pci_probe()
111 io.io_setup = ipmi_si_port_setup; in ipmi_pci_probe()
113 io.addr_space = IPMI_MEM_ADDR_SPACE; in ipmi_pci_probe()
114 io.io_setup = ipmi_si_mem_setup; in ipmi_pci_probe()
116 io.addr_data = pci_resource_start(pdev, 0); in ipmi_pci_probe()
118 io.dev = &pdev->dev; in ipmi_pci_probe()
120 io.regspacing = ipmi_pci_probe_regspacing(&io); in ipmi_pci_probe()
121 io.regsize = DEFAULT_REGSIZE; in ipmi_pci_probe()
122 io.regshift = 0; in ipmi_pci_probe()
124 io.irq = pdev->irq; in ipmi_pci_probe()
125 if (io.irq) in ipmi_pci_probe()
126 io.irq_setup = ipmi_std_irq_setup; in ipmi_pci_probe()
129 &pdev->resource[0], io.regsize, io.regspacing, io.irq); in ipmi_pci_probe()
131 rv = ipmi_si_add_smi(&io); in ipmi_pci_probe()