Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

net: phy: meson-gxl: remove the use of .ack_callback()

In preparation of removing the .ack_interrupt() callback, we must replace
its occurrences (aka phy_clear_interrupt), from the 2 places where it is
called from (phy_enable_interrupts and phy_disable_interrupts), with
equivalent functionality.

This means that clearing interrupts now becomes something that the PHY
driver is responsible of doing, before enabling interrupts and after
clearing them. Make this driver follow the new contract.

Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>

authored by

Ioana Ciornei and committed by
Jakub Kicinski
84c8f773 6719e2be

+11 -8
+11 -8
drivers/net/phy/meson-gxl.c
··· 204 204 int ret; 205 205 206 206 if (phydev->interrupts == PHY_INTERRUPT_ENABLED) { 207 + /* Ack any pending IRQ */ 208 + ret = meson_gxl_ack_interrupt(phydev); 209 + if (ret) 210 + return ret; 211 + 207 212 val = INTSRC_ANEG_PR 208 213 | INTSRC_PARALLEL_FAULT 209 214 | INTSRC_ANEG_LP_ACK 210 215 | INTSRC_LINK_DOWN 211 216 | INTSRC_REMOTE_FAULT 212 217 | INTSRC_ANEG_COMPLETE; 218 + ret = phy_write(phydev, INTSRC_MASK, val); 213 219 } else { 214 220 val = 0; 221 + ret = phy_write(phydev, INTSRC_MASK, val); 222 + 223 + /* Ack any pending IRQ */ 224 + ret = meson_gxl_ack_interrupt(phydev); 215 225 } 216 226 217 - /* Ack any pending IRQ */ 218 - ret = meson_gxl_ack_interrupt(phydev); 219 - if (ret) 220 - return ret; 221 - 222 - return phy_write(phydev, INTSRC_MASK, val); 227 + return ret; 223 228 } 224 229 225 230 static irqreturn_t meson_gxl_handle_interrupt(struct phy_device *phydev) ··· 254 249 .soft_reset = genphy_soft_reset, 255 250 .config_init = meson_gxl_config_init, 256 251 .read_status = meson_gxl_read_status, 257 - .ack_interrupt = meson_gxl_ack_interrupt, 258 252 .config_intr = meson_gxl_config_intr, 259 253 .handle_interrupt = meson_gxl_handle_interrupt, 260 254 .suspend = genphy_suspend, ··· 264 260 /* PHY_BASIC_FEATURES */ 265 261 .flags = PHY_IS_INTERNAL, 266 262 .soft_reset = genphy_soft_reset, 267 - .ack_interrupt = meson_gxl_ack_interrupt, 268 263 .config_intr = meson_gxl_config_intr, 269 264 .handle_interrupt = meson_gxl_handle_interrupt, 270 265 .suspend = genphy_suspend,