Home
last modified time | relevance | path

Searched refs:wdev (Results 1 – 25 of 131) sorted by relevance

123456

/Linux-v4.19/drivers/watchdog/
Domap_wdt.c73 static void omap_wdt_reload(struct omap_wdt_dev *wdev) in omap_wdt_reload() argument
75 void __iomem *base = wdev->base; in omap_wdt_reload()
81 wdev->wdt_trgr_pattern = ~wdev->wdt_trgr_pattern; in omap_wdt_reload()
82 writel_relaxed(wdev->wdt_trgr_pattern, (base + OMAP_WATCHDOG_TGR)); in omap_wdt_reload()
90 static void omap_wdt_enable(struct omap_wdt_dev *wdev) in omap_wdt_enable() argument
92 void __iomem *base = wdev->base; in omap_wdt_enable()
104 static void omap_wdt_disable(struct omap_wdt_dev *wdev) in omap_wdt_disable() argument
106 void __iomem *base = wdev->base; in omap_wdt_disable()
118 static void omap_wdt_set_timer(struct omap_wdt_dev *wdev, in omap_wdt_set_timer() argument
122 void __iomem *base = wdev->base; in omap_wdt_set_timer()
[all …]
Dimx2_wdt.c95 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_restart() local
99 if (wdev->ext_reset) in imx2_wdt_restart()
105 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
113 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
114 regmap_write(wdev->regmap, IMX2_WDT_WCR, wcr_enable); in imx2_wdt_restart()
124 struct imx2_wdt_device *wdev = watchdog_get_drvdata(wdog); in imx2_wdt_setup() local
127 regmap_read(wdev->regmap, IMX2_WDT_WCR, &val); in imx2_wdt_setup()
134 if (!wdev->ext_reset) in imx2_wdt_setup()
144 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
148 regmap_write(wdev->regmap, IMX2_WDT_WCR, val); in imx2_wdt_setup()
[all …]
Dretu_wdt.c42 static void retu_wdt_ping_enable(struct retu_wdt_dev *wdev) in retu_wdt_ping_enable() argument
44 retu_write(wdev->rdev, RETU_REG_WATCHDOG, RETU_WDT_MAX_TIMER); in retu_wdt_ping_enable()
45 schedule_delayed_work(&wdev->ping_work, in retu_wdt_ping_enable()
49 static void retu_wdt_ping_disable(struct retu_wdt_dev *wdev) in retu_wdt_ping_disable() argument
51 retu_write(wdev->rdev, RETU_REG_WATCHDOG, RETU_WDT_MAX_TIMER); in retu_wdt_ping_disable()
52 cancel_delayed_work_sync(&wdev->ping_work); in retu_wdt_ping_disable()
57 struct retu_wdt_dev *wdev = container_of(to_delayed_work(work), in retu_wdt_ping_work() local
59 retu_wdt_ping_enable(wdev); in retu_wdt_ping_work()
64 struct retu_wdt_dev *wdev = watchdog_get_drvdata(wdog); in retu_wdt_start() local
66 retu_wdt_ping_disable(wdev); in retu_wdt_start()
[all …]
Duniphier_wdt.c57 struct uniphier_wdt_dev *wdev = watchdog_get_drvdata(w); in uniphier_watchdog_ping() local
62 ret = regmap_write_bits(wdev->regmap, WDTCTRL, in uniphier_watchdog_ping()
69 ret = regmap_read_poll_timeout(wdev->regmap, WDTCTRL, val, in uniphier_watchdog_ping()
126 struct uniphier_wdt_dev *wdev = watchdog_get_drvdata(w); in uniphier_watchdog_start() local
131 return __uniphier_watchdog_start(wdev->regmap, tmp_timeout); in uniphier_watchdog_start()
136 struct uniphier_wdt_dev *wdev = watchdog_get_drvdata(w); in uniphier_watchdog_stop() local
138 return __uniphier_watchdog_stop(wdev->regmap); in uniphier_watchdog_stop()
144 struct uniphier_wdt_dev *wdev = watchdog_get_drvdata(w); in uniphier_watchdog_set_timeout() local
153 ret = __uniphier_watchdog_restart(wdev->regmap, tmp_timeout); in uniphier_watchdog_set_timeout()
185 struct uniphier_wdt_dev *wdev; in uniphier_wdt_probe() local
[all …]
Drenesas_wdt.c52 struct watchdog_device wdev; member
68 static int rwdt_init_timeout(struct watchdog_device *wdev) in rwdt_init_timeout() argument
70 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_init_timeout()
72 rwdt_write(priv, 65536 - MUL_BY_CLKS_PER_SEC(priv, wdev->timeout), RWTCNT); in rwdt_init_timeout()
77 static int rwdt_start(struct watchdog_device *wdev) in rwdt_start() argument
79 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_start()
81 pm_runtime_get_sync(wdev->parent); in rwdt_start()
85 rwdt_init_timeout(wdev); in rwdt_start()
95 static int rwdt_stop(struct watchdog_device *wdev) in rwdt_stop() argument
97 struct rwdt_priv *priv = watchdog_get_drvdata(wdev); in rwdt_stop()
[all …]
Drza_wdt.c38 struct watchdog_device wdev; member
43 static int rza_wdt_start(struct watchdog_device *wdev) in rza_wdt_start() argument
45 struct rza_wdt *priv = watchdog_get_drvdata(wdev); in rza_wdt_start()
65 static int rza_wdt_stop(struct watchdog_device *wdev) in rza_wdt_stop() argument
67 struct rza_wdt *priv = watchdog_get_drvdata(wdev); in rza_wdt_stop()
74 static int rza_wdt_ping(struct watchdog_device *wdev) in rza_wdt_ping() argument
76 struct rza_wdt *priv = watchdog_get_drvdata(wdev); in rza_wdt_ping()
83 static int rza_wdt_restart(struct watchdog_device *wdev, unsigned long action, in rza_wdt_restart() argument
86 struct rza_wdt *priv = watchdog_get_drvdata(wdev); in rza_wdt_restart()
156 priv->wdev.info = &rza_wdt_ident, in rza_wdt_probe()
[all …]
Drtd119x_wdt.c34 static int rtd119x_wdt_start(struct watchdog_device *wdev) in rtd119x_wdt_start() argument
36 struct rtd119x_watchdog_device *data = watchdog_get_drvdata(wdev); in rtd119x_wdt_start()
47 static int rtd119x_wdt_stop(struct watchdog_device *wdev) in rtd119x_wdt_stop() argument
49 struct rtd119x_watchdog_device *data = watchdog_get_drvdata(wdev); in rtd119x_wdt_stop()
60 static int rtd119x_wdt_ping(struct watchdog_device *wdev) in rtd119x_wdt_ping() argument
62 struct rtd119x_watchdog_device *data = watchdog_get_drvdata(wdev); in rtd119x_wdt_ping()
66 return rtd119x_wdt_start(wdev); in rtd119x_wdt_ping()
69 static int rtd119x_wdt_set_timeout(struct watchdog_device *wdev, unsigned int val) in rtd119x_wdt_set_timeout() argument
71 struct rtd119x_watchdog_device *data = watchdog_get_drvdata(wdev); in rtd119x_wdt_set_timeout()
/Linux-v4.19/net/wireless/
Dibss.c21 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_ibss_joined() local
27 if (WARN_ON(wdev->iftype != NL80211_IFTYPE_ADHOC)) in __cfg80211_ibss_joined()
30 if (!wdev->ssid_len) in __cfg80211_ibss_joined()
33 bss = cfg80211_get_bss(wdev->wiphy, channel, bssid, NULL, 0, in __cfg80211_ibss_joined()
39 if (wdev->current_bss) { in __cfg80211_ibss_joined()
40 cfg80211_unhold_bss(wdev->current_bss); in __cfg80211_ibss_joined()
41 cfg80211_put_bss(wdev->wiphy, &wdev->current_bss->pub); in __cfg80211_ibss_joined()
45 wdev->current_bss = bss_from_pub(bss); in __cfg80211_ibss_joined()
47 if (!(wdev->wiphy->flags & WIPHY_FLAG_HAS_STATIC_WEP)) in __cfg80211_ibss_joined()
48 cfg80211_upload_connect_keys(wdev); in __cfg80211_ibss_joined()
[all …]
Dsme.c54 static void cfg80211_sme_free(struct wireless_dev *wdev) in cfg80211_sme_free() argument
56 if (!wdev->conn) in cfg80211_sme_free()
59 kfree(wdev->conn->ie); in cfg80211_sme_free()
60 kfree(wdev->conn); in cfg80211_sme_free()
61 wdev->conn = NULL; in cfg80211_sme_free()
64 static int cfg80211_conn_scan(struct wireless_dev *wdev) in cfg80211_conn_scan() argument
66 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_conn_scan()
71 ASSERT_WDEV_LOCK(wdev); in cfg80211_conn_scan()
76 if (wdev->conn->params.channel) in cfg80211_conn_scan()
79 n_channels = ieee80211_get_num_supported_channels(wdev->wiphy); in cfg80211_conn_scan()
[all …]
Dwext-sme.c19 struct wireless_dev *wdev) in cfg80211_mgd_wext_connect() argument
26 ASSERT_WDEV_LOCK(wdev); in cfg80211_mgd_wext_connect()
28 if (!netif_running(wdev->netdev)) in cfg80211_mgd_wext_connect()
31 wdev->wext.connect.ie = wdev->wext.ie; in cfg80211_mgd_wext_connect()
32 wdev->wext.connect.ie_len = wdev->wext.ie_len; in cfg80211_mgd_wext_connect()
35 wdev->wext.connect.bg_scan_period = -1; in cfg80211_mgd_wext_connect()
37 if (wdev->wext.keys) { in cfg80211_mgd_wext_connect()
38 wdev->wext.keys->def = wdev->wext.default_key; in cfg80211_mgd_wext_connect()
39 if (wdev->wext.default_key != -1) in cfg80211_mgd_wext_connect()
40 wdev->wext.connect.privacy = true; in cfg80211_mgd_wext_connect()
[all …]
Dmlme.c26 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_rx_assoc_resp() local
27 struct wiphy *wiphy = wdev->wiphy; in cfg80211_rx_assoc_resp()
49 if (cfg80211_sme_rx_assoc_resp(wdev, cr.status)) { in cfg80211_rx_assoc_resp()
61 static void cfg80211_process_auth(struct wireless_dev *wdev, in cfg80211_process_auth() argument
64 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_process_auth()
66 nl80211_send_rx_auth(rdev, wdev->netdev, buf, len, GFP_KERNEL); in cfg80211_process_auth()
67 cfg80211_sme_rx_auth(wdev, buf, len); in cfg80211_process_auth()
70 static void cfg80211_process_deauth(struct wireless_dev *wdev, in cfg80211_process_deauth() argument
73 struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_process_deauth()
77 bool from_ap = !ether_addr_equal(mgmt->sa, wdev->netdev->dev_addr); in cfg80211_process_deauth()
[all …]
Dwext-compat.c37 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_wext_siwmode() local
42 rdev = wiphy_to_rdev(wdev->wiphy); in cfg80211_wext_siwmode()
61 if (type == wdev->iftype) in cfg80211_wext_siwmode()
73 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_wext_giwmode() local
75 if (!wdev) in cfg80211_wext_giwmode()
78 switch (wdev->iftype) { in cfg80211_wext_giwmode()
110 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_wext_giwrange() local
115 if (!wdev) in cfg80211_wext_giwrange()
136 switch (wdev->wiphy->signal_type) { in cfg80211_wext_giwrange()
160 for (i = 0; i < wdev->wiphy->n_cipher_suites; i++) { in cfg80211_wext_giwrange()
[all …]
Dcore.c158 struct wireless_dev *wdev; in cfg80211_switch_netns() local
164 list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { in cfg80211_switch_netns()
165 if (!wdev->netdev) in cfg80211_switch_netns()
167 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL; in cfg80211_switch_netns()
168 err = dev_change_net_namespace(wdev->netdev, net, "wlan%d"); in cfg80211_switch_netns()
171 wdev->netdev->features |= NETIF_F_NETNS_LOCAL; in cfg80211_switch_netns()
178 list_for_each_entry_continue_reverse(wdev, in cfg80211_switch_netns()
181 if (!wdev->netdev) in cfg80211_switch_netns()
183 wdev->netdev->features &= ~NETIF_F_NETNS_LOCAL; in cfg80211_switch_netns()
184 err = dev_change_net_namespace(wdev->netdev, net, in cfg80211_switch_netns()
[all …]
Dmesh.c102 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_join_mesh() local
107 ASSERT_WDEV_LOCK(wdev); in __cfg80211_join_mesh()
116 if (wdev->mesh_id_len) in __cfg80211_join_mesh()
127 setup->chandef = wdev->preset_chandef; in __cfg80211_join_mesh()
211 memcpy(wdev->ssid, setup->mesh_id, setup->mesh_id_len); in __cfg80211_join_mesh()
212 wdev->mesh_id_len = setup->mesh_id_len; in __cfg80211_join_mesh()
213 wdev->chandef = setup->chandef; in __cfg80211_join_mesh()
214 wdev->beacon_interval = setup->beacon_interval; in __cfg80211_join_mesh()
221 struct wireless_dev *wdev, in cfg80211_set_mesh_channel() argument
237 if (!netif_running(wdev->netdev)) in cfg80211_set_mesh_channel()
[all …]
Dap.c13 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_stop_ap() local
16 ASSERT_WDEV_LOCK(wdev); in __cfg80211_stop_ap()
25 if (!wdev->beacon_interval) in __cfg80211_stop_ap()
30 wdev->conn_owner_nlportid = 0; in __cfg80211_stop_ap()
31 wdev->beacon_interval = 0; in __cfg80211_stop_ap()
32 memset(&wdev->chandef, 0, sizeof(wdev->chandef)); in __cfg80211_stop_ap()
33 wdev->ssid_len = 0; in __cfg80211_stop_ap()
36 nl80211_send_ap_stopped(wdev); in __cfg80211_stop_ap()
50 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_stop_ap() local
53 wdev_lock(wdev); in cfg80211_stop_ap()
[all …]
Docb.c24 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_join_ocb() local
27 ASSERT_WDEV_LOCK(wdev); in __cfg80211_join_ocb()
40 wdev->chandef = setup->chandef; in __cfg80211_join_ocb()
49 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_join_ocb() local
52 wdev_lock(wdev); in cfg80211_join_ocb()
54 wdev_unlock(wdev); in cfg80211_join_ocb()
62 struct wireless_dev *wdev = dev->ieee80211_ptr; in __cfg80211_leave_ocb() local
65 ASSERT_WDEV_LOCK(wdev); in __cfg80211_leave_ocb()
75 memset(&wdev->chandef, 0, sizeof(wdev->chandef)); in __cfg80211_leave_ocb()
83 struct wireless_dev *wdev = dev->ieee80211_ptr; in cfg80211_leave_ocb() local
[all …]
Dchan.c495 bool cfg80211_beaconing_iface_active(struct wireless_dev *wdev) in cfg80211_beaconing_iface_active() argument
499 ASSERT_WDEV_LOCK(wdev); in cfg80211_beaconing_iface_active()
501 if (!wdev->chandef.chan) in cfg80211_beaconing_iface_active()
504 switch (wdev->iftype) { in cfg80211_beaconing_iface_active()
507 active = wdev->beacon_interval != 0; in cfg80211_beaconing_iface_active()
510 active = wdev->ssid_len != 0; in cfg80211_beaconing_iface_active()
513 active = wdev->mesh_id_len != 0; in cfg80211_beaconing_iface_active()
536 struct wireless_dev *wdev; in cfg80211_is_wiphy_oper_chan() local
538 list_for_each_entry(wdev, &wiphy->wdev_list, list) { in cfg80211_is_wiphy_oper_chan()
539 wdev_lock(wdev); in cfg80211_is_wiphy_oper_chan()
[all …]
Dcore.h190 static inline void wdev_lock(struct wireless_dev *wdev) in wdev_lock() argument
191 __acquires(wdev) in wdev_lock()
193 mutex_lock(&wdev->mtx); in wdev_lock()
194 __acquire(wdev->mtx); in wdev_lock()
197 static inline void wdev_unlock(struct wireless_dev *wdev) in wdev_unlock() argument
198 __releases(wdev) in wdev_unlock()
200 __release(wdev->mtx); in wdev_unlock()
201 mutex_unlock(&wdev->mtx); in wdev_unlock()
204 #define ASSERT_WDEV_LOCK(wdev) lockdep_assert_held(&(wdev)->mtx) argument
297 struct wireless_dev *wdev);
[all …]
Drdev-ops.h53 struct wireless_dev *wdev) in rdev_del_virtual_intf() argument
56 trace_rdev_del_virtual_intf(&rdev->wiphy, wdev); in rdev_del_virtual_intf()
57 ret = rdev->ops->del_virtual_intf(&rdev->wiphy, wdev); in rdev_del_virtual_intf()
431 struct wireless_dev *wdev) in rdev_abort_scan() argument
433 trace_rdev_abort_scan(&rdev->wiphy, wdev); in rdev_abort_scan()
434 rdev->ops->abort_scan(&rdev->wiphy, wdev); in rdev_abort_scan()
547 struct wireless_dev *wdev, in rdev_set_tx_power() argument
551 trace_rdev_set_tx_power(&rdev->wiphy, wdev, type, mbm); in rdev_set_tx_power()
552 ret = rdev->ops->set_tx_power(&rdev->wiphy, wdev, type, mbm); in rdev_set_tx_power()
558 struct wireless_dev *wdev, int *dbm) in rdev_get_tx_power() argument
[all …]
/Linux-v4.19/drivers/platform/x86/
Ddell-smbios-wmi.c36 struct wmi_device *wdev; member
49 static int run_smbios_call(struct wmi_device *wdev) in run_smbios_call() argument
57 priv = dev_get_drvdata(&wdev->dev); in run_smbios_call()
61 dev_dbg(&wdev->dev, "evaluating: %u/%u [%x,%x,%x,%x]\n", in run_smbios_call()
66 status = wmidev_evaluate_method(wdev, 0, 1, &input, &output); in run_smbios_call()
71 dev_dbg(&wdev->dev, "received type: %d\n", obj->type); in run_smbios_call()
73 dev_dbg(&wdev->dev, "SMBIOS call failed: %llu\n", in run_smbios_call()
78 dev_dbg(&wdev->dev, "result: [%08x,%08x,%08x,%08x]\n", in run_smbios_call()
105 ret = run_smbios_call(priv->wdev); in dell_smbios_wmi_call()
113 static long dell_smbios_wmi_filter(struct wmi_device *wdev, unsigned int cmd, in dell_smbios_wmi_filter() argument
[all …]
Dwmi-bmof.c57 static int wmi_bmof_probe(struct wmi_device *wdev) in wmi_bmof_probe() argument
62 priv = devm_kzalloc(&wdev->dev, sizeof(struct bmof_priv), GFP_KERNEL); in wmi_bmof_probe()
66 dev_set_drvdata(&wdev->dev, priv); in wmi_bmof_probe()
68 priv->bmofdata = wmidev_block_query(wdev, 0); in wmi_bmof_probe()
70 dev_err(&wdev->dev, "failed to read Binary MOF\n"); in wmi_bmof_probe()
75 dev_err(&wdev->dev, "Binary MOF is not a buffer\n"); in wmi_bmof_probe()
86 ret = sysfs_create_bin_file(&wdev->dev.kobj, &priv->bmof_bin_attr); in wmi_bmof_probe()
97 static int wmi_bmof_remove(struct wmi_device *wdev) in wmi_bmof_remove() argument
99 struct bmof_priv *priv = dev_get_drvdata(&wdev->dev); in wmi_bmof_remove()
101 sysfs_remove_bin_file(&wdev->dev.kobj, &priv->bmof_bin_attr); in wmi_bmof_remove()
Ddell-wmi-descriptor.c109 static int dell_wmi_descriptor_probe(struct wmi_device *wdev) in dell_wmi_descriptor_probe() argument
116 obj = wmidev_block_query(wdev, 0); in dell_wmi_descriptor_probe()
118 dev_err(&wdev->dev, "failed to read Dell WMI descriptor\n"); in dell_wmi_descriptor_probe()
124 dev_err(&wdev->dev, "Dell descriptor has wrong type\n"); in dell_wmi_descriptor_probe()
134 dev_err(&wdev->dev, in dell_wmi_descriptor_probe()
145 dev_err(&wdev->dev, "Dell descriptor buffer has invalid signature (%8ph)\n", in dell_wmi_descriptor_probe()
154 dev_warn(&wdev->dev, "Dell descriptor buffer has unknown version (%lu)\n", in dell_wmi_descriptor_probe()
157 priv = devm_kzalloc(&wdev->dev, sizeof(struct descriptor_priv), in dell_wmi_descriptor_probe()
169 dev_set_drvdata(&wdev->dev, priv); in dell_wmi_descriptor_probe()
174 dev_dbg(&wdev->dev, "Detected Dell WMI interface version %lu, buffer size %lu, hotfix %lu\n", in dell_wmi_descriptor_probe()
[all …]
Dintel-wmi-thunderbolt.c63 static int intel_wmi_thunderbolt_probe(struct wmi_device *wdev) in intel_wmi_thunderbolt_probe() argument
67 ret = sysfs_create_group(&wdev->dev.kobj, &tbt_attribute_group); in intel_wmi_thunderbolt_probe()
68 kobject_uevent(&wdev->dev.kobj, KOBJ_CHANGE); in intel_wmi_thunderbolt_probe()
72 static int intel_wmi_thunderbolt_remove(struct wmi_device *wdev) in intel_wmi_thunderbolt_remove() argument
74 sysfs_remove_group(&wdev->dev.kobj, &tbt_attribute_group); in intel_wmi_thunderbolt_remove()
75 kobject_uevent(&wdev->dev.kobj, KOBJ_CHANGE); in intel_wmi_thunderbolt_remove()
/Linux-v4.19/net/ieee802154/6lowpan/
Dcore.c95 return lowpan_802154_dev(dev)->wdev->ifindex; in lowpan_get_iflink()
135 struct net_device *wdev; in lowpan_newlink() local
145 wdev = dev_get_by_index(dev_net(ldev), nla_get_u32(tb[IFLA_LINK])); in lowpan_newlink()
146 if (!wdev) in lowpan_newlink()
148 if (wdev->type != ARPHRD_IEEE802154) { in lowpan_newlink()
149 dev_put(wdev); in lowpan_newlink()
153 if (wdev->ieee802154_ptr->lowpan_dev) { in lowpan_newlink()
154 dev_put(wdev); in lowpan_newlink()
158 lowpan_802154_dev(ldev)->wdev = wdev; in lowpan_newlink()
160 memcpy(ldev->dev_addr, wdev->dev_addr, IEEE802154_ADDR_LEN); in lowpan_newlink()
[all …]
/Linux-v4.19/include/linux/
Dwmi.h31 extern acpi_status wmidev_evaluate_method(struct wmi_device *wdev,
37 extern union acpi_object *wmidev_block_query(struct wmi_device *wdev,
40 extern int set_required_buffer_size(struct wmi_device *wdev, u64 length);
50 int (*probe)(struct wmi_device *wdev);
51 int (*remove)(struct wmi_device *wdev);
53 long (*filter_callback)(struct wmi_device *wdev, unsigned int cmd,

123456