lkml.org 
[lkml]   [2019]   [Oct]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v2 09/23] soc: fsl: qe: move qe_ic_cascade_* functions to qe_ic.c
    From
    Date


    Le 25/10/2019 à 14:40, Rasmus Villemoes a écrit :
    > These functions are only ever called through a function pointer, and
    > therefore it makes no sense for them to be "static inline" - gcc has
    > no choice but to emit a copy in each translation unit that takes the
    > address of one of these (currently various platform code under
    > arch/powerpc/). So move them into qe_ic.c and leave ordinary extern
    > declarations in the header file.

    What is the point in moving fonctions that you will drop in the next
    patch (qe_ic_cascade_low_ipic() and qe_ic_cascade_high_ipic())
    Only move the ones that will remain.

    Christophe


    >
    > Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    > ---
    > drivers/soc/fsl/qe/qe_ic.c | 58 +++++++++++++++++++++++++++++++++++
    > include/soc/fsl/qe/qe_ic.h | 62 +++-----------------------------------
    > 2 files changed, 63 insertions(+), 57 deletions(-)
    >
    > diff --git a/drivers/soc/fsl/qe/qe_ic.c b/drivers/soc/fsl/qe/qe_ic.c
    > index 7b1870d2866a..a847b2672e90 100644
    > --- a/drivers/soc/fsl/qe/qe_ic.c
    > +++ b/drivers/soc/fsl/qe/qe_ic.c
    > @@ -402,6 +402,64 @@ unsigned int qe_ic_get_high_irq(struct qe_ic *qe_ic)
    > return irq_linear_revmap(qe_ic->irqhost, irq);
    > }
    >
    > +void qe_ic_cascade_low_ipic(struct irq_desc *desc)
    > +{
    > + struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > + unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
    > +
    > + if (cascade_irq != NO_IRQ)
    > + generic_handle_irq(cascade_irq);
    > +}
    > +
    > +void qe_ic_cascade_high_ipic(struct irq_desc *desc)
    > +{
    > + struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > + unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
    > +
    > + if (cascade_irq != NO_IRQ)
    > + generic_handle_irq(cascade_irq);
    > +}
    > +
    > +void qe_ic_cascade_low_mpic(struct irq_desc *desc)
    > +{
    > + struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > + unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
    > + struct irq_chip *chip = irq_desc_get_chip(desc);
    > +
    > + if (cascade_irq != NO_IRQ)
    > + generic_handle_irq(cascade_irq);
    > +
    > + chip->irq_eoi(&desc->irq_data);
    > +}
    > +
    > +void qe_ic_cascade_high_mpic(struct irq_desc *desc)
    > +{
    > + struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > + unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
    > + struct irq_chip *chip = irq_desc_get_chip(desc);
    > +
    > + if (cascade_irq != NO_IRQ)
    > + generic_handle_irq(cascade_irq);
    > +
    > + chip->irq_eoi(&desc->irq_data);
    > +}
    > +
    > +void qe_ic_cascade_muxed_mpic(struct irq_desc *desc)
    > +{
    > + struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > + unsigned int cascade_irq;
    > + struct irq_chip *chip = irq_desc_get_chip(desc);
    > +
    > + cascade_irq = qe_ic_get_high_irq(qe_ic);
    > + if (cascade_irq == NO_IRQ)
    > + cascade_irq = qe_ic_get_low_irq(qe_ic);
    > +
    > + if (cascade_irq != NO_IRQ)
    > + generic_handle_irq(cascade_irq);
    > +
    > + chip->irq_eoi(&desc->irq_data);
    > +}
    > +
    > void __init qe_ic_init(struct device_node *node, unsigned int flags,
    > void (*low_handler)(struct irq_desc *desc),
    > void (*high_handler)(struct irq_desc *desc))
    > diff --git a/include/soc/fsl/qe/qe_ic.h b/include/soc/fsl/qe/qe_ic.h
    > index 714a9b890d8d..f3492eb13052 100644
    > --- a/include/soc/fsl/qe/qe_ic.h
    > +++ b/include/soc/fsl/qe/qe_ic.h
    > @@ -74,62 +74,10 @@ void qe_ic_set_highest_priority(unsigned int virq, int high);
    > int qe_ic_set_priority(unsigned int virq, unsigned int priority);
    > int qe_ic_set_high_priority(unsigned int virq, unsigned int priority, int high);
    >
    > -static inline void qe_ic_cascade_low_ipic(struct irq_desc *desc)
    > -{
    > - struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > - unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
    > -
    > - if (cascade_irq != NO_IRQ)
    > - generic_handle_irq(cascade_irq);
    > -}
    > -
    > -static inline void qe_ic_cascade_high_ipic(struct irq_desc *desc)
    > -{
    > - struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > - unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
    > -
    > - if (cascade_irq != NO_IRQ)
    > - generic_handle_irq(cascade_irq);
    > -}
    > -
    > -static inline void qe_ic_cascade_low_mpic(struct irq_desc *desc)
    > -{
    > - struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > - unsigned int cascade_irq = qe_ic_get_low_irq(qe_ic);
    > - struct irq_chip *chip = irq_desc_get_chip(desc);
    > -
    > - if (cascade_irq != NO_IRQ)
    > - generic_handle_irq(cascade_irq);
    > -
    > - chip->irq_eoi(&desc->irq_data);
    > -}
    > -
    > -static inline void qe_ic_cascade_high_mpic(struct irq_desc *desc)
    > -{
    > - struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > - unsigned int cascade_irq = qe_ic_get_high_irq(qe_ic);
    > - struct irq_chip *chip = irq_desc_get_chip(desc);
    > -
    > - if (cascade_irq != NO_IRQ)
    > - generic_handle_irq(cascade_irq);
    > -
    > - chip->irq_eoi(&desc->irq_data);
    > -}
    > -
    > -static inline void qe_ic_cascade_muxed_mpic(struct irq_desc *desc)
    > -{
    > - struct qe_ic *qe_ic = irq_desc_get_handler_data(desc);
    > - unsigned int cascade_irq;
    > - struct irq_chip *chip = irq_desc_get_chip(desc);
    > -
    > - cascade_irq = qe_ic_get_high_irq(qe_ic);
    > - if (cascade_irq == NO_IRQ)
    > - cascade_irq = qe_ic_get_low_irq(qe_ic);
    > -
    > - if (cascade_irq != NO_IRQ)
    > - generic_handle_irq(cascade_irq);
    > -
    > - chip->irq_eoi(&desc->irq_data);
    > -}
    > +void qe_ic_cascade_low_ipic(struct irq_desc *desc);
    > +void qe_ic_cascade_high_ipic(struct irq_desc *desc);
    > +void qe_ic_cascade_low_mpic(struct irq_desc *desc);
    > +void qe_ic_cascade_high_mpic(struct irq_desc *desc);
    > +void qe_ic_cascade_muxed_mpic(struct irq_desc *desc);
    >
    > #endif /* _ASM_POWERPC_QE_IC_H */
    >

    \
     
     \ /
      Last update: 2019-10-30 11:45    [W:4.111 / U:0.080 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site