This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Failed to setup hwmod io irq -22

Hi,

I have checked the booting log in am335x and got the following message

mux: Failed to setup hwmod io irq -22

This message comes from  mux.c , it seems like failed in request_irq function

ret = request_irq(omap_prcm_event_to_irq("io"),
        omap_hwmod_mux_handle_irq, IRQF_SHARED | IRQF_NO_SUSPEND,
            "hwmod_io", omap_mux_late_init);

    if (ret)
        pr_warning("mux: Failed to setup hwmod io irq %d\n", ret);

This is just a warning message. Should I be concerned? Is there anything wrong

Thank you.

  • Hi,

    It's just a warning.

    ERRNO -22 means:

    #define	EINVAL		22	/* Invalid argument */

    An irq for the "io" event is tried to be requested, but the omap_prcm_event_to_irq() function detects that the prcm_irq_setup structure isn't initialized. More info on this structure can be found in prm_common.c:

    /*
     * prcm_irq_setup: the PRCM IRQ parameters for the hardware the code
     * is currently running on.  Defined and passed by initialization code
     * that calls omap_prcm_register_chain_handler().
     */
    static struct omap_prcm_irq_setup *prcm_irq_setup;

    Check the static int __init omap3xxx_prcm_init(void) function inside prm2xxx_3xxx.c and you will find that the omap_prcm_register_chain_handler() function is only called if the CPU is omap34xx and not am33xx, as it is in our case, so the prcm_irq_setup structure is never initialized.

    I hope this explains why the warning message is printed.

    Best regards,
    Miroslav

  • Hi Miroslav,

    Thanks for your reply.

    I'll comment these unrelated-code.