Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[SPARC64]: Minor irq handling cleanups.

Use struct irq_chip instead of hw_interrupt_type.

Delete hw_resend_irq(), totally unused.

Signed-off-by: David S. Miller <davem@davemloft.net>

+4 -22
+4 -20
arch/sparc64/kernel/irq.c
··· 372 372 } 373 373 } 374 374 375 - static struct hw_interrupt_type sun4u_irq = { 375 + static struct irq_chip sun4u_irq = { 376 376 .typename = "sun4u", 377 377 .enable = sun4u_irq_enable, 378 378 .disable = sun4u_irq_disable, 379 379 .end = sun4u_irq_end, 380 380 }; 381 381 382 - static struct hw_interrupt_type sun4u_irq_ack = { 382 + static struct irq_chip sun4u_irq_ack = { 383 383 .typename = "sun4u+ack", 384 384 .enable = sun4u_irq_enable, 385 385 .disable = sun4u_irq_disable, ··· 387 387 .end = sun4u_irq_end, 388 388 }; 389 389 390 - static struct hw_interrupt_type sun4v_irq = { 390 + static struct irq_chip sun4v_irq = { 391 391 .typename = "sun4v", 392 392 .enable = sun4v_irq_enable, 393 393 .disable = sun4v_irq_disable, 394 394 .end = sun4v_irq_end, 395 395 }; 396 396 397 - static struct hw_interrupt_type sun4v_irq_ack = { 397 + static struct irq_chip sun4v_irq_ack = { 398 398 .typename = "sun4v+ack", 399 399 .enable = sun4v_irq_enable, 400 400 .disable = sun4v_irq_disable, ··· 491 491 492 492 out: 493 493 return bucket->virt_irq; 494 - } 495 - 496 - void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq) 497 - { 498 - struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq); 499 - unsigned long pstate; 500 - unsigned int *ent; 501 - 502 - __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate)); 503 - __asm__ __volatile__("wrpr %0, %1, %%pstate" 504 - : : "r" (pstate), "i" (PSTATE_IE)); 505 - ent = irq_work(smp_processor_id()); 506 - bucket->irq_chain = *ent; 507 - *ent = __irq(bucket); 508 - set_softint(1 << PIL_DEVICE_IRQ); 509 - __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : : "r" (pstate)); 510 494 } 511 495 512 496 void ack_bad_irq(unsigned int virt_irq)
-2
include/asm-sparc64/hw_irq.h
··· 1 1 #ifndef __ASM_SPARC64_HW_IRQ_H 2 2 #define __ASM_SPARC64_HW_IRQ_H 3 3 4 - extern void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq); 5 - 6 4 #endif