Lines Matching defs:io

61 	struct si_sm_io *io = context;
63 ipmi_si_irq_handler(io->irq, io->irq_handler_data);
67 static void acpi_gpe_irq_cleanup(struct si_sm_io *io)
69 if (!io->irq)
72 ipmi_irq_start_cleanup(io);
73 acpi_remove_gpe_handler(NULL, io->irq, &ipmi_acpi_gpe);
76 static int acpi_gpe_irq_setup(struct si_sm_io *io)
80 if (!io->irq)
84 io->irq,
87 io);
89 dev_warn(io->dev,
91 io->irq);
92 io->irq = 0;
96 io->irq_cleanup = acpi_gpe_irq_cleanup;
97 ipmi_irq_finish_setup(io);
98 dev_info(io->dev, "Using ACPI GPE %d\n", io->irq);
103 static void ipmi_set_addr_data_and_space(struct resource *r, struct si_sm_io *io)
106 io->addr_space = IPMI_IO_ADDR_SPACE;
108 io->addr_space = IPMI_MEM_ADDR_SPACE;
109 io->addr_data = r->start;
114 struct si_sm_io *io)
123 ipmi_set_addr_data_and_space(res, io);
125 io->regspacing = DEFAULT_REGSPACING;
128 if (res_second->start > io->addr_data)
129 io->regspacing = res_second->start - io->addr_data;
137 struct si_sm_io io;
159 memset(&io, 0, sizeof(io));
160 io.addr_source = addr_source;
166 io.si_info = &ipmi_kcs_si_info;
169 io.si_info = &ipmi_smic_si_info;
172 io.si_info = &ipmi_bt_si_info;
181 io.regsize = DEFAULT_REGSIZE;
184 io.regsize = regsize;
186 io.regshift = 0;
189 io.regshift = regshift;
191 if (!ipmi_get_info_from_resources(pdev, &io))
196 io.slave_addr = 0x20;
198 io.slave_addr = slave_addr;
200 io.irq = platform_get_irq_optional(pdev, 0);
201 if (io.irq > 0)
202 io.irq_setup = ipmi_std_irq_setup;
204 io.irq = 0;
206 io.dev = &pdev->dev;
210 (io.addr_space == IPMI_IO_ADDR_SPACE) ? "io" : "mem",
211 io.addr_data, io.regsize, io.regspacing, io.irq);
213 ipmi_si_add_smi(&io);
229 struct si_sm_io io;
268 memset(&io, 0, sizeof(io));
269 io.si_info = device_get_match_data(&pdev->dev);
270 io.addr_source = SI_DEVICETREE;
271 io.irq_setup = ipmi_std_irq_setup;
273 ipmi_set_addr_data_and_space(&resource, &io);
275 io.regsize = regsize ? be32_to_cpup(regsize) : DEFAULT_REGSIZE;
276 io.regspacing = regspacing ? be32_to_cpup(regspacing) : DEFAULT_REGSPACING;
277 io.regshift = regshift ? be32_to_cpup(regshift) : 0;
279 io.irq = platform_get_irq_optional(pdev, 0);
280 if (io.irq < 0)
281 io.irq = 0;
283 io.dev = &pdev->dev;
286 io.addr_data, io.regsize, io.regspacing, io.irq);
288 return ipmi_si_add_smi(&io);
299 static int find_slave_address(struct si_sm_io *io, int slave_addr)
303 slave_addr = ipmi_dmi_get_slave_addr(io->si_info->type,
304 io->addr_space,
305 io->addr_data);
314 struct si_sm_io io;
327 memset(&io, 0, sizeof(io));
328 io.addr_source = SI_ACPI;
331 io.addr_info.acpi_info.acpi_handle = handle;
342 io.si_info = &ipmi_kcs_si_info;
345 io.si_info = &ipmi_smic_si_info;
348 io.si_info = &ipmi_bt_si_info;
357 io.dev = dev;
358 io.regsize = DEFAULT_REGSIZE;
359 io.regshift = 0;
361 res = ipmi_get_info_from_resources(pdev, &io);
368 io.irq = tmp;
369 io.irq_setup = acpi_gpe_irq_setup;
374 io.irq = irq;
375 io.irq_setup = ipmi_std_irq_setup;
379 io.slave_addr = find_slave_address(&io, io.slave_addr);
382 res, io.regsize, io.regspacing, io.irq);
386 return ipmi_si_add_smi(&io);