hc
2024-09-20 a36159eec6ca17402b0e146b86efaf76568dc353
kernel/arch/powerpc/sysdev/ipic.c
....@@ -1,14 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * arch/powerpc/sysdev/ipic.c
34 *
45 * IPIC routines implementations.
56 *
67 * Copyright 2005 Freescale Semiconductor, Inc.
7
- *
8
- * This program is free software; you can redistribute it and/or modify it
9
- * under the terms of the GNU General Public License as published by the
10
- * Free Software Foundation; either version 2 of the License, or (at your
11
- * option) any later version.
128 */
139 #include <linux/kernel.h>
1410 #include <linux/init.h>
....@@ -771,49 +767,6 @@
771767 return ipic;
772768 }
773769
774
-int ipic_set_priority(unsigned int virq, unsigned int priority)
775
-{
776
- struct ipic *ipic = ipic_from_irq(virq);
777
- unsigned int src = virq_to_hw(virq);
778
- u32 temp;
779
-
780
- if (priority > 7)
781
- return -EINVAL;
782
- if (src > 127)
783
- return -EINVAL;
784
- if (ipic_info[src].prio == 0)
785
- return -EINVAL;
786
-
787
- temp = ipic_read(ipic->regs, ipic_info[src].prio);
788
-
789
- if (priority < 4) {
790
- temp &= ~(0x7 << (20 + (3 - priority) * 3));
791
- temp |= ipic_info[src].prio_mask << (20 + (3 - priority) * 3);
792
- } else {
793
- temp &= ~(0x7 << (4 + (7 - priority) * 3));
794
- temp |= ipic_info[src].prio_mask << (4 + (7 - priority) * 3);
795
- }
796
-
797
- ipic_write(ipic->regs, ipic_info[src].prio, temp);
798
-
799
- return 0;
800
-}
801
-
802
-void ipic_set_highest_priority(unsigned int virq)
803
-{
804
- struct ipic *ipic = ipic_from_irq(virq);
805
- unsigned int src = virq_to_hw(virq);
806
- u32 temp;
807
-
808
- temp = ipic_read(ipic->regs, IPIC_SICFR);
809
-
810
- /* clear and set HPI */
811
- temp &= 0x7f000000;
812
- temp |= (src & 0x7f) << 24;
813
-
814
- ipic_write(ipic->regs, IPIC_SICFR, temp);
815
-}
816
-
817770 void ipic_set_default_priority(void)
818771 {
819772 ipic_write(primary_ipic->regs, IPIC_SIPRR_A, IPIC_PRIORITY_DEFAULT);
....@@ -824,29 +777,9 @@
824777 ipic_write(primary_ipic->regs, IPIC_SMPRR_B, IPIC_PRIORITY_DEFAULT);
825778 }
826779
827
-void ipic_enable_mcp(enum ipic_mcp_irq mcp_irq)
828
-{
829
- struct ipic *ipic = primary_ipic;
830
- u32 temp;
831
-
832
- temp = ipic_read(ipic->regs, IPIC_SERMR);
833
- temp |= (1 << (31 - mcp_irq));
834
- ipic_write(ipic->regs, IPIC_SERMR, temp);
835
-}
836
-
837
-void ipic_disable_mcp(enum ipic_mcp_irq mcp_irq)
838
-{
839
- struct ipic *ipic = primary_ipic;
840
- u32 temp;
841
-
842
- temp = ipic_read(ipic->regs, IPIC_SERMR);
843
- temp &= (1 << (31 - mcp_irq));
844
- ipic_write(ipic->regs, IPIC_SERMR, temp);
845
-}
846
-
847780 u32 ipic_get_mcp_status(void)
848781 {
849
- return ipic_read(primary_ipic->regs, IPIC_SERSR);
782
+ return primary_ipic ? ipic_read(primary_ipic->regs, IPIC_SERSR) : 0;
850783 }
851784
852785 void ipic_clear_mcp_status(u32 mask)