RE: [PATCH 7/8 v2] OMAP: Hwmod api changes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, 

>-----Original Message-----
>From: Kevin Hilman [mailto:khilman@xxxxxxxxxxxxxxxxxxx] 
>Sent: Thursday, August 26, 2010 5:12 AM
>To: Kalliguddi, Hema
>Cc: linux-omap@xxxxxxxxxxxxxxx; linux-usb@xxxxxxxxxxxxxxx; 
>Basak, Partha; Felipe Balbi; Tony Lindgren; Cousson, Benoit; 
>Paul Walmsley
>Subject: Re: [PATCH 7/8 v2] OMAP: Hwmod api changes
>
>Hema HK <hemahk@xxxxxx> writes:
>
>> OMAP USBOTG modules has a requirement to set the auto idle 
>bit only after
>> setting smart idle bit. Modified the _sys_enable api to set 
>the smart idle
>> first and then the autoidle bit. Setting this will not have 
>any impact on the
>> other modules.
>>
>> Added 2 wrapper APIs in the omap device layer for wakeup 
>enable/disable
>> and sidle/mstandby settings.
>
>This should be a separate patch, with an description of who 
>the users of
>this API would be and why.
>
Ok. I can post it as separate patch also.  But I think there was plan from Rajendra to
Enable the wakeup as part of the sysc_enable() if smart idle/standby is configured.
If that implementation is done then there is no need of this patch.


>> Signed-off-by: Hema HK <hemahk@xxxxxx>
>> Signed-off-by: Basak, Partha <p-basak2@xxxxxx>
>>
>> Cc: Felipe Balbi <felipe.balbi@xxxxxxxxx>
>> Cc: Tony Lindgren <tony@xxxxxxxxxxx>
>> Cc: Kevin Hilman <khilman@xxxxxxxxxxxxxxxxxxx>
>> Cc: Cousson, Benoit <b-cousson@xxxxxx>
>> Cc: Paul Walmsley <paul@xxxxxxxxx>
>> ---
>>  arch/arm/mach-omap2/omap_hwmod.c              |   18 +++++++---
>>  arch/arm/plat-omap/include/plat/omap_device.h |    2 +
>>  arch/arm/plat-omap/omap_device.c              |   43 
>+++++++++++++++++++++++++
>>  3 files changed, 57 insertions(+), 6 deletions(-)
>>
>> diff --git a/arch/arm/mach-omap2/omap_hwmod.c 
>b/arch/arm/mach-omap2/omap_hwmod.c
>> index 9bd99ad..55507a6 100644
>> --- a/arch/arm/mach-omap2/omap_hwmod.c
>> +++ b/arch/arm/mach-omap2/omap_hwmod.c
>> @@ -654,12 +654,6 @@ static void _sysc_enable(struct omap_hwmod *oh)
>>  		_set_master_standbymode(oh, idlemode, &v);
>>  	}
>>  
>> -	if (sf & SYSC_HAS_AUTOIDLE) {
>> -		idlemode = (oh->flags & HWMOD_NO_OCP_AUTOIDLE) ?
>> -			0 : 1;
>> -		_set_module_autoidle(oh, idlemode, &v);
>> -	}
>> -
>>  	/* XXX OCP ENAWAKEUP bit? */
>>  
>>  	/*
>> @@ -672,6 +666,18 @@ static void _sysc_enable(struct omap_hwmod *oh)
>>  		_set_clockactivity(oh, oh->class->sysc->clockact, &v);
>>  
>>  	_write_sysconfig(v, oh);
>> +
>> +	/* Set the auto idle bit only after setting the smartidle bit
>> +	 * as this is requirement for some modules like USBOTG
>> +	 * setting this will not have any impact on the other modues.
>> +	 */
>
>Please fix multi-line comment style.  (search for multi-line in
>Documentation/CodingStyle)
>
Sure I will fix it.

>Kevin
>
>> +	if (sf & SYSC_HAS_AUTOIDLE) {
>> +		idlemode = (oh->flags & HWMOD_NO_OCP_AUTOIDLE) ?
>> +			0 : 1;
>> +		_set_module_autoidle(oh, idlemode, &v);
>> +	}
>> +	_write_sysconfig(v, oh);
>>  }
>>  
>>  /**
>> diff --git a/arch/arm/plat-omap/include/plat/omap_device.h 
>b/arch/arm/plat-omap/include/plat/omap_device.h
>> index 25cd9ac..c3eb07e 100644
>> --- a/arch/arm/plat-omap/include/plat/omap_device.h
>> +++ b/arch/arm/plat-omap/include/plat/omap_device.h
>> @@ -116,6 +116,8 @@ int omap_device_enable_hwmods(struct 
>omap_device *od);
>>  int omap_device_disable_clocks(struct omap_device *od);
>>  int omap_device_enable_clocks(struct omap_device *od);
>>  
>> +int omap_device_enable_wakeup(struct platform_device *pdev);
>> +int omap_device_disable_wakeup(struct platform_device *pdev);
>>  
>>  /*
>>   * Entries should be kept in latency order ascending
>> diff --git a/arch/arm/plat-omap/omap_device.c 
>b/arch/arm/plat-omap/omap_device.c
>> index d2b1609..10182b1 100644
>> --- a/arch/arm/plat-omap/omap_device.c
>> +++ b/arch/arm/plat-omap/omap_device.c
>> @@ -757,3 +757,46 @@ int omap_device_enable_clocks(struct 
>omap_device *od)
>>  	/* XXX pass along return value here? */
>>  	return 0;
>>  }
>> +
>> +/**
>> + * omap_device_enable_wakeup - Enable the wakeup bit
>> + * @od: struct omap_device *od
>> + *
>> + * Enable the wakup bit for omap_hwmods associated
>> + * with the omap_device.  Returns 0.
>> + */
>> +int omap_device_enable_wakeup(struct platform_device *pdev)
>> +{
>> +	struct omap_hwmod *oh;
>> +	struct omap_device *od = _find_by_pdev(pdev);
>> +	int i;
>> +
>> +	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
>> +		omap_hwmod_enable_wakeup(oh);
>> +
>> +	/* XXX pass along return value here? */
>> +	return 0;
>> +}
>> +
>> +/**
>> + * omap_device_disable_wakeup -Disable the wakeup bit
>> + * @od: struct omap_device *od
>> + *
>> + * Disable the wakup bit for omap_hwmods associated
>> + * with the omap_device.  Returns 0.
>> + */
>> +
>> +
>> +int omap_device_disable_wakeup(struct platform_device *pdev)
>> +{
>> +	struct omap_hwmod *oh;
>> +	struct omap_device *od = _find_by_pdev(pdev);
>> +	int i;
>> +
>> +	for (i = 0, oh = *od->hwmods; i < od->hwmods_cnt; i++, oh++)
>> +		omap_hwmod_disable_wakeup(oh);
>> +
>> +	/* XXX pass along return value here? */
>> +	return 0;
>> +}
>> +
>--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux