]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/net/qlcnic/qlcnic_hw.c
Merge tag 'v2.6.38' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
[mv-sheeva.git] / drivers / net / qlcnic / qlcnic_hw.c
index 7a47a2a7ee2763b88b3b6cca21ca6f418c553465..616940f0a8d03017bb80db7ab6609173fee85301 100644 (file)
@@ -1,25 +1,8 @@
 /*
- * Copyright (C) 2009 - QLogic Corporation.
- * All rights reserved.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
- * MA  02111-1307, USA.
- *
- * The full GNU General Public License is included in this distribution
- * in the file called "COPYING".
+ * QLogic qlcnic NIC Driver
+ * Copyright (c)  2009-2010 QLogic Corporation
  *
+ * See LICENSE.qlcnic for copyright and licensing details.
  */
 
 #include "qlcnic.h"
@@ -398,7 +381,7 @@ qlcnic_sre_macaddr_change(struct qlcnic_adapter *adapter, u8 *addr,
        return qlcnic_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);
 }
 
-static int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, u8 *addr)
+static int qlcnic_nic_add_mac(struct qlcnic_adapter *adapter, const u8 *addr)
 {
        struct list_head *head;
        struct qlcnic_mac_list_s *cur;
@@ -432,7 +415,9 @@ void qlcnic_set_multi(struct net_device *netdev)
 {
        struct qlcnic_adapter *adapter = netdev_priv(netdev);
        struct netdev_hw_addr *ha;
-       u8 bcast_addr[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
+       static const u8 bcast_addr[ETH_ALEN] = {
+               0xff, 0xff, 0xff, 0xff, 0xff, 0xff
+       };
        u32 mode = VPORT_MISS_MODE_DROP;
 
        if (!test_bit(__QLCNIC_FW_ATTACHED, &adapter->state))
@@ -638,10 +623,11 @@ int qlcnic_config_rss(struct qlcnic_adapter *adapter, int enable)
        u64 word;
        int i, rv;
 
-       const u64 key[] = { 0xbeac01fa6a42b73bULL, 0x8030f20c77cb2da3ULL,
-                       0xae7b30b4d0ca2bcbULL, 0x43a38fb04167253dULL,
-                       0x255b0ec26d5a56daULL };
-
+       static const u64 key[] = {
+               0xbeac01fa6a42b73bULL, 0x8030f20c77cb2da3ULL,
+               0xae7b30b4d0ca2bcbULL, 0x43a38fb04167253dULL,
+               0x255b0ec26d5a56daULL
+       };
 
        memset(&req, 0, sizeof(struct qlcnic_nic_req));
        req.qhdr = cpu_to_le64(QLCNIC_HOST_REQUEST << 23);
@@ -1234,56 +1220,3 @@ int qlcnic_config_led(struct qlcnic_adapter *adapter, u32 state, u32 rate)
 
        return rv;
 }
-
-static int qlcnic_set_fw_loopback(struct qlcnic_adapter *adapter, u32 flag)
-{
-       struct qlcnic_nic_req   req;
-       int                     rv;
-       u64                     word;
-
-       memset(&req, 0, sizeof(struct qlcnic_nic_req));
-       req.qhdr = cpu_to_le64(QLCNIC_HOST_REQUEST << 23);
-
-       word = QLCNIC_H2C_OPCODE_CONFIG_LOOPBACK |
-                       ((u64)adapter->portnum << 16);
-       req.req_hdr = cpu_to_le64(word);
-       req.words[0] = cpu_to_le64(flag);
-
-       rv = qlcnic_send_cmd_descs(adapter, (struct cmd_desc_type0 *)&req, 1);
-       if (rv)
-               dev_err(&adapter->pdev->dev,
-                       "%sting loopback mode failed.\n",
-                                       flag ? "Set" : "Reset");
-       return rv;
-}
-
-int qlcnic_set_ilb_mode(struct qlcnic_adapter *adapter)
-{
-       if (qlcnic_set_fw_loopback(adapter, 1))
-               return -EIO;
-
-       if (qlcnic_nic_set_promisc(adapter,
-                               VPORT_MISS_MODE_ACCEPT_ALL)) {
-               qlcnic_set_fw_loopback(adapter, 0);
-               return -EIO;
-       }
-
-       msleep(1000);
-       return 0;
-}
-
-void qlcnic_clear_ilb_mode(struct qlcnic_adapter *adapter)
-{
-       int mode = VPORT_MISS_MODE_DROP;
-       struct net_device *netdev = adapter->netdev;
-
-       qlcnic_set_fw_loopback(adapter, 0);
-
-       if (netdev->flags & IFF_PROMISC)
-               mode = VPORT_MISS_MODE_ACCEPT_ALL;
-       else if (netdev->flags & IFF_ALLMULTI)
-               mode = VPORT_MISS_MODE_ACCEPT_MULTI;
-
-       qlcnic_nic_set_promisc(adapter, mode);
-       msleep(1000);
-}