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

Blackfin: convert gpio irq_chip to new functions

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>

authored by

Thomas Gleixner and committed by
Mike Frysinger
e9502850 172d2d1d

+48 -44
+48 -44
arch/blackfin/mach-common/ints-priority.c
··· 567 567 568 568 #if !defined(CONFIG_BF54x) 569 569 570 - static void bfin_gpio_ack_irq(unsigned int irq) 570 + static void bfin_gpio_ack_irq(struct irq_data *d) 571 571 { 572 572 /* AFAIK ack_irq in case mask_ack is provided 573 573 * get's only called for edge sense irqs 574 574 */ 575 - set_gpio_data(irq_to_gpio(irq), 0); 575 + set_gpio_data(irq_to_gpio(d->irq), 0); 576 576 } 577 577 578 - static void bfin_gpio_mask_ack_irq(unsigned int irq) 578 + static void bfin_gpio_mask_ack_irq(struct irq_data *d) 579 579 { 580 + unsigned int irq = d->irq; 580 581 struct irq_desc *desc = irq_to_desc(irq); 581 582 u32 gpionr = irq_to_gpio(irq); 582 583 ··· 587 586 set_gpio_maska(gpionr, 0); 588 587 } 589 588 590 - static void bfin_gpio_mask_irq(unsigned int irq) 589 + static void bfin_gpio_mask_irq(struct irq_data *d) 591 590 { 592 - set_gpio_maska(irq_to_gpio(irq), 0); 591 + set_gpio_maska(irq_to_gpio(d->irq), 0); 593 592 } 594 593 595 - static void bfin_gpio_unmask_irq(unsigned int irq) 594 + static void bfin_gpio_unmask_irq(struct irq_data *d) 596 595 { 597 - set_gpio_maska(irq_to_gpio(irq), 1); 596 + set_gpio_maska(irq_to_gpio(d->irq), 1); 598 597 } 599 598 600 - static unsigned int bfin_gpio_irq_startup(unsigned int irq) 599 + static unsigned int bfin_gpio_irq_startup(struct irq_data *d) 601 600 { 602 - u32 gpionr = irq_to_gpio(irq); 601 + u32 gpionr = irq_to_gpio(d->irq); 603 602 604 603 if (__test_and_set_bit(gpionr, gpio_enabled)) 605 604 bfin_gpio_irq_prepare(gpionr); 606 605 607 - bfin_gpio_unmask_irq(irq); 606 + bfin_gpio_unmask_irq(d); 608 607 609 608 return 0; 610 609 } 611 610 612 - static void bfin_gpio_irq_shutdown(unsigned int irq) 611 + static void bfin_gpio_irq_shutdown(struct irq_data *d) 613 612 { 614 - u32 gpionr = irq_to_gpio(irq); 613 + u32 gpionr = irq_to_gpio(d->irq); 615 614 616 - bfin_gpio_mask_irq(irq); 615 + bfin_gpio_mask_irq(d); 617 616 __clear_bit(gpionr, gpio_enabled); 618 617 bfin_gpio_irq_free(gpionr); 619 618 } 620 619 621 - static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) 620 + static int bfin_gpio_irq_type(struct irq_data *d, unsigned int type) 622 621 { 622 + unsigned int irq = d->irq; 623 623 int ret; 624 624 char buf[16]; 625 625 u32 gpionr = irq_to_gpio(irq); ··· 681 679 } 682 680 683 681 #ifdef CONFIG_PM 684 - int bfin_gpio_set_wake(unsigned int irq, unsigned int state) 682 + int bfin_gpio_set_wake(struct irq_data *d, unsigned int state) 685 683 { 686 - return gpio_pm_wakeup_ctrl(irq_to_gpio(irq), state); 684 + return gpio_pm_wakeup_ctrl(irq_to_gpio(d->irq), state); 687 685 } 688 686 #endif 689 687 ··· 835 833 } 836 834 } 837 835 838 - static void bfin_gpio_ack_irq(unsigned int irq) 836 + static void bfin_gpio_ack_irq(struct irq_data *d) 839 837 { 840 - struct irq_desc *desc = irq_to_desc(irq); 841 - u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 838 + struct irq_desc *desc = irq_to_desc(d->irq); 839 + u32 pint_val = irq2pint_lut[d->irq - SYS_IRQS]; 842 840 u32 pintbit = PINT_BIT(pint_val); 843 841 u32 bank = PINT_2_BANK(pint_val); 844 842 ··· 852 850 853 851 } 854 852 855 - static void bfin_gpio_mask_ack_irq(unsigned int irq) 853 + static void bfin_gpio_mask_ack_irq(struct irq_data *d) 856 854 { 857 - struct irq_desc *desc = irq_to_desc(irq); 858 - u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 855 + struct irq_desc *desc = irq_to_desc(d->irq); 856 + u32 pint_val = irq2pint_lut[d->irq - SYS_IRQS]; 859 857 u32 pintbit = PINT_BIT(pint_val); 860 858 u32 bank = PINT_2_BANK(pint_val); 861 859 ··· 870 868 pint[bank]->mask_clear = pintbit; 871 869 } 872 870 873 - static void bfin_gpio_mask_irq(unsigned int irq) 871 + static void bfin_gpio_mask_irq(struct irq_data *d) 874 872 { 875 - u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 873 + u32 pint_val = irq2pint_lut[d->irq - SYS_IRQS]; 876 874 877 875 pint[PINT_2_BANK(pint_val)]->mask_clear = PINT_BIT(pint_val); 878 876 } 879 877 880 - static void bfin_gpio_unmask_irq(unsigned int irq) 878 + static void bfin_gpio_unmask_irq(struct irq_data *d) 881 879 { 882 - u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 880 + u32 pint_val = irq2pint_lut[d->irq - SYS_IRQS]; 883 881 u32 pintbit = PINT_BIT(pint_val); 884 882 u32 bank = PINT_2_BANK(pint_val); 885 883 886 884 pint[bank]->mask_set = pintbit; 887 885 } 888 886 889 - static unsigned int bfin_gpio_irq_startup(unsigned int irq) 887 + static unsigned int bfin_gpio_irq_startup(struct irq_data *d) 890 888 { 889 + unsigned int irq = d->irq; 891 890 u32 gpionr = irq_to_gpio(irq); 892 891 u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 893 892 ··· 902 899 if (__test_and_set_bit(gpionr, gpio_enabled)) 903 900 bfin_gpio_irq_prepare(gpionr); 904 901 905 - bfin_gpio_unmask_irq(irq); 902 + bfin_gpio_unmask_irq(d); 906 903 907 904 return 0; 908 905 } 909 906 910 - static void bfin_gpio_irq_shutdown(unsigned int irq) 907 + static void bfin_gpio_irq_shutdown(struct irq_data *d) 911 908 { 912 - u32 gpionr = irq_to_gpio(irq); 909 + u32 gpionr = irq_to_gpio(d->irq); 913 910 914 - bfin_gpio_mask_irq(irq); 911 + bfin_gpio_mask_irq(d); 915 912 __clear_bit(gpionr, gpio_enabled); 916 913 bfin_gpio_irq_free(gpionr); 917 914 } 918 915 919 - static int bfin_gpio_irq_type(unsigned int irq, unsigned int type) 916 + static int bfin_gpio_irq_type(struct irq_data *d, unsigned int type) 920 917 { 918 + unsigned int irq = d->irq; 921 919 int ret; 922 920 char buf[16]; 923 921 u32 gpionr = irq_to_gpio(irq); ··· 980 976 u32 pint_saved_masks[NR_PINT_SYS_IRQS]; 981 977 u32 pint_wakeup_masks[NR_PINT_SYS_IRQS]; 982 978 983 - int bfin_gpio_set_wake(unsigned int irq, unsigned int state) 979 + int bfin_gpio_set_wake(struct irq_data *d, unsigned int state) 984 980 { 985 981 u32 pint_irq; 986 - u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; 982 + u32 pint_val = irq2pint_lut[d->irq - SYS_IRQS]; 987 983 u32 bank = PINT_2_BANK(pint_val); 988 984 u32 pintbit = PINT_BIT(pint_val); 989 985 ··· 1085 1081 1086 1082 static struct irq_chip bfin_gpio_irqchip = { 1087 1083 .name = "GPIO", 1088 - .ack = bfin_gpio_ack_irq, 1089 - .mask = bfin_gpio_mask_irq, 1090 - .mask_ack = bfin_gpio_mask_ack_irq, 1091 - .unmask = bfin_gpio_unmask_irq, 1092 - .disable = bfin_gpio_mask_irq, 1093 - .enable = bfin_gpio_unmask_irq, 1094 - .set_type = bfin_gpio_irq_type, 1095 - .startup = bfin_gpio_irq_startup, 1096 - .shutdown = bfin_gpio_irq_shutdown, 1084 + .irq_ack = bfin_gpio_ack_irq, 1085 + .irq_mask = bfin_gpio_mask_irq, 1086 + .irq_mask_ack = bfin_gpio_mask_ack_irq, 1087 + .irq_unmask = bfin_gpio_unmask_irq, 1088 + .irq_disable = bfin_gpio_mask_irq, 1089 + .irq_enable = bfin_gpio_unmask_irq, 1090 + .irq_set_type = bfin_gpio_irq_type, 1091 + .irq_startup = bfin_gpio_irq_startup, 1092 + .irq_shutdown = bfin_gpio_irq_shutdown, 1097 1093 #ifdef CONFIG_PM 1098 - .set_wake = bfin_gpio_set_wake, 1094 + .irq_set_wake = bfin_gpio_set_wake, 1099 1095 #endif 1100 1096 }; 1101 1097