| .. | .. |
|---|
| 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); |
|---|