diff options
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod.c')
| -rw-r--r-- | arch/arm/mach-omap2/omap_hwmod.c | 39 | 
1 files changed, 15 insertions, 24 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index f74f3af95ca..8cf837d2332 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c @@ -1008,37 +1008,34 @@ static int _get_addr_space_by_name(struct omap_hwmod *oh, const char *name,  }  /** - * _find_mpu_port_index - find hwmod OCP slave port ID intended for MPU use + * _save_mpu_port_index - find and save the index to @oh's MPU port   * @oh: struct omap_hwmod *   * - * Returns the array index of the OCP slave port that the MPU - * addresses the device on, or -EINVAL upon error or not found. + * Determines the array index of the OCP slave port that the MPU uses + * to address the device, and saves it into the struct omap_hwmod. + * Intended to be called during hwmod registration only. No return + * value.   */ -static int __init _find_mpu_port_index(struct omap_hwmod *oh) +static void __init _save_mpu_port_index(struct omap_hwmod *oh)  { -	struct omap_hwmod_ocp_if *os; +	struct omap_hwmod_ocp_if *os = NULL;  	int i = 0; -	int found = 0;  	if (!oh) -		return -EINVAL; +		return; + +	oh->_int_flags |= _HWMOD_NO_MPU_PORT;  	while (i < oh->slaves_cnt) {  		os = _fetch_next_ocp_if(NULL, oh->slaves, &i);  		if (os->user & OCP_USER_MPU) { -			found = 1; +			oh->_mpu_port_index = i - 1; +			oh->_int_flags &= ~_HWMOD_NO_MPU_PORT;  			break;  		}  	} -	if (found) -		pr_debug("omap_hwmod: %s: MPU OCP slave port ID  %d\n", -			 oh->name, i - 1); -	else -		pr_debug("omap_hwmod: %s: no MPU OCP slave port found\n", -			 oh->name); - -	return (found) ? (i - 1) : -EINVAL; +	return;  }  /** @@ -1076,7 +1073,7 @@ static struct omap_hwmod_addr_space * __init _find_mpu_rt_addr_space(struct omap  	int found = 0, i = 0;  	os = _find_mpu_rt_port(oh); -	if (!os->addr) +	if (!os || !os->addr)  		return NULL;  	do { @@ -2213,8 +2210,6 @@ static int __init _setup(struct omap_hwmod *oh, void *data)   */  static int __init _register(struct omap_hwmod *oh)  { -	int ms_id; -  	if (!oh || !oh->name || !oh->class || !oh->class->name ||  	    (oh->_state != _HWMOD_STATE_UNKNOWN))  		return -EINVAL; @@ -2224,11 +2219,7 @@ static int __init _register(struct omap_hwmod *oh)  	if (_lookup(oh->name))  		return -EEXIST; -	ms_id = _find_mpu_port_index(oh); -	if (!IS_ERR_VALUE(ms_id)) -		oh->_mpu_port_index = ms_id; -	else -		oh->_int_flags |= _HWMOD_NO_MPU_PORT; +	_save_mpu_port_index(oh);  	list_add_tail(&oh->node, &omap_hwmod_list);  |