Loading drivers/slimbus/slim-msm-ngd.c +20 −3 Original line number Diff line number Diff line /* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -304,8 +304,25 @@ static int ngd_xfer_msg(struct slim_controller *ctrl, struct slim_msg_txn *txn) * Messages related to data channel management can't * wait since they are holding reconfiguration lock. * clk_pause in resume (which can change state back to * MSM_CTRL_AWAKE), will need that lock * MSM_CTRL_AWAKE), will need that lock. * Port disconnection, channel removal calls should pass * through since there is no activity on the bus and * those calls are triggered by clients due to * device_down callback in that situation. * Returning 0 on the disconnections and * removals will ensure consistent state of channels, * ports with the HW */ if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((mc == SLIM_USR_MC_CHAN_CTRL || mc == SLIM_USR_MC_DISCONNECT_PORT || mc == SLIM_USR_MC_RECONFIG_NOW))) return 0; if ((txn->mt == SLIM_MSG_MT_CORE) && ((mc == SLIM_MSG_MC_DISCONNECT_PORT || mc == SLIM_MSG_MC_NEXT_REMOVE_CHANNEL || mc == SLIM_USR_MC_RECONFIG_NOW))) return 0; if ((txn->mt == SLIM_MSG_MT_CORE) && ((mc >= SLIM_MSG_MC_CONNECT_SOURCE && mc <= SLIM_MSG_MC_CHANGE_CONTENT) || Loading @@ -314,7 +331,7 @@ static int ngd_xfer_msg(struct slim_controller *ctrl, struct slim_msg_txn *txn) return -EREMOTEIO; if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((mc >= SLIM_USR_MC_DEFINE_CHAN && mc <= SLIM_USR_MC_DISCONNECT_PORT))) mc < SLIM_USR_MC_DISCONNECT_PORT))) return -EREMOTEIO; timeout = wait_for_completion_timeout(&dev->ctrl_up, HZ); Loading Loading
drivers/slimbus/slim-msm-ngd.c +20 −3 Original line number Diff line number Diff line /* Copyright (c) 2011-2013, The Linux Foundation. All rights reserved. /* Copyright (c) 2011-2014, The Linux Foundation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 and Loading Loading @@ -304,8 +304,25 @@ static int ngd_xfer_msg(struct slim_controller *ctrl, struct slim_msg_txn *txn) * Messages related to data channel management can't * wait since they are holding reconfiguration lock. * clk_pause in resume (which can change state back to * MSM_CTRL_AWAKE), will need that lock * MSM_CTRL_AWAKE), will need that lock. * Port disconnection, channel removal calls should pass * through since there is no activity on the bus and * those calls are triggered by clients due to * device_down callback in that situation. * Returning 0 on the disconnections and * removals will ensure consistent state of channels, * ports with the HW */ if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((mc == SLIM_USR_MC_CHAN_CTRL || mc == SLIM_USR_MC_DISCONNECT_PORT || mc == SLIM_USR_MC_RECONFIG_NOW))) return 0; if ((txn->mt == SLIM_MSG_MT_CORE) && ((mc == SLIM_MSG_MC_DISCONNECT_PORT || mc == SLIM_MSG_MC_NEXT_REMOVE_CHANNEL || mc == SLIM_USR_MC_RECONFIG_NOW))) return 0; if ((txn->mt == SLIM_MSG_MT_CORE) && ((mc >= SLIM_MSG_MC_CONNECT_SOURCE && mc <= SLIM_MSG_MC_CHANGE_CONTENT) || Loading @@ -314,7 +331,7 @@ static int ngd_xfer_msg(struct slim_controller *ctrl, struct slim_msg_txn *txn) return -EREMOTEIO; if ((txn->mt == SLIM_MSG_MT_DEST_REFERRED_USER) && ((mc >= SLIM_USR_MC_DEFINE_CHAN && mc <= SLIM_USR_MC_DISCONNECT_PORT))) mc < SLIM_USR_MC_DISCONNECT_PORT))) return -EREMOTEIO; timeout = wait_for_completion_timeout(&dev->ctrl_up, HZ); Loading