Method for determining validity of wake event associated with portable computer and firmware protection system
The embedded controller in laptops determines the validity of wake events by checking closure, power source, and display connection to suppress invalid wake-ups, improving user experience and battery life.
Patent Information
- Application Number
- PCT/SG2024/050454
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-15
- Publication Date
- 2026-01-22
AI Technical Summary
Laptops frequently and unexpectedly wake up from low-power states due to various factors, disrupting user workflows and draining battery life, necessitating a method to determine the validity of wake events.
An embedded controller in the laptop determines the validity of a wake event by checking if the laptop is closed, powered internally, and connected to an external display, suppressing invalid wake events to maintain sleep mode.
This method effectively reduces unnecessary wake-ups, enhancing user experience by conserving battery life and maintaining power efficiency.
Smart Images

Figure SG2024050454_22012026_PF_FP_ABST
Abstract
Description
METHOD FOR DETERMINING VALIDITY OF WAKE EVENT ASSOCIATED WITH PORTABLE COMPUTERAND FIRMWARE PROTECTION SYSTEMTECHNICAL FIELD
[0001] The present disclosure generally relates to a method for determining validity of a wake event associated with a portable computer and a firmware protection system configured to determine validity of a wake event associated with a portable computer.BACKGROUND
[0002] A laptop may abruptly exit its low-power state without user intervention, often disrupting tasks or draining battery life unnecessarily. This may occur due to various factors such as background processes, system updates, or external stimuli like vibrations or accidental key presses. When the laptop unexpectedly wakes up, it may display the login screen or desktop, interrupting the user's workflow and potentially causing data loss if unsaved work was in progress. Additionally, frequent and unexplained wake-ups may lead to increased power consumption, reducing battery life and impacting overall energy efficiency. Users typically find such occurrences disruptive and seek ways to mitigate them through settings adjustments or software updates to ensure smoother and more reliable sleep mode functionality.
[0003] Therefore, there exists a need to provide an improved method for determining validity of a wake event associated with a portable computer, thereby enhancing user experience.SUMMARY
[0004] According to a first aspect of the present disclosure, a method for determining validity of a wake event associated with a portable computer is provided, wherein the portable computer comprises an embedded controller configured to determine the validity of the wake event. The method may comprise: detecting a wake event; (i) determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection; (ii) determining, by the embedded controller, whether the portable computer is powered internally or externally at the time of the wake event detection; (iii) determining, by the embedded controller, whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determining, by the embedded controller, validity of the detected wake event of the portable computer basedon the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0005] According to a second aspect of the present disclosure, a firmware protection system configured to determine validity of a wake event associated with a portable computer is provided. The firmware protection system may include: an embedded controller configured via firmware instructions to: detect a wake event; (i) determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection; (ii) determine whether the portable computer is powered internally or externally at the time of the wake event detection; (iii) determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determine validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0006] According to a third aspect of the present disclosure, there is provided a portable computer comprising the firmware protection system as described herein.
[0007] According to a fourth aspect of the present disclosure, there is provided a computer- readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method as described herein.BRIEF DESCRIPTION OF THE DRAWINGS
[0008] Embodiments of the present disclosure will be better understood and readily apparent to one of ordinary skill in the art from the following written description, by way of example only, and in conjunction with the drawings, in which:FIG. 1 is a flow chart showing a method for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure;FIG. 2 is a flow chart showing a method for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure;FIG. 3A and FIG. 3B are flow charts showing method for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure, respectively;FIG. 4 is a block diagram showing an example portable computer 400, according to various embodiments of the present disclosure; andFIG. 5 is a schematic diagram showing a firmware protection system 500 configured to determine validity of a wake event associated with a portable computer according to various embodiment of the present di closure.DETAILED DESCRIPTION
[0009] Embodiments described below in the context of a method are analogously valid for the respective clement, device, apparatus, or system, and vice versa. Furthermore, it will be understood that the embodiments described below may be combined, for example, a part of one embodiment may be combined with a part of another embodiment, and a part of one embodiment may be combined with a part of another embodiment.
[0010] It should be understood that the singular terms "a", "an", and "the" include plural references unless context clearly indicates otherwise. Similarly, the word "or" is intended to include "and" unless the context clearly indicates otherwise.
[0011] It will be further understood that the terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”), and “contain” (and any form of contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a method or device that “comprises,” “has,” “includes” or “contains” one or more steps or elements possesses those one or more steps or elements, but is not limited to possessing only those one or more steps or elements. Likewise, a step of a method or an element of a device that “comprises,” “has,” “includes” or “contains” one or more features possesses those one or more features, but is not limited to possessing only those one or more features. Furthermore, a device or structure that is configured in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
[0012] Approximating language, as used herein throughout the specification and claims, may be applied to modify any quantitative representation that could permissibly vary without resulting in a change in the basic function to which it is related. Accordingly, a value modified by a term or terms, such as “about,” “substantially”, is not limited to the precise value specifiedbut within tolerances that are acceptable for operation of the embodiment for an application for which it is intended. In some instances, the approximating language may correspond to the precision of an instrument for measuring the value.
[0013] The term “exemplary” may be used herein to mean “serving as an example, instance, or illustration”. Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs.
[0014] The terms “at least one” and “one or more” may be understood to include a numerical quantity greater than or equal to one (e g , one, two, three, four, [...], etc.) The term “a plurality” may be understood to include a numerical quantity greater than or equal to two (e.g., two, three, four, five, [...], etc.). The phrase “at least one of’ with regard to a group of elements may be used herein to mean at least one element from the group consisting of the elements. For example, the phrase “at least one of’ with regard to a group of elements may be used herein to mean a selection of: one of the listed elements, a plurality of one of the listed elements, a plurality of individual listed elements, or a plurality of a multiple of listed elements.
[0015] The term “first”, “second”, “third” detailed herein are used to distinguish one element from another similar element and may not necessarily denote order or relative importance, unless otherwise stated. For example, a first transaction data, a second transaction data may be used to distinguish two transactions based on two different foreign currency exchange.
[0016] The term “data” as used herein may be understood to include information in any suitable analog or digital form, e.g., provided as a file, a portion of a file, a set of files, a signal or stream, a portion of a signal or stream, a set of signals or streams, and the like. Further, the term “data” may also be used to mean a reference to information, e.g., in form of a pointer. The term “data”, however, is not limited to the aforementioned examples and may take various forms and represent any information as understood in the art. Any type of information, as described herein, may be handled for example via one or more processors in a suitable way, e.g. as data.
[0017] The term “computing device” may be used herein to mean any suitable device and / or system such as, by way of example and not as a limitation, a personal computer, a laptop, a game console, a mobile phone and the like.
[0018] As used herein, the term “connect / connected / connection” may refer to a wired or wireless communication link formed between electronic devices that enables data transmission.
[0019] The terms “processor” or “embedded controller” as, for example, used herein may be understood as any kind of entity that allows handling data. The data may be handled according to one or more specific functions executed by the processor or embedded controller. Further, a processor or embedded controller as used herein may be understood as any kind of circuit, c.g., any kind of analog or digital circuit. A processor or a embedded controller may thus be or include an analog circuit, digital circuit, mixed-signal circuit, logic circuit, processor, microprocessor, Central Processing Unit (CPU), Graphics Processing Unit (GPU), Digital Signal Processor (DSP), Field Programmable Gate Array (FPGA), integrated circuit, Application Specific Integrated Circuit (ASIC), etc., or any combination thereof. Any other kind of implementation of the respective functions, which will be described below in further detail, may also be understood as a processor, embedded controller, or logic circuit. It is understood that any two (or more) of the processors, embedded controllers, or logic circuits detailed herein may be realized as a single entity with equivalent functionality or the like, and conversely that any single processor, embedded controller, or logic circuit detailed herein may be realized as two (or more) separate entities with equivalent functionality or the like.
[0020] The term “memory” detailed herein may be understood to include any suitable type of memory or memory device, e.g., a hard disk drive (HDD), a solid-state drive (SSD), a flash memory, etc.
[0021] Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality.” and "component as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
[0022] Unless specifically stated otherwise, and as apparent from the following, it will be appreciated that throughout the present specification, description or discussions utilizing terms such as “processing”, “determining”, “generating”, “providing”, “detecting” or the like, refer to the actions and processes of a computer system, or similar electronic device, that manipulates and transforms data represented as physical quantities within the computer system into other data similarly represented as physical quantities within the computer system or other information storage, transmission or display devices.[00023 J As used herein, the term “wake event” may refer to any occurrence that prompts a device, such as a computer or smartphone, to exit a low-power state, typically sleep or hibernation, and become operational again. The wake event may be triggered by various legitimate inputs or conditions, such as: a user input like pressing a key or moving a mouse, a network signal such as an incoming email, or a scheduled task for maintenance. The wake event may be triggered by various illegitimate inputs or conditions, such as: hardware malfunctions, software bugs, and interference from external sources such as electrical noise or unintended physical contact with input devices. In other words, the device may mistakenly interpret a stimulus as a signal to wake up when there was no intended action by the user or external event to prompt it. False wake events may be frustrating for users because they may disrupt workflow, drain battery life unnecessarily on portable devices, and potentially lead to data loss if the device wakes up unexpectedly during critical operations like backups or software updates.
[0024] As used herein, the term “sleep mode” may refer to a low-power state of a computer system. In the context of various embodiments, the sleep mode may include Modern Standby and S3 state. In the S3 state, the system may appear to be off. The amount of power consumed in the S3 state less than SO state (i.e. working state) and more than S4 state (i.e. hibernate state). In the state S3, volatile memory may be kept refreshed to maintain the system state. Some components may remain powered so the computer may wake from input from the keyboard, LAN, or a USB device. In Modem Standby, also referred as a low-power idle state (SO low- power idle), the system may very quickly switch from a low-power state to high-power state in response to hardware and network events.
[0025] Various embodiments of what is described here seek to provide a method for determining validity of a wake event associated with a portable computer (e.g. a laptop). The proposed method utilizes the existing hardware components of a computer including the embedded controller and basic input / output system (BIOS) to determine validity of a detected wake event via firmware instructions. Compared to the traditional hot bag protection, the proposed method provides earlier detection, thereby advantageously improving user experience.
[0026] In various embodiments, the proposed method may establish a notification path in a manner that the interface for receiving an external display sends connection signal to the embedded controller besides sending the connection signal to the CPU. By providing the inputs to the embedded controller, it may determine whether an external display in connection withthe portable computer is absent or present at the time of the wake event detection, thereby efficiently and effectively determining the validity of a wake event. In other words, when an external display is connected to the portable computer, it may be unlikely a false wake event as the portable computer is unlikely on the move.
[0027] The following examples pertain to various aspects of the present disclosure.
[0028] Example l is method for determining validity of a wake event associated with a portable computer, wherein the portable computer comprises an embedded controller configured to determine the validity of the wake event, the method comprising: detecting a wake event; (i) determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection; (ii) determining, by the embedded controller, whether the portable computer is powered internally or externally at the time of the wake event detection; (iii) determining, by the embedded controller, whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determining, by the embedded controller, validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0029] In Example 2, the subject matter of Example 1 may optionally include establishing a notification path from an interface of the portable computer for receiving an external display for connection with the portable computer in a manner that the embedded controller is notified that an external display in connection with the portable computer is absent or present by directing a connection signal to the embedded controller via the notification path.
[0030] In Example 3, the subject matter of Example 2 may optionally include that the connection signal is further directed to a Central Processing Unit (CPU) of the portable computer, the CPU configured to send display signals to the external display.
[0031] In Example 4, the subject matter of Example 1 may optionally include prior to the detecting step, receiving a command for a sleep mode.
[0032] In Example 5, the subject matter of Example 4 may optionally include suppressing an invalid wake event by maintaining the sleep mode.[OOO33J In Example 6, the subject matter of Example 4 may optionally include prior to the detecting step, activating firmware protection.
[0034] In Example 7, the subject matter of Example 6 may optionally include repeating the determining steps (i), (ii) and (iii) for a preset number of times; and forcing the portable computer into an off mode.
[0035] In Example 8, the subject matter of Example 1 may optionally include that the determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection comprises determining, by the embedded controller, a lid position of the portable computer.
[0036] Example 9 is a firmware protection system configured to determine validity of a wake event associated with a portable computer, the firmware protection system comprising: an embedded controller configured via firmware instructions to: detect a wake event; (i) determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection; (ii) determine whether the portable computer is powered internally or externally at the time of the wake event detection; (iii) determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determine validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0037] In Example 10, the subject matter of Example 9 may optionally include that the embedded controller is further configured via firmware instructions to: receive a connection signal from an interface of the portable computer in a manner that the embedded controller is notified that an external display in connection with the portable computer is absent or present, wherein the firmware protection system comprises a notification path configured to transmit the connection signal from the interface of the portable computer to the embedded controller.
[0038] In Example 11, the subject matter of Example 10 may optionally include that the connection signal is further directed to a Central Processing Unit (CPU) of the portable computer, the CPU configured to send display signals to the external display.
[0039] In Example 12, the subject matter of Example 9 may optionally include that prior to the detecting step, the embedded controller is further configured via firmware instructions to: receive a command for a sleep mode.
[0040] In Example 13, the subject matter of Example 12 may optionally include that the embedded controller is further configured via firmware instructions to: suppress an invalid wake event by maintaining the sleep mode.
[0041] In Example 14, the subject matter of Example 12 may optionally include that prior to the detecting step, the embedded controller is further configured via firmware instructions to: activate firmware protection.
[0042] In Example 15, the subject matter of Example 14 may optionally include that the embedded controller is further configured via firmware instructions to: repeat the determining steps (i), (ii) and (iii) for a preset number of times; and force the portable computer into an off mode.
[0043] In Example 16, the subject matter of Example 9 may optionally include that the embedded controller is configured via firmware instructions to: determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection by determining a lid position of the portable computer.
[0044] In Example 17, the subject matter of Example 10 may optionally include that the interface of the portable computer comprises any of a type-c USB port, a HDMI port and a USB -Power Delivery (PD) port.
[0045] In Example 18, the subject matter of Example 10 may optionally include that the embedded controller is further configured via firmware instructions to: receive the connection signal by a general-purpose input / output port.
[0046] Example 19 is a portable computer comprising the firmware protection system of Examples 9 to 18.
[0047] Example 20 is a computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of Examples 1 to 17.
[0048] Device in modem standby may accidently run into high temperature in a bag with heat accumulated over time when device malfunctions. In the present laptop design, thermal management (e.g. setting trigger temperatures for sleep state) may be used to prevent hot bag issues by implementing critical hibernate and critical shutdown policy in modem sleep mode.
[0049] FIG. 1 is a flow chart showing a method 100 for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure. The portable computer may include an embedded controller configured to determine the validity of the wake event.
[0050] According to various non-limiting embodiments, the method 100 for determining validity of a wake event associated with a portable computer may include: detecting a wake event, by the embedded controller (at step 102); (i) determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection (at step 104); (ii) determining, by the embedded controller, whether the portable computer is powered internally or externally at the time of the wake event detection (at step 106); (iii) determining, by the embedded controller, whether an external display in connection with the portable computer is absent or present at the time of the wake event detection (at step 108); and determining, by the embedded controller, validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii) (at step 110). The detected wake event may be determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0051] According to various non-limiting embodiments, in response to detecting the wake event (at step 102), the portable computer may exit a sleep mode to a working state / operational state.[00052J According to various non-limiting embodiments, the close mode of the portable computer may include the lid of the portable computer is closed and the open mode of the portable computer may include the lid of the portable computer is open. When the lid of the portable computer is closed, it may typically trigger the portable computer to enter sleep mode as part of its power-saving features. The determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection may include determining, by the embedded controller, a lid position of the portable computer.
[0053] In an exemplary embodiment where the portable computer is a laptop computer or a convertible laptop computer including two panels, such as a lid panel including a display screen and a base panel including an integrated keyboard, the embedded controller may receive inputs from a lid position sensor in order to determine whether the lid panel is currently in a closed or open position. In some embodiments, the lid position sensor may detect the proximity between magnets located on opposite panels of a laptop. If the magnets are in close proximity to each other, the opposite panels of the laptop have been folded together such that the laptop is in a closed, or nearly closed, position. In some embodiments, the lid position sensor may report whether the panels of a laptop are in a fully closed (i.e., latched) position and may alsoreport whether the panels are effectively closed (e.g. the display is not viewable), even though not fully latched.
[0054] According to various non-limiting embodiments, the portable computer being powered internally may include that the portable computer is operating from battery power (i.e. direct current (DC) power). The embedded control may receive inputs from an AC adapter of the portable computer on power status, in other words, whether the portable computer is powered internally or externally (e.g. plugged in and operating from AC power).
[0055] According to various non-limiting embodiments, the method 100 may further include: establishing a notification path from an interface of the portable computer for receiving an external display for connection with the portable computer in a manner that the embedded controller is notified that an external display in connection with the portable computer is absent or present by directing a connection signal to the embedded controller via the notification path. The connection signal may be also directed to a Central Processing Unit (CPU) of the portable computer, the CPU configured to send display signals to the external display. The interface of the portable computer may include any of a type-c USB port, a HDM1 port and a USB-Power Delivery (PD) port. In some embodiments, the method 100 may include: receiving the connection signal by a general-purpose input / output port (e.g. from a retimer 1C connected to the HDMI interface) of the embedded controller. In some embodiments, the method 100 may include: receiving the connection signal by a I2C port (e.g. from a power delivery IC controller connected to the USB-C / USB-PD interface) of the embedded controller.
[0056] According to various non-limiting embodiments, the method 100 may further include: suppressing an invalid wake event by maintaining a sleep mode.
[0057] FIG. 2 is a flow chart showing a method 200 for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure. The portable computer may include an embedded controller configured to determine the validity of the wake event. The method 200 may include the same or similar features of the method 100. Accordingly, features that are described in the context of the method 100 may correspondingly be applicable to the same or similar features in the method 200 and vice versa. Furthermore, additions and / or combinations and / or alternatives as described for a feature in the context of the method 100 may correspondingly applicable to the same or similar feature in the method 200 and vice versa.
[0058] According to various non-limiting embodiments, the method 200 may include the following steps 210 to 240.
[0059] At step 210, a wake event is detected.
[0060] At step 212, in response to detection of a wake event, the embedded controller proceeds to determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection. If the portable computer is in a close mode, proceeds to step 214; if the portable computer is in an open mode, proceeds to step 240. That may mean, if the portable computer is in an open mode (e.g. the lid of the portable computer is open), the portable computer may not be put in a bag and the wake event may be a valid event; on the other hand, if the portable computer is in a closed mode (e.g. the lid of the portable computer is closed), the portable computer may be put in a bag and the wake event may be an invalid event subject to further determination in the following steps.
[0061] At step 240, when the portable computer is in an open mode, the embedded controller determines the detected wake event valid. The portable computer may exit a sleep mode to an operational mode.
[0062] At step 214, when the portable computer is in a close mode, the embedded controller proceeds to determine whether the portable computer is powered internally or externally at the time of the wake event detection. If the portable computer is powered internally, proceed to step 216; if the portable computer is powered externally, proceed to step 240.
[0063] At step 216, when the portable computer is powered internally, the embedded controller proceeds to determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection. If an external display in connection with the portable computer is absent, proceed to step 218; if an external display in connection with the portable computer is present, proceed to step 240.
[0064] At step 218, when an external display in connection with the portable computer is absent, the embedded controller determines the detected wake event invalid.
[0065] At step 219, the embedded controller suppresses invalid wake event by maintaining the sleep mode. Maintaining the sleep mode may include setting the portable computer back to the sleep mode and disregarding the detected wake event.
[0066] At step 220, the embedded controller proceeds to determine whether the portable computer is in sleep mode. If the portable computer is in sleep mode, proceed to step 210 (e.g. stand by to detect a next wake event); if the portable computer is not in sleep mode, proceed to step 222.
[0067] At step 222, the embedded controller counts the number of times that the portable computer is not in sleep mode (i.e. setting the portable computer back to the sleep mode isunsuccessfully by the embedded controller). A threshold number (i.e. N) may be preset. If the number of times that the portable computer is not in sleep mode is less than or equal to N, proceed to step 219; If the number of times that the portable computer is not in sleep mode is greater than N (i.e. N+l and above), proceed to step 224. In other words, the embedded controller may repeat the steps 219, 220 for a preset number of time (i.e. N) before proceeding to the step 224.
[0068] At step 224, the embedded controller proceeds to force the portable computer into an off mode. An off mode may refer to a hibernate mode (S4) or a soft off mode (S5). Tn the hibernate mode (S4), the portable computer may appear to be off. Power consumption may be reduced to the lowest level. The portable computer may save the contents of volatile memory to a hibernation file to preserve system state. Some components may remain powered so the computer may wake from input from the keyboard, LAN, or a USB device (i.e. a wake event). The working context may be restored if it's stored on non-volatile media. In the soft off mode (S5), the portable computer may appear to be off. This state may be included of a full shutdown and boot cycle.
[0069] FIG. 3A and FIG. 3B are flow charts showing method 300, 300a for determining validity of a wake event associated with a portable computer according to various embodiments of the present disclosure, respectively. The portable computer may include an embedded controller configured to determine the validity of the wake event. The methods 300, 300a may include steps prior to the methods 100, 200. The methods 300, 300a may include alternative exemplary embodiments.
[0070] Referring to FIG. 3A, according to various non-limiting embodiments, the method 300 may include the following steps 310 to 340.
[0071] At step 310, a lid of the portable computer (e.g. a laptop) is closed.
[0072] At step 312, the embedded controller proceeds to determine whether a command for a sleep mode is received by the embedded controller within a certain period of time from the closure of the lid of the portable computer. If affirmative, proceed to step 314; if a command for a sleep mode is not received by the embedded controller within a certain period of time from the closure of the lid of the portable computer, proceed to step 340.
[0073] At step 340, sleep mode protection is inactive in response to that a command for a sleep mode is not received by the embedded controller within a certain period of time from the closure of the lid of the portable computer. The operating system of the portable computer may be set to be idle when the lid is closed.
[0074] At step 314, the embedded controller proceeds to determine whether the portable computer is powered internally or externally. If the portable computer is powered internally, proceed to step 316; if the portable computer is powered externally, proceed to step 340. At step 340, sleep mode protection is inactive in response to that the portable computer is powered externally.
[0075] At step 316, the embedded controller proceeds to determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection. If an external display in connection with the portable computer is absent, proceed to step 318; if an external display in connection with the portable computer is present, proceed to step 340. At step 340, sleep mode protection is inactive in response to that an external display in connection with the portable computer is present.
[0076] At step 318, sleep mode protection is active. The method 300 may stand by to detect a wake event (e.g. steps 102, 210).
[0077] Referring to FIG. 3B now, according to various non-limiting embodiments, the method 300a may include the following steps 310a to 340.
[0078] At step 310a, a command for a sleep mode is received by the embedded controller.
[0079] At step 312a, the embedded controller proceeds to determine whether the portable computer is in a close mode (e.g. the lid is closed) or an open mode (e.g. the lid is open). If the portable computer is in a close mode, proceeds to step 314; if the portable computer is in an open mode, proceeds to step 340.
[0080] At step 340, sleep mode protection is inactive in response to that the lid of the portable computer is open.
[0081] At step 314, the embedded controller proceeds to determine whether the portable computer is powered internally or externally. If the portable computer is powered internally, proceed to step 316; if the portable computer is powered externally, proceed to step 340. At step 340, sleep mode protection is inactive in response to that the portable computer is powered externally.
[0082] At step 316, the embedded controller proceeds to determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection. If an external display in connection with the portable computer is absent, proceed to step 318; if an external display in connection with the portable computer is present, proceed to step 340. At step 340, sleep mode protection is inactive in response to that an external display in connection with the portable computer is present.[00083 J At step 318, sleep mode protection is active. The method 300 may stand by to detect a wake event (e.g. steps 102, 210).[00084J In an exemplary embodiment, the command for the sleep mode may be triggered by closing the lid of the laptop and the embedded control may receive the command for the sleep mode within a certain period of time. In the context of such an exemplary embodiment, the method may skip determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection. In other words, the embedded control may have determined that the portable computer is in a close mode.
[0085] According to various non-limiting embodiments, a computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method as described herein including the methods 100, 200, 300, 300a.
[0086] FIG. 4 is a block diagram showing an example portable computer 400, according to various embodiments of the present disclosure. The portable computer 400 may be a laptop computer, a notebook, a tablet computer, an automobile computer, a smart phone, a personal digital assistant, or other portable computing devices capable of running computer applications. In some embodiments, the portable computer 400 includes a processor 402, an input / output (I / O) module 404, memory 406, a power unit 408, and one or more network interfaces 410. The portable computer 400 can include additional components. In some embodiments, the processor 402, input / output (I / O) module 404, memory 406, power unit 408, and the network interface(s) 410 are housed together in a common housing or other assembly.
[0087] The example processor 402 can execute instructions, for example, to generate output data based on data inputs. The instructions can include programs, codes, scripts, modules, or other types of data stored in memory (e.g., memory 406). Additionally or alternatively, the instructions can be encoded as pre-programmed or re-programmable logic circuits, logic gates, or other types of hardware or firmware components or modules. The processor 402 may be, or may include, a multicore processor having a plurality of cores, and each such core may have an independent power domain and can be configured to enter and exit different operating or performance states based on workload. Additionally or alternatively, the processor 402 may be, or may include, a general-purpose microprocessor, as a specialized coprocessor or another type of data processing apparatus. In some cases, the processor 402 performs high-level operation of the portable computer 400. For example, the processor 402 may be configured to execute or interpret software, scripts, programs, functions, executables,or other instructions stored in the memory 406. In the context of various embodiments, the processor 402 may include the embedded controller configured to execute firmware instructions to determine validity of a wake event associated with the portable computer. The instructions may be stalled in the memory 406 as an application 414 (an App).
[0088] The example I / O module 404 may include a mouse, keypad, touch screen, scanner, optical reader, and / or stylus (or other input device(s)) through which a user of the portable computer 400 may provide input to the portable computer 400, and may also include one or more speakers for providing audio output and a video display device for providing textual, audiovisual, and / or graphical output. The example I / O module 404 may wirelessly connect to the portable computer 400 via a dongle (not shown, e.g. the dongle 100).
[0089] The example memory 406 may include computer-readable storage media, for example, a volatile memory device, a non-volatile memory device, or both. The memory 406 may include one or more read-only memory devices, random-access memory devices, buffer memory devices, or a combination of these and other types of memory devices. In some instances, one or more components of the memory can be integrated or otherwise associated with another component of the portable computer 400. The memory 406 may store instructions that are executable by the processor 402. In some examples, the memory 406 may store instructions for an operating system 412 and for application programs 414. The memory 406 may also store a database 416.
[0090] The example power unit 408 provides power to the other components of the portable computer 400. For example, the other components may operate based on power provided by the power unit 408 through a voltage bus or other connection. In some embodiments, the power unit 408 includes a battery or a battery system, for example, a rechargeable battery. In some embodiments, the power unit 408 includes an adapter (e.g., an AC adapter) that receives an external power signal (from an external source) and coverts the external power signal to an internal power signal conditioned for a component of the portable computer 400. The power unit 408 may include other components or operate in another manner.
[0091] The portable computer 400 may be configured to operate in a wireless, wired, or cloud network environment (or a combination thereof). In some embodiments, the portable computer 400 can access the network using the network interface(s) 410. The network interface(s) 410 can include one or more adapters, modems, connectors, sockets, terminals, ports, slots, and the like. The wireless network that the portable computer 400 accesses may operate, for example, according to a wireless network standard or another type of wirelesscommunication protocol. For example, the wireless network may be configured to operate as a Wireless Local Area Network (WLAN), a Personal Area Network (PAN), a metropolitan area network (MAN), or another type of wireless network. Examples of WLANs include networks configured to operate according to one or more of the 802.11 family of standards developed by IEEE (c.g., Wi-Fi networks), and others. Examples of PANs include networks that operate according to short-range communication standards (e.g., BLUETOOTH®, Near Field Communication (NFC), ZigBee), millimeter wave conununications, and others. The wired network that the portable computer 400 accesses may, for example, include Ethernet, SONET, circuit-switched networks (e.g., using components such as SS7, cable, and the like), and others.
[0092] FIG. 5 is a schematic diagram showing a firmware protection system 500 configured to determine validity of a wake event associated with a portable computer according to various embodiment of the present disclosure. The firmware protection system 500 may be implemented in the portable computer 400.
[0093] According to various non-limiting embodiments, the firmware protection system 500 may include an embedded controller 502 configured via firmware instructions to: detect a wake event; (i) determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection; (ii) determine whether the portable computer is powered internally or externally at the time of the wake event detection; (iii) determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determine validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii). The detected wake event may be determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
[0094] According to various non-limiting embodiments, the firmware protection system 500 may include a mode sensor 512 configured to provide inputs to the embedded control 502 as to whether the portable computer is in a close mode or an open mode at the time of the wake event detection. In other words, the inputs provided by the mode sensor 512 may include a time stamp.
[0095] In an exemplary embodiment where the portable computer is a laptop computer or a convertible laptop computer including two panels, such as a lid panel including a display screen and a base panel including an integrated keyboard, the embedded controller 502 may receive inputs from the mode sensor 512 (c.g. a lid position sensor) in order to determinewhether the lid panel is currently in a closed or open position. In some embodiments, the lid position sensor may detect the proximity between magnets located on opposite panels of a laptop. If the magnets are in close proximity to each other, the opposite panels of the laptop have been folded together such that the laptop is in a closed, or nearly closed, position. In some embodiments, the lid position sensor may report whether the panels of a laptop arc in a fully closed (i.e., latched) position and may also report whether the panels are effectively closed (e.g. the display is not viewable), even though not fully latched.
[0096] According to various non-limiting embodiments, the firmware protection system 500 may include an AC adaptor 514 configured to provide inputs to the embedded controller 502 as to whether the portable computer is powered internally or externally at the time of the wake event detection. The AC adaptor 514 may detect whether the portable computer is plugged in an external AC power source.
[0097] According to various non-limiting embodiments, the firmware protection system 500 may include an interface 516 for receiving an external display, the interface 516 configured to provide inputs to the embedded controller 502 as to whether an external display in connection with the portable computer is absent or present at the time of the waive event detection. The interface 516 of the portable computer may include any of a type-c USB port, a HDMI port and a USB -Power Delivery (PD) port. The embedded controller 502 may be further configured via firmware instructions to: receive the connection signal by a general-purpose input / output port.
[0098] An external display may include a monitor or screen that is separate from and connected to a portable computer, such as a laptop, tablet, or smartphone. It may allow users to extend their portable computer workspace, mirror their existing display, or view content on a larger screen. External displays may come in various sizes, resolutions, and types (such as LCD, LED, or OLED), offering users flexibility in choosing the right display for their needs. They may be used in offices, homes, and other settings where additional screen real estate is desired for tasks such as gaming, productivity, or multimedia consumption.
[0099] According to various non-limiting embodiments, the embedded controller 502 may be further configured via firmware instructions to: receive a connection signal from the interface 516 of the portable computer in a manner that the embedded controller 502 is notified that an external display in connection with the portable computer is absent or present. The connection signal may be further directed to a Central Processing Unit (CPU) of the portablecomputer, the CPU configured to send display signals to the external display. The notification path configured to transmit the connection signal from the interface of the portable to the embedded controller.[000100] According to various non-limiting embodiments, the embedded controller 502 may be further configured via firmware instructions to: receive a command for a sleep mode prior to the detecting step.[000101] According to various non-limiting embodiments, the embedded controller 502 may be further configured via firmware instructions to: suppress an invalid wake event by maintaining the sleep mode.[000102] According to various non-limiting embodiments, the embedded controller 502 may be further configured via firmware instructions to: activate firmware protection prior to the detecting step.[000103] According to various non-limiting embodiments, the embedded controller 502 may be further configured via firmware instructions to: repeat the determining steps (i), (ii) and (iii) for a preset number of times; and force the portable computer into an off mode.[000104] According to various non-limiting embodiments, the firmware protection system 500 may include a Basic Input / Output system (BIOS) module 504 configured to provide an input interface for the mode sensor 512, the AC adaptor 514 and the interface 516 for receiving an external display. The BIOS module 504 may be in communication with the embedded controller 502.[000105] While this specification contains many details, these should not be understood as limitations on the scope of what may be claimed, but rather as descriptions of features specific to particular examples. Certain features that are described in this specification or shown in the drawings in the context of separate embodiments can also be combined. Conversely, various features that are described or shown in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable sub -combination.[000106] Similarly, while steps / operations of the methods as described above are depicted in a particular order (e.g. as shown in the drawings), this should not be understood as requiring that such operation / steps be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. In certain circumstances, multitasking and parallel processing may be advantageous. For example, some operations / steps may occur in different orders and / or concurrently with other operations / stepsapart from those illustrated and / or described herein. In addition, not all illustrated operations / steps may be required to implement one or more aspects or embodiments described herein. Also, one or more of the steps depicted herein may be carried out in one or more separate acts and / or phases.[000107] Moreover, the scparation / intcgration of various system components in the embodiments described above should not be understood as requiring such separation / integration in all embodiments, and it should be understood that the described program components and systems can generally be integrated together in a single product or separated into multiple products.[000108] A number of embodiments have been described. Nevertheless, it will be understood that various modifications can be made. Accordingly, other embodiments are within the scope of the following claims.
Claims
CLAIMS1. A method for determining validity of a wake event associated with a portable computer, wherein the portable computer comprises an embedded controller configured to determine the validity of the wake event, the method comprising: detecting a wake event;(i) determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection;(ii) determining, by the embedded controller, whether the portable computer is powered internally or externally at the time of the wake event detection;(iii) determining, by the embedded controller, whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determining, by the embedded controller, validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
2. The method of claim 1, further comprising: establishing a notification path from an interface of the portable computer for receiving an external display for connection with the portable computer in a manner that the embedded controller is notified that an external display in connection with the portable computer is absent or present by directing a connection signal to the embedded controller via the notification path.
3. The method of claim 2, wherein the connection signal is further directed to a Central Processing Unit (CPU) of the portable computer, the CPU configured to send display signals to the external display.
4. The method of claim 1, further comprising: prior to the detecting step, receiving a command for a sleep mode.
5. The method of claim 4, further comprising:suppressing an invalid wake event by maintaining the sleep mode.
6. The method of claim 4, further comprising: prior to the detecting step, activating firmware protection.
7. The method of claim 6, further comprising: repeating the determining steps (i), (ii) and (hi) for a preset number of times; and forcing the portable computer into an off mode.
8. The method of claim 1, wherein the determining, by the embedded controller, whether the portable computer is in a close mode or an open mode at the time of the wake event detection comprises determining, by the embedded controller, a lid position of the portable computer.
9. A firmware protection system configured to determine validity of a wake event associated with a portable computer, the firmware protection system comprising: an embedded controller configured via firmware instructions to: detect a wake event;(i) determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection;(ii) determine whether the portable computer is powered internally or externally at the time of the wake event detection;(iii) determine whether an external display in connection with the portable computer is absent or present at the time of the wake event detection; and determine validity of the detected wake event of the portable computer based on the determining steps (i), (ii) and (iii), wherein the detected wake event is determined invalid when the portable computer is in the close mode, the portable computer is powered internally and the external display in connection with the portable computer is absent at the time of the wake event detection.
10. The firmware protection system of claim 9, wherein the embedded controller is further configured via firmware instructions to:receive a connection signal from an interface of the portable computer in a manner that the embedded controller is notified that an external display in connection with the portable computer is absent or present, wherein the firmware protection system comprises a notification path configured to transmit the connection signal from the interface of the portable computer to the embedded controller.1 1. The firmware protection system of claim 10, wherein the connection signal is further directed to a Central Processing Unit (CPU) of the portable computer, the CPU configured to send display signals to the external display.
12. The firmware protection system of claim 9, wherein prior to the detecting step, the embedded controller is further configured via firmware instructions to: receive a command for a sleep mode.
13. The firmware protection system of claim 12, wherein the embedded controller is further configured via firmware instructions to: suppress an invalid wake event by maintaining the sleep mode.
14. The firmware protection system of claim 12, wherein prior to the detecting step, the embedded controller is further configured via firmware instructions to: activate firmware protection.
15. The firmware protection system of claim 14, wherein the embedded controller is further configured via firmware instructions to: repeat the determining steps (i), (ii) and (iii) for a preset number of times; and force the portable computer into an off mode.
16. The firmware protection system of claim 9, wherein the embedded controller is configured via firmware instructions to: determine whether the portable computer is in a close mode or an open mode at the time of the wake event detection by determining a lid position of the portable computer.
17. The firmware protection system of claim 10, wherein the interface of the portable computer comprises any of a type-c USB port, a HDMI port and a USB-Power Delivery (PD) port.
18. The firmware protection system of claim 10, wherein the embedded controller is further configured via firmware instructions to: receive the connection signal by a general- purpose input / output port.
19. A portable computer comprising the firmware protection system of claims 9 to 18.
20. A computer-readable medium comprising program instructions, which, when executed by one or more processors, cause the one or more processors to perform the method of any one of claims 1 to 9.
Citation Information
Patent Citations
Technologies for secure hybrid standby power management
US20180173294A1
Preventing false wake events from a low-power state
US20200326767A1
Control method and device, and computer-readable storage medium
US20220308637A1