• Chanwoo Choi's avatar
    PM / devfreq: event: Add devfreq_event class · f262f28c
    Chanwoo Choi authored
    This patch adds a new class in devfreq, devfreq_event, which provides
    raw data (e.g., memory bus utilization, GPU utilization) for devfreq
    governors.
    
    - devfreq_event device : Provides raw data for a governor of a devfreq device
    - devfreq device       : Monitors device state and changes frequency/voltage
    			of the device using the raw data from its
    			devfreq_event device.
    
    A devfreq device dertermines performance states (normally the frequency
    and the voltage vlues) based on the results its designtated devfreq governor:
    e.g., ondemand, performance, powersave.
    
    In order to give such results required by a devfreq device, the devfreq
    governor requires data that indicates the performance requirement given
    to the devfreq device. The conventional (previous) implementatino of
    devfreq subsystem requires a devfreq device driver to implement its own
    mechanism to acquire performance requirement for its governor. However,
    there had been issues with such requirements:
    
    1. Although performance requirement of such devices is usually acquired
     from common devices (PMU/PPMU), we do not have any abstract structure to
     represent them properly.
    2. Such performance requirement devices (PMU/PPMU) are actual hardware
     pieces that may be represented by Device Tree directly while devfreq device
     itself is a virtual entity that are not considered to be represented by
     Device Tree according to Device Tree folks.
    
    In order to address such issues, a devferq_event device (represented by
    this patch) provides a template for device drivers representing
    performance monitoring unit, which gives the basic or raw data for
    preformance requirement, which in turn, is required by devfreq governors.
    
    The following description explains the feature of two kind of devfreq class:
    - devfreq class (existing)
     : devfreq consumer device use raw data from devfreq_event device for
       determining proper current system state and change voltage/frequency
       dynamically using various governors.
    
    - devfreq_event class (new)
     : Provide measured raw data to devfreq device for governor
    
    Cc: MyungJoo Ham <myungjoo.ham@samsung.com>
    Cc: Kyungmin Park <kyungmin.park@samsung.com>
    Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
    [Commit message rewritten & conflict resolved by MyungJoo]
    Signed-off-by: default avatarMyungJoo Ham <myungjoo.ham@samsung.com>
    f262f28c
devfreq-event.c 12.4 KB