mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Currently we have a single dsa_switch_ops for 4 very distinct families of switches, and many dsa_switch_ops methods are simply a dispatches through ksz_dev_ops. That creates an avoidable level of indirection. As a preparation for removing that indirection layer, create a separate dsa_switch_ops structure wherever we have a ksz_dev_ops. These structures are not yet used - ksz_switch_ops from ksz_common.c still is. However, this reduces the noise from subsequent changes. All new dsa_switch_ops are exact copies of ksz_switch_ops. But we need to export function prototypes from ksz_common.c so that they are callable from individual drivers. Note that "individual drivers" are not actual separate kernel modules. All of ksz8.c, ksz9477.c and lan937x_main.c are part of the same ksz_switch.ko. Only the "register interface" drivers are different modules (ksz9477_i2c.o for I2C, ksz_spi.o for SPI, ksz8863_smi.o for MDIO). So we don't need to export any symbol. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Bastien Curutchet (Schneider Electric) <bastien.curutchet@bootlin.com> Link: https://patch.msgid.link/20260505-clean-ksz-driver-v1-6-05d70fa42461@bootlin.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
14 lines
356 B
C
14 lines
356 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
/* Microchip lan937x dev ops headers
|
|
* Copyright (C) 2019-2022 Microchip Technology Inc.
|
|
*/
|
|
|
|
#ifndef __LAN937X_CFG_H
|
|
#define __LAN937X_CFG_H
|
|
|
|
extern const struct ksz_dev_ops lan937x_dev_ops;
|
|
extern const struct phylink_mac_ops lan937x_phylink_mac_ops;
|
|
extern const struct dsa_switch_ops lan937x_switch_ops;
|
|
|
|
#endif
|