mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/lowpan/lowpan
This commit is contained in:
commit
10d626f4f4
11 changed files with 1202 additions and 611 deletions
|
|
@ -74,8 +74,12 @@ static inline int mac_cb_type(struct sk_buff *skb)
|
|||
#define IEEE802154_MAC_SCAN_PASSIVE 2
|
||||
#define IEEE802154_MAC_SCAN_ORPHAN 3
|
||||
|
||||
struct wpan_phy;
|
||||
/*
|
||||
* This should be located at net_device->ml_priv
|
||||
*
|
||||
* get_phy should increment the reference counting on returned phy.
|
||||
* Use wpan_wpy_put to put that reference.
|
||||
*/
|
||||
struct ieee802154_mlme_ops {
|
||||
int (*assoc_req)(struct net_device *dev,
|
||||
|
|
@ -94,18 +98,20 @@ struct ieee802154_mlme_ops {
|
|||
int (*scan_req)(struct net_device *dev,
|
||||
u8 type, u32 channels, u8 page, u8 duration);
|
||||
|
||||
struct wpan_phy *(*get_phy)(const struct net_device *dev);
|
||||
|
||||
/*
|
||||
* FIXME: these should become the part of PIB/MIB interface.
|
||||
* However we still don't have IB interface of any kind
|
||||
*/
|
||||
u16 (*get_pan_id)(struct net_device *dev);
|
||||
u16 (*get_short_addr)(struct net_device *dev);
|
||||
u8 (*get_dsn)(struct net_device *dev);
|
||||
u8 (*get_bsn)(struct net_device *dev);
|
||||
u16 (*get_pan_id)(const struct net_device *dev);
|
||||
u16 (*get_short_addr)(const struct net_device *dev);
|
||||
u8 (*get_dsn)(const struct net_device *dev);
|
||||
u8 (*get_bsn)(const struct net_device *dev);
|
||||
};
|
||||
|
||||
static inline struct ieee802154_mlme_ops *ieee802154_mlme_ops(
|
||||
struct net_device *dev)
|
||||
const struct net_device *dev)
|
||||
{
|
||||
return dev->ml_priv;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -34,20 +34,32 @@ struct wpan_phy {
|
|||
*/
|
||||
u8 current_channel;
|
||||
u8 current_page;
|
||||
u32 channels_supported;
|
||||
u32 channels_supported[32];
|
||||
u8 transmit_power;
|
||||
u8 cca_mode;
|
||||
|
||||
struct device dev;
|
||||
int idx;
|
||||
|
||||
struct net_device *(*add_iface)(struct wpan_phy *phy,
|
||||
const char *name);
|
||||
void (*del_iface)(struct wpan_phy *phy, struct net_device *dev);
|
||||
|
||||
char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
|
||||
};
|
||||
|
||||
#define to_phy(_dev) container_of(_dev, struct wpan_phy, dev)
|
||||
|
||||
struct wpan_phy *wpan_phy_alloc(size_t priv_size);
|
||||
int wpan_phy_register(struct device *parent, struct wpan_phy *phy);
|
||||
static inline void wpan_phy_set_dev(struct wpan_phy *phy, struct device *dev)
|
||||
{
|
||||
phy->dev.parent = dev;
|
||||
}
|
||||
int wpan_phy_register(struct wpan_phy *phy);
|
||||
void wpan_phy_unregister(struct wpan_phy *phy);
|
||||
void wpan_phy_free(struct wpan_phy *phy);
|
||||
/* Same semantics as for class_for_each_device */
|
||||
int wpan_phy_for_each(int (*fn)(struct wpan_phy *phy, void *data), void *data);
|
||||
|
||||
static inline void *wpan_phy_priv(struct wpan_phy *phy)
|
||||
{
|
||||
|
|
@ -56,6 +68,12 @@ static inline void *wpan_phy_priv(struct wpan_phy *phy)
|
|||
}
|
||||
|
||||
struct wpan_phy *wpan_phy_find(const char *str);
|
||||
|
||||
static inline void wpan_phy_put(struct wpan_phy *phy)
|
||||
{
|
||||
put_device(&phy->dev);
|
||||
}
|
||||
|
||||
static inline const char *wpan_phy_name(struct wpan_phy *phy)
|
||||
{
|
||||
return dev_name(&phy->dev);
|
||||
|
|
|
|||
Loading…
Reference in a new issue