* Arnd Bergmann<arnd@xxxxxxxx> [150129 15:51]:
On Thursday 29 January 2015 18:15:51 Murali Karicheri wrote:
NetCP on Keystone has cpsw ale function similar to other TI SoCs
and this driver is re-used. To allow both ti cpsw and keystone netcp
to re-use the driver, convert the cpsw ale to a module and configure
it through Kconfig option CONFIG_TI_CPSW_ALE. Currently it is statically
linked to both TI CPSW and NetCP and this causes issues when the above
drivers are built as dynamic modules. This patch addresses this issue
While at it, fix the Makefile and code to build both netcp_core and
netcp_ethss as dynamic modules. This is needed to support arm allmodconfig.
This also requires exporting of API calls provided by netcp_core so that
both the above can be dynamic modules.
Signed-off-by: Murali Karicheri<m-karicheri2@xxxxxx>
---
drivers/net/ethernet/ti/Kconfig | 19 +++++++++++++++++--
drivers/net/ethernet/ti/Makefile | 8 +++++---
drivers/net/ethernet/ti/cpsw_ale.c | 26 ++++++++++++++++++++++++--
drivers/net/ethernet/ti/netcp_core.c | 8 ++++++++
drivers/net/ethernet/ti/netcp_ethss.c | 5 +++++
5 files changed, 59 insertions(+), 7 deletions(-)
I was hoping there would be a way without exporting all those symbols, but
I also couldn't come up with a better solution. I'm putting this into the
randconfig build test for now, but I'm guessing it's fine.
Probably the best way in the long run is to add a single exported
function to cpsw-common.c I just added for the MAC address function.
Then all the cpsw like drivers can register with that instead of
having tons of custom exported functions.
But before doing that, we should have a clear idea what all can
be shared. Murali, maybe you can take a look at that?
Regards,
Tony