mirror of
https://github.com/torvalds/linux.git
synced 2024-11-25 05:32:00 +00:00
PM / AVS: SmartReflex: use omap_sr * for enable/disable interface
SmartReflex driver interface is natively divided to two parts: - external SmartReflex interface - interface between SmartReflex driver and SmartReflex Class Functions which belong to AVS class interface can use struct omap_sr* instead of struct voltatedomain*, to provide a direct connection between SR driver and SR class. This allows us to optimize and not do additional lookups where none is required. sr_enable() and sr_disable() are interface functions between SR driver and SR class. They are typically used by Class driver to enable/disable SmartReflex hardware module. Now they take struct omap_sr* as input parameter. Signed-off-by: Andrii Tseglytskyi <andrii.tseglytskyi@ti.com> Acked-by: Nishanth Menon <nm@ti.com> Signed-off-by: Kevin Hilman <khilman@linaro.org>
This commit is contained in:
parent
6c80573415
commit
299066bb37
@ -26,14 +26,14 @@ static int sr_class3_enable(struct omap_sr *sr)
|
||||
}
|
||||
|
||||
omap_vp_enable(sr->voltdm);
|
||||
return sr_enable(sr->voltdm, volt);
|
||||
return sr_enable(sr, volt);
|
||||
}
|
||||
|
||||
static int sr_class3_disable(struct omap_sr *sr, int is_volt_reset)
|
||||
{
|
||||
sr_disable_errgen(sr);
|
||||
omap_vp_disable(sr->voltdm);
|
||||
sr_disable(sr->voltdm);
|
||||
sr_disable(sr);
|
||||
if (is_volt_reset)
|
||||
voltdm_reset(sr->voltdm);
|
||||
|
||||
|
@ -552,7 +552,7 @@ int sr_configure_minmax(struct omap_sr *sr)
|
||||
|
||||
/**
|
||||
* sr_enable() - Enables the smartreflex module.
|
||||
* @voltdm: VDD pointer to which the SR module to be configured belongs to.
|
||||
* @sr: pointer to which the SR module to be configured belongs to.
|
||||
* @volt: The voltage at which the Voltage domain associated with
|
||||
* the smartreflex module is operating at.
|
||||
* This is required only to program the correct Ntarget value.
|
||||
@ -561,16 +561,16 @@ int sr_configure_minmax(struct omap_sr *sr)
|
||||
* enable a smartreflex module. Returns 0 on success. Returns error
|
||||
* value if the voltage passed is wrong or if ntarget value is wrong.
|
||||
*/
|
||||
int sr_enable(struct voltagedomain *voltdm, unsigned long volt)
|
||||
int sr_enable(struct omap_sr *sr, unsigned long volt)
|
||||
{
|
||||
struct omap_volt_data *volt_data;
|
||||
struct omap_sr *sr = _sr_lookup(voltdm);
|
||||
struct omap_sr_nvalue_table *nvalue_row;
|
||||
int ret;
|
||||
|
||||
if (IS_ERR(sr)) {
|
||||
pr_warning("%s: omap_sr struct for voltdm not found\n", __func__);
|
||||
return PTR_ERR(sr);
|
||||
if (!sr) {
|
||||
pr_warn("%s: NULL omap_sr from %pF\n", __func__,
|
||||
(void *)_RET_IP_);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
volt_data = omap_voltage_get_voltdata(sr->voltdm, volt);
|
||||
@ -612,17 +612,16 @@ int sr_enable(struct voltagedomain *voltdm, unsigned long volt)
|
||||
|
||||
/**
|
||||
* sr_disable() - Disables the smartreflex module.
|
||||
* @voltdm: VDD pointer to which the SR module to be configured belongs to.
|
||||
* @sr: pointer to which the SR module to be configured belongs to.
|
||||
*
|
||||
* This API is to be called from the smartreflex class driver to
|
||||
* disable a smartreflex module.
|
||||
*/
|
||||
void sr_disable(struct voltagedomain *voltdm)
|
||||
void sr_disable(struct omap_sr *sr)
|
||||
{
|
||||
struct omap_sr *sr = _sr_lookup(voltdm);
|
||||
|
||||
if (IS_ERR(sr)) {
|
||||
pr_warning("%s: omap_sr struct for voltdm not found\n", __func__);
|
||||
if (!sr) {
|
||||
pr_warn("%s: NULL omap_sr from %pF\n", __func__,
|
||||
(void *)_RET_IP_);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -299,8 +299,8 @@ void omap_sr_disable_reset_volt(struct voltagedomain *voltdm);
|
||||
void omap_sr_register_pmic(struct omap_sr_pmic_data *pmic_data);
|
||||
|
||||
/* Smartreflex driver hooks to be called from Smartreflex class driver */
|
||||
int sr_enable(struct voltagedomain *voltdm, unsigned long volt);
|
||||
void sr_disable(struct voltagedomain *voltdm);
|
||||
int sr_enable(struct omap_sr *sr, unsigned long volt);
|
||||
void sr_disable(struct omap_sr *sr);
|
||||
int sr_configure_errgen(struct omap_sr *sr);
|
||||
int sr_disable_errgen(struct omap_sr *sr);
|
||||
int sr_configure_minmax(struct omap_sr *sr);
|
||||
|
Loading…
Reference in New Issue
Block a user