diff mbox series

[meta-networking] wowlan-udev: add udev rule to enable WoWLAN magic-packet

Message ID 20260303023409.4016900-1-miaoqing.pan@oss.qualcomm.com
State Under Review
Headers show
Series [meta-networking] wowlan-udev: add udev rule to enable WoWLAN magic-packet | expand

Commit Message

Miaoqing Pan March 3, 2026, 2:34 a.m. UTC
On some platforms (for example, QCx6490), XO (Crystal Oscillator) shutdown
is prevented by Wireless Processor Subsystem votes on interconnect
bandwidth and XO unless the WoWLAN magic-packet trigger is enabled. These
votes are released only after running:
  iw phy0 wowlan enable magic-packet

Add an udev rule to automatically enable WoWLAN magic-packet support when
a Wi-Fi PHY is registered. This rule is provided via a dedicated
wowlan-udev package and is not enabled by default.

Integrators should include this package only if their platform requires
automatic WoWLAN magic-packet enablement.

Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
---
 .../wowlan-udev/files/99-wowlan.rules               |  4 ++++
 .../recipes-connectivity/wowlan-udev/wowlan-udev.bb | 13 +++++++++++++
 2 files changed, 17 insertions(+)
 create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
 create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb

Comments

Gyorgy Sarvari March 3, 2026, 9:55 a.m. UTC | #1
On 3/3/26 03:34, Miaoqing Pan via lists.openembedded.org wrote:
> On some platforms (for example, QCx6490), XO (Crystal Oscillator) shutdown
> is prevented by Wireless Processor Subsystem votes on interconnect
> bandwidth and XO unless the WoWLAN magic-packet trigger is enabled. These
> votes are released only after running:
>   iw phy0 wowlan enable magic-packet
>
> Add an udev rule to automatically enable WoWLAN magic-packet support when
> a Wi-Fi PHY is registered. This rule is provided via a dedicated
> wowlan-udev package and is not enabled by default.
>
> Integrators should include this package only if their platform requires
> automatic WoWLAN magic-packet enablement.
>
> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
> ---
>  .../wowlan-udev/files/99-wowlan.rules               |  4 ++++
>  .../recipes-connectivity/wowlan-udev/wowlan-udev.bb | 13 +++++++++++++
>  2 files changed, 17 insertions(+)
>  create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
>  create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
>
> diff --git a/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
> new file mode 100644
> index 0000000000..ba41eef896
> --- /dev/null
> +++ b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
> @@ -0,0 +1,4 @@
> +# Enable WoWLAN when Wi-Fi PHY is registered
> +ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy*", \
> +  RUN+="/usr/sbin/iw %k wowlan enable magic-packet"
> +
> diff --git a/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
> new file mode 100644
> index 0000000000..06664c8e10
> --- /dev/null
> +++ b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
> @@ -0,0 +1,13 @@
> +SUMMARY = "Enable WoWLAN via udev on Wi-Fi PHY registration"
> +LICENSE = "MIT"
> +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"

Here ${COMMON_LICENSE_DIR}/MIT would be a better instead of ${COREBASE}/...

> +
> +SRC_URI = "file://99-wowlan.rules"
> +
> +do_install() {
> +    install -d ${D}${sysconfdir}/udev/rules.d
> +    install -m 0644 ${UNPACKDIR}/99-wowlan.rules \
> +        ${D}${sysconfdir}/udev/rules.d/
> +}

Since it's just a single file copy, adding INHIBIT_DEFAULT_DEPS = "1"
could save a few file copy calls during build.

> +
> +RDEPENDS:${PN} = "iw udev"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#124823): https://lists.openembedded.org/g/openembedded-devel/message/124823
> Mute This Topic: https://lists.openembedded.org/mt/118108140/6084445
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [skandigraun@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Miaoqing Pan March 4, 2026, 5:30 a.m. UTC | #2
On 3/3/2026 5:55 PM, Gyorgy Sarvari wrote:
> 
> 
> On 3/3/26 03:34, Miaoqing Pan via lists.openembedded.org wrote:
>> On some platforms (for example, QCx6490), XO (Crystal Oscillator) shutdown
>> is prevented by Wireless Processor Subsystem votes on interconnect
>> bandwidth and XO unless the WoWLAN magic-packet trigger is enabled. These
>> votes are released only after running:
>>    iw phy0 wowlan enable magic-packet
>>
>> Add an udev rule to automatically enable WoWLAN magic-packet support when
>> a Wi-Fi PHY is registered. This rule is provided via a dedicated
>> wowlan-udev package and is not enabled by default.
>>
>> Integrators should include this package only if their platform requires
>> automatic WoWLAN magic-packet enablement.
>>
>> Signed-off-by: Miaoqing Pan <miaoqing.pan@oss.qualcomm.com>
>> ---
>>   .../wowlan-udev/files/99-wowlan.rules               |  4 ++++
>>   .../recipes-connectivity/wowlan-udev/wowlan-udev.bb | 13 +++++++++++++
>>   2 files changed, 17 insertions(+)
>>   create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
>>   create mode 100644 meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
>>
>> diff --git a/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
>> new file mode 100644
>> index 0000000000..ba41eef896
>> --- /dev/null
>> +++ b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
>> @@ -0,0 +1,4 @@
>> +# Enable WoWLAN when Wi-Fi PHY is registered
>> +ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy*", \
>> +  RUN+="/usr/sbin/iw %k wowlan enable magic-packet"
>> +
>> diff --git a/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
>> new file mode 100644
>> index 0000000000..06664c8e10
>> --- /dev/null
>> +++ b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
>> @@ -0,0 +1,13 @@
>> +SUMMARY = "Enable WoWLAN via udev on Wi-Fi PHY registration"
>> +LICENSE = "MIT"
>> +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
> 
> Here ${COMMON_LICENSE_DIR}/MIT would be a better instead of ${COREBASE}/...
> 
>> +
>> +SRC_URI = "file://99-wowlan.rules"
>> +
>> +do_install() {
>> +    install -d ${D}${sysconfdir}/udev/rules.d
>> +    install -m 0644 ${UNPACKDIR}/99-wowlan.rules \
>> +        ${D}${sysconfdir}/udev/rules.d/
>> +}
> 
> Since it's just a single file copy, adding INHIBIT_DEFAULT_DEPS = "1"
> could save a few file copy calls during build.
> 

Thanks, will update in v2.

>> +
>> +RDEPENDS:${PN} = "iw udev"
>>
>> 
>>
>
diff mbox series

Patch

diff --git a/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
new file mode 100644
index 0000000000..ba41eef896
--- /dev/null
+++ b/meta-networking/recipes-connectivity/wowlan-udev/files/99-wowlan.rules
@@ -0,0 +1,4 @@ 
+# Enable WoWLAN when Wi-Fi PHY is registered
+ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy*", \
+  RUN+="/usr/sbin/iw %k wowlan enable magic-packet"
+
diff --git a/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
new file mode 100644
index 0000000000..06664c8e10
--- /dev/null
+++ b/meta-networking/recipes-connectivity/wowlan-udev/wowlan-udev.bb
@@ -0,0 +1,13 @@ 
+SUMMARY = "Enable WoWLAN via udev on Wi-Fi PHY registration"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://99-wowlan.rules"
+
+do_install() {
+    install -d ${D}${sysconfdir}/udev/rules.d
+    install -m 0644 ${UNPACKDIR}/99-wowlan.rules \
+        ${D}${sysconfdir}/udev/rules.d/
+}
+
+RDEPENDS:${PN} = "iw udev"