--- zzzz-none-000/linux-3.10.107/include/linux/interrupt.h 2017-06-27 09:49:32.000000000 +0000 +++ vr9-7490-729/linux-3.10.107/include/linux/interrupt.h 2021-11-10 11:53:56.000000000 +0000 @@ -128,7 +128,12 @@ request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags, const char *name, void *dev) { +#if defined(CONFIG_SMP) && defined(CONFIG_LANTIQ) + extern int ifx_request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id); + return ifx_request_irq(irq, handler, flags, name, dev); +#else/*--- #if defined(CONFIG_SMP) && defined(CONFIG_LANTIQ) ---*/ return request_threaded_irq(irq, handler, NULL, flags, name, dev); +#endif/*--- #else ---*//*--- #if defined(CONFIG_SMP) && defined(CONFIG_LANTIQ) ---*/ } extern int __must_check @@ -301,25 +306,20 @@ #else /* CONFIG_SMP */ -static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m) +static inline int irq_set_affinity(unsigned int irq __attribute((unused)), const struct cpumask *m __attribute((unused))) { return -EINVAL; } -static inline int irq_force_affinity(unsigned int irq, const struct cpumask *cpumask) +static inline int irq_can_set_affinity(unsigned int irq __attribute((unused))) { return 0; } -static inline int irq_can_set_affinity(unsigned int irq) -{ - return 0; -} - -static inline int irq_select_affinity(unsigned int irq) { return 0; } +static inline int irq_select_affinity(unsigned int irq __attribute((unused))) { return 0; } -static inline int irq_set_affinity_hint(unsigned int irq, - const struct cpumask *m) +static inline int irq_set_affinity_hint(unsigned int irq __attribute((unused)), + const struct cpumask *m __attribute((unused))) { return -EINVAL; } @@ -345,7 +345,7 @@ #endif } -static inline void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags) +static inline void disable_irq_nosync_lockdep_irqsave(unsigned int irq, unsigned long *flags __attribute((unused))) { disable_irq_nosync(irq); #ifdef CONFIG_LOCKDEP @@ -369,7 +369,7 @@ enable_irq(irq); } -static inline void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags) +static inline void enable_irq_lockdep_irqrestore(unsigned int irq, unsigned long *flags __attribute((unused))) { #ifdef CONFIG_LOCKDEP local_irq_restore(*flags); @@ -707,4 +707,16 @@ extern int arch_probe_nr_irqs(void); extern int arch_early_irq_init(void); +#if defined(CONFIG_LANTIQ) && defined(CONFIG_AVM_ENHANCED) +/*--- for SMP-usage ---*/ +extern int request_irq_on(int cpu, unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char *devname, void *dev_id); +extern int free_irq_on(int cpu, unsigned int irq, void *dev_id); +extern void enable_irq_on(int cpu, unsigned int irq); +extern void disable_irq_on(int cpu, unsigned int irq); +#endif + +#if IS_ENABLED(CONFIG_ARCH_IPQ806X) +extern void irq_set_pending(unsigned int irq); +#endif + #endif