Lines Matching full:regulatory
25 * DOC: Wireless regulatory infrastructure
28 * determine which regulatory domain it should be operating under, then
36 * In addition to all this we provide an extra layer of regulatory
37 * conformance. For drivers which do not have any regulatory
38 * information CRDA provides the complete regulatory solution.
68 * channels allowed by the current regulatory domain.
73 * enum reg_request_treatment - regulatory request treatment
75 * @REG_REQ_OK: continue processing the regulatory request
76 * @REG_REQ_IGNORE: ignore the regulatory request
77 * @REG_REQ_INTERSECT: the regulatory domain resulting from this request should
79 * @REG_REQ_ALREADY_SET: the regulatory request will not change the current
80 * regulatory settings, and no further processing is required.
99 * Receipt of information from last regulatory request,
109 * Central wireless core regulatory domains, we only need two,
110 * the current one and a world regulatory domain in case we have no
118 * that support cellular base station regulatory hints
144 * Returns the regulatory domain associated with the wiphy.
219 /* Used to queue up regulatory hints */
241 /* We keep a static world regulatory domain in case of the absence of CRDA */
290 MODULE_PARM_DESC(ieee80211_regdom, "IEEE 802.11 regulatory domain code");
351 * Dynamic world regulatory domain requested by the wireless
386 * Special case where regulatory domain was built by driver in is_unknown_alpha2()
397 * Special case where regulatory domain is the in is_intersected_alpha2()
398 * result of an intersection between two regulatory domain in is_intersected_alpha2()
430 * you know if a valid regulatory hint with NL80211_REGDOM_SET_BY_USER
538 pr_debug("Timeout while waiting for CRDA to reply, restoring regulatory settings\n"); in crda_timeout_work()
561 * This lets us keep regulatory code which is updated on a regulatory
582 pr_debug("Calling CRDA to update world regulatory domain\n"); in call_crda()
756 pr_notice("Loading compiled-in X.509 certificates for regulatory database\n"); in load_builtin_regdb_keys()
773 MODULE_FIRMWARE("regulatory.db.p7s");
780 if (request_firmware(&sig, "regulatory.db.p7s", ®_pdev->dev)) in regdb_has_valid_signature()
855 pr_err("Invalid regulatory WMM rule %u-%u in domain %c%c\n", in set_wmm_rule()
1009 pr_info("failed to load regulatory.db\n"); in regdb_fw_cb()
1012 pr_info("loaded regulatory.db is malformed or signature is missing/invalid\n"); in regdb_fw_cb()
1046 MODULE_FIRMWARE("regulatory.db");
1061 err = request_firmware_nowait(THIS_MODULE, true, "regulatory.db", in query_regdb_file()
1078 err = request_firmware(&fw, "regulatory.db", ®_pdev->dev); in reg_reload_regdb()
1098 /* reset regulatory domain */ in reg_reload_regdb()
1148 * Follow the driver's regulatory domain, if present, unless a country in reg_get_regdomain()
1232 /* Sanity check on a regulatory rule */
1286 * regulatory rule support for other "bands".
1485 * regdom_intersect - do the intersection between two regulatory domains
1486 * @rd1: first regulatory domain
1487 * @rd2: second regulatory domain
1489 * Use this function to get the intersection between two regulatory domains.
1491 * as no one single alpha2 can represent this regulatory domain.
1493 * Returns a pointer to the regulatory domain structure which will hold the
1782 * This guarantees the driver's requested regulatory domain in handle_channel_single_rule()
1783 * will always be used as a base for further regulatory in handle_channel_single_rule()
1860 /* This guarantees the driver's requested regulatory domain in handle_channel_adjacent_rules()
1861 * will always be used as a base for further regulatory in handle_channel_adjacent_rules()
2001 * received regulatory rule unless the hint is coming in handle_channel()
2004 * to send only a subset of the regulatory rules allowed, in handle_channel()
2109 pr_debug("Ignoring regulatory request set by %s since last_request is not set\n", in ignore_reg_update()
2116 …pr_debug("Ignoring regulatory request set by %s since the driver uses its own custom regulatory do… in ignore_reg_update()
2123 * desired regulatory domain set in ignore_reg_update()
2128 …pr_debug("Ignoring regulatory request set by %s since the driver requires its own regulatory domai… in ignore_reg_update()
2246 /* This would happen when regulatory rules disallow HT40 completely */ in is_ht40_allowed()
2490 * Regulatory updates set by CORE are ignored for custom in wiphy_update_regulatory()
2491 * regulatory cards. Let us notify the changes to the driver, in wiphy_update_regulatory()
2662 * reg_process_hint_core - process core regulatory requests
2663 * @core_request: a pending core regulatory request
2666 * a regulatory request issued by the regulatory core.
2718 * reg_process_hint_user - process user regulatory requests
2719 * @user_request: a pending user regulatory request
2722 * a regulatory request initiated by userspace.
2761 * loaded card also agrees on the regulatory domain. in __reg_process_hint_driver()
2771 * reg_process_hint_driver - process driver regulatory requests
2772 * @wiphy: the wireless device for the regulatory request
2773 * @driver_request: a pending driver regulatory request
2776 * a regulatory request issued by an 802.11 driver.
2814 * have applied the requested regulatory domain before we just in reg_process_hint_driver()
2875 * reg_process_hint_country_ie - process regulatory requests from country IEs
2876 * @wiphy: the wireless device for the regulatory request
2877 * @country_ie_request: a regulatory request from a country IE
2880 * a regulatory request issued by a country Information Element.
3002 /* This processes *all* regulatory hints */
3070 * Processes regulatory hints, this is all the NL80211_REGDOM_SET_BY_*
3071 * Regulatory hints come on a first come first serve basis and we
3082 pr_debug("Pending regulatory request, waiting for it to be processed...\n"); in reg_process_pending_hints()
3212 * Core regulatory hint -- happens during cfg80211_init()
3213 * and when we restore regulatory settings.
3403 pr_debug("Restoring regulatory settings including user preference\n"); in restore_alpha2()
3419 pr_debug("Restoring regulatory settings while preserving user preference for: %c%c\n", in restore_alpha2()
3430 pr_debug("Restoring regulatory settings\n"); in restore_alpha2()
3455 * Restoring regulatory settings involves ignoring any
3456 * possibly stale country IE information and user regulatory
3459 * after disconnection. To restore regulatory settings we do
3462 * - send a core regulatory hint
3463 * - send a user regulatory hint if applicable
3465 * Device drivers that send a regulatory hint for a specific country
3466 * keep their own regulatory domain on wiphy->regd so that does
3497 * add then after we've restored regulatory in restore_regulatory_settings()
3517 /* First restore to the basic regulatory settings */ in restore_regulatory_settings()
3557 * preference or the last user requested regulatory in restore_regulatory_settings()
3558 * settings, user regulatory settings takes precedence. in restore_regulatory_settings()
3594 /* Restore of regulatory settings is not required when wiphy(s) in regulatory_hint_disconnect()
3621 pr_debug("All devices are disconnected, going to restore regulatory settings\n"); in regulatory_hint_disconnect()
3766 pr_debug("Current regulatory domain updated by AP to: %c%c\n", in print_regdomain()
3770 pr_debug("Current regulatory domain intersected:\n"); in print_regdomain()
3772 pr_debug("Current regulatory domain intersected:\n"); in print_regdomain()
3774 pr_debug("World regulatory domain updated:\n"); in print_regdomain()
3777 pr_debug("Regulatory domain changed to driver built-in settings (unknown country)\n"); in print_regdomain()
3780 pr_debug("Regulatory domain changed to country: %c%c by Cell Station\n", in print_regdomain()
3783 pr_debug("Regulatory domain changed to country: %c%c\n", in print_regdomain()
3794 pr_debug("Regulatory domain: %c%c\n", rd->alpha2[0], rd->alpha2[1]); in print_regdomain_info()
3815 pr_err("Invalid regulatory domain detected: %c%c\n", in reg_set_rd_user()
3852 pr_err("Invalid regulatory domain detected: %c%c\n", in reg_set_rd_driver()
3888 * However if a driver requested this specific regulatory in reg_set_rd_driver()
3918 pr_err("Invalid regulatory domain detected: %c%c\n", in reg_set_rd_country_ie()
3936 * Use this call to set the current regulatory domain. Conflicts with
3988 /* Back to world regulatory in case of errors */ in set_regdom()
4000 /* update all wiphys now with the new established regulatory domain */ in set_regdom()
4027 "Invalid regulatory domain detected: %c%c\n", in __regulatory_set_wiphy_regd()
4323 reg_pdev = platform_device_register_simple("regulatory", 0, NULL, 0); in regulatory_init()