| .. | .. |
|---|
| 225 | 225 | .shutdown = i8259A_shutdown, |
|---|
| 226 | 226 | }; |
|---|
| 227 | 227 | |
|---|
| 228 | | -static int __init i8259A_init_sysfs(void) |
|---|
| 229 | | -{ |
|---|
| 230 | | - register_syscore_ops(&i8259_syscore_ops); |
|---|
| 231 | | - return 0; |
|---|
| 232 | | -} |
|---|
| 233 | | - |
|---|
| 234 | | -device_initcall(i8259A_init_sysfs); |
|---|
| 235 | | - |
|---|
| 236 | 228 | static void init_8259A(int auto_eoi) |
|---|
| 237 | 229 | { |
|---|
| 238 | 230 | unsigned long flags; |
|---|
| .. | .. |
|---|
| 276 | 268 | raw_spin_unlock_irqrestore(&i8259A_lock, flags); |
|---|
| 277 | 269 | } |
|---|
| 278 | 270 | |
|---|
| 279 | | -/* |
|---|
| 280 | | - * IRQ2 is cascade interrupt to second interrupt controller |
|---|
| 281 | | - */ |
|---|
| 282 | | -static struct irqaction irq2 = { |
|---|
| 283 | | - .handler = no_action, |
|---|
| 284 | | - .name = "cascade", |
|---|
| 285 | | - .flags = IRQF_NO_THREAD, |
|---|
| 286 | | -}; |
|---|
| 287 | | - |
|---|
| 288 | 271 | static struct resource pic1_io_resource = { |
|---|
| 289 | 272 | .name = "pic1", |
|---|
| 290 | 273 | .start = PIC_MASTER_CMD, |
|---|
| .. | .. |
|---|
| 319 | 302 | */ |
|---|
| 320 | 303 | struct irq_domain * __init __init_i8259_irqs(struct device_node *node) |
|---|
| 321 | 304 | { |
|---|
| 305 | + /* |
|---|
| 306 | + * PIC_CASCADE_IR is cascade interrupt to second interrupt controller |
|---|
| 307 | + */ |
|---|
| 308 | + int irq = I8259A_IRQ_BASE + PIC_CASCADE_IR; |
|---|
| 322 | 309 | struct irq_domain *domain; |
|---|
| 323 | 310 | |
|---|
| 324 | 311 | insert_resource(&ioport_resource, &pic1_io_resource); |
|---|
| .. | .. |
|---|
| 331 | 318 | if (!domain) |
|---|
| 332 | 319 | panic("Failed to add i8259 IRQ domain"); |
|---|
| 333 | 320 | |
|---|
| 334 | | - setup_irq(I8259A_IRQ_BASE + PIC_CASCADE_IR, &irq2); |
|---|
| 321 | + if (request_irq(irq, no_action, IRQF_NO_THREAD, "cascade", NULL)) |
|---|
| 322 | + pr_err("Failed to register cascade interrupt\n"); |
|---|
| 323 | + register_syscore_ops(&i8259_syscore_ops); |
|---|
| 335 | 324 | return domain; |
|---|
| 336 | 325 | } |
|---|
| 337 | 326 | |
|---|