.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * Driver for Gigabit Ethernet adapters based on the Session Layer |
---|
3 | 4 | * Interface (SLIC) technology by Alacritech. The driver does not |
---|
4 | 5 | * support the hardware acceleration features provided by these cards. |
---|
5 | 6 | * |
---|
6 | 7 | * Copyright (C) 2016 Lino Sanfilippo <LinoSanfilippo@gmx.de> |
---|
7 | | - * |
---|
8 | | - * This program is free software; you can redistribute it and/or modify |
---|
9 | | - * it under the terms of the GNU General Public License as published by |
---|
10 | | - * the Free Software Foundation; either version 2 of the License. |
---|
11 | | - * |
---|
12 | | - * This program is distributed in the hope that it will be useful, |
---|
13 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
14 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
15 | | - * GNU General Public License for more details. |
---|
16 | | - * |
---|
17 | 8 | */ |
---|
18 | 9 | |
---|
19 | 10 | #include <linux/kernel.h> |
---|
.. | .. |
---|
35 | 26 | #include "slic.h" |
---|
36 | 27 | |
---|
37 | 28 | #define DRV_NAME "slicoss" |
---|
38 | | -#define DRV_VERSION "1.0" |
---|
39 | 29 | |
---|
40 | 30 | static const struct pci_device_id slic_id_tbl[] = { |
---|
41 | 31 | { PCI_DEVICE(PCI_VENDOR_ID_ALACRITECH, |
---|
.. | .. |
---|
345 | 335 | if (sdev->promisc != set_promisc) { |
---|
346 | 336 | sdev->promisc = set_promisc; |
---|
347 | 337 | slic_configure_rcv(sdev); |
---|
348 | | - /* make sure writes to receiver cant leak out of the lock */ |
---|
349 | | - mmiowb(); |
---|
350 | 338 | } |
---|
351 | 339 | spin_unlock_bh(&sdev->link_lock); |
---|
352 | 340 | } |
---|
.. | .. |
---|
795 | 783 | size = stq->len * sizeof(*descs) + DESC_ALIGN_MASK; |
---|
796 | 784 | |
---|
797 | 785 | for (i = 0; i < SLIC_NUM_STAT_DESC_ARRAYS; i++) { |
---|
798 | | - descs = dma_zalloc_coherent(&sdev->pdev->dev, size, &paddr, |
---|
799 | | - GFP_KERNEL); |
---|
| 786 | + descs = dma_alloc_coherent(&sdev->pdev->dev, size, &paddr, |
---|
| 787 | + GFP_KERNEL); |
---|
800 | 788 | if (!descs) { |
---|
801 | 789 | netdev_err(sdev->netdev, |
---|
802 | 790 | "failed to allocate status descriptors\n"); |
---|
.. | .. |
---|
1240 | 1228 | struct slic_shmem_data *sm_data; |
---|
1241 | 1229 | dma_addr_t paddr; |
---|
1242 | 1230 | |
---|
1243 | | - sm_data = dma_zalloc_coherent(&sdev->pdev->dev, sizeof(*sm_data), |
---|
1244 | | - &paddr, GFP_KERNEL); |
---|
| 1231 | + sm_data = dma_alloc_coherent(&sdev->pdev->dev, sizeof(*sm_data), |
---|
| 1232 | + &paddr, GFP_KERNEL); |
---|
1245 | 1233 | if (!sm_data) { |
---|
1246 | 1234 | dev_err(&sdev->pdev->dev, "failed to allocate shared memory\n"); |
---|
1247 | 1235 | return -ENOMEM; |
---|
.. | .. |
---|
1461 | 1449 | |
---|
1462 | 1450 | if (slic_get_free_tx_descs(txq) < SLIC_MAX_REQ_TX_DESCS) |
---|
1463 | 1451 | netif_stop_queue(dev); |
---|
1464 | | - /* make sure writes to io-memory cant leak out of tx queue lock */ |
---|
1465 | | - mmiowb(); |
---|
1466 | 1452 | |
---|
1467 | 1453 | return NETDEV_TX_OK; |
---|
1468 | 1454 | drop_skb: |
---|
.. | .. |
---|
1546 | 1532 | struct slic_device *sdev = netdev_priv(dev); |
---|
1547 | 1533 | |
---|
1548 | 1534 | strlcpy(info->driver, DRV_NAME, sizeof(info->driver)); |
---|
1549 | | - strlcpy(info->version, DRV_VERSION, sizeof(info->version)); |
---|
1550 | 1535 | strlcpy(info->bus_info, pci_name(sdev->pdev), sizeof(info->bus_info)); |
---|
1551 | 1536 | } |
---|
1552 | 1537 | |
---|
.. | .. |
---|
1621 | 1606 | int err = 0; |
---|
1622 | 1607 | u8 *mac[2]; |
---|
1623 | 1608 | |
---|
1624 | | - eeprom = dma_zalloc_coherent(&sdev->pdev->dev, SLIC_EEPROM_SIZE, |
---|
1625 | | - &paddr, GFP_KERNEL); |
---|
| 1609 | + eeprom = dma_alloc_coherent(&sdev->pdev->dev, SLIC_EEPROM_SIZE, |
---|
| 1610 | + &paddr, GFP_KERNEL); |
---|
1626 | 1611 | if (!eeprom) |
---|
1627 | 1612 | return -ENOMEM; |
---|
1628 | 1613 | |
---|
.. | .. |
---|
1727 | 1712 | { |
---|
1728 | 1713 | switch (subdev) { |
---|
1729 | 1714 | /* Mojave */ |
---|
1730 | | - case PCI_SUBDEVICE_ID_ALACRITECH_1000X1F: /* fallthrough */ |
---|
1731 | | - case PCI_SUBDEVICE_ID_ALACRITECH_SES1001F: /* fallthrough */ |
---|
| 1715 | + case PCI_SUBDEVICE_ID_ALACRITECH_1000X1F: |
---|
| 1716 | + case PCI_SUBDEVICE_ID_ALACRITECH_SES1001F: fallthrough; |
---|
1732 | 1717 | /* Oasis */ |
---|
1733 | | - case PCI_SUBDEVICE_ID_ALACRITECH_SEN2002XF: /* fallthrough */ |
---|
1734 | | - case PCI_SUBDEVICE_ID_ALACRITECH_SEN2001XF: /* fallthrough */ |
---|
1735 | | - case PCI_SUBDEVICE_ID_ALACRITECH_SEN2104EF: /* fallthrough */ |
---|
1736 | | - case PCI_SUBDEVICE_ID_ALACRITECH_SEN2102EF: /* fallthrough */ |
---|
| 1718 | + case PCI_SUBDEVICE_ID_ALACRITECH_SEN2002XF: |
---|
| 1719 | + case PCI_SUBDEVICE_ID_ALACRITECH_SEN2001XF: |
---|
| 1720 | + case PCI_SUBDEVICE_ID_ALACRITECH_SEN2104EF: |
---|
| 1721 | + case PCI_SUBDEVICE_ID_ALACRITECH_SEN2102EF: |
---|
1737 | 1722 | return true; |
---|
1738 | 1723 | } |
---|
1739 | 1724 | return false; |
---|
.. | .. |
---|
1804 | 1789 | sdev->is_fiber = slic_is_fiber(pdev->subsystem_device); |
---|
1805 | 1790 | sdev->pdev = pdev; |
---|
1806 | 1791 | sdev->netdev = dev; |
---|
1807 | | - sdev->regs = ioremap_nocache(pci_resource_start(pdev, 0), |
---|
| 1792 | + sdev->regs = ioremap(pci_resource_start(pdev, 0), |
---|
1808 | 1793 | pci_resource_len(pdev, 0)); |
---|
1809 | 1794 | if (!sdev->regs) { |
---|
1810 | 1795 | dev_err(&pdev->dev, "failed to map registers\n"); |
---|
.. | .. |
---|
1865 | 1850 | MODULE_DESCRIPTION("Alacritech non-accelerated SLIC driver"); |
---|
1866 | 1851 | MODULE_AUTHOR("Lino Sanfilippo <LinoSanfilippo@gmx.de>"); |
---|
1867 | 1852 | MODULE_LICENSE("GPL"); |
---|
1868 | | -MODULE_VERSION(DRV_VERSION); |
---|