aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrii Tseglytskyi <andrii.tseglytskyi@ti.com>2013-05-27 07:09:23 -0400
committerKevin Hilman <khilman@linaro.org>2013-06-10 13:46:17 -0400
commit6c80573415fe47450579d5d8bfab53b304d803ed (patch)
tree6134b59340bcbb35665945f42472655557f20d9f
parent3dfc35ffd938abe67f2559db6b517536a207df24 (diff)
PM / AVS: SmartReflex: use omap_sr * for minmax 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_configure_minmax() is interface function between SR driver and SR class. It is typically used by Class driver to configure MINMAXAVG module inside SmartReflex module. Now it takes 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>
-rw-r--r--drivers/power/avs/smartreflex.c14
-rw-r--r--include/linux/power/smartreflex.h2
2 files changed, 8 insertions, 8 deletions
diff --git a/drivers/power/avs/smartreflex.c b/drivers/power/avs/smartreflex.c
index fccb62743d19..08a8a299f1fd 100644
--- a/drivers/power/avs/smartreflex.c
+++ b/drivers/power/avs/smartreflex.c
@@ -465,9 +465,9 @@ int sr_disable_errgen(struct omap_sr *sr)
465} 465}
466 466
467/** 467/**
468 * sr_configure_minmax() - Configures the smrtreflex to perform AVS using the 468 * sr_configure_minmax() - Configures the SmartReflex to perform AVS using the
469 * minmaxavg module. 469 * minmaxavg module.
470 * @voltdm: VDD pointer to which the SR module to be configured belongs to. 470 * @sr: SR module to be configured.
471 * 471 *
472 * This API is to be called from the smartreflex class driver to 472 * This API is to be called from the smartreflex class driver to
473 * configure the minmaxavg module inside the smartreflex module. 473 * configure the minmaxavg module inside the smartreflex module.
@@ -476,16 +476,16 @@ int sr_disable_errgen(struct omap_sr *sr)
476 * SR CLASS 2 can choose between ERROR module and MINMAXAVG 476 * SR CLASS 2 can choose between ERROR module and MINMAXAVG
477 * module. Returns 0 on success and error value in case of failure. 477 * module. Returns 0 on success and error value in case of failure.
478 */ 478 */
479int sr_configure_minmax(struct voltagedomain *voltdm) 479int sr_configure_minmax(struct omap_sr *sr)
480{ 480{
481 u32 sr_config, sr_avgwt; 481 u32 sr_config, sr_avgwt;
482 u32 senp_en = 0, senn_en = 0; 482 u32 senp_en = 0, senn_en = 0;
483 u8 senp_shift, senn_shift; 483 u8 senp_shift, senn_shift;
484 struct omap_sr *sr = _sr_lookup(voltdm);
485 484
486 if (IS_ERR(sr)) { 485 if (!sr) {
487 pr_warning("%s: omap_sr struct for voltdm not found\n", __func__); 486 pr_warn("%s: NULL omap_sr from %pF\n", __func__,
488 return PTR_ERR(sr); 487 (void *)_RET_IP_);
488 return -EINVAL;
489 } 489 }
490 490
491 if (!sr->clk_length) 491 if (!sr->clk_length)
diff --git a/include/linux/power/smartreflex.h b/include/linux/power/smartreflex.h
index 9c3b9ad17095..648be776b661 100644
--- a/include/linux/power/smartreflex.h
+++ b/include/linux/power/smartreflex.h
@@ -303,7 +303,7 @@ int sr_enable(struct voltagedomain *voltdm, unsigned long volt);
303void sr_disable(struct voltagedomain *voltdm); 303void sr_disable(struct voltagedomain *voltdm);
304int sr_configure_errgen(struct omap_sr *sr); 304int sr_configure_errgen(struct omap_sr *sr);
305int sr_disable_errgen(struct omap_sr *sr); 305int sr_disable_errgen(struct omap_sr *sr);
306int sr_configure_minmax(struct voltagedomain *voltdm); 306int sr_configure_minmax(struct omap_sr *sr);
307 307
308/* API to register the smartreflex class driver with the smartreflex driver */ 308/* API to register the smartreflex class driver with the smartreflex driver */
309int sr_register_class(struct omap_sr_class_data *class_data); 309int sr_register_class(struct omap_sr_class_data *class_data);