On Mon, Nov 21, 2022 at 04:22:57PM +0200, Roger Quadros wrote: > The set channel operation "ethtool -L tx <n>" broke with > the recent suspend/resume changes. > > Revert back to original driver behaviour of not freeing > the TX/RX IRQs at am65_cpsw_nuss_common_stop(). We will > now free them only on .suspend() as we need to release > the DMA channels (as DMA looses context) and re-acquiring > them on .resume() may not necessarily give us the same > IRQs. > > Introduce am65_cpsw_nuss_remove_rx_chns() which is similar > to am65_cpsw_nuss_remove_tx_chns() and invoke them both in > .suspend(). > > At .resume() call am65_cpsw_nuss_init_rx/tx_chns() to > acquire the DMA channels. > > To as IRQs need to be requested after knowing the IRQ > numbers, move am65_cpsw_nuss_ndev_add_tx_napi() call to > am65_cpsw_nuss_init_tx_chns(). It is probably easier to review if you first do a revert and then add the new code to make suspend/resume work. Andrew