| // SPDX-License-Identifier: GPL-2.0+ |
| /* |
| * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc. |
| * All rights reserved. |
| * |
| * Purpose: Channel number mapping |
| * |
| * Author: Lucas Lin |
| * |
| * Date: Dec 24, 2004 |
| * |
| * |
| * |
| * Revision History: |
| * 01-18-2005 RobertYu: remove the for loop searching in |
| * ChannelValid, change ChannelRuleTab |
| * to lookup-type, reorder table items. |
| * |
| * |
| */ |
| |
| #include "device.h" |
| #include "channel.h" |
| #include "rf.h" |
| |
| static struct ieee80211_rate vnt_rates_bg[] = { |
| { .bitrate = 10, .hw_value = RATE_1M }, |
| { .bitrate = 20, .hw_value = RATE_2M }, |
| { .bitrate = 55, .hw_value = RATE_5M }, |
| { .bitrate = 110, .hw_value = RATE_11M }, |
| { .bitrate = 60, .hw_value = RATE_6M }, |
| { .bitrate = 90, .hw_value = RATE_9M }, |
| { .bitrate = 120, .hw_value = RATE_12M }, |
| { .bitrate = 180, .hw_value = RATE_18M }, |
| { .bitrate = 240, .hw_value = RATE_24M }, |
| { .bitrate = 360, .hw_value = RATE_36M }, |
| { .bitrate = 480, .hw_value = RATE_48M }, |
| { .bitrate = 540, .hw_value = RATE_54M }, |
| }; |
| |
| static struct ieee80211_channel vnt_channels_2ghz[] = { |
| { .center_freq = 2412, .hw_value = 1 }, |
| { .center_freq = 2417, .hw_value = 2 }, |
| { .center_freq = 2422, .hw_value = 3 }, |
| { .center_freq = 2427, .hw_value = 4 }, |
| { .center_freq = 2432, .hw_value = 5 }, |
| { .center_freq = 2437, .hw_value = 6 }, |
| { .center_freq = 2442, .hw_value = 7 }, |
| { .center_freq = 2447, .hw_value = 8 }, |
| { .center_freq = 2452, .hw_value = 9 }, |
| { .center_freq = 2457, .hw_value = 10 }, |
| { .center_freq = 2462, .hw_value = 11 }, |
| { .center_freq = 2467, .hw_value = 12 }, |
| { .center_freq = 2472, .hw_value = 13 }, |
| { .center_freq = 2484, .hw_value = 14 } |
| }; |
| |
| static struct ieee80211_supported_band vnt_supported_2ghz_band = { |
| .channels = vnt_channels_2ghz, |
| .n_channels = ARRAY_SIZE(vnt_channels_2ghz), |
| .bitrates = vnt_rates_bg, |
| .n_bitrates = ARRAY_SIZE(vnt_rates_bg), |
| }; |
| |
| void vnt_init_bands(struct vnt_private *priv) |
| { |
| struct ieee80211_channel *ch; |
| int i; |
| |
| ch = vnt_channels_2ghz; |
| for (i = 0; i < ARRAY_SIZE(vnt_channels_2ghz); i++) { |
| ch[i].max_power = VNT_RF_MAX_POWER; |
| ch[i].flags = IEEE80211_CHAN_NO_HT40; |
| } |
| priv->hw->wiphy->bands[NL80211_BAND_2GHZ] = |
| &vnt_supported_2ghz_band; |
| } |