123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
- +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.h
- @@ -78,6 +78,9 @@ struct rt2800_ops {
- int (*drv_init_registers)(struct rt2x00_dev *rt2x00dev);
- __le32 *(*drv_get_txwi)(struct queue_entry *entry);
- unsigned int (*drv_get_dma_done)(struct data_queue *queue);
- + int (*hw_get_chippkg)(void);
- + int (*hw_get_chipver)(void);
- + int (*hw_get_chipeco)(void);
- };
-
- static inline u32 rt2800_register_read(struct rt2x00_dev *rt2x00dev,
- @@ -195,6 +198,27 @@ static inline unsigned int rt2800_drv_ge
- return rt2800ops->drv_get_dma_done(queue);
- }
-
- +static inline int rt2800_hw_get_chippkg(struct rt2x00_dev *rt2x00dev)
- +{
- + const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv;
- +
- + return rt2800ops->hw_get_chippkg();
- +}
- +
- +static inline int rt2800_hw_get_chipver(struct rt2x00_dev *rt2x00dev)
- +{
- + const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv;
- +
- + return rt2800ops->hw_get_chipver();
- +}
- +
- +static inline int rt2800_hw_get_chipeco(struct rt2x00_dev *rt2x00dev)
- +{
- + const struct rt2800_ops *rt2800ops = rt2x00dev->ops->drv;
- +
- + return rt2800ops->hw_get_chipeco();
- +}
- +
- void rt2800_mcu_request(struct rt2x00_dev *rt2x00dev,
- const u8 command, const u8 token,
- const u8 arg0, const u8 arg1);
- --- a/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
- +++ b/drivers/net/wireless/ralink/rt2x00/rt2800pci.c
- @@ -286,6 +286,10 @@ static int rt2800pci_read_eeprom(struct
- return retval;
- }
-
- +static int rt2800pci_get_chippkg(void) { return 0; }
- +static int rt2800pci_get_chipver(void) { return 0; }
- +static int rt2800pci_get_chipeco(void) { return 0; }
- +
- static const struct ieee80211_ops rt2800pci_mac80211_ops = {
- .tx = rt2x00mac_tx,
- .wake_tx_queue = ieee80211_handle_wake_tx_queue,
- @@ -329,6 +333,9 @@ static const struct rt2800_ops rt2800pci
- .drv_init_registers = rt2800mmio_init_registers,
- .drv_get_txwi = rt2800mmio_get_txwi,
- .drv_get_dma_done = rt2800mmio_get_dma_done,
- + .hw_get_chippkg = rt2800pci_get_chippkg,
- + .hw_get_chipver = rt2800pci_get_chipver,
- + .hw_get_chipeco = rt2800pci_get_chipeco,
- };
-
- static const struct rt2x00lib_ops rt2800pci_rt2x00_ops = {
- --- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
- +++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c
- @@ -27,6 +27,12 @@
- #include "rt2800lib.h"
- #include "rt2800mmio.h"
-
- +/* Needed to probe CHIP_VER register on MT7620 */
- +#ifdef CONFIG_SOC_MT7620
- +#include <asm/mach-ralink/ralink_regs.h>
- +#include <asm/mach-ralink/mt7620.h>
- +#endif
- +
- /* Allow hardware encryption to be disabled. */
- static bool modparam_nohwcrypt;
- module_param_named(nohwcrypt, modparam_nohwcrypt, bool, 0444);
- @@ -118,6 +124,27 @@ static int rt2800soc_write_firmware(stru
- return 0;
- }
-
- +#ifdef CONFIG_SOC_MT7620
- +static int rt2800soc_get_chippkg(void)
- +{
- + return mt7620_get_pkg();
- +}
- +
- +static int rt2800soc_get_chipver(void)
- +{
- + return mt7620_get_chipver();
- +}
- +
- +static int rt2800soc_get_chipeco(void)
- +{
- + return mt7620_get_eco();
- +}
- +#else
- +static int rt2800soc_get_chippkg(void) { return 0; }
- +static int rt2800soc_get_chipver(void) { return 0; }
- +static int rt2800soc_get_chipeco(void) { return 0; }
- +#endif
- +
- static const struct ieee80211_ops rt2800soc_mac80211_ops = {
- .tx = rt2x00mac_tx,
- .wake_tx_queue = ieee80211_handle_wake_tx_queue,
- @@ -160,6 +187,9 @@ static const struct rt2800_ops rt2800soc
- .drv_init_registers = rt2800mmio_init_registers,
- .drv_get_txwi = rt2800mmio_get_txwi,
- .drv_get_dma_done = rt2800mmio_get_dma_done,
- + .hw_get_chippkg = rt2800soc_get_chippkg,
- + .hw_get_chipver = rt2800soc_get_chipver,
- + .hw_get_chipeco = rt2800soc_get_chipeco,
- };
-
- static const struct rt2x00lib_ops rt2800soc_rt2x00_ops = {
- --- a/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
- +++ b/drivers/net/wireless/ralink/rt2x00/rt2800usb.c
- @@ -628,6 +628,10 @@ static int rt2800usb_probe_hw(struct rt2
- return 0;
- }
-
- +static int rt2800usb_get_chippkg(void) { return 0; }
- +static int rt2800usb_get_chipver(void) { return 0; }
- +static int rt2800usb_get_chipeco(void) { return 0; }
- +
- static const struct ieee80211_ops rt2800usb_mac80211_ops = {
- .tx = rt2x00mac_tx,
- .wake_tx_queue = ieee80211_handle_wake_tx_queue,
- @@ -672,6 +676,9 @@ static const struct rt2800_ops rt2800usb
- .drv_init_registers = rt2800usb_init_registers,
- .drv_get_txwi = rt2800usb_get_txwi,
- .drv_get_dma_done = rt2800usb_get_dma_done,
- + .hw_get_chippkg = rt2800usb_get_chippkg,
- + .hw_get_chipver = rt2800usb_get_chipver,
- + .hw_get_chipeco = rt2800usb_get_chipeco,
- };
-
- static const struct rt2x00lib_ops rt2800usb_rt2x00_ops = {
|