diff --git a/arch/risc-v/src/mpfs/Kconfig b/arch/risc-v/src/mpfs/Kconfig index 008e9b4de79..75eaffaee27 100644 --- a/arch/risc-v/src/mpfs/Kconfig +++ b/arch/risc-v/src/mpfs/Kconfig @@ -767,6 +767,13 @@ endchoice # GMAC speed endif # !MPFS_MAC_AUTONEG +config MPFS_ETHMAC_HPWORK + bool "Use HP workqueue" + default n + depends on MPFS_ETHMAC + ---help--- + Select HPWORK workqueue for eth ISR work + config MPFS_ETHMAC_MDC_CLOCK_SOURCE_HZ int "MDC Clock Source (Hz)" default 125000000 diff --git a/arch/risc-v/src/mpfs/mpfs_ethernet.c b/arch/risc-v/src/mpfs/mpfs_ethernet.c index b47d5cdf7b7..809f38d077c 100644 --- a/arch/risc-v/src/mpfs/mpfs_ethernet.c +++ b/arch/risc-v/src/mpfs/mpfs_ethernet.c @@ -100,8 +100,6 @@ # if defined(CONFIG_MPFS_ETHMAC_HPWORK) # define ETHWORK HPWORK -# elif defined(CONFIG_MPFS_ETHMAC_LPWORK) -# define ETHWORK LPWORK # else # define ETHWORK LPWORK # endif @@ -272,6 +270,7 @@ struct mpfs_ethmac_s struct wdog_s txtimeout; /* TX timeout timer */ struct work_s irqwork; /* For deferring interrupt work to the work queue */ struct work_s pollwork; /* For deferring poll work to the work queue */ + struct work_s timeoutwork; /* For managing timeouts */ /* This holds the information visible to the NuttX network */ @@ -2888,7 +2887,7 @@ static void mpfs_txtimeout_expiry(wdparm_t arg) /* Schedule to perform the TX timeout processing on the worker thread. */ - work_queue(ETHWORK, &priv->irqwork, mpfs_txtimeout_work, priv, 0); + work_queue(LPWORK, &priv->timeoutwork, mpfs_txtimeout_work, priv, 0); } /****************************************************************************