sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget&/translations/zh_CN/driver-api/devfreqmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/zh_TW/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/it_IT/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ja_JP/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/ko_KR/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget&/translations/sp_SP/driver-api/devfreqmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhh@/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq.rsthKubhsection)}(hhh](htitle)}(hDevice Frequency Scalingh]hDevice Frequency Scaling}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h Introductionh]h Introduction}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(huThis framework provides a standard kernel interface for Dynamic Voltage and Frequency Switching on arbitrary devices.h]huThis framework provides a standard kernel interface for Dynamic Voltage and Frequency Switching on arbitrary devices.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hkIt exposes controls for adjusting frequency through sysfs files which are similar to the cpufreq subsystem.h]hkIt exposes controls for adjusting frequency through sysfs files which are similar to the cpufreq subsystem.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK hhhhubh)}(hmDevices for which current usage can be measured can have their frequency automatically adjusted by governors.h]hmDevices for which current usage can be measured can have their frequency automatically adjusted by governors.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h] introductionah ]h"] introductionah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hAPIh]hAPI}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hDevice drivers need to initialize a :c:type:`devfreq_profile` and call the :c:func:`devfreq_add_device` function to create a :c:type:`devfreq` instance.h](h$Device drivers need to initialize a }(hjhhhNhNubh)}(h:c:type:`devfreq_profile`h]hliteral)}(hj)h]hdevfreq_profile}(hj-hhhNhNubah}(h]h ](xrefcc-typeeh"]h$]h&]uh1j+hj'ubah}(h]h ]h"]h$]h&]refdocdriver-api/devfreq refdomainj8reftypetype refexplicitrefwarn reftargetdevfreq_profileuh1hhhhKhjubh and call the }(hjhhhNhNubh)}(h:c:func:`devfreq_add_device`h]j,)}(hjRh]hdevfreq_add_device()}(hjThhhNhNubah}(h]h ](j7j8c-funceh"]h$]h&]uh1j+hjPubah}(h]h ]h"]h$]h&]refdocjD refdomainj8reftypefunc refexplicitrefwarnjJdevfreq_add_deviceuh1hhhhKhjubh function to create a }(hjhhhNhNubh)}(h:c:type:`devfreq`h]j,)}(hjuh]hdevfreq}(hjwhhhNhNubah}(h]h ](j7j8c-typeeh"]h$]h&]uh1j+hjsubah}(h]h ]h"]h$]h&]refdocjD refdomainj8reftypetype refexplicitrefwarnjJdevfrequh1hhhhKhjubh instance.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubhindex)}(hhh]h}(h]h ]h"]h$]h&]entries](singledevfreq_dev_status (C struct)c.devfreq_dev_statushNtauh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhNubhdesc)}(hhh](hdesc_signature)}(hdevfreq_dev_statush]hdesc_signature_line)}(hstruct devfreq_dev_statush](hdesc_sig_keyword)}(hstructh]hstruct}(hjhhhNhNubah}(h]h ]kah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKubhdesc_sig_space)}(h h]h }(hjhhhNhNubah}(h]h ]wah"]h$]h&]uh1jhjhhhjhKubh desc_name)}(hdevfreq_dev_statush]h desc_sig_name)}(hjh]hdevfreq_dev_status}(hjhhhNhNubah}(h]h ]nah"]h$]h&]uh1jhjubah}(h]h ](sig-namedescnameeh"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hh add_permalinkuh1jsphinx_line_type declaratorhjhhhjhKubah}(h]jah ](sig sig-objecteh"]h$]h&] is_multiline _toc_parts) _toc_namehuh1jhjhKhjhhubh desc_content)}(hhh]h)}(hXData given from devfreq user device to governors. Represents the performance statistics.h]hXData given from devfreq user device to governors. Represents the performance statistics.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK-hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKubeh}(h]h ](j8structeh"]h$]h&]domainj8objtypej1desctypej1noindex noindexentrynocontentsentryuh1jhhhjhjhNubh container)}(hX**Definition**:: struct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; }; **Members** ``total_time`` The total time represented by this instance of devfreq_dev_status ``busy_time`` The time that the device was working among the total_time. ``current_frequency`` The operating frequency. ``private_data`` An entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h](h)}(h**Definition**::h](hstrong)}(h**Definition**h]h Definition}(hjGhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjAubh:}(hjAhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK1hj=ubh literal_block)}(hstruct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; };h]hstruct devfreq_dev_status { unsigned long total_time; unsigned long busy_time; unsigned long current_frequency; void *private_data; };}hjbsbah}(h]h ]h"]h$]h&]hhuh1j`hZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK3hj=ubh)}(h **Members**h]jF)}(hjsh]hMembers}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjqubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK:hj=ubhdefinition_list)}(hhh](hdefinition_list_item)}(hQ``total_time`` The total time represented by this instance of devfreq_dev_status h](hterm)}(h``total_time``h]j,)}(hjh]h total_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK2hjubh definition)}(hhh]h)}(hAThe total time represented by this instance of devfreq_dev_statush]hAThe total time represented by this instance of devfreq_dev_status}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK1hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK2hjubj)}(hI``busy_time`` The time that the device was working among the total_time. h](j)}(h ``busy_time``h]j,)}(hjh]h busy_time}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK4hjubj)}(hhh]h)}(h:The time that the device was working among the total_time.h]h:The time that the device was working among the total_time.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK4hjubj)}(h/``current_frequency`` The operating frequency. h](j)}(h``current_frequency``h]j,)}(hjh]hcurrent_frequency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK5hjubj)}(hhh]h)}(hThe operating frequency.h]hThe operating frequency.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj#hK5hj$ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj#hK5hjubj)}(hX``private_data`` An entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h](j)}(h``private_data``h]j,)}(hjGh]h private_data}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjEubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK9hjAubj)}(hhh]h)}(hAn entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.h]hAn entry not specified by the devfreq framework. A device and a specific governor may have their own protocol with private_data. However, because this is governor-specific, a governor using this will be only compatible with devices aware of it.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK6hj]ubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhj\hK9hjubeh}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_dev_profile (C struct)c.devfreq_dev_profilehNtauh1jhjhhhjhNubj)}(hhh](j)}(hdevfreq_dev_profileh]j)}(hstruct devfreq_dev_profileh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK@ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK@ubj)}(hdevfreq_dev_profileh]j)}(hjh]hdevfreq_dev_profile}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhK@ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhK@ubah}(h]jah ](j j eh"]h$]h&]jj)jhuh1jhjhK@hjhhubj)}(hhh]h)}(hDevfreq's user device profileh]hDevfreq’s user device profile}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKLhjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK@ubeh}(h]h ](j8structeh"]h$]h&]j5j8j6jj7jj8j9j:uh1jhhhjhjhNubj<)}(hX**Definition**:: struct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; }; **Members** ``initial_freq`` The operating frequency when devfreq_add_device() is called. ``polling_ms`` The polling interval in ms. 0 disables polling. ``timer`` Timer type is either deferrable or delayed timer. ``target`` The device should set its operating frequency at freq or lowest-upper-than-freq value. If freq is higher than any operable frequency, set maximum. Before returning, target function should set freq at the current frequency. The "flags" parameter's possible values are explained above with "DEVFREQ_FLAG_*" macros. ``get_dev_status`` The device should provide the current performance status to devfreq. Governors are recommended not to use this directly. Instead, governors are recommended to use devfreq_update_stats() along with devfreq.last_status. ``get_cur_freq`` The device should provide the current frequency at which it is operating. ``exit`` An optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it. ``freq_table`` Optional list of frequencies to support statistics and freq_table must be generated in ascending order. ``max_state`` The size of freq_table. ``is_cooling_device`` A self-explanatory boolean giving the device a cooling effect property.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKPhjubja)}(hXstruct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; };h]hXstruct devfreq_dev_profile { unsigned long initial_freq; unsigned int polling_ms; enum devfreq_timer timer; int (*target)(struct device *dev, unsigned long *freq, u32 flags); int (*get_dev_status)(struct device *dev, struct devfreq_dev_status *stat); int (*get_cur_freq)(struct device *dev, unsigned long *freq); void (*exit)(struct device *dev); unsigned long *freq_table; unsigned int max_state; bool is_cooling_device; };}hj sbah}(h]h ]h"]h$]h&]hhuh1j`hZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKRhjubh)}(h **Members**h]jF)}(hj1h]hMembers}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj/ubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK_hjubj)}(hhh](j)}(hN``initial_freq`` The operating frequency when devfreq_add_device() is called. h](j)}(h``initial_freq``h]j,)}(hjPh]h initial_freq}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjNubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKOhjJubj)}(hhh]h)}(hnb at a notifier-head, this is the time to unregister it. h](j)}(h``exit``h]j,)}(hjh]hexit}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKdhjubj)}(hhh]h)}(hAn optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it.h]hAn optional callback that is called when devfreq is removing the devfreq object due to error or from devfreq_remove_device() call. If the user has registered devfreq->nb at a notifier-head, this is the time to unregister it.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK`hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKdhjGubj)}(hw``freq_table`` Optional list of frequencies to support statistics and freq_table must be generated in ascending order. h](j)}(h``freq_table``h]j,)}(hjh]h freq_table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKfhjubj)}(hhh]h)}(hgOptional list of frequencies to support statistics and freq_table must be generated in ascending order.h]hgOptional list of frequencies to support statistics and freq_table must be generated in ascending order.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKehjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKfhjGubj)}(h&``max_state`` The size of freq_table. h](j)}(h ``max_state``h]j,)}(hjh]h max_state}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKghjubj)}(hhh]h)}(hThe size of freq_table.h]hThe size of freq_table.}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj3hKghj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj3hKghjGubj)}(h]``is_cooling_device`` A self-explanatory boolean giving the device a cooling effect property.h](j)}(h``is_cooling_device``h]j,)}(hjWh]his_cooling_device}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjUubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKihjQubj)}(hhh]h)}(hGA self-explanatory boolean giving the device a cooling effect property.h]hGA self-explanatory boolean giving the device a cooling effect property.}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1hhjlhKihjmubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjlhKihjGubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_stats (C struct)c.devfreq_statshNtauh1jhjhhhjhNubj)}(hhh](j)}(h devfreq_statsh]j)}(hstruct devfreq_statsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKpubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKpubj)}(h devfreq_statsh]j)}(hjh]h devfreq_stats}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKpubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKpubah}(h]jah ](j j eh"]h$]h&]jj)jhuh1jhjhKphjhhubj)}(hhh]h)}(h%Statistics of devfreq device behaviorh]h%Statistics of devfreq device behavior}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhK}hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKpubeh}(h]h ](j8structeh"]h$]h&]j5j8j6j j7j j8j9j:uh1jhhhjhjhNubj<)}(hX~**Definition**:: struct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; }; **Members** ``total_trans`` Number of devfreq transitions. ``trans_table`` Statistics of devfreq transitions. ``time_in_state`` Statistics of devfreq states. ``last_update`` The last time stats were updated.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubja)}(hstruct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; };h]hstruct devfreq_stats { unsigned int total_trans; unsigned int *trans_table; u64 *time_in_state; u64 last_update; };}hj/sbah}(h]h ]h"]h$]h&]hhuh1j`hZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubh)}(h **Members**h]jF)}(hj@h]hMembers}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj>ubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh](j)}(h/``total_trans`` Number of devfreq transitions. h](j)}(h``total_trans``h]j,)}(hj_h]h total_trans}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj]ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjYubj)}(hhh]h)}(hNumber of devfreq transitions.h]hNumber of devfreq transitions.}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjthKhjuubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhjthKhjVubj)}(h3``trans_table`` Statistics of devfreq transitions. h](j)}(h``trans_table``h]j,)}(hjh]h trans_table}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(h"Statistics of devfreq transitions.h]h"Statistics of devfreq transitions.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjVubj)}(h0``time_in_state`` Statistics of devfreq states. h](j)}(h``time_in_state``h]j,)}(hjh]h time_in_state}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(hStatistics of devfreq states.h]hStatistics of devfreq states.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjVubj)}(h1``last_update`` The last time stats were updated.h](j)}(h``last_update``h]j,)}(hj h]h last_update}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh]h)}(h!The last time stats were updated.h]h!The last time stats were updated.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjVubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq (C struct) c.devfreqhNtauh1jhjhhhjhNubj)}(hhh](j)}(hdevfreqh]j)}(hstruct devfreqh](j)}(hjh]hstruct}(hjdhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKubj)}(h h]h }(hjrhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhjqhKubj)}(hdevfreqh]j)}(hj^h]hdevfreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`hhhjqhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj\hhhjqhKubah}(h]jWah ](j j eh"]h$]h&]jj)jhuh1jhjqhKhjYhhubj)}(hhh]h)}(hDevice devfreq structureh]hDevice devfreq structure}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjYhhhjqhKubeh}(h]h ](j8structeh"]h$]h&]j5j8j6jj7jj8j9j:uh1jhhhjhjhNubj<)}(hX **Definition**:: struct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; }; **Members** ``node`` list node - contains the devices with devfreq that have been registered. ``lock`` a mutex to protect accessing devfreq. ``dev`` device registered by devfreq class. dev.parent is the device using devfreq. ``profile`` device-specific devfreq profile ``governor`` method how to choose frequency based on the usage. ``opp_table`` Reference to OPP table of dev.parent, if one exists. ``nb`` notifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain. ``work`` delayed work for load monitoring. ``freq_table`` current frequency table used by the devfreq driver. ``max_state`` count of entry present in the frequency table. ``previous_freq`` previously configured frequency value. ``last_status`` devfreq user device info, performance statistics ``data`` devfreq driver pass to governors, governor should not change it. ``governor_data`` private data for governors, devfreq core doesn't touch it. ``user_min_freq_req`` PM QoS minimum frequency request from user (via sysfs) ``user_max_freq_req`` PM QoS maximum frequency request from user (via sysfs) ``scaling_min_freq`` Limit minimum frequency requested by OPP interface ``scaling_max_freq`` Limit maximum frequency requested by OPP interface ``stop_polling`` devfreq polling status of a device. ``suspend_freq`` frequency of a device set during suspend phase. ``resume_freq`` frequency of a device set in resume phase. ``suspend_count`` suspend requests counter for a device. ``stats`` Statistics of devfreq device behavior ``transition_notifier_list`` list head of DEVFREQ_TRANSITION_NOTIFIER notifier ``cdev`` Cooling device pointer if the devfreq has cooling property ``nb_min`` Notifier block for DEV_PM_QOS_MIN_FREQUENCY ``nb_max`` Notifier block for DEV_PM_QOS_MAX_FREQUENCYh](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubja)}(hXstruct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; };h]hXstruct devfreq { struct list_head node; struct mutex lock; struct device dev; struct devfreq_dev_profile *profile; const struct devfreq_governor *governor; struct opp_table *opp_table; struct notifier_block nb; struct delayed_work work; unsigned long *freq_table; unsigned int max_state; unsigned long previous_freq; struct devfreq_dev_status last_status; void *data; void *governor_data; struct dev_pm_qos_request user_min_freq_req; struct dev_pm_qos_request user_max_freq_req; unsigned long scaling_min_freq; unsigned long scaling_max_freq; bool stop_polling; unsigned long suspend_freq; unsigned long resume_freq; atomic_t suspend_count; struct devfreq_stats stats; struct srcu_notifier_head transition_notifier_list; struct thermal_cooling_device *cdev; struct notifier_block nb_min; struct notifier_block nb_max; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j`hZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubh)}(h **Members**h]jF)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjubj)}(hhh](j)}(hR``node`` list node - contains the devices with devfreq that have been registered. h](j)}(h``node``h]j,)}(hj h]hnode}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hHlist node - contains the devices with devfreq that have been registered.h]hHlist node - contains the devices with devfreq that have been registered.}(hj, hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj) ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj( hKhj ubj)}(h/``lock`` a mutex to protect accessing devfreq. h](j)}(h``lock``h]j,)}(hjM h]hlock}(hjO hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjK ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjG ubj)}(hhh]h)}(h%a mutex to protect accessing devfreq.h]h%a mutex to protect accessing devfreq.}(hjf hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjb hKhjc ubah}(h]h ]h"]h$]h&]uh1jhjG ubeh}(h]h ]h"]h$]h&]uh1jhjb hKhj ubj)}(hT``dev`` device registered by devfreq class. dev.parent is the device using devfreq. h](j)}(h``dev``h]j,)}(hj h]hdev}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hKdevice registered by devfreq class. dev.parent is the device using devfreq.h]hKdevice registered by devfreq class. dev.parent is the device using devfreq.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h,``profile`` device-specific devfreq profile h](j)}(h ``profile``h]j,)}(hj h]hprofile}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(hdevice-specific devfreq profileh]hdevice-specific devfreq profile}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h@``governor`` method how to choose frequency based on the usage. h](j)}(h ``governor``h]j,)}(hj h]hgovernor}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h2method how to choose frequency based on the usage.h]h2method how to choose frequency based on the usage.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hC``opp_table`` Reference to OPP table of dev.parent, if one exists. h](j)}(h ``opp_table``h]j,)}(hj2 h]h opp_table}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj0 ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj, ubj)}(hhh]h)}(h4Reference to OPP table of dev.parent, if one exists.h]h4Reference to OPP table of dev.parent, if one exists.}(hjK hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjG hKhjH ubah}(h]h ]h"]h$]h&]uh1jhj, ubeh}(h]h ]h"]h$]h&]uh1jhjG hKhj ubj)}(h``nb`` notifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain. h](j)}(h``nb``h]j,)}(hjk h]hnb}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hji ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhje ubj)}(hhh]h)}(hnotifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain.h]hnotifier block used to notify devfreq object that it should reevaluate operable frequencies. Devfreq users may use devfreq.nb to the corresponding register notifier call chain.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubah}(h]h ]h"]h$]h&]uh1jhje ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h+``work`` delayed work for load monitoring. h](j)}(h``work``h]j,)}(hj h]hwork}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h!delayed work for load monitoring.h]h!delayed work for load monitoring.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hC``freq_table`` current frequency table used by the devfreq driver. h](j)}(h``freq_table``h]j,)}(hj h]h freq_table}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h3current frequency table used by the devfreq driver.h]h3current frequency table used by the devfreq driver.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(h=``max_state`` count of entry present in the frequency table. h](j)}(h ``max_state``h]j,)}(hj h]h max_state}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h.count of entry present in the frequency table.h]h.count of entry present in the frequency table.}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj, hKhj- ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj, hKhj ubj)}(h9``previous_freq`` previously configured frequency value. h](j)}(h``previous_freq``h]j,)}(hjP h]h previous_freq}(hjR hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjN ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhjJ ubj)}(hhh]h)}(h&previously configured frequency value.h]h&previously configured frequency value.}(hji hhhNhNubah}(h]h ]h"]h$]h&]uh1hhje hKhjf ubah}(h]h ]h"]h$]h&]uh1jhjJ ubeh}(h]h ]h"]h$]h&]uh1jhje hKhj ubj)}(hA``last_status`` devfreq user device info, performance statistics h](j)}(h``last_status``h]j,)}(hj h]h last_status}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h0devfreq user device info, performance statisticsh]h0devfreq user device info, performance statistics}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hJ``data`` devfreq driver pass to governors, governor should not change it. h](j)}(h``data``h]j,)}(hj h]hdata}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hKhj ubj)}(hM``governor_data`` private data for governors, devfreq core doesn't touch it. h](j)}(h``governor_data``h]j,)}(hj h]h governor_data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhKhj ubj)}(hhh]h)}(h:private data for governors, devfreq core doesn't touch it.h]hhjfubj)}(hhh](j)}(h2``parent`` the devfreq instance of parent device. h](j)}(h ``parent``h]j,)}(hjh]hparent}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM2hjubj)}(hhh]h)}(h&the devfreq instance of parent device.h]h&the devfreq instance of parent device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhM2hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM2hjubj)}(hX``get_target_freq`` Optional callback, Returns desired operating frequency for the device using passive governor. That is called when passive governor should decide the next frequency by using the new frequency of parent devfreq device using governors except for passive governor. If the devfreq device has the specific method to decide the next frequency, should use this callback. h](j)}(h``get_target_freq``h]j,)}(hjh]hget_target_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM9hjubj)}(hhh]h)}(hXjOptional callback, Returns desired operating frequency for the device using passive governor. That is called when passive governor should decide the next frequency by using the new frequency of parent devfreq device using governors except for passive governor. If the devfreq device has the specific method to decide the next frequency, should use this callback.h]hXjOptional callback, Returns desired operating frequency for the device using passive governor. That is called when passive governor should decide the next frequency by using the new frequency of parent devfreq device using governors except for passive governor. If the devfreq device has the specific method to decide the next frequency, should use this callback.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM3hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM9hjubj)}(h/``parent_type`` the parent type of the device. h](j)}(h``parent_type``h]j,)}(hj*h]h parent_type}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj(ubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM:hj$ubj)}(hhh]h)}(hthe parent type of the device.h]hthe parent type of the device.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hM:hj@ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj?hM:hjubj)}(h-``this`` the devfreq instance of own device. h](j)}(h``this``h]j,)}(hjch]hthis}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjaubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM;hj]ubj)}(hhh]h)}(h#the devfreq instance of own device.h]h#the devfreq instance of own device.}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjxhM;hjyubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhjxhM;hjubj)}(h_``nb`` the notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list. h](j)}(h``nb``h]j,)}(hjh]hnb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM=hjubj)}(hhh]h)}(hWthe notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list.h]hWthe notifier block for DEVFREQ_TRANSITION_NOTIFIER or CPUFREQ_TRANSITION_NOTIFIER list.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM<hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjubj)}(hH``cpu_data_list`` the list of cpu frequency data for all cpufreq_policy.h](j)}(h``cpu_data_list``h]j,)}(hjh]h cpu_data_list}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM=hjubj)}(hhh]h)}(h6the list of cpu frequency data for all cpufreq_policy.h]h6the list of cpu frequency data for all cpufreq_policy.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM>hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhM=hjubeh}(h]h ]h"]h$]h&]uh1jhjfubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjhNubh)}(h**Description**h]jF)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhMAhjhhubh)}(hThe devfreq_passive_data have to set the devfreq instance of parent device with governors except for the passive governor. But, don't need to initialize the 'this' and 'nb' field because the devfreq core will handle them.h]hThe devfreq_passive_data have to set the devfreq instance of parent device with governors except for the passive governor. But, don’t need to initialize the ‘this’ and ‘nb’ field because the devfreq core will handle them.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhZ/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:25: ./include/linux/devfreq.hhM?hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_dev (C struct)c.devfreq_event_devhNtauh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhNubj)}(hhh](j)}(hdevfreq_event_devh]j)}(hstruct devfreq_event_devh](j)}(hjh]hstruct}(hjXhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKubj)}(h h]h }(hjfhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjThhhjehKubj)}(hdevfreq_event_devh]j)}(hjRh]hdevfreq_event_dev}(hjxhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtubah}(h]h ](jjeh"]h$]h&]hhuh1jhjThhhjehKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjPhhhjehKubah}(h]jJah ](j j eh"]h$]h&]jj)jhuh1jhjehKhjMhhubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjhhubah}(h]h ]h"]h$]h&]uh1jhjMhhhjehKubeh}(h]h ](j8structeh"]h$]h&]j5j8j6jj7jj8j9j:uh1jhhhjhjLhNubj<)}(hX7**Definition**:: struct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; }; **Members** ``node`` Contain the devfreq-event device that have been registered. ``dev`` the device registered by devfreq-event class. dev.parent is the device using devfreq-event. ``lock`` a mutex to protect accessing devfreq-event. ``enable_count`` the number of enable function have been called. ``desc`` the description for devfreq-event device.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubja)}(hstruct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; };h]hstruct devfreq_event_dev { struct list_head node; struct device dev; struct mutex lock; u32 enable_count; const struct devfreq_event_desc *desc; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j`h`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubh)}(h **Members**h]jF)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh](j)}(hE``node`` Contain the devfreq-event device that have been registered. h](j)}(h``node``h]j,)}(hjh]hnode}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h;Contain the devfreq-event device that have been registered.h]h;Contain the devfreq-event device that have been registered.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hd``dev`` the device registered by devfreq-event class. dev.parent is the device using devfreq-event. h](j)}(h``dev``h]j,)}(hj@h]hdev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj>ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhj:ubj)}(hhh]h)}(h[the device registered by devfreq-event class. dev.parent is the device using devfreq-event.h]h[the device registered by devfreq-event class. dev.parent is the device using devfreq-event.}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjVubah}(h]h ]h"]h$]h&]uh1jhj:ubeh}(h]h ]h"]h$]h&]uh1jhjUhKhjubj)}(h5``lock`` a mutex to protect accessing devfreq-event. h](j)}(h``lock``h]j,)}(hjzh]hlock}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjxubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjtubj)}(hhh]h)}(h+a mutex to protect accessing devfreq-event.h]h+a mutex to protect accessing devfreq-event.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjtubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(hA``enable_count`` the number of enable function have been called. h](j)}(h``enable_count``h]j,)}(hjh]h enable_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h/the number of enable function have been called.h]h/the number of enable function have been called.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h2``desc`` the description for devfreq-event device.h](j)}(h``desc``h]j,)}(hjh]hdesc}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubj)}(hhh]h)}(h)the description for devfreq-event device.h]h)the description for devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjLhNubh)}(h**Description**h]jF)}(hj/h]h Description}(hj1hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj-ubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjhhubh)}(h9This structure contains devfreq-event device information.h]h9This structure contains devfreq-event device information.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_data (C struct)c.devfreq_event_datahNtauh1jhjhhhjLhNubj)}(hhh](j)}(hdevfreq_event_datah]j)}(hstruct devfreq_event_datah](j)}(hjh]hstruct}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKubj)}(h h]h }(hj{hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjihhhjzhKubj)}(hdevfreq_event_datah]j)}(hjgh]hdevfreq_event_data}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjihhhjzhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjehhhjzhKubah}(h]j`ah ](j j eh"]h$]h&]jj)jhuh1jhjzhKhjbhhubj)}(hhh]h)}(hthe devfreq-event datah]hthe devfreq-event data}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK%hjhhubah}(h]h ]h"]h$]h&]uh1jhjbhhhjzhKubeh}(h]h ](j8structeh"]h$]h&]j5j8j6jj7jj8j9j:uh1jhhhjhjLhNubj<)}(hX**Definition**:: struct devfreq_event_data { unsigned long load_count; unsigned long total_count; }; **Members** ``load_count`` load count of devfreq-event device for the given period. ``total_count`` total count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubh:}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK)hjubja)}(h[struct devfreq_event_data { unsigned long load_count; unsigned long total_count; };h]h[struct devfreq_event_data { unsigned long load_count; unsigned long total_count; };}hjsbah}(h]h ]h"]h$]h&]hhuh1j`h`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK+hjubh)}(h **Members**h]jF)}(hjh]hMembers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK0hjubj)}(hhh](j)}(hH``load_count`` load count of devfreq-event device for the given period. h](j)}(h``load_count``h]j,)}(hjh]h load_count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK(hjubj)}(hhh]h)}(h8load count of devfreq-event device for the given period.h]h8load count of devfreq-event device for the given period.}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj1hK(hj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj1hK(hjubj)}(h``total_count`` total count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h](j)}(h``total_count``h]j,)}(hjUh]h total_count}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjSubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK+hjOubj)}(hhh]h)}(htotal count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.h]htotal count of devfreq-event device for the given period. each count may represent a clock cycle, a time unit (ns/us/...), or anything the device driver wants. Generally, utilization is load_count / total_count.}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK)hjkubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhjjhK+hjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjLhNubh)}(h**Description**h]jF)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK/hjhhubh)}(hLThis structure contains the data of devfreq-event device for polling period.h]hLThis structure contains the data of devfreq-event device for polling period.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK-hjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_ops (C struct)c.devfreq_event_opshNtauh1jhjhhhjLhNubj)}(hhh](j)}(hdevfreq_event_opsh]j)}(hstruct devfreq_event_opsh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK2ubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhK2ubj)}(hdevfreq_event_opsh]j)}(hjh]hdevfreq_event_ops}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhK2ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhK2ubah}(h]jah ](j j eh"]h$]h&]jj)jhuh1jhjhK2hjhhubj)}(hhh]h)}(h&the operations of devfreq-event deviceh]h&the operations of devfreq-event device}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK5hjhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhK2ubeh}(h]h ](j8structeh"]h$]h&]j5j8j6j0j7j0j8j9j:uh1jhhhjhjLhNubj<)}(hX**Definition**:: struct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); }; **Members** ``enable`` Enable the devfreq-event device. ``disable`` Disable the devfreq-event device. ``reset`` Reset all setting of the devfreq-event device. ``set_event`` Set the specific event type for the devfreq-event device. ``get_event`` Get the result of the devfreq-event devie with specific event type.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj8ubh:}(hj8hhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK9hj4ubja)}(hXDstruct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); };h]hXDstruct devfreq_event_ops { int (*enable)(struct devfreq_event_dev *edev); int (*disable)(struct devfreq_event_dev *edev); int (*reset)(struct devfreq_event_dev *edev); int (*set_event)(struct devfreq_event_dev *edev); int (*get_event)(struct devfreq_event_dev *edev, struct devfreq_event_data *edata); };}hjUsbah}(h]h ]h"]h$]h&]hhuh1j`h`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK;hj4ubh)}(h **Members**h]jF)}(hjfh]hMembers}(hjhhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjdubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKChj4ubj)}(hhh](j)}(h,``enable`` Enable the devfreq-event device. h](j)}(h ``enable``h]j,)}(hjh]henable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK8hjubj)}(hhh]h)}(h Enable the devfreq-event device.h]h Enable the devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK8hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK8hj|ubj)}(h.``disable`` Disable the devfreq-event device. h](j)}(h ``disable``h]j,)}(hjh]hdisable}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK9hjubj)}(hhh]h)}(h!Disable the devfreq-event device.h]h!Disable the devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhK9hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhK9hj|ubj)}(h9``reset`` Reset all setting of the devfreq-event device. h](j)}(h ``reset``h]j,)}(hjh]hreset}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK:hjubj)}(hhh]h)}(h.Reset all setting of the devfreq-event device.h]h.Reset all setting of the devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hK:hj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj hK:hj|ubj)}(hH``set_event`` Set the specific event type for the devfreq-event device. h](j)}(h ``set_event``h]j,)}(hj0h]h set_event}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj.ubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK;hj*ubj)}(hhh]h)}(h9Set the specific event type for the devfreq-event device.h]h9Set the specific event type for the devfreq-event device.}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjEhK;hjFubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhjEhK;hj|ubj)}(hQ``get_event`` Get the result of the devfreq-event devie with specific event type.h](j)}(h ``get_event``h]j,)}(hjih]h get_event}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjgubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_event_desc (C struct)c.devfreq_event_deschNtauh1jhjhhhjLhNubj)}(hhh](j)}(hdevfreq_event_desch]j)}(hstruct devfreq_event_desch](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKDubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKDubj)}(hdevfreq_event_desch]j)}(hjh]hdevfreq_event_desc}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKDubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKDubah}(h]jah ](j j eh"]h$]h&]jj)jhuh1jhjhKDhjhhubj)}(hhh]h)}(h&the descriptor of devfreq-event deviceh]h&the descriptor of devfreq-event device}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKNhj(hhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKDubeh}(h]h ](j8structeh"]h$]h&]j5j8j6jCj7jCj8j9j:uh1jhhhjhjLhNubj<)}(hX**Definition**:: struct devfreq_event_desc { const char *name; u32 event_type; void *driver_data; const struct devfreq_event_ops *ops; }; **Members** ``name`` the name of devfreq-event device. ``event_type`` the type of the event determined and used by driver ``driver_data`` the private data for devfreq-event driver. ``ops`` the operation to control devfreq-event device.h](h)}(h**Definition**::h](jF)}(h**Definition**h]h Definition}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjKubh:}(hjKhhhNhNubeh}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKRhjGubja)}(hstruct devfreq_event_desc { const char *name; u32 event_type; void *driver_data; const struct devfreq_event_ops *ops; };h]hstruct devfreq_event_desc { const char *name; u32 event_type; void *driver_data; const struct devfreq_event_ops *ops; };}hjhsbah}(h]h ]h"]h$]h&]hhuh1j`h`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKThjGubh)}(h **Members**h]jF)}(hjyh]hMembers}(hj{hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjwubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhK[hjGubj)}(hhh](j)}(h+``name`` the name of devfreq-event device. h](j)}(h``name``h]j,)}(hjh]hname}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKQhjubj)}(hhh]h)}(h!the name of devfreq-event device.h]h!the name of devfreq-event device.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKQhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKQhjubj)}(hC``event_type`` the type of the event determined and used by driver h](j)}(h``event_type``h]j,)}(hjh]h event_type}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKRhjubj)}(hhh]h)}(h3the type of the event determined and used by driverh]h3the type of the event determined and used by driver}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKRhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKRhjubj)}(h;``driver_data`` the private data for devfreq-event driver. h](j)}(h``driver_data``h]j,)}(hj h]h driver_data}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKShjubj)}(hhh]h)}(h*the private data for devfreq-event driver.h]h*the private data for devfreq-event driver.}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKShj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKShjubj)}(h6``ops`` the operation to control devfreq-event device.h](j)}(h``ops``h]j,)}(hjCh]hops}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjAubah}(h]h ]h"]h$]h&]uh1jh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKShj=ubj)}(hhh]h)}(h.the operation to control devfreq-event device.h]h.the operation to control devfreq-event device.}(hj\hhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKThjYubah}(h]h ]h"]h$]h&]uh1jhj=ubeh}(h]h ]h"]h$]h&]uh1jhjXhKShjubeh}(h]h ]h"]h$]h&]uh1jhjGubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhjLhNubh)}(h**Description**h]jF)}(hjh]h Description}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKWhjhhubh)}(hXjEach devfreq-event device is described with a this structure. This structure contains the various data for devfreq-event device. The event_type describes what is going to be counted in the register. It might choose to count e.g. read requests, write data in bytes, etc. The full supported list of types is present in specyfic header in: include/dt-bindings/pmu/.h]hXjEach devfreq-event device is described with a this structure. This structure contains the various data for devfreq-event device. The event_type describes what is going to be counted in the register. It might choose to count e.g. read requests, write data in bytes, etc. The full supported list of types is present in specyfic header in: include/dt-bindings/pmu/.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh`/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:26: ./include/linux/devfreq-event.hhKUhjhhubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_get_freq_range (C function)c.devfreq_get_freq_rangehNtauh1jhjhhhNhNubj)}(hhh](j)}(hgvoid devfreq_get_freq_range (struct devfreq *devfreq, unsigned long *min_freq, unsigned long *max_freq)h]j)}(hfvoid devfreq_get_freq_range(struct devfreq *devfreq, unsigned long *min_freq, unsigned long *max_freq)h](hdesc_sig_keyword_type)}(hvoidh]hvoid}(hjhhhNhNubah}(h]h ]ktah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKzubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKzubj)}(hdevfreq_get_freq_rangeh]j)}(hdevfreq_get_freq_rangeh]hdevfreq_get_freq_range}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKzubhdesc_parameterlist)}(hK(struct devfreq *devfreq, unsigned long *min_freq, unsigned long *max_freq)h](hdesc_parameter)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainj8reftype identifier reftargetj(modnameN classnameN c:parent_keysphinx.domains.c LookupKey)}data]jA ASTIdentifier)}j<jsbc.devfreq_get_freq_rangeasbuh1hhjubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubhdesc_sig_punctuation)}(h*h]h*}(hj^hhhNhNubah}(h]h ]pah"]h$]h&]uh1j\hjubj)}(hdevfreqh]hdevfreq}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned long *min_freqh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj])}(hj`h]h*}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjubj)}(hmin_freqh]hmin_freq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned long *max_freqh](j)}(hunsignedh]hunsigned}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(hlongh]hlong}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj])}(hj`h]h*}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjubj)}(hmax_freqh]hmax_freq}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKzubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjhhhjhKzubah}(h]jah ](j j eh"]h$]h&]jj)jhuh1jhjhKzhjhhubj)}(hhh]h)}(hGet the current freq rangeh]hGet the current freq range}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKshjPhhubah}(h]h ]h"]h$]h&]uh1jhjhhhjhKzubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jkj7jkj8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance ``unsigned long *min_freq`` the min frequency ``unsigned long *max_freq`` the max frequency **Description** This takes into consideration all constraints.h](h)}(h**Parameters**h]jF)}(hjuh]h Parameters}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjsubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKwhjoubj)}(hhh](j)}(h1``struct devfreq *devfreq`` the devfreq instance h](j)}(h``struct devfreq *devfreq``h]j,)}(hjh]hstruct devfreq *devfreq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKthjubj)}(hhh]h)}(hthe devfreq instanceh]hthe devfreq instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKthjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKthjubj)}(h.``unsigned long *min_freq`` the min frequency h](j)}(h``unsigned long *min_freq``h]j,)}(hjh]hunsigned long *min_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKuhjubj)}(hhh]h)}(hthe min frequencyh]hthe min frequency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKuhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKuhjubj)}(h.``unsigned long *max_freq`` the max frequency h](j)}(h``unsigned long *max_freq``h]j,)}(hjh]hunsigned long *max_freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKvhjubj)}(hhh]h)}(hthe max frequencyh]hthe max frequency}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKvhjubeh}(h]h ]h"]h$]h&]uh1jhjoubh)}(h**Description**h]jF)}(hjAh]h Description}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKxhjoubh)}(h.This takes into consideration all constraints.h]h.This takes into consideration all constraints.}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKxhjoubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_update_status (C function)c.devfreq_update_statushNtauh1jhjhhhNhNubj)}(hhh](j)}(hGint devfreq_update_status (struct devfreq *devfreq, unsigned long freq)h]j)}(hFint devfreq_update_status(struct devfreq *devfreq, unsigned long freq)h](j)}(hinth]hint}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjhhhjhKubj)}(hdevfreq_update_statush]j)}(hdevfreq_update_statush]hdevfreq_update_status}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjhhhjhKubj)}(h-(struct devfreq *devfreq, unsigned long freq)h](j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjmodnameN classnameNj@jC)}jF]jI)}j<jsbc.devfreq_update_statusasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj])}(hj`h]h*}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjubj)}(hdevfreqh]hdevfreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned long freqh](j)}(hunsignedh]hunsigned}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hlongh]hlong}(hjQhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hfreqh]hfreq}(hjmhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjhhhjhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj~hhhjhKubah}(h]jyah ](j j eh"]h$]h&]jj)jhuh1jhjhKhj{hhubj)}(hhh]h)}(h%Update statistics of devfreq behaviorh]h%Update statistics of devfreq behavior}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKhjhhubah}(h]h ]h"]h$]h&]uh1jhj{hhhjhKubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jj7jj8j9j:uh1jhhhjhNhNubj<)}(hx**Parameters** ``struct devfreq *devfreq`` the devfreq instance ``unsigned long freq`` the update target frequencyh](h)}(h**Parameters**h]jF)}(hjh]h Parameters}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKhjubj)}(hhh](j)}(h1``struct devfreq *devfreq`` the devfreq instance h](j)}(h``struct devfreq *devfreq``h]j,)}(hjh]hstruct devfreq *devfreq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKhjubj)}(hhh]h)}(hthe devfreq instanceh]hthe devfreq instance}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjhKhjubj)}(h2``unsigned long freq`` the update target frequencyh](j)}(h``unsigned long freq``h]j,)}(hjh]hunsigned long freq}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKhj ubj)}(hhh]h)}(hthe update target frequencyh]hthe update target frequency}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chKhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj&hKhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_update_target (C function)c.devfreq_update_targethNtauh1jhjhhhNhNubj)}(hhh](j)}(hGint devfreq_update_target (struct devfreq *devfreq, unsigned long freq)h]j)}(hFint devfreq_update_target(struct devfreq *devfreq, unsigned long freq)h](j)}(hinth]hint}(hjkhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjzhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjghhhjyhMubj)}(hdevfreq_update_targeth]j)}(hdevfreq_update_targeth]hdevfreq_update_target}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ](jjeh"]h$]h&]hhuh1jhjghhhjyhMubj)}(h-(struct devfreq *devfreq, unsigned long freq)h](j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjmodnameN classnameNj@jC)}jF]jI)}j<jsbc.devfreq_update_targetasbuh1hhjubj)}(h h]h }(hjhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubj])}(hj`h]h*}(hjhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjubj)}(hdevfreqh]hdevfreq}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubj)}(hunsigned long freqh](j)}(hunsignedh]hunsigned}(hj hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hj( hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hlongh]hlong}(hj6 hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(h h]h }(hjD hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubj)}(hfreqh]hfreq}(hjR hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjubeh}(h]h ]h"]h$]h&]hhuh1jhjghhhjyhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjchhhjyhMubah}(h]j^ah ](j j eh"]h$]h&]jj)jhuh1jhjyhMhj`hhubj)}(hhh]h)}(hAReevaluate the device and configure frequency on the final stage.h]hAReevaluate the device and configure frequency on the final stage.}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjy hhubah}(h]h ]h"]h$]h&]uh1jhj`hhhjyhMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j j7j j8j9j:uh1jhhhjhNhNubj<)}(hXe**Parameters** ``struct devfreq *devfreq`` the devfreq instance. ``unsigned long freq`` the new frequency of parent device. This argument is only used for devfreq device using passive governor. **Note** Lock devfreq->lock before calling devfreq_update_target. This function should be only used by both update_devfreq() and devfreq governors.h](h)}(h**Parameters**h]jF)}(hj h]h Parameters}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh](j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj h]hstruct devfreq *devfreq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hMhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj hMhj ubj)}(h``unsigned long freq`` the new frequency of parent device. This argument is only used for devfreq device using passive governor. h](j)}(h``unsigned long freq``h]j,)}(hj h]hunsigned long freq}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh]h)}(hithe new frequency of parent device. This argument is only used for devfreq device using passive governor.h]hithe new frequency of parent device. This argument is only used for devfreq device using passive governor.}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj !ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj !hMhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubh)}(h**Note**h]jF)}(hj2!h]hNote}(hj4!hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj0!ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj ubj)}(hhh]j)}(hLock devfreq->lock before calling devfreq_update_target. This function should be only used by both update_devfreq() and devfreq governors.h](j)}(hFLock devfreq->lock before calling devfreq_update_target. This functionh]hFLock devfreq->lock before calling devfreq_update_target. This function}(hjO!hhhNhNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjK!ubj)}(hhh]h)}(hCshould be only used by both update_devfreq() and devfreq governors.h]hCshould be only used by both update_devfreq() and devfreq governors.}(hja!hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj^!ubah}(h]h ]h"]h$]h&]uh1jhjK!ubeh}(h]h ]h"]h$]h&]uh1jhj]!hMhjH!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jupdate_devfreq (C function)c.update_devfreqhNtauh1jhjhhhNhNubj)}(hhh](j)}(h,int update_devfreq (struct devfreq *devfreq)h]j)}(h+int update_devfreq(struct devfreq *devfreq)h](j)}(hinth]hint}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!hhhj!hMubj)}(hupdate_devfreqh]j)}(hupdate_devfreqh]hupdate_devfreq}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj!hhhj!hMubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj)}(h h]h }(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj!hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj!modnameN classnameNj@jC)}jF]jI)}j<j!sbc.update_devfreqasbuh1hhj!ubj)}(h h]h }(hj"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubj])}(hj`h]h*}(hj+"hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj!ubj)}(hdevfreqh]hdevfreq}(hj8"hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj!ubah}(h]h ]h"]h$]h&]hhuh1jhj!hhhj!hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj!hhhj!hMubah}(h]j!ah ](j j eh"]h$]h&]jj)jhuh1jhj!hMhj!hhubj)}(hhh]h)}(h.Reevaluate the device and configure frequency.h]h.Reevaluate the device and configure frequency.}(hjb"hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj_"hhubah}(h]h ]h"]h$]h&]uh1jhj!hhhj!hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jz"j7jz"j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Note** Lock devfreq->lock before calling update_devfreq This function is exported for governors.h](h)}(h**Parameters**h]jF)}(hj"h]h Parameters}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj~"ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj"h]hstruct devfreq *devfreq}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj"ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj~"ubh)}(h**Note**h]jF)}(hj"h]hNote}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj"ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj~"ubj)}(hhh]j)}(hYLock devfreq->lock before calling update_devfreq This function is exported for governors.h](j)}(h0Lock devfreq->lock before calling update_devfreqh]h0Lock devfreq->lock before calling update_devfreq}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj"ubj)}(hhh]h)}(h(This function is exported for governors.h]h(This function is exported for governors.}(hj #hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj #ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj #hMhj"ubah}(h]h ]h"]h$]h&]uh1jhj~"ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_monitor_start (C function)c.devfreq_monitor_starthNtauh1jhjhhhNhNubj)}(hhh](j)}(h4void devfreq_monitor_start (struct devfreq *devfreq)h]j)}(h3void devfreq_monitor_start(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hjN#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ#hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj]#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjJ#hhhj\#hMubj)}(hdevfreq_monitor_starth]j)}(hdevfreq_monitor_starth]hdevfreq_monitor_start}(hjo#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjk#ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjJ#hhhj\#hMubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj#modnameN classnameNj@jC)}jF]jI)}j<jq#sbc.devfreq_monitor_startasbuh1hhj#ubj)}(h h]h }(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubj])}(hj`h]h*}(hj#hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj#ubj)}(hdevfreqh]hdevfreq}(hj#hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj#ubah}(h]h ]h"]h$]h&]hhuh1jhjJ#hhhj\#hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjF#hhhj\#hMubah}(h]jA#ah ](j j eh"]h$]h&]jj)jhuh1jhj\#hMhjC#hhubj)}(hhh]h)}(h)Start load monitoring of devfreq instanceh]h)Start load monitoring of devfreq instance}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj $hhubah}(h]h ]h"]h$]h&]uh1jhjC#hhhj\#hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j&$j7j&$j8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the "timer" type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.h](h)}(h**Parameters**h]jF)}(hj0$h]h Parameters}(hj2$hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj.$ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj*$ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hjO$h]hstruct devfreq *devfreq}(hjQ$hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjM$ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjI$ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hjh$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd$hMhje$ubah}(h]h ]h"]h$]h&]uh1jhjI$ubeh}(h]h ]h"]h$]h&]uh1jhjd$hMhjF$ubah}(h]h ]h"]h$]h&]uh1jhj*$ubh)}(h**Description**h]jF)}(hj$h]h Description}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj$ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj*$ubh)}(hXbHelper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the "timer" type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.h]hXfHelper function for starting devfreq device load monitoring. By default, deferrable timer is used for load monitoring. But the users can change this behavior using the “timer” type in devfreq_dev_profile. This function will be called by devfreq governor in response to the DEVFREQ_GOV_START event generated while adding a device to the devfreq framework.}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj*$ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!devfreq_monitor_stop (C function)c.devfreq_monitor_stophNtauh1jhjhhhNhNubj)}(hhh](j)}(h3void devfreq_monitor_stop (struct devfreq *devfreq)h]j)}(h2void devfreq_monitor_stop(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM ubj)}(h h]h }(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$hhhj$hM ubj)}(hdevfreq_monitor_stoph]j)}(hdevfreq_monitor_stoph]hdevfreq_monitor_stop}(hj$hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj$hhhj$hM ubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj %hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj)}(h h]h }(hj%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj*%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'%ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj,%modnameN classnameNj@jC)}jF]jI)}j<j$sbc.devfreq_monitor_stopasbuh1hhj%ubj)}(h h]h }(hjJ%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubj])}(hj`h]h*}(hjX%hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj%ubj)}(hdevfreqh]hdevfreq}(hje%hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj%ubah}(h]h ]h"]h$]h&]hhuh1jhj$hhhj$hM ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj$hhhj$hM ubah}(h]j$ah ](j j eh"]h$]h&]jj)jhuh1jhj$hM hj$hhubj)}(hhh]h)}(h*Stop load monitoring of a devfreq instanceh]h*Stop load monitoring of a devfreq instance}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%hhubah}(h]h ]h"]h$]h&]uh1jhj$hhhj$hM ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j%j7j%j8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.h](h)}(h**Parameters**h]jF)}(hj%h]h Parameters}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj%ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj%h]hstruct devfreq *devfreq}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj%ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubeh}(h]h ]h"]h$]h&]uh1jhj%hMhj%ubah}(h]h ]h"]h$]h&]uh1jhj%ubh)}(h**Description**h]jF)}(hj &h]h Description}(hj &hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj &ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubh)}(hHelper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.h]hHelper function to stop devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_STOP event when device is removed from devfreq framework.}(hj!&hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj%ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_monitor_suspend (C function)c.devfreq_monitor_suspendhNtauh1jhjhhhNhNubj)}(hhh](j)}(h6void devfreq_monitor_suspend (struct devfreq *devfreq)h]j)}(h5void devfreq_monitor_suspend(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hjP&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL&hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM(ubj)}(h h]h }(hj_&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjL&hhhj^&hM(ubj)}(hdevfreq_monitor_suspendh]j)}(hdevfreq_monitor_suspendh]hdevfreq_monitor_suspend}(hjq&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjm&ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjL&hhhj^&hM(ubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj&modnameN classnameNj@jC)}jF]jI)}j<js&sbc.devfreq_monitor_suspendasbuh1hhj&ubj)}(h h]h }(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubj])}(hj`h]h*}(hj&hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj&ubj)}(hdevfreqh]hdevfreq}(hj&hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj&ubah}(h]h ]h"]h$]h&]hhuh1jhjL&hhhj^&hM(ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjH&hhhj^&hM(ubah}(h]jC&ah ](j j eh"]h$]h&]jj)jhuh1jhj^&hM(hjE&hhubj)}(hhh]h)}(h-Suspend load monitoring of a devfreq instanceh]h-Suspend load monitoring of a devfreq instance}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj 'hhubah}(h]h ]h"]h$]h&]uh1jhjE&hhhj^&hM(ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j('j7j('j8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero. **Note** Though this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.h](h)}(h**Parameters**h]jF)}(hj2'h]h Parameters}(hj4'hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj0'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM!hj,'ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hjQ'h]hstruct devfreq *devfreq}(hjS'hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjO'ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjK'ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hjj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjf'hMhjg'ubah}(h]h ]h"]h$]h&]uh1jhjK'ubeh}(h]h ]h"]h$]h&]uh1jhjf'hMhjH'ubah}(h]h ]h"]h$]h&]uh1jhj,'ubh)}(h**Description**h]jF)}(hj'h]h Description}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj,'ubh)}(hHelper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero.h]hHelper function to suspend devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_SUSPEND event or when polling interval is set to zero.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj,'ubh)}(h**Note**h]jF)}(hj'h]hNote}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj'ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM$hj,'ubh)}(hThough this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.h]hThough this function is same as devfreq_monitor_stop(), intentionally kept separate to provide hooks for collecting transition statistics.}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM$hj,'ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_monitor_resume (C function)c.devfreq_monitor_resumehNtauh1jhjhhhNhNubj)}(hhh](j)}(h5void devfreq_monitor_resume (struct devfreq *devfreq)h]j)}(h4void devfreq_monitor_resume(struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj'hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMCubj)}(h h]h }(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj'hhhj(hMCubj)}(hdevfreq_monitor_resumeh]j)}(hdevfreq_monitor_resumeh]hdevfreq_monitor_resume}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj(ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj'hhhj(hMCubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj5(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1(ubj)}(h h]h }(hjB(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1(ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjS(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjP(ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjU(modnameN classnameNj@jC)}jF]jI)}j<j(sbc.devfreq_monitor_resumeasbuh1hhj1(ubj)}(h h]h }(hjs(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1(ubj])}(hj`h]h*}(hj(hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj1(ubj)}(hdevfreqh]hdevfreq}(hj(hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1(ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj-(ubah}(h]h ]h"]h$]h&]hhuh1jhj'hhhj(hMCubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj'hhhj(hMCubah}(h]j'ah ](j j eh"]h$]h&]jj)jhuh1jhj(hMChj'hhubj)}(hhh]h)}(h,Resume load monitoring of a devfreq instanceh]h,Resume load monitoring of a devfreq instance}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM<hj(hhubah}(h]h ]h"]h$]h&]uh1jhj'hhhj(hMCubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j(j7j(j8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq *devfreq`` the devfreq instance. **Description** Helper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.h](h)}(h**Parameters**h]jF)}(hj(h]h Parameters}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj(ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM@hj(ubj)}(hhh]j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj(h]hstruct devfreq *devfreq}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj(ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM=hj(ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj)hM=hj)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj)hM=hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubh)}(h**Description**h]jF)}(hj4)h]h Description}(hj6)hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj2)ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM?hj(ubh)}(hHelper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.h]hHelper function to resume devfreq device load monitoring. Function to be called from governor in response to DEVFREQ_GOV_RESUME event or when polling interval is set to non-zero.}(hjJ)hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM?hj(ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_update_interval (C function)c.devfreq_update_intervalhNtauh1jhjhhhNhNubj)}(hhh](j)}(hKvoid devfreq_update_interval (struct devfreq *devfreq, unsigned int *delay)h]j)}(hJvoid devfreq_update_interval(struct devfreq *devfreq, unsigned int *delay)h](j)}(hvoidh]hvoid}(hjy)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju)hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMiubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhju)hhhj)hMiubj)}(hdevfreq_update_intervalh]j)}(hdevfreq_update_intervalh]hdevfreq_update_interval}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ](jjeh"]h$]h&]hhuh1jhju)hhhj)hMiubj)}(h.(struct devfreq *devfreq, unsigned int *delay)h](j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj)modnameN classnameNj@jC)}jF]jI)}j<j)sbc.devfreq_update_intervalasbuh1hhj)ubj)}(h h]h }(hj)hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubj])}(hj`h]h*}(hj*hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj)ubj)}(hdevfreqh]hdevfreq}(hj*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubj)}(hunsigned int *delayh](j)}(hunsignedh]hunsigned}(hj(*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$*ubj)}(h h]h }(hj6*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$*ubj)}(hinth]hint}(hjD*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$*ubj)}(h h]h }(hjR*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$*ubj])}(hj`h]h*}(hj`*hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj$*ubj)}(hdelayh]hdelay}(hjm*hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj$*ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj)ubeh}(h]h ]h"]h$]h&]hhuh1jhju)hhhj)hMiubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjq)hhhj)hMiubah}(h]jl)ah ](j j eh"]h$]h&]jj)jhuh1jhj)hMihjn)hhubj)}(hhh]h)}(h)Update device devfreq monitoring intervalh]h)Update device devfreq monitoring interval}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMbhj*hhubah}(h]h ]h"]h$]h&]uh1jhjn)hhhj)hMiubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j*j7j*j8j9j:uh1jhhhjhNhNubj<)}(hX#**Parameters** ``struct devfreq *devfreq`` the devfreq instance. ``unsigned int *delay`` new polling interval to be set. **Description** Helper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.h](h)}(h**Parameters**h]jF)}(hj*h]h Parameters}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj*ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMfhj*ubj)}(hhh](j)}(h2``struct devfreq *devfreq`` the devfreq instance. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj*h]hstruct devfreq *devfreq}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj*ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMchj*ubj)}(hhh]h)}(hthe devfreq instance.h]hthe devfreq instance.}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj*hMchj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*hMchj*ubj)}(h8``unsigned int *delay`` new polling interval to be set. h](j)}(h``unsigned int *delay``h]j,)}(hj+h]hunsigned int *delay}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj+ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMdhj +ubj)}(hhh]h)}(hnew polling interval to be set.h]hnew polling interval to be set.}(hj*+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&+hMdhj'+ubah}(h]h ]h"]h$]h&]uh1jhj +ubeh}(h]h ]h"]h$]h&]uh1jhj&+hMdhj*ubeh}(h]h ]h"]h$]h&]uh1jhj*ubh)}(h**Description**h]jF)}(hjL+h]h Description}(hjN+hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjJ+ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMfhj*ubh)}(hHelper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.h]hHelper function to set new load monitoring polling interval. Function to be called from governor in response to DEVFREQ_GOV_UPDATE_INTERVAL event.}(hjb+hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMfhj*ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](jdevfreq_add_device (C function)c.devfreq_add_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(hstruct devfreq * devfreq_add_device (struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h]j)}(hstruct devfreq *devfreq_add_device(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hjh]hstruct}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM#ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hM#ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj+modnameN classnameNj@jC)}jF]jI)}j<devfreq_add_devicesbc.devfreq_add_deviceasbuh1hhj+hhhj+hM#ubj)}(h h]h }(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+hhhj+hM#ubj])}(hj`h]h*}(hj+hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj+hhhj+hM#ubj)}(hdevfreq_add_deviceh]j)}(hj+h]hdevfreq_add_device}(hj+hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj+ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj+hhhj+hM#ubj)}(h`(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj ,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubh)}(hhh]j)}(hdeviceh]hdevice}(hj),hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj&,ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj+,modnameN classnameNj@jC)}jF]j+c.devfreq_add_deviceasbuh1hhj,ubj)}(h h]h }(hjG,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj])}(hj`h]h*}(hjU,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj,ubj)}(hdevh]hdev}(hjb,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubj)}(h#struct devfreq_dev_profile *profileh](j)}(hjh]hstruct}(hj{,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw,ubh)}(hhh]j)}(hdevfreq_dev_profileh]hdevfreq_dev_profile}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj,modnameN classnameNj@jC)}jF]j+c.devfreq_add_deviceasbuh1hhjw,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw,ubj])}(hj`h]h*}(hj,hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjw,ubj)}(hprofileh]hprofile}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubj)}(hconst char *governor_nameh](j)}(hconsth]hconst}(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj,hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(hcharh]hchar}(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj)}(h h]h }(hj-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubj])}(hj`h]h*}(hj#-hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj,ubj)}(h governor_nameh]h governor_name}(hj0-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj,ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubj)}(h void *datah](j)}(hvoidh]hvoid}(hjI-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE-ubj)}(h h]h }(hjW-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE-ubj])}(hj`h]h*}(hje-hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjE-ubj)}(hdatah]hdata}(hjr-hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjE-ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj,ubeh}(h]h ]h"]h$]h&]hhuh1jhj+hhhj+hM#ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj+hhhj+hM#ubah}(h]j+ah ](j j eh"]h$]h&]jj)jhuh1jhj+hM#hj+hhubj)}(hhh]h)}(h!Add devfreq feature to the deviceh]h!Add devfreq feature to the device}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj-hhubah}(h]h ]h"]h$]h&]uh1jhj+hhhj+hM#ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j-j7j-j8j9j:uh1jhhhjhNhNubj<)}(hX:**Parameters** ``struct device *dev`` the device to add devfreq feature. ``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. ``const char *governor_name`` name of the policy to choose frequency. ``void *data`` devfreq driver pass to governors, governor should not change it.h](h)}(h**Parameters**h]jF)}(hj-h]h Parameters}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj-ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM!hj-ubj)}(hhh](j)}(h:``struct device *dev`` the device to add devfreq feature. h](j)}(h``struct device *dev``h]j,)}(hj-h]hstruct device *dev}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj-ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj-ubj)}(hhh]h)}(h"the device to add devfreq feature.h]h"the device to add devfreq feature.}(hj-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj-hMhj-ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj-hMhj-ubj)}(hP``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. h](j)}(h'``struct devfreq_dev_profile *profile``h]j,)}(hj.h]h#struct devfreq_dev_profile *profile}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj.ubj)}(hhh]h)}(h'device-specific profile to run devfreq.h]h'device-specific profile to run devfreq.}(hj/.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+.hMhj,.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj+.hMhj-ubj)}(hF``const char *governor_name`` name of the policy to choose frequency. h](j)}(h``const char *governor_name``h]j,)}(hjO.h]hconst char *governor_name}(hjQ.hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjM.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hjI.ubj)}(hhh]h)}(h'name of the policy to choose frequency.h]h'name of the policy to choose frequency.}(hjh.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjd.hM hje.ubah}(h]h ]h"]h$]h&]uh1jhjI.ubeh}(h]h ]h"]h$]h&]uh1jhjd.hM hj-ubj)}(hO``void *data`` devfreq driver pass to governors, governor should not change it.h](j)}(h``void *data``h]j,)}(hj.h]h void *data}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj.ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM"hj.ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM!hj.ubah}(h]h ]h"]h$]h&]uh1jhj.ubeh}(h]h ]h"]h$]h&]uh1jhj.hM"hj-ubeh}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_remove_device (C function)c.devfreq_remove_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(h3int devfreq_remove_device (struct devfreq *devfreq)h]j)}(h2int devfreq_remove_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj.hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.hhhj.hMubj)}(hdevfreq_remove_deviceh]j)}(hdevfreq_remove_deviceh]hdevfreq_remove_device}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj.ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj.hhhj.hMubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj)}(h h]h }(hj,/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj=/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj:/ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj?/modnameN classnameNj@jC)}jF]jI)}j<j/sbc.devfreq_remove_deviceasbuh1hhj/ubj)}(h h]h }(hj]/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubj])}(hj`h]h*}(hjk/hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj/ubj)}(hdevfreqh]hdevfreq}(hjx/hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj/ubah}(h]h ]h"]h$]h&]hhuh1jhj.hhhj.hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj.hhhj.hMubah}(h]j.ah ](j j eh"]h$]h&]jj)jhuh1jhj.hMhj.hhubj)}(hhh]h)}(h%Remove devfreq feature from a device.h]h%Remove devfreq feature from a device.}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/hhubah}(h]h ]h"]h$]h&]uh1jhj.hhhj.hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j/j7j/j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be removed **Description** The opposite of devfreq_add_device().h](h)}(h**Parameters**h]jF)}(hj/h]h Parameters}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj/ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/ubj)}(hhh]j)}(h?``struct devfreq *devfreq`` the devfreq instance to be removed h](j)}(h``struct devfreq *devfreq``h]j,)}(hj/h]hstruct devfreq *devfreq}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj/ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/ubj)}(hhh]h)}(h"the devfreq instance to be removedh]h"the devfreq instance to be removed}(hj/hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj/hMhj/ubah}(h]h ]h"]h$]h&]uh1jhj/ubh)}(h**Description**h]jF)}(hj0h]h Description}(hj 0hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj0ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/ubh)}(h%The opposite of devfreq_add_device().h]h%The opposite of devfreq_add_device().}(hj40hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj/ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devm_devfreq_add_device (C function)c.devm_devfreq_add_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(hstruct devfreq * devm_devfreq_add_device (struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h]j)}(hstruct devfreq *devm_devfreq_add_device(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hjh]hstruct}(hjc0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_0hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjq0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_0hhhjp0hMubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj0modnameN classnameNj@jC)}jF]jI)}j<devm_devfreq_add_devicesbc.devm_devfreq_add_deviceasbuh1hhj_0hhhjp0hMubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj_0hhhjp0hMubj])}(hj`h]h*}(hj0hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj_0hhhjp0hMubj)}(hdevm_devfreq_add_deviceh]j)}(hj0h]hdevm_devfreq_add_device}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj_0hhhjp0hMubj)}(h`(struct device *dev, struct devfreq_dev_profile *profile, const char *governor_name, void *data)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj)}(h h]h }(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubh)}(hhh]j)}(hdeviceh]hdevice}(hj0hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj0modnameN classnameNj@jC)}jF]j0c.devm_devfreq_add_deviceasbuh1hhj0ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubj])}(hj`h]h*}(hj'1hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj0ubj)}(hdevh]hdev}(hj41hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj0ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubj)}(h#struct devfreq_dev_profile *profileh](j)}(hjh]hstruct}(hjM1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI1ubj)}(h h]h }(hjZ1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI1ubh)}(hhh]j)}(hdevfreq_dev_profileh]hdevfreq_dev_profile}(hjk1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjh1ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjm1modnameN classnameNj@jC)}jF]j0c.devm_devfreq_add_deviceasbuh1hhjI1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI1ubj])}(hj`h]h*}(hj1hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjI1ubj)}(hprofileh]hprofile}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjI1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubj)}(hconst char *governor_nameh](j)}(hj,h]hconst}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(hcharh]hchar}(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj)}(h h]h }(hj1hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubj])}(hj`h]h*}(hj1hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj1ubj)}(h governor_nameh]h governor_name}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubj)}(h void *datah](j)}(hvoidh]hvoid}(hj2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj)}(h h]h }(hj(2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubj])}(hj`h]h*}(hj62hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj2ubj)}(hdatah]hdata}(hjC2hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj0ubeh}(h]h ]h"]h$]h&]hhuh1jhj_0hhhjp0hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj[0hhhjp0hMubah}(h]jV0ah ](j j eh"]h$]h&]jj)jhuh1jhjp0hMhjX0hhubj)}(hhh]h)}(h%Resource-managed devfreq_add_device()h]h%Resource-managed devfreq_add_device()}(hjm2hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjj2hhubah}(h]h ]h"]h$]h&]uh1jhjX0hhhjp0hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j2j7j2j8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct device *dev`` the device to add devfreq feature. ``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. ``const char *governor_name`` name of the policy to choose frequency. ``void *data`` devfreq driver pass to governors, governor should not change it. **Description** This function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.h](h)}(h**Parameters**h]jF)}(hj2h]h Parameters}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj2ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj2ubj)}(hhh](j)}(h:``struct device *dev`` the device to add devfreq feature. h](j)}(h``struct device *dev``h]j,)}(hj2h]hstruct device *dev}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj2ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj2ubj)}(hhh]h)}(h"the device to add devfreq feature.h]h"the device to add devfreq feature.}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hMhj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hMhj2ubj)}(hP``struct devfreq_dev_profile *profile`` device-specific profile to run devfreq. h](j)}(h'``struct devfreq_dev_profile *profile``h]j,)}(hj2h]h#struct devfreq_dev_profile *profile}(hj2hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj2ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj2ubj)}(hhh]h)}(h'device-specific profile to run devfreq.h]h'device-specific profile to run devfreq.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hM hj2ubah}(h]h ]h"]h$]h&]uh1jhj2ubeh}(h]h ]h"]h$]h&]uh1jhj2hM hj2ubj)}(hF``const char *governor_name`` name of the policy to choose frequency. h](j)}(h``const char *governor_name``h]j,)}(hj 3h]hconst char *governor_name}(hj"3hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj3ubj)}(hhh]h)}(h'name of the policy to choose frequency.h]h'name of the policy to choose frequency.}(hj93hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj53hM hj63ubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhj53hM hj2ubj)}(hP``void *data`` devfreq driver pass to governors, governor should not change it. h](j)}(h``void *data``h]j,)}(hjY3h]h void *data}(hj[3hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjW3ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hjS3ubj)}(hhh]h)}(h@devfreq driver pass to governors, governor should not change it.h]h@devfreq driver pass to governors, governor should not change it.}(hjr3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjn3hM hjo3ubah}(h]h ]h"]h$]h&]uh1jhjS3ubeh}(h]h ]h"]h$]h&]uh1jhjn3hM hj2ubeh}(h]h ]h"]h$]h&]uh1jhj2ubh)}(h**Description**h]jF)}(hj3h]h Description}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj3ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj2ubh)}(hThis function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.h]hThis function manages automatically the memory of devfreq device using device resource management and simplify the free operation for memory of devfreq device.}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj2ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'devm_devfreq_remove_device (C function)c.devm_devfreq_remove_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(hMvoid devm_devfreq_remove_device (struct device *dev, struct devfreq *devfreq)h]j)}(hLvoid devm_devfreq_remove_device(struct device *dev, struct devfreq *devfreq)h](j)}(hvoidh]hvoid}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMvubj)}(h h]h }(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3hhhj3hMvubj)}(hdevm_devfreq_remove_deviceh]j)}(hdevm_devfreq_remove_deviceh]hdevm_devfreq_remove_device}(hj3hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj3ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj3hhhj3hMvubj)}(h-(struct device *dev, struct devfreq *devfreq)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hj#4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubh)}(hhh]j)}(hdeviceh]hdevice}(hj44hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj14ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj64modnameN classnameNj@jC)}jF]jI)}j<j3sbc.devm_devfreq_remove_deviceasbuh1hhj4ubj)}(h h]h }(hjT4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj])}(hj`h]h*}(hjb4hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj4ubj)}(hdevh]hdev}(hjo4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj4ubj)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj4modnameN classnameNj@jC)}jF]jP4c.devm_devfreq_remove_deviceasbuh1hhj4ubj)}(h h]h }(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubj])}(hj`h]h*}(hj4hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj4ubj)}(hdevfreqh]hdevfreq}(hj4hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj4ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj4ubeh}(h]h ]h"]h$]h&]hhuh1jhj3hhhj3hMvubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj3hhhj3hMvubah}(h]j3ah ](j j eh"]h$]h&]jj)jhuh1jhj3hMvhj3hhubj)}(hhh]h)}(h(Resource-managed devfreq_remove_device()h]h(Resource-managed devfreq_remove_device()}(hj 5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMrhj5hhubah}(h]h ]h"]h$]h&]uh1jhj3hhhj3hMvubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j!5j7j!5j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct device *dev`` the device from which to remove devfreq feature. ``struct devfreq *devfreq`` the devfreq instance to be removedh](h)}(h**Parameters**h]jF)}(hj+5h]h Parameters}(hj-5hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj)5ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMvhj%5ubj)}(hhh](j)}(hH``struct device *dev`` the device from which to remove devfreq feature. h](j)}(h``struct device *dev``h]j,)}(hjJ5h]hstruct device *dev}(hjL5hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjH5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMshjD5ubj)}(hhh]h)}(h0the device from which to remove devfreq feature.h]h0the device from which to remove devfreq feature.}(hjc5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj_5hMshj`5ubah}(h]h ]h"]h$]h&]uh1jhjD5ubeh}(h]h ]h"]h$]h&]uh1jhj_5hMshjA5ubj)}(h>``struct devfreq *devfreq`` the devfreq instance to be removedh](j)}(h``struct devfreq *devfreq``h]j,)}(hj5h]hstruct devfreq *devfreq}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj5ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMuhj}5ubj)}(hhh]h)}(h"the devfreq instance to be removedh]h"the devfreq instance to be removed}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMthj5ubah}(h]h ]h"]h$]h&]uh1jhj}5ubeh}(h]h ]h"]h$]h&]uh1jhj5hMuhjA5ubeh}(h]h ]h"]h$]h&]uh1jhj%5ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_suspend_device (C function)c.devfreq_suspend_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(h4int devfreq_suspend_device (struct devfreq *devfreq)h]j)}(h3int devfreq_suspend_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5hhhj5hMubj)}(hdevfreq_suspend_deviceh]j)}(hdevfreq_suspend_deviceh]hdevfreq_suspend_device}(hj5hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj5hhhj5hMubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj)}(h h]h }(hj'6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj86hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj56ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj:6modnameN classnameNj@jC)}jF]jI)}j<j6sbc.devfreq_suspend_deviceasbuh1hhj6ubj)}(h h]h }(hjX6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubj])}(hj`h]h*}(hjf6hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj6ubj)}(hdevfreqh]hdevfreq}(hjs6hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj6ubah}(h]h ]h"]h$]h&]hhuh1jhj5hhhj5hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj5hhhj5hMubah}(h]j5ah ](j j eh"]h$]h&]jj)jhuh1jhj5hMhj5hhubj)}(hhh]h)}(hSuspend devfreq of a device.h]hSuspend devfreq of a device.}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM~hj6hhubah}(h]h ]h"]h$]h&]uh1jhj5hhhj5hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j6j7j6j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be suspended **Description** This function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.h](h)}(h**Parameters**h]jF)}(hj6h]h Parameters}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj6ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj6ubj)}(hhh]j)}(hA``struct devfreq *devfreq`` the devfreq instance to be suspended h](j)}(h``struct devfreq *devfreq``h]j,)}(hj6h]hstruct devfreq *devfreq}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj6ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj6ubj)}(hhh]h)}(h$the devfreq instance to be suspendedh]h$the devfreq instance to be suspended}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubeh}(h]h ]h"]h$]h&]uh1jhj6hMhj6ubah}(h]h ]h"]h$]h&]uh1jhj6ubh)}(h**Description**h]jF)}(hj7h]h Description}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj7ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj6ubh)}(hThis function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.h]hThis function is intended to be called by the pm callbacks (e.g., runtime_suspend, suspend) of the device driver that holds the devfreq.}(hj/7hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj6ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j"devfreq_resume_device (C function)c.devfreq_resume_devicehNtauh1jhjhhhNhNubj)}(hhh](j)}(h3int devfreq_resume_device (struct devfreq *devfreq)h]j)}(h2int devfreq_resume_device(struct devfreq *devfreq)h](j)}(hinth]hint}(hj^7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ7hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjm7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZ7hhhjl7hMubj)}(hdevfreq_resume_deviceh]j)}(hdevfreq_resume_deviceh]hdevfreq_resume_device}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj{7ubah}(h]h ](jjeh"]h$]h&]hhuh1jhjZ7hhhjl7hMubj)}(h(struct devfreq *devfreq)h]j)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj7modnameN classnameNj@jC)}jF]jI)}j<j7sbc.devfreq_resume_deviceasbuh1hhj7ubj)}(h h]h }(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubj])}(hj`h]h*}(hj7hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj7ubj)}(hdevfreqh]hdevfreq}(hj7hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj7ubah}(h]h ]h"]h$]h&]hhuh1jhjZ7hhhjl7hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjV7hhhjl7hMubah}(h]jQ7ah ](j j eh"]h$]h&]jj)jhuh1jhjl7hMhjS7hhubj)}(hhh]h)}(hResume devfreq of a device.h]hResume devfreq of a device.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj8hhubah}(h]h ]h"]h$]h&]uh1jhjS7hhhjl7hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j68j7j68j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq *devfreq`` the devfreq instance to be resumed **Description** This function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.h](h)}(h**Parameters**h]jF)}(hj@8h]h Parameters}(hjB8hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj>8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj:8ubj)}(hhh]j)}(h?``struct devfreq *devfreq`` the devfreq instance to be resumed h](j)}(h``struct devfreq *devfreq``h]j,)}(hj_8h]hstruct devfreq *devfreq}(hja8hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj]8ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjY8ubj)}(hhh]h)}(h"the devfreq instance to be resumedh]h"the devfreq instance to be resumed}(hjx8hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjt8hMhju8ubah}(h]h ]h"]h$]h&]uh1jhjY8ubeh}(h]h ]h"]h$]h&]uh1jhjt8hMhjV8ubah}(h]h ]h"]h$]h&]uh1jhj:8ubh)}(h**Description**h]jF)}(hj8h]h Description}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj8ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj:8ubh)}(hThis function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.h]hThis function is intended to be called by the pm callbacks (e.g., runtime_resume, resume) of the device driver that holds the devfreq.}(hj8hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj:8ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j!devfreq_add_governor (C function)c.devfreq_add_governorhNtauh1jhjhhhNhNubj)}(hhh](j)}(hhj;ubj)}(hhh](j)}(h:``struct device *dev`` device which adds devfreq governor h](j)}(h``struct device *dev``h]j,)}(hj;h]hstruct device *dev}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj;ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM;hj;ubj)}(hhh]h)}(h"device which adds devfreq governorh]h"device which adds devfreq governor}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hM;hj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hM;hj;ubj)}(hG``struct devfreq_governor *governor`` the devfreq governor to be added h](j)}(h%``struct devfreq_governor *governor``h]j,)}(hj;h]h!struct devfreq_governor *governor}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj;ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM<hj;ubj)}(hhh]h)}(h the devfreq governor to be addedh]h the devfreq governor to be added}(hj;hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj;hM<hj;ubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj;hM<hj;ubeh}(h]h ]h"]h$]h&]uh1jhj;ubh)}(h**Description**h]jF)}(hj<h]h Description}(hj!<hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj<ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM>hj;ubh)}(h=This is a resource-managed variant of devfreq_add_governor().h]h=This is a resource-managed variant of devfreq_add_governor().}(hj5<hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM>hj;ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_remove_governor (C function)c.devfreq_remove_governorhNtauh1jhjhhhNhNubj)}(hhh](j)}(h?int devfreq_remove_governor (struct devfreq_governor *governor)h]j)}(h>int devfreq_remove_governor(struct devfreq_governor *governor)h](j)}(hinth]hint}(hjd<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`<hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMRubj)}(h h]h }(hjs<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`<hhhjr<hMRubj)}(hdevfreq_remove_governorh]j)}(hdevfreq_remove_governorh]hdevfreq_remove_governor}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`<hhhjr<hMRubj)}(h#(struct devfreq_governor *governor)h]j)}(h!struct devfreq_governor *governorh](j)}(hjh]hstruct}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubh)}(hhh]j)}(hdevfreq_governorh]hdevfreq_governor}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj<modnameN classnameNj@jC)}jF]jI)}j<j<sbc.devfreq_remove_governorasbuh1hhj<ubj)}(h h]h }(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubj])}(hj`h]h*}(hj<hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj<ubj)}(hgovernorh]hgovernor}(hj<hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj<ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj<ubah}(h]h ]h"]h$]h&]hhuh1jhj`<hhhjr<hMRubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj\<hhhjr<hMRubah}(h]jW<ah ](j j eh"]h$]h&]jj)jhuh1jhjr<hMRhjY<hhubj)}(hhh]h)}(h%Remove devfreq feature from a device.h]h%Remove devfreq feature from a device.}(hj$=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMOhj!=hhubah}(h]h ]h"]h$]h&]uh1jhjY<hhhjr<hMRubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j<=j7j<=j8j9j:uh1jhhhjhNhNubj<)}(hZ**Parameters** ``struct devfreq_governor *governor`` the devfreq governor to be removedh](h)}(h**Parameters**h]jF)}(hjF=h]h Parameters}(hjH=hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjD=ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMShj@=ubj)}(hhh]j)}(hH``struct devfreq_governor *governor`` the devfreq governor to be removedh](j)}(h%``struct devfreq_governor *governor``h]j,)}(hje=h]h!struct devfreq_governor *governor}(hjg=hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjc=ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMUhj_=ubj)}(hhh]h)}(h"the devfreq governor to be removedh]h"the devfreq governor to be removed}(hj~=hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMPhj{=ubah}(h]h ]h"]h$]h&]uh1jhj_=ubeh}(h]h ]h"]h$]h&]uh1jhjz=hMUhj\=ubah}(h]h ]h"]h$]h&]uh1jhj@=ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_recommended_opp (C function)c.devfreq_recommended_opphNtauh1jhjhhhNhNubj)}(hhh](j)}(h`struct dev_pm_opp * devfreq_recommended_opp (struct device *dev, unsigned long *freq, u32 flags)h]j)}(h^struct dev_pm_opp *devfreq_recommended_opp(struct device *dev, unsigned long *freq, u32 flags)h](j)}(hjh]hstruct}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hMubh)}(hhh]j)}(h dev_pm_opph]h dev_pm_opp}(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj=modnameN classnameNj@jC)}jF]jI)}j<devfreq_recommended_oppsbc.devfreq_recommended_oppasbuh1hhj=hhhj=hMubj)}(h h]h }(hj=hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=hhhj=hMubj])}(hj`h]h*}(hj >hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj=hhhj=hMubj)}(hdevfreq_recommended_opph]j)}(hj=h]hdevfreq_recommended_opp}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj=hhhj=hMubj)}(h4(struct device *dev, unsigned long *freq, u32 flags)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj9>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5>ubj)}(h h]h }(hjF>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5>ubh)}(hhh]j)}(hdeviceh]hdevice}(hjW>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjT>ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjY>modnameN classnameNj@jC)}jF]j=c.devfreq_recommended_oppasbuh1hhj5>ubj)}(h h]h }(hju>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5>ubj])}(hj`h]h*}(hj>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj5>ubj)}(hdevh]hdev}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj5>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1>ubj)}(hunsigned long *freqh](j)}(hunsignedh]hunsigned}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(hlongh]hlong}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj)}(h h]h }(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubj])}(hj`h]h*}(hj>hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj>ubj)}(hfreqh]hfreq}(hj>hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1>ubj)}(h u32 flagsh](h)}(hhh]j)}(hu32h]hu32}(hj ?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj ?modnameN classnameNj@jC)}jF]j=c.devfreq_recommended_oppasbuh1hhj?ubj)}(h h]h }(hj(?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubj)}(hflagsh]hflags}(hj6?hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj1>ubeh}(h]h ]h"]h$]h&]hhuh1jhj=hhhj=hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj=hhhj=hMubah}(h]j=ah ](j j eh"]h$]h&]jj)jhuh1jhj=hMhj=hhubj)}(hhh]h)}(hNHelper function to get proper OPP for the freq value given to target callback.h]hNHelper function to get proper OPP for the freq value given to target callback.}(hj`?hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM hj]?hhubah}(h]h ]h"]h$]h&]uh1jhj=hhhj=hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jx?j7jx?j8j9j:uh1jhhhjhNhNubj<)}(hX1**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``unsigned long *freq`` The frequency given to target function ``u32 flags`` Flags handed from devfreq framework. **Description** The callers are required to call dev_pm_opp_put() for the returned OPP after use.h](h)}(h**Parameters**h]jF)}(hj?h]h Parameters}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj?ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj|?ubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j,)}(hj?h]hstruct device *dev}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj?ubj)}(h?``unsigned long *freq`` The frequency given to target function h](j)}(h``unsigned long *freq``h]j,)}(hj?h]hunsigned long *freq}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj?ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj?ubj)}(hhh]h)}(h&The frequency given to target functionh]h&The frequency given to target function}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?hMhj?ubah}(h]h ]h"]h$]h&]uh1jhj?ubeh}(h]h ]h"]h$]h&]uh1jhj?hMhj?ubj)}(h3``u32 flags`` Flags handed from devfreq framework. h](j)}(h ``u32 flags``h]j,)}(hj@h]h u32 flags}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj@ubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj @ubj)}(hhh]h)}(h$Flags handed from devfreq framework.h]h$Flags handed from devfreq framework.}(hj,@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj(@hMhj)@ubah}(h]h ]h"]h$]h&]uh1jhj @ubeh}(h]h ]h"]h$]h&]uh1jhj(@hMhj?ubeh}(h]h ]h"]h$]h&]uh1jhj|?ubh)}(h**Description**h]jF)}(hjN@h]h Description}(hjP@hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjL@ubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj|?ubh)}(hQThe callers are required to call dev_pm_opp_put() for the returned OPP after use.h]hQThe callers are required to call dev_pm_opp_put() for the returned OPP after use.}(hjd@hhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhj|?ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j*devfreq_register_opp_notifier (C function)c.devfreq_register_opp_notifierhNtauh1jhjhhhNhNubj)}(hhh](j)}(hOint devfreq_register_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hNint devfreq_register_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM6ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@hhhj@hM6ubj)}(hdevfreq_register_opp_notifierh]j)}(hdevfreq_register_opp_notifierh]hdevfreq_register_opp_notifier}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj@hhhj@hM6ubj)}(h-(struct device *dev, struct devfreq *devfreq)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj)}(h h]h }(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubh)}(hhh]j)}(hdeviceh]hdevice}(hj@hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj@modnameN classnameNj@jC)}jF]jI)}j<j@sbc.devfreq_register_opp_notifierasbuh1hhj@ubj)}(h h]h }(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubj])}(hj`h]h*}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj@ubj)}(hdevh]hdev}(hj)AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj@ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj@ubj)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjBAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Aubj)}(h h]h }(hjOAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Aubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj`AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]Aubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjbAmodnameN classnameNj@jC)}jF]j Ac.devfreq_register_opp_notifierasbuh1hhj>Aubj)}(h h]h }(hj~AhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Aubj])}(hj`h]h*}(hjAhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj>Aubj)}(hdevfreqh]hdevfreq}(hjAhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj>Aubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj@ubeh}(h]h ]h"]h$]h&]hhuh1jhj@hhhj@hM6ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj@hhhj@hM6ubah}(h]j@ah ](j j eh"]h$]h&]jj)jhuh1jhj@hM6hj@hhubj)}(hhh]h)}(hWHelper function to get devfreq notified for any changes in the OPP availability changesh]hWHelper function to get devfreq notified for any changes in the OPP availability changes}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM0hjAhhubah}(h]h ]h"]h$]h&]uh1jhj@hhhj@hM6ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jAj7jAj8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object.h](h)}(h**Parameters**h]jF)}(hjAh]h Parameters}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjAubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM4hjAubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j,)}(hjBh]hstruct device *dev}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjBubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM3hjAubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjBhM3hjBubah}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ]h"]h$]h&]uh1jhjBhM3hjAubj)}(h/``struct devfreq *devfreq`` The devfreq object.h](j)}(h``struct devfreq *devfreq``h]j,)}(hj=Bh]hstruct devfreq *devfreq}(hj?BhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj;Bubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM5hj7Bubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjVBhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM4hjSBubah}(h]h ]h"]h$]h&]uh1jhj7Bubeh}(h]h ]h"]h$]h&]uh1jhjRBhM5hjAubeh}(h]h ]h"]h$]h&]uh1jhjAubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j,devfreq_unregister_opp_notifier (C function)!c.devfreq_unregister_opp_notifierhNtauh1jhjhhhNhNubj)}(hhh](j)}(hQint devfreq_unregister_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hPint devfreq_unregister_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMFubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBhhhjBhMFubj)}(hdevfreq_unregister_opp_notifierh]j)}(hdevfreq_unregister_opp_notifierh]hdevfreq_unregister_opp_notifier}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ](jjeh"]h$]h&]hhuh1jhjBhhhjBhMFubj)}(h-(struct device *dev, struct devfreq *devfreq)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj)}(h h]h }(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubh)}(hhh]j)}(hdeviceh]hdevice}(hjBhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjBmodnameN classnameNj@jC)}jF]jI)}j<jBsb!c.devfreq_unregister_opp_notifierasbuh1hhjBubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubj])}(hj`h]h*}(hj ChhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjBubj)}(hdevh]hdev}(hj-ChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjBubj)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjFChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBCubj)}(h h]h }(hjSChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBCubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjdChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaCubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjfCmodnameN classnameNj@jC)}jF]jC!c.devfreq_unregister_opp_notifierasbuh1hhjBCubj)}(h h]h }(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBCubj])}(hj`h]h*}(hjChhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjBCubj)}(hdevfreqh]hdevfreq}(hjChhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjBCubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjBubeh}(h]h ]h"]h$]h&]hhuh1jhjBhhhjBhMFubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjBhhhjBhMFubah}(h]jBah ](j j eh"]h$]h&]jj)jhuh1jhjBhMFhjBhhubj)}(hhh]h)}(hiHelper function to stop getting devfreq notified for any changes in the OPP availability changes anymore.h]hiHelper function to stop getting devfreq notified for any changes in the OPP availability changes anymore.}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM=hjChhubah}(h]h ]h"]h$]h&]uh1jhjBhhhjBhMFubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jCj7jCj8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object. **Description** At exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.h](h)}(h**Parameters**h]jF)}(hjCh]h Parameters}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjCubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMAhjCubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j,)}(hjDh]hstruct device *dev}(hj DhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjDubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chM@hjDubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hj!DhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjDhM@hjDubah}(h]h ]h"]h$]h&]uh1jhjDubeh}(h]h ]h"]h$]h&]uh1jhjDhM@hjCubj)}(h0``struct devfreq *devfreq`` The devfreq object. h](j)}(h``struct devfreq *devfreq``h]j,)}(hjADh]hstruct devfreq *devfreq}(hjCDhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj?Dubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMAhj;Dubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjZDhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjVDhMAhjWDubah}(h]h ]h"]h$]h&]uh1jhj;Dubeh}(h]h ]h"]h$]h&]uh1jhjVDhMAhjCubeh}(h]h ]h"]h$]h&]uh1jhjCubh)}(h**Description**h]jF)}(hj|Dh]h Description}(hj~DhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjzDubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMChjCubh)}(hdAt exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.h]hdAt exit() callback of devfreq_dev_profile, this must be included if devfreq_recommended_opp is used.}(hjDhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMChjCubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j/devm_devfreq_register_opp_notifier (C function)$c.devm_devfreq_register_opp_notifierhNtauh1jhjhhhNhNubj)}(hhh](j)}(hTint devm_devfreq_register_opp_notifier (struct device *dev, struct devfreq *devfreq)h]j)}(hSint devm_devfreq_register_opp_notifier(struct device *dev, struct devfreq *devfreq)h](j)}(hinth]hint}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMWubj)}(h h]h }(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDhhhjDhMWubj)}(h"devm_devfreq_register_opp_notifierh]j)}(h"devm_devfreq_register_opp_notifierh]h"devm_devfreq_register_opp_notifier}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubah}(h]h ](jjeh"]h$]h&]hhuh1jhjDhhhjDhMWubj)}(h-(struct device *dev, struct devfreq *devfreq)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjDhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubj)}(h h]h }(hj EhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjDubh)}(hhh]j)}(hdeviceh]hdevice}(hjEhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjEubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjEmodnameN classnameNj@jC)}jF]jI)}j<jDsb$c.devm_devfreq_register_opp_notifierasbuh1hhjDubj)}(h h]h }(hj``struct notifier_block *nb`` The notifier block to register. h](j)}(h``struct notifier_block *nb``h]j,)}(hjJh]hstruct notifier_block *nb}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjJubj)}(hhh]h)}(hThe notifier block to register.h]hThe notifier block to register.}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjJhMhjJubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjJhMhjJubj)}(h2``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER.h](j)}(h``unsigned int list``h]j,)}(hjJh]hunsigned int list}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjJubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjJubj)}(hhh]h)}(hDEVFREQ_TRANSITION_NOTIFIER.h]hDEVFREQ_TRANSITION_NOTIFIER.}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjKubah}(h]h ]h"]h$]h&]uh1jhjJubeh}(h]h ]h"]h$]h&]uh1jhjKhMhjJubeh}(h]h ]h"]h$]h&]uh1jhjfJubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j+devm_devfreq_register_notifier (C function) c.devm_devfreq_register_notifierhNtauh1jhjhhhNhNubj)}(hhh](j)}(h~int devm_devfreq_register_notifier (struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h]j)}(h}int devm_devfreq_register_notifier(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](j)}(hinth]hint}(hjWKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSKhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjfKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSKhhhjeKhMubj)}(hdevm_devfreq_register_notifierh]j)}(hdevm_devfreq_register_notifierh]hdevm_devfreq_register_notifier}(hjxKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtKubah}(h]h ](jjeh"]h$]h&]hhuh1jhjSKhhhjeKhMubj)}(h[(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubh)}(hhh]j)}(hdeviceh]hdevice}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjKmodnameN classnameNj@jC)}jF]jI)}j<jzKsb c.devm_devfreq_register_notifierasbuh1hhjKubj)}(h h]h }(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubj])}(hj`h]h*}(hjKhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjKubj)}(hdevh]hdev}(hjKhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjKubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjKubj)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hj$LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!Lubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj&LmodnameN classnameNj@jC)}jF]jK c.devm_devfreq_register_notifierasbuh1hhjLubj)}(h h]h }(hjBLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj])}(hj`h]h*}(hjPLhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjLubj)}(hdevfreqh]hdevfreq}(hj]LhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjKubj)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hjvLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubh)}(hhh]j)}(hnotifier_blockh]hnotifier_block}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjLmodnameN classnameNj@jC)}jF]jK c.devm_devfreq_register_notifierasbuh1hhjrLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubj])}(hj`h]h*}(hjLhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjrLubj)}(hnbh]hnb}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjrLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjKubj)}(hunsigned int listh](j)}(hunsignedh]hunsigned}(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjLhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hinth]hint}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(h h]h }(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubj)}(hlisth]hlist}(hjMhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjLubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjKubeh}(h]h ]h"]h$]h&]hhuh1jhjSKhhhjeKhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjOKhhhjeKhMubah}(h]jJKah ](j j eh"]h$]h&]jj)jhuh1jhjeKhMhjLKhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjLKhhhjeKhMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jQMj7jQMj8j9j:uh1jhhhjhNhNubj<)}(hXL**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object. ``struct notifier_block *nb`` The notifier block to be unregistered. ``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER. **Description** - Resource-managed devfreq_register_notifier()h](h)}(h**Parameters**h]jF)}(hj[Mh]h Parameters}(hj]MhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjYMubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjUMubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j,)}(hjzMh]hstruct device *dev}(hj|MhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjxMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjtMubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjtMubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjqMubj)}(h0``struct devfreq *devfreq`` The devfreq object. h](j)}(h``struct devfreq *devfreq``h]j,)}(hjMh]hstruct devfreq *devfreq}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjMubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjMhMhjMubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjMhMhjqMubj)}(hE``struct notifier_block *nb`` The notifier block to be unregistered. h](j)}(h``struct notifier_block *nb``h]j,)}(hjMh]hstruct notifier_block *nb}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjMubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjMubj)}(hhh]h)}(h&The notifier block to be unregistered.h]h&The notifier block to be unregistered.}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjNhMhjNubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhjNhMhjqMubj)}(h3``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER. h](j)}(h``unsigned int list``h]j,)}(hj%Nh]hunsigned int list}(hj'NhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj#Nubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjNubj)}(hhh]h)}(hDEVFREQ_TRANSITION_NOTIFIER.h]hDEVFREQ_TRANSITION_NOTIFIER.}(hj>NhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:NhMhj;Nubah}(h]h ]h"]h$]h&]uh1jhjNubeh}(h]h ]h"]h$]h&]uh1jhj:NhMhjqMubeh}(h]h ]h"]h$]h&]uh1jhjUMubh)}(h**Description**h]jF)}(hj`Nh]h Description}(hjbNhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj^Nubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjUMubh block_quote)}(h.- Resource-managed devfreq_register_notifier()h]h bullet_list)}(hhh]h list_item)}(h,Resource-managed devfreq_register_notifier()h]h)}(hjNh]h,Resource-managed devfreq_register_notifier()}(hjNhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjNubah}(h]h ]h"]h$]h&]uh1jNhj~Nubah}(h]h ]h"]h$]h&]bullet-uh1j|NhjNhMhjxNubah}(h]h ]h"]h$]h&]uh1jvNhjNhMhjUMubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j-devm_devfreq_unregister_notifier (C function)"c.devm_devfreq_unregister_notifierhNtauh1jhjhhhNhNubj)}(hhh](j)}(hvoid devm_devfreq_unregister_notifier (struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h]j)}(hvoid devm_devfreq_unregister_notifier(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](j)}(hvoidh]hvoid}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMubj)}(h h]h }(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNhhhjNhMubj)}(h devm_devfreq_unregister_notifierh]j)}(h devm_devfreq_unregister_notifierh]h devm_devfreq_unregister_notifier}(hjNhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNubah}(h]h ](jjeh"]h$]h&]hhuh1jhjNhhhjNhMubj)}(h[(struct device *dev, struct devfreq *devfreq, struct notifier_block *nb, unsigned int list)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubh)}(hhh]j)}(hdeviceh]hdevice}(hj$OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj!Oubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj&OmodnameN classnameNj@jC)}jF]jI)}j<jNsb"c.devm_devfreq_unregister_notifierasbuh1hhjOubj)}(h h]h }(hjDOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj])}(hj`h]h*}(hjROhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjOubj)}(hdevh]hdev}(hj_OhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubj)}(hstruct devfreq *devfreqh](j)}(hjh]hstruct}(hjxOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtOubh)}(hhh]j)}(hdevfreqh]hdevfreq}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjOmodnameN classnameNj@jC)}jF]j@O"c.devm_devfreq_unregister_notifierasbuh1hhjtOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtOubj])}(hj`h]h*}(hjOhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjtOubj)}(hdevfreqh]hdevfreq}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjtOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubj)}(hstruct notifier_block *nbh](j)}(hjh]hstruct}(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj)}(h h]h }(hjOhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubh)}(hhh]j)}(hnotifier_blockh]hnotifier_block}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjPmodnameN classnameNj@jC)}jF]j@O"c.devm_devfreq_unregister_notifierasbuh1hhjOubj)}(h h]h }(hj$PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubj])}(hj`h]h*}(hj2PhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjOubj)}(hnbh]hnb}(hj?PhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubj)}(hunsigned int listh](j)}(hunsignedh]hunsigned}(hjXPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTPubj)}(h h]h }(hjfPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTPubj)}(hinth]hint}(hjtPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTPubj)}(h h]h }(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTPubj)}(hlisth]hlist}(hjPhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjTPubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjNubeh}(h]h ]h"]h$]h&]hhuh1jhjNhhhjNhMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjNhhhjNhMubah}(h]jNah ](j j eh"]h$]h&]jj)jhuh1jhjNhMhjNhhubj)}(hhh]h}(h]h ]h"]h$]h&]uh1jhjNhhhjNhMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jPj7jPj8j9j:uh1jhhhjhNhNubj<)}(hXN**Parameters** ``struct device *dev`` The devfreq user device. (parent of devfreq) ``struct devfreq *devfreq`` The devfreq object. ``struct notifier_block *nb`` The notifier block to be unregistered. ``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER. **Description** - Resource-managed devfreq_unregister_notifier()h](h)}(h**Parameters**h]jF)}(hjPh]h Parameters}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjPubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjPubj)}(hhh](j)}(hD``struct device *dev`` The devfreq user device. (parent of devfreq) h](j)}(h``struct device *dev``h]j,)}(hjPh]hstruct device *dev}(hjPhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjPubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjPubj)}(hhh]h)}(h,The devfreq user device. (parent of devfreq)h]h,The devfreq user device. (parent of devfreq)}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjQubah}(h]h ]h"]h$]h&]uh1jhjPubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjPubj)}(h0``struct devfreq *devfreq`` The devfreq object. h](j)}(h``struct devfreq *devfreq``h]j,)}(hj%Qh]hstruct devfreq *devfreq}(hj'QhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj#Qubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjQubj)}(hhh]h)}(hThe devfreq object.h]hThe devfreq object.}(hj>QhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj:QhMhj;Qubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhj:QhMhjPubj)}(hE``struct notifier_block *nb`` The notifier block to be unregistered. h](j)}(h``struct notifier_block *nb``h]j,)}(hj^Qh]hstruct notifier_block *nb}(hj`QhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj\Qubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjXQubj)}(hhh]h)}(h&The notifier block to be unregistered.h]h&The notifier block to be unregistered.}(hjwQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjsQhMhjtQubah}(h]h ]h"]h$]h&]uh1jhjXQubeh}(h]h ]h"]h$]h&]uh1jhjsQhMhjPubj)}(h3``unsigned int list`` DEVFREQ_TRANSITION_NOTIFIER. h](j)}(h``unsigned int list``h]j,)}(hjQh]hunsigned int list}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hjQubah}(h]h ]h"]h$]h&]uh1jh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjQubj)}(hhh]h)}(hDEVFREQ_TRANSITION_NOTIFIER.h]hDEVFREQ_TRANSITION_NOTIFIER.}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjQhMhjQubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhjQhMhjPubeh}(h]h ]h"]h$]h&]uh1jhjPubh)}(h**Description**h]jF)}(hjQh]h Description}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjQubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjPubjwN)}(h0- Resource-managed devfreq_unregister_notifier()h]j}N)}(hhh]jN)}(h.Resource-managed devfreq_unregister_notifier()h]h)}(hjQh]h.Resource-managed devfreq_unregister_notifier()}(hjQhhhNhNubah}(h]h ]h"]h$]h&]uh1hh\/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:27: ./drivers/devfreq/devfreq.chMhjQubah}(h]h ]h"]h$]h&]uh1jNhjQubah}(h]h ]h"]h$]h&]jNjNuh1j|NhjRhMhjQubah}(h]h ]h"]h$]h&]uh1jvNhjRhMhjPubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j&devfreq_event_enable_edev (C function)c.devfreq_event_enable_edevhNtauh1jhjhhhNhNubj)}(hhh](j)}(h>int devfreq_event_enable_edev (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_enable_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hj3RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/Rhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK%ubj)}(h h]h }(hjBRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/RhhhjARhK%ubj)}(hdevfreq_event_enable_edevh]j)}(hdevfreq_event_enable_edevh]hdevfreq_event_enable_edev}(hjTRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjPRubah}(h]h ](jjeh"]h$]h&]hhuh1jhj/RhhhjARhK%ubj)}(h (struct devfreq_event_dev *edev)h]j)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjpRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlRubj)}(h h]h }(hj}RhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlRubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjRmodnameN classnameNj@jC)}jF]jI)}j<jVRsbc.devfreq_event_enable_edevasbuh1hhjlRubj)}(h h]h }(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlRubj])}(hj`h]h*}(hjRhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjlRubj)}(hedevh]hedev}(hjRhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjlRubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjhRubah}(h]h ]h"]h$]h&]hhuh1jhj/RhhhjARhK%ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj+RhhhjARhK%ubah}(h]j&Rah ](j j eh"]h$]h&]jj)jhuh1jhjARhK%hj(Rhhubj)}(hhh]h)}(hPEnable the devfreq-event dev and increase the enable_count of devfreq-event dev.h]hPEnable the devfreq-event dev and increase the enable_count of devfreq-event dev.}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjRhhubah}(h]h ]h"]h$]h&]uh1jhj(RhhhjARhK%ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j Sj7j Sj8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.h](h)}(h**Parameters**h]jF)}(hjSh]h Parameters}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjSubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK!hjSubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j,)}(hj4Sh]hstruct devfreq_event_dev *edev}(hj6ShhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj2Subah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj.Subj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjMShhhNhNubah}(h]h ]h"]h$]h&]uh1hhjIShKhjJSubah}(h]h ]h"]h$]h&]uh1jhj.Subeh}(h]h ]h"]h$]h&]uh1jhjIShKhj+Subah}(h]h ]h"]h$]h&]uh1jhjSubh)}(h**Description**h]jF)}(hjoSh]h Description}(hjqShhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjmSubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK!hjSubh)}(hNote that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.h]hNote that this function increase the enable_count and enable the devfreq-event device. The devfreq-event device should be enabled before using it by devfreq device.}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK!hjSubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j'devfreq_event_disable_edev (C function)c.devfreq_event_disable_edevhNtauh1jhjhhhNhNubj)}(hhh](j)}(h?int devfreq_event_disable_edev (struct devfreq_event_dev *edev)h]j)}(h>int devfreq_event_disable_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKEubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjShhhjShKEubj)}(hdevfreq_event_disable_edevh]j)}(hdevfreq_event_disable_edevh]hdevfreq_event_disable_edev}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubah}(h]h ](jjeh"]h$]h&]hhuh1jhjShhhjShKEubj)}(h (struct devfreq_event_dev *edev)h]j)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj)}(h h]h }(hjShhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj Tubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjTmodnameN classnameNj@jC)}jF]jI)}j<jSsbc.devfreq_event_disable_edevasbuh1hhjSubj)}(h h]h }(hj/ThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubj])}(hj`h]h*}(hj=ThhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjSubj)}(hedevh]hedev}(hjJThhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjSubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjSubah}(h]h ]h"]h$]h&]hhuh1jhjShhhjShKEubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjShhhjShKEubah}(h]jSah ](j j eh"]h$]h&]jj)jhuh1jhjShKEhjShhubj)}(hhh]h)}(hUDisable the devfreq-event dev and decrease the enable_count of the devfreq-event dev.h]hUDisable the devfreq-event dev and decrease the enable_count of the devfreq-event dev.}(hjtThhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjTubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhjThK>hjTubah}(h]h ]h"]h$]h&]uh1jhjTubeh}(h]h ]h"]h$]h&]uh1jhjThK>hjTubah}(h]h ]h"]h$]h&]uh1jhjTubh)}(h**Description**h]jF)}(hjTh]h Description}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjTubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK@hjTubh)}(hNote that this function decrease the enable_count and disable the devfreq-event device. After the devfreq-event device is disabled, devfreq device can't use the devfreq-event device for get/set/reset operations.h]hNote that this function decrease the enable_count and disable the devfreq-event device. After the devfreq-event device is disabled, devfreq device can’t use the devfreq-event device for get/set/reset operations.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chK@hjTubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j%devfreq_event_is_enabled (C function)c.devfreq_event_is_enabledhNtauh1jhjhhhNhNubj)}(hhh](j)}(h>bool devfreq_event_is_enabled (struct devfreq_event_dev *edev)h]j)}(h=bool devfreq_event_is_enabled(struct devfreq_event_dev *edev)h](j)}(hboolh]hbool}(hj5UhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1Uhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKjubj)}(h h]h }(hjDUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj1UhhhjCUhKjubj)}(hdevfreq_event_is_enabledh]j)}(hdevfreq_event_is_enabledh]hdevfreq_event_is_enabled}(hjVUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjRUubah}(h]h ](jjeh"]h$]h&]hhuh1jhj1UhhhjCUhKjubj)}(h (struct devfreq_event_dev *edev)h]j)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjrUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnUubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjUubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjUmodnameN classnameNj@jC)}jF]jI)}j<jXUsbc.devfreq_event_is_enabledasbuh1hhjnUubj)}(h h]h }(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnUubj])}(hj`h]h*}(hjUhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjnUubj)}(hedevh]hedev}(hjUhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjnUubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjjUubah}(h]h ]h"]h$]h&]hhuh1jhj1UhhhjCUhKjubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj-UhhhjCUhKjubah}(h]j(Uah ](j j eh"]h$]h&]jj)jhuh1jhjCUhKjhj*Uhhubj)}(hhh]h)}(h2Check whether devfreq-event dev is enabled or not.h]h2Check whether devfreq-event dev is enabled or not.}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKbhjUhhubah}(h]h ]h"]h$]h&]uh1jhj*UhhhjCUhKjubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j Vj7j Vj8j9j:uh1jhhhjhNhNubj<)}(hX**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.h](h)}(h**Parameters**h]jF)}(hjVh]h Parameters}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjVubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKfhjVubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j,)}(hj6Vh]hstruct devfreq_event_dev *edev}(hj8VhhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj4Vubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKdhj0Vubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hjOVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjKVhKdhjLVubah}(h]h ]h"]h$]h&]uh1jhj0Vubeh}(h]h ]h"]h$]h&]uh1jhjKVhKdhj-Vubah}(h]h ]h"]h$]h&]uh1jhjVubh)}(h**Description**h]jF)}(hjqVh]h Description}(hjsVhhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjoVubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKfhjVubh)}(hNote that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.h]hNote that this function check whether devfreq-event dev is enabled or not. If return true, the devfreq-event dev is enabeld. If return false, the devfreq-event dev is disabled.}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKfhjVubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j$devfreq_event_set_event (C function)c.devfreq_event_set_eventhNtauh1jhjhhhNhNubj)}(hhh](j)}(hint devfreq_event_reset_event (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_reset_event(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjaZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]Zhhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hjpZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj]ZhhhjoZhKubj)}(hdevfreq_event_reset_eventh]j)}(hdevfreq_event_reset_eventh]hdevfreq_event_reset_event}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj~Zubah}(h]h ](jjeh"]h$]h&]hhuh1jhj]ZhhhjoZhKubj)}(h (struct devfreq_event_dev *edev)h]j)}(hstruct devfreq_event_dev *edevh](j)}(hjh]hstruct}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjZmodnameN classnameNj@jC)}jF]jI)}j<jZsbc.devfreq_event_reset_eventasbuh1hhjZubj)}(h h]h }(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubj])}(hj`h]h*}(hjZhhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjZubj)}(hedevh]hedev}(hjZhhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjZubah}(h]h ]h"]h$]h&]hhuh1jhj]ZhhhjoZhKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhjYZhhhjoZhKubah}(h]jTZah ](j j eh"]h$]h&]jj)jhuh1jhjoZhKhjVZhhubj)}(hhh]h)}(h)Reset all opeations of devfreq-event dev.h]h)Reset all opeations of devfreq-event dev.}(hj![hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj[hhubah}(h]h ]h"]h$]h&]uh1jhjVZhhhjoZhKubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j9[j7j9[j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct devfreq_event_dev *edev`` the devfreq-event device **Description** Note that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.h](h)}(h**Parameters**h]jF)}(hjC[h]h Parameters}(hjE[hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjA[ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj=[ubj)}(hhh]j)}(h<``struct devfreq_event_dev *edev`` the devfreq-event device h](j)}(h"``struct devfreq_event_dev *edev``h]j,)}(hjb[h]hstruct devfreq_event_dev *edev}(hjd[hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj`[ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj\[ubj)}(hhh]h)}(hthe devfreq-event deviceh]hthe devfreq-event device}(hj{[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjw[hKhjx[ubah}(h]h ]h"]h$]h&]uh1jhj\[ubeh}(h]h ]h"]h$]h&]uh1jhjw[hKhjY[ubah}(h]h ]h"]h$]h&]uh1jhj=[ubh)}(h**Description**h]jF)}(hj[h]h Description}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj[ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj=[ubh)}(hNote that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.h]hNote that this function stop all operations of devfreq-event dev and reset the current event data to make the devfreq-event device into initial state.}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj=[ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j.devfreq_event_get_edev_by_phandle (C function)#c.devfreq_event_get_edev_by_phandlehNtauh1jhjhhhNhNubj)}(hhh](j)}(hvstruct devfreq_event_dev * devfreq_event_get_edev_by_phandle (struct device *dev, const char *phandle_name, int index)h]j)}(htstruct devfreq_event_dev *devfreq_event_get_edev_by_phandle(struct device *dev, const char *phandle_name, int index)h](j)}(hjh]hstruct}(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKubj)}(h h]h }(hj[hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj[hKubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj\modnameN classnameNj@jC)}jF]jI)}j<!devfreq_event_get_edev_by_phandlesb#c.devfreq_event_get_edev_by_phandleasbuh1hhj[hhhj[hKubj)}(h h]h }(hj"\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj[hhhj[hKubj])}(hj`h]h*}(hj0\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj[hhhj[hKubj)}(h!devfreq_event_get_edev_by_phandleh]j)}(hj\h]h!devfreq_event_get_edev_by_phandle}(hjA\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj=\ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj[hhhj[hKubj)}(h9(struct device *dev, const char *phandle_name, int index)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj\\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX\ubj)}(h h]h }(hji\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX\ubh)}(hhh]j)}(hdeviceh]hdevice}(hjz\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjw\ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj|\modnameN classnameNj@jC)}jF]j\#c.devfreq_event_get_edev_by_phandleasbuh1hhjX\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX\ubj])}(hj`h]h*}(hj\hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjX\ubj)}(hdevh]hdev}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjX\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjT\ubj)}(hconst char *phandle_nameh](j)}(hj,h]hconst}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(hcharh]hchar}(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj)}(h h]h }(hj\hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubj])}(hj`h]h*}(hj]hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj\ubj)}(h phandle_nameh]h phandle_name}(hj]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj\ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjT\ubj)}(h int indexh](j)}(hinth]hint}(hj)]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%]ubj)}(h h]h }(hj7]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%]ubj)}(hindexh]hindex}(hjE]hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj%]ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhjT\ubeh}(h]h ]h"]h$]h&]hhuh1jhj[hhhj[hKubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj[hhhj[hKubah}(h]j[ah ](j j eh"]h$]h&]jj)jhuh1jhj[hKhj[hhubj)}(hhh]h)}(h*Get the devfreq-event dev from devicetree.h]h*Get the devfreq-event dev from devicetree.}(hjo]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhjl]hhubah}(h]h ]h"]h$]h&]uh1jhj[hhhj[hKubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j]j7j]j8j9j:uh1jhhhjhNhNubj<)}(hX$**Parameters** ``struct device *dev`` the pointer to the given device ``const char *phandle_name`` name of property holding a phandle value ``int index`` the index into list of devfreq-event device **Description** Note that this function return the pointer of devfreq-event device.h](h)}(h**Parameters**h]jF)}(hj]h]h Parameters}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj]ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubj)}(hhh](j)}(h7``struct device *dev`` the pointer to the given device h](j)}(h``struct device *dev``h]j,)}(hj]h]hstruct device *dev}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj]ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubj)}(hhh]h)}(hthe pointer to the given deviceh]hthe pointer to the given device}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhj]ubj)}(hF``const char *phandle_name`` name of property holding a phandle value h](j)}(h``const char *phandle_name``h]j,)}(hj]h]hconst char *phandle_name}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj]ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubj)}(hhh]h)}(h(name of property holding a phandle valueh]h(name of property holding a phandle value}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj]hKhj]ubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]hKhj]ubj)}(h:``int index`` the index into list of devfreq-event device h](j)}(h ``int index``h]j,)}(hj"^h]h int index}(hj$^hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj ^ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj^ubj)}(hhh]h)}(h+the index into list of devfreq-event deviceh]h+the index into list of devfreq-event device}(hj;^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj7^hKhj8^ubah}(h]h ]h"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]uh1jhj7^hKhj]ubeh}(h]h ]h"]h$]h&]uh1jhj]ubh)}(h**Description**h]jF)}(hj]^h]h Description}(hj_^hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj[^ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubh)}(hCNote that this function return the pointer of devfreq-event device.h]hCNote that this function return the pointer of devfreq-event device.}(hjs^hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chKhj]ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j)devfreq_event_get_edev_count (C function)c.devfreq_event_get_edev_counthNtauh1jhjhhhNhNubj)}(hhh](j)}(hOint devfreq_event_get_edev_count (struct device *dev, const char *phandle_name)h]j)}(hNint devfreq_event_get_edev_count(struct device *dev, const char *phandle_name)h](j)}(hinth]hint}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^hhhj^hMubj)}(hdevfreq_event_get_edev_counth]j)}(hdevfreq_event_get_edev_counth]hdevfreq_event_get_edev_count}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ](jjeh"]h$]h&]hhuh1jhj^hhhj^hMubj)}(h.(struct device *dev, const char *phandle_name)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj)}(h h]h }(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubh)}(hhh]j)}(hdeviceh]hdevice}(hj^hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj^modnameN classnameNj@jC)}jF]jI)}j<j^sbc.devfreq_event_get_edev_countasbuh1hhj^ubj)}(h h]h }(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubj])}(hj`h]h*}(hj+_hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj^ubj)}(hdevh]hdev}(hj8_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj^ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubj)}(hconst char *phandle_nameh](j)}(hj,h]hconst}(hjQ_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM_ubj)}(h h]h }(hj^_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM_ubj)}(hcharh]hchar}(hjl_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM_ubj)}(h h]h }(hjz_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM_ubj])}(hj`h]h*}(hj_hhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjM_ubj)}(h phandle_nameh]h phandle_name}(hj_hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjM_ubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj^ubeh}(h]h ]h"]h$]h&]hhuh1jhj^hhhj^hMubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj^hhhj^hMubah}(h]j^ah ](j j eh"]h$]h&]jj)jhuh1jhj^hMhj^hhubj)}(hhh]h)}(h"Get the count of devfreq-event devh]h"Get the count of devfreq-event dev}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj_hhubah}(h]h ]h"]h$]h&]uh1jhj^hhhj^hMubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6j_j7j_j8j9j:uh1jhhhjhNhNubj<)}(h**Parameters** ``struct device *dev`` the pointer to the given device ``const char *phandle_name`` name of property holding a phandle value **Description** Note that this function return the count of devfreq-event devices.h](h)}(h**Parameters**h]jF)}(hj_h]h Parameters}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhj_ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj_ubj)}(hhh](j)}(h7``struct device *dev`` the pointer to the given device h](j)}(h``struct device *dev``h]j,)}(hj`h]hstruct device *dev}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj_ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj_ubj)}(hhh]h)}(hthe pointer to the given deviceh]hthe pointer to the given device}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj`hMhj`ubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhj`hMhj_ubj)}(hF``const char *phandle_name`` name of property holding a phandle value h](j)}(h``const char *phandle_name``h]j,)}(hj9`h]hconst char *phandle_name}(hj;`hhhNhNubah}(h]h ]h"]h$]h&]uh1j+hj7`ubah}(h]h ]h"]h$]h&]uh1jhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj3`ubj)}(hhh]h)}(h(name of property holding a phandle valueh]h(name of property holding a phandle value}(hjR`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhjN`hMhjO`ubah}(h]h ]h"]h$]h&]uh1jhj3`ubeh}(h]h ]h"]h$]h&]uh1jhjN`hMhj_ubeh}(h]h ]h"]h$]h&]uh1jhj_ubh)}(h**Description**h]jF)}(hjt`h]h Description}(hjv`hhhNhNubah}(h]h ]h"]h$]h&]uh1jEhjr`ubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj_ubh)}(hBNote that this function return the count of devfreq-event devices.h]hBNote that this function return the count of devfreq-event devices.}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chMhj_ubeh}(h]h ] kernelindentah"]h$]h&]uh1j;hjhhhNhNubj)}(hhh]h}(h]h ]h"]h$]h&]entries](j#devfreq_event_add_edev (C function)c.devfreq_event_add_edevhNtauh1jhjhhhNhNubj)}(hhh](j)}(hgstruct devfreq_event_dev * devfreq_event_add_edev (struct device *dev, struct devfreq_event_desc *desc)h]j)}(hestruct devfreq_event_dev *devfreq_event_add_edev(struct device *dev, struct devfreq_event_desc *desc)h](j)}(hjh]hstruct}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM,ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhj`hM,ubh)}(hhh]j)}(hdevfreq_event_devh]hdevfreq_event_dev}(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`ubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetj`modnameN classnameNj@jC)}jF]jI)}j<devfreq_event_add_edevsbc.devfreq_event_add_edevasbuh1hhj`hhhj`hM,ubj)}(h h]h }(hj`hhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj`hhhj`hM,ubj])}(hj`h]h*}(hjahhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj`hhhj`hM,ubj)}(hdevfreq_event_add_edevh]j)}(hj`h]hdevfreq_event_add_edev}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ](jjeh"]h$]h&]hhuh1jhj`hhhj`hM,ubj)}(h5(struct device *dev, struct devfreq_event_desc *desc)h](j)}(hstruct device *devh](j)}(hjh]hstruct}(hj3ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/aubj)}(h h]h }(hj@ahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/aubh)}(hhh]j)}(hdeviceh]hdevice}(hjQahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjNaubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjSamodnameN classnameNj@jC)}jF]j`c.devfreq_event_add_edevasbuh1hhj/aubj)}(h h]h }(hjoahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/aubj])}(hj`h]h*}(hj}ahhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hj/aubj)}(hdevh]hdev}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj/aubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+aubj)}(hstruct devfreq_event_desc *desch](j)}(hjh]hstruct}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubh)}(hhh]j)}(hdevfreq_event_desch]hdevfreq_event_desc}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubah}(h]h ]h"]h$]h&] refdomainj8reftypej< reftargetjamodnameN classnameNj@jC)}jF]j`c.devfreq_event_add_edevasbuh1hhjaubj)}(h h]h }(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubj])}(hj`h]h*}(hjahhhNhNubah}(h]h ]jiah"]h$]h&]uh1j\hjaubj)}(hdesch]hdesc}(hjahhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]noemphhhuh1jhj+aubeh}(h]h ]h"]h$]h&]hhuh1jhj`hhhj`hM,ubeh}(h]h ]h"]h$]h&]hhjuh1jjjhj`hhhj`hM,ubah}(h]j`ah ](j j eh"]h$]h&]jj)jhuh1jhj`hM,hj`hhubj)}(hhh]h)}(hAdd new devfreq-event device.h]hAdd new devfreq-event device.}(hj$bhhhNhNubah}(h]h ]h"]h$]h&]uh1hhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM$hj!bhhubah}(h]h ]h"]h$]h&]uh1jhj`hhhj`hM,ubeh}(h]h ](j8functioneh"]h$]h&]j5j8j6jint devfreq_event_remove_edev (struct devfreq_event_dev *edev)h]j)}(h=int devfreq_event_remove_edev(struct devfreq_event_dev *edev)h](j)}(hinth]hint}(hjchhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhb/var/lib/git/docbuild/linux/Documentation/driver-api/devfreq:29: ./drivers/devfreq/devfreq-event.chM_ubj)}(h h]h }(hj.chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhjchhhj-chM_ubj)}(hdevfreq_event_remove_edevh]j)}(hdevfreq_event_remove_edevh]hdevfreq_event_remove_edev}(hj@chhhNhNubah}(h]h ]jah"]h$]h&]uh1jhj