spin_lock_irqsave(&clkdm->lock, flags);
        clkdm->_flags |= _CLKDM_FLAG_HWSUP_ENABLED;
        arch_clkdm->clkdm_allow_idle(clkdm);
-       pwrdm_clkdm_state_switch(clkdm);
+       pwrdm_state_switch(clkdm->pwrdm.ptr);
        spin_unlock_irqrestore(&clkdm->lock, flags);
 }
 
 
        spin_lock_irqsave(&clkdm->lock, flags);
        arch_clkdm->clkdm_clk_enable(clkdm);
-       pwrdm_wait_transition(clkdm->pwrdm.ptr);
-       pwrdm_clkdm_state_switch(clkdm);
+       pwrdm_state_switch(clkdm->pwrdm.ptr);
        spin_unlock_irqrestore(&clkdm->lock, flags);
 
        pr_debug("clockdomain: clkdm %s: enabled\n", clkdm->name);
 
        spin_lock_irqsave(&clkdm->lock, flags);
        arch_clkdm->clkdm_clk_disable(clkdm);
-       pwrdm_clkdm_state_switch(clkdm);
+       pwrdm_state_switch(clkdm->pwrdm.ptr);
        spin_unlock_irqrestore(&clkdm->lock, flags);
 
        pr_debug("clockdomain: clkdm %s: disabled\n", clkdm->name);
 
        return ret;
 }
 
-int pwrdm_clkdm_state_switch(struct clockdomain *clkdm)
-{
-       if (clkdm != NULL && clkdm->pwrdm.ptr != NULL) {
-               pwrdm_wait_transition(clkdm->pwrdm.ptr);
-               return pwrdm_state_switch(clkdm->pwrdm.ptr);
-       }
-
-       return -EINVAL;
-}
-
 int pwrdm_pre_transition(void)
 {
        pwrdm_for_each(_pwrdm_pre_transition_cb, NULL);
 
 int pwrdm_wait_transition(struct powerdomain *pwrdm);
 
 int pwrdm_state_switch(struct powerdomain *pwrdm);
-int pwrdm_clkdm_state_switch(struct clockdomain *clkdm);
 int pwrdm_pre_transition(void);
 int pwrdm_post_transition(void);
 int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm);