aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/omap_hsi
diff options
context:
space:
mode:
authorDjamil Elaidi <d-elaidi@ti.com>2011-11-16 18:09:46 +0100
committerZiyann <jaraidaniel@gmail.com>2014-10-01 12:59:37 +0200
commit3a0eea5ba221e539b5036cb4063bd022429965fd (patch)
tree279bb0011fdefae00eb611a6c274a9568a9b6282 /drivers/omap_hsi
parent9a53bb505d917eff48249fb0816cfa8980eb10f2 (diff)
downloadkernel_samsung_tuna-3a0eea5ba221e539b5036cb4063bd022429965fd.zip
kernel_samsung_tuna-3a0eea5ba221e539b5036cb4063bd022429965fd.tar.gz
kernel_samsung_tuna-3a0eea5ba221e539b5036cb4063bd022429965fd.tar.bz2
OMAP4: HSI: mux: remove unused mux platform data
Since we now use HWMOD muxing feature, many platform data and functions are no more needed : * Switching from HSI wakeup to/from IO daisy chain wakeup and handling of wakeup enable bit is now handled directly by HWMOD, so wakeup_enable/disable function are removed * Removed board dependend_suspend callback since all shall be done by runtime_pm callbacks. But board_suspend and board_resume specific callback are kept to handle board dependend specific actions. * Also aligned to same parameters for board_resume and board_suspend. * Removed some mux hack functions * Removed mux reference in platform data Change-Id: I89a1b545d6e722c0ab19612f9b1f6a0892a0b455 Signed-off-by: Djamil Elaidi <d-elaidi@ti.com> Conflicts: arch/arm/mach-omap2/pm44xx.c
Diffstat (limited to 'drivers/omap_hsi')
-rwxr-xr-xdrivers/omap_hsi/hsi_driver.c20
-rwxr-xr-xdrivers/omap_hsi/hsi_driver.h2
2 files changed, 3 insertions, 19 deletions
diff --git a/drivers/omap_hsi/hsi_driver.c b/drivers/omap_hsi/hsi_driver.c
index 4d5758c4..310cf02 100755
--- a/drivers/omap_hsi/hsi_driver.c
+++ b/drivers/omap_hsi/hsi_driver.c
@@ -1074,7 +1074,8 @@ static int hsi_pm_resume(struct device *dev)
/* Perform (optional) HSI board specific action after platform wakeup */
if (pdata->board_resume)
for (i = 0; i < hsi_ctrl->max_p; i++)
- pdata->board_resume(hsi_ctrl->hsi_port[i].port_number);
+ pdata->board_resume(hsi_ctrl->hsi_port[i].port_number,
+ device_may_wakeup(dev));
return 0;
}
@@ -1089,10 +1090,8 @@ static int hsi_pm_resume(struct device *dev)
*/
int hsi_runtime_resume(struct device *dev)
{
- struct hsi_platform_data *pdata = dev_get_platdata(dev);
struct platform_device *pd = to_platform_device(dev);
struct hsi_dev *hsi_ctrl = platform_get_drvdata(pd);
- unsigned int i;
dev_dbg(dev, "%s\n", __func__);
@@ -1107,10 +1106,6 @@ int hsi_runtime_resume(struct device *dev)
/* Allow data reception */
hsi_hsr_resume(hsi_ctrl);
- /* When HSI is ON, no need for IO wakeup mechanism on any HSI port */
- for (i = 0; i < hsi_ctrl->max_p; i++)
- pdata->wakeup_disable(hsi_ctrl->hsi_port[i].port_number);
-
/* HSI device is now fully operational and _must_ be able to */
/* complete I/O operations */
@@ -1127,10 +1122,8 @@ int hsi_runtime_resume(struct device *dev)
*/
int hsi_runtime_suspend(struct device *dev)
{
- struct hsi_platform_data *pdata = dev_get_platdata(dev);
struct platform_device *pd = to_platform_device(dev);
struct hsi_dev *hsi_ctrl = platform_get_drvdata(pd);
- int i;
dev_dbg(dev, "%s\n", __func__);
@@ -1140,15 +1133,6 @@ int hsi_runtime_suspend(struct device *dev)
/* Forbid data reception */
hsi_hsr_suspend(hsi_ctrl);
- /* HSI is going to IDLE, it needs IO wakeup mechanism enabled */
- if (device_may_wakeup(dev))
- for (i = 0; i < hsi_ctrl->max_p; i++)
- pdata->wakeup_enable(hsi_ctrl->hsi_port[i].port_number);
- else
- for (i = 0; i < hsi_ctrl->max_p; i++)
- pdata->wakeup_disable(
- hsi_ctrl->hsi_port[i].port_number);
-
/* HSI is now ready to be put in low power state */
return 0;
diff --git a/drivers/omap_hsi/hsi_driver.h b/drivers/omap_hsi/hsi_driver.h
index 226fe15..73f86de 100755
--- a/drivers/omap_hsi/hsi_driver.h
+++ b/drivers/omap_hsi/hsi_driver.h
@@ -231,7 +231,7 @@ struct hsi_platform_data {
int (*wakeup_disable) (int hsi_port);
bool (*wakeup_is_from_hsi) (int *hsi_port);
int (*board_suspend)(int hsi_port, bool dev_may_wakeup);
- int (*board_resume)(int hsi_port);
+ int (*board_resume)(int hsi_port, bool dev_may_wakeup);
u8 num_ports;
struct hsi_ctrl_ctx *ctx;
u8 hsi_gdd_chan_count;