Пример #1
0
static int rgx_throttle_notifier_call(struct notifier_block *nfb, unsigned long mode, void *cmd)
{
    int retval = NOTIFY_DONE;
	if(mode == BUDGET_GPU_THROTTLE)
    {
        if (Is_powernow) {
		RgxDvfsChange(min_vf_level_val, 0);
        Is_powernow = 0;
        }
    }
    else
	{
        if(cmd && (*(int *)cmd) == 1 && !Is_powernow)
		{
			RgxDvfsChange(max_vf_level_val, 1);
            Is_powernow = 1;
        }
		else if(cmd && (*(int *)cmd) == 0 && Is_powernow)
		{
			RgxDvfsChange(min_vf_level_val, 0);
            Is_powernow = 0;
        }
    }
	
	return retval;
}
static int rgx_throttle_notifier_call(struct notifier_block *nfb, unsigned long mode, void *cmd)
{
    int retval = NOTIFY_DONE;
	if(mode == BUDGET_GPU_THROTTLE)
    {
        b_throttle=1;
        Is_powernow = 0;
    }
    else
	{
        b_throttle=0;
        if(cmd && (*(int *)cmd) == 1 && !Is_powernow)
		{
            Is_powernow = 1;
        }
		else if(cmd && (*(int *)cmd) == 0 && Is_powernow)
		{
            Is_powernow = 0;
        }
    }
	
	if(Is_powernow != extreme_flag)
	{
		if(Is_powernow == 1)
		{
			RgxDvfsChange(max_vf_level_val, 1);
			extreme_flag = 1;
		}
		else
		{
			RgxDvfsChange(min_vf_level_val, 0);
			extreme_flag = 0;
		}
	}	
	else
	{
		printk(KERN_INFO "RGX Don't need DVFS\n");
	}
	return retval;
}