ixp4xx-npe.c (9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e) ixp4xx-npe.c (a25e745c752a0aa197296c0a6405255f19813b4b)
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Intel IXP4xx Network Processor Engine driver for Linux
4 *
5 * Copyright (C) 2007 Krzysztof Halasa <khc@pm.waw.pl>
6 *
7 * The code is based on publicly available information:
8 * - Intel IXP4xx Developer's Manual and other e-papers

--- 722 unchanged lines hidden (view full) ---

731
732 /* Spawn crypto subdevice if using device tree */
733 if (IS_ENABLED(CONFIG_OF) && np)
734 devm_of_platform_populate(dev);
735
736 return 0;
737}
738
1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Intel IXP4xx Network Processor Engine driver for Linux
4 *
5 * Copyright (C) 2007 Krzysztof Halasa <khc@pm.waw.pl>
6 *
7 * The code is based on publicly available information:
8 * - Intel IXP4xx Developer's Manual and other e-papers

--- 722 unchanged lines hidden (view full) ---

731
732 /* Spawn crypto subdevice if using device tree */
733 if (IS_ENABLED(CONFIG_OF) && np)
734 devm_of_platform_populate(dev);
735
736 return 0;
737}
738
739static int ixp4xx_npe_remove(struct platform_device *pdev)
739static void ixp4xx_npe_remove(struct platform_device *pdev)
740{
741 int i;
742
743 for (i = 0; i < NPE_COUNT; i++)
744 if (npe_tab[i].regs) {
745 npe_reset(&npe_tab[i]);
746 }
740{
741 int i;
742
743 for (i = 0; i < NPE_COUNT; i++)
744 if (npe_tab[i].regs) {
745 npe_reset(&npe_tab[i]);
746 }
747
748 return 0;
749}
750
751static const struct of_device_id ixp4xx_npe_of_match[] = {
752 {
753 .compatible = "intel,ixp4xx-network-processing-engine",
754 },
755 {},
756};
757
758static struct platform_driver ixp4xx_npe_driver = {
759 .driver = {
760 .name = "ixp4xx-npe",
761 .of_match_table = ixp4xx_npe_of_match,
762 },
763 .probe = ixp4xx_npe_probe,
747}
748
749static const struct of_device_id ixp4xx_npe_of_match[] = {
750 {
751 .compatible = "intel,ixp4xx-network-processing-engine",
752 },
753 {},
754};
755
756static struct platform_driver ixp4xx_npe_driver = {
757 .driver = {
758 .name = "ixp4xx-npe",
759 .of_match_table = ixp4xx_npe_of_match,
760 },
761 .probe = ixp4xx_npe_probe,
764 .remove = ixp4xx_npe_remove,
762 .remove_new = ixp4xx_npe_remove,
765};
766module_platform_driver(ixp4xx_npe_driver);
767
768MODULE_AUTHOR("Krzysztof Halasa");
769MODULE_LICENSE("GPL v2");
770MODULE_FIRMWARE(NPE_A_FIRMWARE);
771MODULE_FIRMWARE(NPE_B_FIRMWARE);
772MODULE_FIRMWARE(NPE_C_FIRMWARE);
773
774EXPORT_SYMBOL(npe_names);
775EXPORT_SYMBOL(npe_running);
776EXPORT_SYMBOL(npe_request);
777EXPORT_SYMBOL(npe_release);
778EXPORT_SYMBOL(npe_load_firmware);
779EXPORT_SYMBOL(npe_send_message);
780EXPORT_SYMBOL(npe_recv_message);
781EXPORT_SYMBOL(npe_send_recv_message);
763};
764module_platform_driver(ixp4xx_npe_driver);
765
766MODULE_AUTHOR("Krzysztof Halasa");
767MODULE_LICENSE("GPL v2");
768MODULE_FIRMWARE(NPE_A_FIRMWARE);
769MODULE_FIRMWARE(NPE_B_FIRMWARE);
770MODULE_FIRMWARE(NPE_C_FIRMWARE);
771
772EXPORT_SYMBOL(npe_names);
773EXPORT_SYMBOL(npe_running);
774EXPORT_SYMBOL(npe_request);
775EXPORT_SYMBOL(npe_release);
776EXPORT_SYMBOL(npe_load_firmware);
777EXPORT_SYMBOL(npe_send_message);
778EXPORT_SYMBOL(npe_recv_message);
779EXPORT_SYMBOL(npe_send_recv_message);