|
@@ -27,32 +27,60 @@
|
|
|
#ifndef RT2800PCI_H
|
|
|
#define RT2800PCI_H
|
|
|
|
|
|
+struct rt2800_ops {
|
|
|
+ void (*register_read)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset, u32 *value);
|
|
|
+ void (*register_write)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset, u32 value);
|
|
|
+ void (*register_write_lock)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset, u32 value);
|
|
|
+
|
|
|
+ void (*register_multiread)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset,
|
|
|
+ void *value, const u16 length);
|
|
|
+ void (*register_multiwrite)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset,
|
|
|
+ const void *value, const u16 length);
|
|
|
+
|
|
|
+ int (*regbusy_read)(struct rt2x00_dev *rt2x00dev,
|
|
|
+ const unsigned int offset,
|
|
|
+ const struct rt2x00_field32 field, u32 *reg);
|
|
|
+};
|
|
|
+
|
|
|
static inline void rt2800_register_read(struct rt2x00_dev *rt2x00dev,
|
|
|
const unsigned int offset,
|
|
|
u32 *value)
|
|
|
{
|
|
|
- rt2x00pci_register_read(rt2x00dev, offset, value);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ rt2800ops->register_read(rt2x00dev, offset, value);
|
|
|
}
|
|
|
|
|
|
static inline void rt2800_register_write(struct rt2x00_dev *rt2x00dev,
|
|
|
const unsigned int offset,
|
|
|
u32 value)
|
|
|
{
|
|
|
- rt2x00pci_register_write(rt2x00dev, offset, value);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ rt2800ops->register_write(rt2x00dev, offset, value);
|
|
|
}
|
|
|
|
|
|
static inline void rt2800_register_write_lock(struct rt2x00_dev *rt2x00dev,
|
|
|
const unsigned int offset,
|
|
|
u32 value)
|
|
|
{
|
|
|
- rt2x00pci_register_write(rt2x00dev, offset, value);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ rt2800ops->register_write_lock(rt2x00dev, offset, value);
|
|
|
}
|
|
|
|
|
|
static inline void rt2800_register_multiread(struct rt2x00_dev *rt2x00dev,
|
|
|
const unsigned int offset,
|
|
|
void *value, const u16 length)
|
|
|
{
|
|
|
- rt2x00pci_register_multiread(rt2x00dev, offset, value, length);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ rt2800ops->register_multiread(rt2x00dev, offset, value, length);
|
|
|
}
|
|
|
|
|
|
static inline void rt2800_register_multiwrite(struct rt2x00_dev *rt2x00dev,
|
|
@@ -60,7 +88,9 @@ static inline void rt2800_register_multiwrite(struct rt2x00_dev *rt2x00dev,
|
|
|
const void *value,
|
|
|
const u16 length)
|
|
|
{
|
|
|
- rt2x00pci_register_multiwrite(rt2x00dev, offset, value, length);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ rt2800ops->register_multiwrite(rt2x00dev, offset, value, length);
|
|
|
}
|
|
|
|
|
|
static inline int rt2800_regbusy_read(struct rt2x00_dev *rt2x00dev,
|
|
@@ -68,7 +98,9 @@ static inline int rt2800_regbusy_read(struct rt2x00_dev *rt2x00dev,
|
|
|
const struct rt2x00_field32 field,
|
|
|
u32 *reg)
|
|
|
{
|
|
|
- return rt2x00pci_regbusy_read(rt2x00dev, offset, field, reg);
|
|
|
+ const struct rt2800_ops *rt2800ops = rt2x00dev->priv;
|
|
|
+
|
|
|
+ return rt2800ops->regbusy_read(rt2x00dev, offset, field, reg);
|
|
|
}
|
|
|
|
|
|
/*
|