diff options
author | Vasundhara Volam <vasundhara.volam@emulex.com> | 2014-01-15 02:53:34 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-01-15 18:52:02 -0500 |
commit | baaa08d148ac2d02567126e85213e82675ca55c0 (patch) | |
tree | 220be875e29c7497a82972e093497665386420f0 /drivers/net/ethernet/emulex | |
parent | 542963b7d7e9acadde5e2f3ce85f4919e7c4a24a (diff) |
be2net: do not call be_set/get_fw_log_level() on Skyhawk-R
Skyhawk-R FW does not support SET/GET_EXT_FAT_CAPABILITIES cmds via which
FW logging level can be controlled. Also, the hack used in BE3 to control
FW logging level via the ethtool interface is not needed in Skyhawk-R.
This patch also cleans up this code by moving be_set/get_fw_log_level()
routines to be_cmds.c where they belong.
Signed-off-by: Vasundhara Volam <vasundhara.volam@emulex.com>
remove new line
Signed-off-by: Sathya Perla <sathya.perla@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/emulex')
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.c | 70 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_cmds.h | 2 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_ethtool.c | 60 | ||||
-rw-r--r-- | drivers/net/ethernet/emulex/benet/be_main.c | 47 |
4 files changed, 82 insertions, 97 deletions
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.c b/drivers/net/ethernet/emulex/benet/be_cmds.c index 1c626e1c3847..b0a2fd6d2210 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.c +++ b/drivers/net/ethernet/emulex/benet/be_cmds.c | |||
@@ -3084,6 +3084,76 @@ err: | |||
3084 | return status; | 3084 | return status; |
3085 | 3085 | ||
3086 | } | 3086 | } |
3087 | |||
3088 | int be_cmd_set_fw_log_level(struct be_adapter *adapter, u32 level) | ||
3089 | { | ||
3090 | struct be_dma_mem extfat_cmd; | ||
3091 | struct be_fat_conf_params *cfgs; | ||
3092 | int status; | ||
3093 | int i, j; | ||
3094 | |||
3095 | memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); | ||
3096 | extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); | ||
3097 | extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, | ||
3098 | &extfat_cmd.dma); | ||
3099 | if (!extfat_cmd.va) | ||
3100 | return -ENOMEM; | ||
3101 | |||
3102 | status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); | ||
3103 | if (status) | ||
3104 | goto err; | ||
3105 | |||
3106 | cfgs = (struct be_fat_conf_params *) | ||
3107 | (extfat_cmd.va + sizeof(struct be_cmd_resp_hdr)); | ||
3108 | for (i = 0; i < le32_to_cpu(cfgs->num_modules); i++) { | ||
3109 | u32 num_modes = le32_to_cpu(cfgs->module[i].num_modes); | ||
3110 | for (j = 0; j < num_modes; j++) { | ||
3111 | if (cfgs->module[i].trace_lvl[j].mode == MODE_UART) | ||
3112 | cfgs->module[i].trace_lvl[j].dbg_lvl = | ||
3113 | cpu_to_le32(level); | ||
3114 | } | ||
3115 | } | ||
3116 | |||
3117 | status = be_cmd_set_ext_fat_capabilites(adapter, &extfat_cmd, cfgs); | ||
3118 | err: | ||
3119 | pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, | ||
3120 | extfat_cmd.dma); | ||
3121 | return status; | ||
3122 | } | ||
3123 | |||
3124 | int be_cmd_get_fw_log_level(struct be_adapter *adapter) | ||
3125 | { | ||
3126 | struct be_dma_mem extfat_cmd; | ||
3127 | struct be_fat_conf_params *cfgs; | ||
3128 | int status, j; | ||
3129 | int level = 0; | ||
3130 | |||
3131 | memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); | ||
3132 | extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); | ||
3133 | extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, | ||
3134 | &extfat_cmd.dma); | ||
3135 | |||
3136 | if (!extfat_cmd.va) { | ||
3137 | dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", | ||
3138 | __func__); | ||
3139 | goto err; | ||
3140 | } | ||
3141 | |||
3142 | status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); | ||
3143 | if (!status) { | ||
3144 | cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + | ||
3145 | sizeof(struct be_cmd_resp_hdr)); | ||
3146 | for (j = 0; j < le32_to_cpu(cfgs->module[0].num_modes); j++) { | ||
3147 | if (cfgs->module[0].trace_lvl[j].mode == MODE_UART) | ||
3148 | level = cfgs->module[0].trace_lvl[j].dbg_lvl; | ||
3149 | } | ||
3150 | } | ||
3151 | pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, | ||
3152 | extfat_cmd.dma); | ||
3153 | err: | ||
3154 | return level; | ||
3155 | } | ||
3156 | |||
3087 | int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, | 3157 | int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, |
3088 | struct be_dma_mem *cmd) | 3158 | struct be_dma_mem *cmd) |
3089 | { | 3159 | { |
diff --git a/drivers/net/ethernet/emulex/benet/be_cmds.h b/drivers/net/ethernet/emulex/benet/be_cmds.h index 8054b84d9bf3..39b99f2f7113 100644 --- a/drivers/net/ethernet/emulex/benet/be_cmds.h +++ b/drivers/net/ethernet/emulex/benet/be_cmds.h | |||
@@ -2060,6 +2060,8 @@ int be_cmd_set_hsw_config(struct be_adapter *adapter, u16 pvid, u32 domain, | |||
2060 | int be_cmd_get_hsw_config(struct be_adapter *adapter, u16 *pvid, u32 domain, | 2060 | int be_cmd_get_hsw_config(struct be_adapter *adapter, u16 *pvid, u32 domain, |
2061 | u16 intf_id, u8 *mode); | 2061 | u16 intf_id, u8 *mode); |
2062 | int be_cmd_get_acpi_wol_cap(struct be_adapter *adapter); | 2062 | int be_cmd_get_acpi_wol_cap(struct be_adapter *adapter); |
2063 | int be_cmd_set_fw_log_level(struct be_adapter *adapter, u32 level); | ||
2064 | int be_cmd_get_fw_log_level(struct be_adapter *adapter); | ||
2063 | int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, | 2065 | int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter, |
2064 | struct be_dma_mem *cmd); | 2066 | struct be_dma_mem *cmd); |
2065 | int be_cmd_set_ext_fat_capabilites(struct be_adapter *adapter, | 2067 | int be_cmd_set_ext_fat_capabilites(struct be_adapter *adapter, |
diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c index 08330034d9ef..a7b5aa78ae07 100644 --- a/drivers/net/ethernet/emulex/benet/be_ethtool.c +++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c | |||
@@ -904,73 +904,21 @@ static u32 be_get_msg_level(struct net_device *netdev) | |||
904 | { | 904 | { |
905 | struct be_adapter *adapter = netdev_priv(netdev); | 905 | struct be_adapter *adapter = netdev_priv(netdev); |
906 | 906 | ||
907 | if (lancer_chip(adapter)) { | ||
908 | dev_err(&adapter->pdev->dev, "Operation not supported\n"); | ||
909 | return -EOPNOTSUPP; | ||
910 | } | ||
911 | |||
912 | return adapter->msg_enable; | 907 | return adapter->msg_enable; |
913 | } | 908 | } |
914 | 909 | ||
915 | static void be_set_fw_log_level(struct be_adapter *adapter, u32 level) | ||
916 | { | ||
917 | struct be_dma_mem extfat_cmd; | ||
918 | struct be_fat_conf_params *cfgs; | ||
919 | int status; | ||
920 | int i, j; | ||
921 | |||
922 | memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); | ||
923 | extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); | ||
924 | extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, | ||
925 | &extfat_cmd.dma); | ||
926 | if (!extfat_cmd.va) { | ||
927 | dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", | ||
928 | __func__); | ||
929 | goto err; | ||
930 | } | ||
931 | status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); | ||
932 | if (!status) { | ||
933 | cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + | ||
934 | sizeof(struct be_cmd_resp_hdr)); | ||
935 | for (i = 0; i < le32_to_cpu(cfgs->num_modules); i++) { | ||
936 | u32 num_modes = le32_to_cpu(cfgs->module[i].num_modes); | ||
937 | for (j = 0; j < num_modes; j++) { | ||
938 | if (cfgs->module[i].trace_lvl[j].mode == | ||
939 | MODE_UART) | ||
940 | cfgs->module[i].trace_lvl[j].dbg_lvl = | ||
941 | cpu_to_le32(level); | ||
942 | } | ||
943 | } | ||
944 | status = be_cmd_set_ext_fat_capabilites(adapter, &extfat_cmd, | ||
945 | cfgs); | ||
946 | if (status) | ||
947 | dev_err(&adapter->pdev->dev, | ||
948 | "Message level set failed\n"); | ||
949 | } else { | ||
950 | dev_err(&adapter->pdev->dev, "Message level get failed\n"); | ||
951 | } | ||
952 | |||
953 | pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, | ||
954 | extfat_cmd.dma); | ||
955 | err: | ||
956 | return; | ||
957 | } | ||
958 | |||
959 | static void be_set_msg_level(struct net_device *netdev, u32 level) | 910 | static void be_set_msg_level(struct net_device *netdev, u32 level) |
960 | { | 911 | { |
961 | struct be_adapter *adapter = netdev_priv(netdev); | 912 | struct be_adapter *adapter = netdev_priv(netdev); |
962 | 913 | ||
963 | if (lancer_chip(adapter)) { | ||
964 | dev_err(&adapter->pdev->dev, "Operation not supported\n"); | ||
965 | return; | ||
966 | } | ||
967 | |||
968 | if (adapter->msg_enable == level) | 914 | if (adapter->msg_enable == level) |
969 | return; | 915 | return; |
970 | 916 | ||
971 | if ((level & NETIF_MSG_HW) != (adapter->msg_enable & NETIF_MSG_HW)) | 917 | if ((level & NETIF_MSG_HW) != (adapter->msg_enable & NETIF_MSG_HW)) |
972 | be_set_fw_log_level(adapter, level & NETIF_MSG_HW ? | 918 | if (BEx_chip(adapter)) |
973 | FW_LOG_LEVEL_DEFAULT : FW_LOG_LEVEL_FATAL); | 919 | be_cmd_set_fw_log_level(adapter, level & NETIF_MSG_HW ? |
920 | FW_LOG_LEVEL_DEFAULT : | ||
921 | FW_LOG_LEVEL_FATAL); | ||
974 | adapter->msg_enable = level; | 922 | adapter->msg_enable = level; |
975 | 923 | ||
976 | return; | 924 | return; |
diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c index 1f670d3f77e5..0710f9a84de3 100644 --- a/drivers/net/ethernet/emulex/benet/be_main.c +++ b/drivers/net/ethernet/emulex/benet/be_main.c | |||
@@ -4302,47 +4302,9 @@ bool be_is_wol_supported(struct be_adapter *adapter) | |||
4302 | !be_is_wol_excluded(adapter)) ? true : false; | 4302 | !be_is_wol_excluded(adapter)) ? true : false; |
4303 | } | 4303 | } |
4304 | 4304 | ||
4305 | u32 be_get_fw_log_level(struct be_adapter *adapter) | ||
4306 | { | ||
4307 | struct be_dma_mem extfat_cmd; | ||
4308 | struct be_fat_conf_params *cfgs; | ||
4309 | int status; | ||
4310 | u32 level = 0; | ||
4311 | int j; | ||
4312 | |||
4313 | if (lancer_chip(adapter)) | ||
4314 | return 0; | ||
4315 | |||
4316 | memset(&extfat_cmd, 0, sizeof(struct be_dma_mem)); | ||
4317 | extfat_cmd.size = sizeof(struct be_cmd_resp_get_ext_fat_caps); | ||
4318 | extfat_cmd.va = pci_alloc_consistent(adapter->pdev, extfat_cmd.size, | ||
4319 | &extfat_cmd.dma); | ||
4320 | |||
4321 | if (!extfat_cmd.va) { | ||
4322 | dev_err(&adapter->pdev->dev, "%s: Memory allocation failure\n", | ||
4323 | __func__); | ||
4324 | goto err; | ||
4325 | } | ||
4326 | |||
4327 | status = be_cmd_get_ext_fat_capabilites(adapter, &extfat_cmd); | ||
4328 | if (!status) { | ||
4329 | cfgs = (struct be_fat_conf_params *)(extfat_cmd.va + | ||
4330 | sizeof(struct be_cmd_resp_hdr)); | ||
4331 | for (j = 0; j < le32_to_cpu(cfgs->module[0].num_modes); j++) { | ||
4332 | if (cfgs->module[0].trace_lvl[j].mode == MODE_UART) | ||
4333 | level = cfgs->module[0].trace_lvl[j].dbg_lvl; | ||
4334 | } | ||
4335 | } | ||
4336 | pci_free_consistent(adapter->pdev, extfat_cmd.size, extfat_cmd.va, | ||
4337 | extfat_cmd.dma); | ||
4338 | err: | ||
4339 | return level; | ||
4340 | } | ||
4341 | |||
4342 | static int be_get_initial_config(struct be_adapter *adapter) | 4305 | static int be_get_initial_config(struct be_adapter *adapter) |
4343 | { | 4306 | { |
4344 | int status; | 4307 | int status, level; |
4345 | u32 level; | ||
4346 | 4308 | ||
4347 | status = be_cmd_get_cntl_attributes(adapter); | 4309 | status = be_cmd_get_cntl_attributes(adapter); |
4348 | if (status) | 4310 | if (status) |
@@ -4362,8 +4324,11 @@ static int be_get_initial_config(struct be_adapter *adapter) | |||
4362 | /* Must be a power of 2 or else MODULO will BUG_ON */ | 4324 | /* Must be a power of 2 or else MODULO will BUG_ON */ |
4363 | adapter->be_get_temp_freq = 64; | 4325 | adapter->be_get_temp_freq = 64; |
4364 | 4326 | ||
4365 | level = be_get_fw_log_level(adapter); | 4327 | if (BEx_chip(adapter)) { |
4366 | adapter->msg_enable = level <= FW_LOG_LEVEL_DEFAULT ? NETIF_MSG_HW : 0; | 4328 | level = be_cmd_get_fw_log_level(adapter); |
4329 | adapter->msg_enable = | ||
4330 | level <= FW_LOG_LEVEL_DEFAULT ? NETIF_MSG_HW : 0; | ||
4331 | } | ||
4367 | 4332 | ||
4368 | adapter->cfg_num_qs = netif_get_num_default_rss_queues(); | 4333 | adapter->cfg_num_qs = netif_get_num_default_rss_queues(); |
4369 | return 0; | 4334 | return 0; |