diff options
author | Andrii Tseglytskyi <andrii.tseglytskyi@ti.com> | 2013-05-27 07:09:22 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2013-06-10 13:46:17 -0400 |
commit | 3dfc35ffd938abe67f2559db6b517536a207df24 (patch) | |
tree | ed07745082e730cc958c558559c707f6300c191f /drivers/power | |
parent | 33da28246f8cba3f1ffbca9434622d93afcde013 (diff) |
PM / AVS: SmartReflex: use omap_sr * for errgen interfaces
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_disable_errgen() and sr_configure_errgen() are interface
functions between SR driver and SR class. They are typically
used by Class driver to configure error generator module during
SmartReflex enable/disable sequence.
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>
Diffstat (limited to 'drivers/power')
-rw-r--r-- | drivers/power/avs/smartreflex.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c index 002005ee48d2..fccb62743d19 100644 --- a/drivers/power/avs/smartreflex.c +++ b/drivers/power/avs/smartreflex.c | |||
@@ -342,9 +342,9 @@ static struct omap_sr_nvalue_table *sr_retrieve_nvalue_row( | |||
342 | /* Public Functions */ | 342 | /* Public Functions */ |
343 | 343 | ||
344 | /** | 344 | /** |
345 | * sr_configure_errgen() - Configures the smrtreflex to perform AVS using the | 345 | * sr_configure_errgen() - Configures the SmartReflex to perform AVS using the |
346 | * error generator module. | 346 | * error generator module. |
347 | * @voltdm: VDD pointer to which the SR module to be configured belongs to. | 347 | * @sr: SR module to be configured. |
348 | * | 348 | * |
349 | * This API is to be called from the smartreflex class driver to | 349 | * This API is to be called from the smartreflex class driver to |
350 | * configure the error generator module inside the smartreflex module. | 350 | * configure the error generator module inside the smartreflex module. |
@@ -353,17 +353,17 @@ static struct omap_sr_nvalue_table *sr_retrieve_nvalue_row( | |||
353 | * SR CLASS 2 can choose between ERROR module and MINMAXAVG | 353 | * SR CLASS 2 can choose between ERROR module and MINMAXAVG |
354 | * module. Returns 0 on success and error value in case of failure. | 354 | * module. Returns 0 on success and error value in case of failure. |
355 | */ | 355 | */ |
356 | int sr_configure_errgen(struct voltagedomain *voltdm) | 356 | int sr_configure_errgen(struct omap_sr *sr) |
357 | { | 357 | { |
358 | u32 sr_config, sr_errconfig, errconfig_offs; | 358 | u32 sr_config, sr_errconfig, errconfig_offs; |
359 | u32 vpboundint_en, vpboundint_st; | 359 | u32 vpboundint_en, vpboundint_st; |
360 | u32 senp_en = 0, senn_en = 0; | 360 | u32 senp_en = 0, senn_en = 0; |
361 | u8 senp_shift, senn_shift; | 361 | u8 senp_shift, senn_shift; |
362 | struct omap_sr *sr = _sr_lookup(voltdm); | ||
363 | 362 | ||
364 | if (IS_ERR(sr)) { | 363 | if (!sr) { |
365 | pr_warning("%s: omap_sr struct for voltdm not found\n", __func__); | 364 | pr_warn("%s: NULL omap_sr from %pF\n", __func__, |
366 | return PTR_ERR(sr); | 365 | (void *)_RET_IP_); |
366 | return -EINVAL; | ||
367 | } | 367 | } |
368 | 368 | ||
369 | if (!sr->clk_length) | 369 | if (!sr->clk_length) |
@@ -415,22 +415,22 @@ int sr_configure_errgen(struct voltagedomain *voltdm) | |||
415 | 415 | ||
416 | /** | 416 | /** |
417 | * sr_disable_errgen() - Disables SmartReflex AVS module's errgen component | 417 | * sr_disable_errgen() - Disables SmartReflex AVS module's errgen component |
418 | * @voltdm: VDD pointer to which the SR module to be configured belongs to. | 418 | * @sr: SR module to be configured. |
419 | * | 419 | * |
420 | * This API is to be called from the smartreflex class driver to | 420 | * This API is to be called from the smartreflex class driver to |
421 | * disable the error generator module inside the smartreflex module. | 421 | * disable the error generator module inside the smartreflex module. |
422 | * | 422 | * |
423 | * Returns 0 on success and error value in case of failure. | 423 | * Returns 0 on success and error value in case of failure. |
424 | */ | 424 | */ |
425 | int sr_disable_errgen(struct voltagedomain *voltdm) | 425 | int sr_disable_errgen(struct omap_sr *sr) |
426 | { | 426 | { |
427 | u32 errconfig_offs; | 427 | u32 errconfig_offs; |
428 | u32 vpboundint_en, vpboundint_st; | 428 | u32 vpboundint_en, vpboundint_st; |
429 | struct omap_sr *sr = _sr_lookup(voltdm); | ||
430 | 429 | ||
431 | if (IS_ERR(sr)) { | 430 | if (!sr) { |
432 | pr_warning("%s: omap_sr struct for voltdm not found\n", __func__); | 431 | pr_warn("%s: NULL omap_sr from %pF\n", __func__, |
433 | return PTR_ERR(sr); | 432 | (void *)_RET_IP_); |
433 | return -EINVAL; | ||
434 | } | 434 | } |
435 | 435 | ||
436 | switch (sr->ip_type) { | 436 | switch (sr->ip_type) { |