platform/kernel/linux-3.10.git
9 years agothermal: ti-soc-thermal: remove usage of IS_ERR_OR_NULL
Eduardo Valentin [Wed, 29 May 2013 15:07:43 +0000 (15:07 +0000)]
thermal: ti-soc-thermal: remove usage of IS_ERR_OR_NULL

This patch changes the driver to avoid the usage of IS_ERR_OR_NULL()
macro. This macro can lead to dangerous results, like returning
success (0) during a failure scenario (NULL pointer handling).

For this reason this patch is changing the driver after
revisiting the code. These are the cases:
i. For cases in which IS_ERR_OR_NULL() is used for checking
return values of functions that returns either PTR_ERR()
or a valid pointer, it has been translated to IS_ERR() check only.
ii. For cases that a NULL check is still needed, it has been
translated to if (!ptr || IS_ERR(ptr)).

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: ti-soc-thermal: freeze FSM while computing trend
Eduardo Valentin [Fri, 7 Jun 2013 19:13:13 +0000 (19:13 +0000)]
thermal: ti-soc-thermal: freeze FSM while computing trend

In order to read the history buffer, it is required to
freeze BG FSM. This patch adds the missing piece of code
to freeze the FSM and also a contention area to avoid
other parts of the code to access the DTEMPs.

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: ti-soc-thermal: remove external heat while extrapolating hotspot
Eduardo Valentin [Wed, 29 May 2013 15:07:41 +0000 (15:07 +0000)]
thermal: ti-soc-thermal: remove external heat while extrapolating hotspot

For boards that provide a PCB sensor close to SoC junction
temperature, it is possible to remove the cumulative heat
reported by the SoC temperature sensor.

This patch changes the extrapolation computation to consider
an external sensor in the extrapolation equations.

Cc: Zhang Rui <rui.zhang@intel.com>
Cc: linux-pm@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: cpu_cooling: fix 'descend' check in get_property()
Shawn Guo [Tue, 28 May 2013 06:22:32 +0000 (06:22 +0000)]
thermal: cpu_cooling: fix 'descend' check in get_property()

The variable 'descend' is initialized as -1 in function get_property(),
and will never get any chance to be updated by the following code.

if (freq != CPUFREQ_ENTRY_INVALID && descend != -1)
descend = !!(freq > table[i].frequency);

This makes function get_property() return the wrong frequency for given
cooling level if the frequency table is sorted in ascending.  Fix it
by correcting the 'descend' check in if-condition to 'descend == -1'.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: spear: Remove redundant use of of_match_ptr
Sachin Kamat [Thu, 16 May 2013 10:28:11 +0000 (10:28 +0000)]
Thermal: spear: Remove redundant use of of_match_ptr

'spear_thermal_id_table' is always compiled in and the driver
is dependent on OF. Hence use of of_match_ptr is unnecessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Vincenzo Frascino <vincenzo.frascino@st.com>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: kirkwood: Remove redundant use of of_match_ptr
Sachin Kamat [Thu, 16 May 2013 10:28:10 +0000 (10:28 +0000)]
Thermal: kirkwood: Remove redundant use of of_match_ptr

'kirkwood_thermal_id_table' is always compiled in and the driver
is dependent on OF. Hence use of of_match_ptr is unnecessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: dove: Remove redundant use of of_match_ptr
Sachin Kamat [Thu, 16 May 2013 10:28:09 +0000 (10:28 +0000)]
Thermal: dove: Remove redundant use of of_match_ptr

'dove_thermal_id_table' is always compiled in and the driver
is dependent on OF. Hence use of of_match_ptr is unnecessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: armada: Remove redundant use of of_match_ptr
Sachin Kamat [Thu, 16 May 2013 10:28:08 +0000 (10:28 +0000)]
Thermal: armada: Remove redundant use of of_match_ptr

'armada_thermal_id_table' is always compiled in and the driver
is dependent on OF. Hence use of of_match_ptr is unnecessary.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: introduce TI SoC thermal driver
Eduardo Valentin [Wed, 15 May 2013 15:46:00 +0000 (15:46 +0000)]
thermal: introduce TI SoC thermal driver

This patch moves the ti-soc-thermal driver out of
the staging tree to the thermal tree.

Cc: Grant Likely <grant.likely@linaro.org>
Cc: Rob Herring <rob.herring@calxeda.com>
Cc: Rob Landley <rob@landley.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Zhang Rui <rui.zhang@intel.com>
Cc: Eduardo Valentin <eduardo.valentin@ti.com>
Cc: J Keerthy <j-keerthy@ti.com>
Cc: Radhesh Fadnis <radhesh.fadnis@ti.com>
Cc: Cyril Roelandt <tipecaml@gmail.com>
Cc: devicetree-discuss@lists.ozlabs.org
Cc: linux-doc@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: devel@driverdev.osuosl.org
Cc: linux-pm@vger.kernel.org
Signed-off-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: don't check resource with devm_ioremap_resource
Zhang Rui [Thu, 16 May 2013 02:16:21 +0000 (02:16 +0000)]
Thermal: don't check resource with devm_ioremap_resource

devm_ioremap_resource does sanity checks on the given resource.
No need to duplicate this in the driver.

CC: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
CC: Vincenzo Frascino <vincenzo.frascino@st.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
Acked-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
9 years agoThermal: core: Ask .get_trip_temp() to register thermal zone device.
Jonghwa Lee [Sat, 18 May 2013 09:50:26 +0000 (09:50 +0000)]
Thermal: core: Ask .get_trip_temp() to register thermal zone device.

This patch adds a requirement needing .get_trip_temp() callback
function for registering thermal zone device. This function is
used when thermal zone is updated and essential where thermal core
handles thermal trip based only polling way not hw interrupt.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Acked-by: Durgadoss R <durgadoss.r@intel.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: cut the spaces when user sets policy
Andy Shevchenko [Fri, 17 May 2013 11:52:02 +0000 (11:52 +0000)]
thermal: cut the spaces when user sets policy

Setting policy results in invalid value error.
% echo "step_wise" > policy
% echo: write error: Invalid argument

Need clean up of the buffer which "echo" may add based on the arguments, before
comparing aganist list of governor names.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reported-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Tested-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agothermal: rcar: Fix typo in probe information message
Laurent Pinchart [Tue, 14 May 2013 23:00:32 +0000 (23:00 +0000)]
thermal: rcar: Fix typo in probe information message

Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: spear_thermal: convert to devm_ioremap_resource
Zhang Rui [Thu, 16 May 2013 02:16:20 +0000 (02:16 +0000)]
Thermal: spear_thermal: convert to devm_ioremap_resource

Use the newly introduced devm_ioremap_resource().

devm_ioremap_resource() provides its own error messages; so all explicit
error messages can be removed from the failure code paths.

CC: Vincenzo Frascino <vincenzo.frascino@st.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agodrivers/thermal: don't check resource with devm_ioremap_resource
Wolfram Sang [Fri, 10 May 2013 08:17:11 +0000 (08:17 +0000)]
drivers/thermal: don't check resource with devm_ioremap_resource

devm_ioremap_resource does sanity checks on the given resource. No need to
duplicate this in the driver.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: spear: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:13 +0000 (09:57 +0000)]
Thermal: spear: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Vincenzo Frascino <vincenzo.frascino@st.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: rcar: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:12 +0000 (09:57 +0000)]
Thermal: rcar: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: kirkwood: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:11 +0000 (09:57 +0000)]
Thermal: kirkwood: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Acked-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: exynos: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:10 +0000 (09:57 +0000)]
Thermal: exynos: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: dove_thermal: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:09 +0000 (09:57 +0000)]
Thermal: dove_thermal: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Andrew Lunn <andrew@lunn.ch>
Acked-by: Andrew Lunn <andrew@lunn.ch>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoThermal: armada_thermal: Remove redundant platform_set_drvdata()
Sachin Kamat [Fri, 3 May 2013 09:57:08 +0000 (09:57 +0000)]
Thermal: armada_thermal: Remove redundant platform_set_drvdata()

Commit 0998d06310 (device-core: Ensure drvdata = NULL when no
driver is bound) removes the need to set driver data field to
NULL.

Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org>
Cc: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Acked-by: Eduardo Valentin <eduardo.valentin@ti.com>
Signed-off-by: Zhang Rui <rui.zhang@intel.com>
9 years agoRevert "Thermal: exynos: Support for TMU regulator defined at device tree"
Jonghwa Lee [Fri, 1 Nov 2013 05:54:23 +0000 (14:54 +0900)]
Revert "Thermal: exynos: Support for TMU regulator defined at device tree"

This reverts commit ed58c6a559cf9a870e55587872f9b0eb322e3e6b.

9 years agommc:sdhci-s3c: Use mmc_gpio_request_cd function
Beomho Seo [Fri, 1 Nov 2013 06:17:02 +0000 (15:17 +0900)]
mmc:sdhci-s3c: Use mmc_gpio_request_cd function

This patch used mmc_gpio_request function for detect card from cd gpio pin.

Include slot-gpio header file.
Use mmc_gpio_request_cd function.
Remove sdhci_s3c_setup_card_detect_gpio/card_detect_thread functions.

Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
9 years agotizen:config: Enable THERMAL and BOOST
Lukasz Majewski [Thu, 31 Oct 2013 17:01:29 +0000 (18:01 +0100)]
tizen:config: Enable THERMAL and BOOST

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoBOOST: Core code compliant with v9 of the patch
Lukasz Majewski [Thu, 31 Oct 2013 15:54:09 +0000 (16:54 +0100)]
BOOST: Core code compliant with v9 of the patch

Update the BOOST framework core to be compliant with v9 version of the patch

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoARM:exynos: Enable boost mode for exynos4412 redwood target
Lukasz Majewski [Mon, 10 Jun 2013 11:57:04 +0000 (13:57 +0200)]
ARM:exynos: Enable boost mode for exynos4412 redwood target

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agocpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ
Lukasz Majewski [Tue, 9 Jul 2013 07:08:43 +0000 (09:08 +0200)]
cpufreq:exynos4x12: Change L0 driver data to CPUFREQ_BOOST_FREQ

Special driver data flag (CPUFREQ_BOOST_FREQ) has been added to indicate
frequency, which can be only enabled for BOOST mode.
This frequency shall be used only for limited time, since it might cause
target device to overheat.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- New patch

9 years agoDocumentation:cpufreq:boost: Update BOOST documentation
Lukasz Majewski [Wed, 3 Jul 2013 12:36:24 +0000 (14:36 +0200)]
Documentation:cpufreq:boost: Update BOOST documentation

Since the support for software and hardware controlled boosting has been
added, the corresponding Documentation entry had been updated.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- None

Changes for v5:
- New patch

9 years agocpufreq:boost:Kconfig: Enable software managed BOOST support at Kconfig
Lukasz Majewski [Thu, 18 Jul 2013 13:33:28 +0000 (15:33 +0200)]
cpufreq:boost:Kconfig: Enable software managed BOOST support at Kconfig

For safety reasons new flag - CONFIG_CPU_FREQ_BOOST_SW has been added.
Only after selecting "CPU Frequency Overclocking - Software" Kconfig
option the software managed boost is enabled. It also requires thermal
subsystem to be compiled in. Thermal is necessary for disabling boost
and cooling down the device when overheating detected.

Boost _MUST_NOT_ be enabled without thermal subsystem with properly
defined temperatures which indicate overheating.

This option doesn't affect x86's ACPI hardware managed boost support
(i.e. Intel, AMD). In this situation boost management is embedded at
hardware.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- Remove platform dependency (EXYNOS_THERMAL) in selecting software
  managed boost. Now boost only depends on THERMAL.
- Remove CPUFREQ dependency
- Software boost Kconfig name has been edited

Changes for v5:
- New patch

9 years agothermal:boost: Automatic enable/disable of BOOST feature
Lukasz Majewski [Mon, 8 Jul 2013 15:15:11 +0000 (17:15 +0200)]
thermal:boost: Automatic enable/disable of BOOST feature

This patch provides auto disable/enable operation for boost. When any
defined trip point is passed, the boost is disabled.
In that moment thermal monitor workqueue is woken up and it monitors
if the device temperature drops below 75% of the smallest trip point.
When device cools down, the boost is enabled again.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- Disable boost only when supported and enabled
- Protect boost related thermal_zone_device struct fields with mutex
- Evaluate temperature trend during boost enable decision
- Create separate methods to handle boost enable/disable
  (thermal_boost_{enable|disable}) operations
- Boost is disabled at any trip point passage (not only the non critical one)

Changes for v5:
- Move boost disable code from cpu_cooling.c to thermal_core.c
  (to handle_non_critical_trips)
- Extent struct thermal_zone_device by adding overheated bool flag
- Implement auto enable of boost after device cools down
- Introduce boost_polling flag, which indicates if thermal uses it's predefined
  pool delay or has woken up thermal workqueue only to wait until device
  cools down.

Changes for v4:
- New patch

9 years agocpufreq:exynos:Extend Exynos cpufreq driver to support boost framework
Lukasz Majewski [Thu, 18 Jul 2013 14:49:53 +0000 (16:49 +0200)]
cpufreq:exynos:Extend Exynos cpufreq driver to support boost framework

The struct cpufreq_driver has been extended to embrace the information
related to boost support.

When "boost_mode" device tree attribute is defined for a platform, the
boost_supported flag is set. Moreover boost related attributes were
exported.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- replace exynos_driver.boost_supported = 1 to = true

Changes for v5:
- None

Changes for v4:
- None

Changes for v3:
- Remove low level boost code
- Move boost management code to cpufreq core code
- Use boost_supported flag to indicate if driver supports over clocking

Changes for v2:
- Removal of struct cpufreq_boost
- Removal of the CONFIG_CPU_FREQ_BOOST flag
- low_level_boost with valid address when boost is supported

9 years agocpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution
Lukasz Majewski [Wed, 3 Jul 2013 15:36:25 +0000 (17:36 +0200)]
cpufreq:acpi:x86: Adjust the acpi-cpufreq.c code to work with common boost solution

The Intel's hardware based boost solution driver has been changed to cooperate with
common cpufreq boost framework.

The global sysfs boost attribute entry code (/sys/devices/system/cpu/cpufreq/boost)
has been moved to a core cpufreq code. This attribute is now only visible,
when cpufreq driver supports it.

The _store_boost() function has been redesigned to be used as enable_boost
callback.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- Use boost_enabled flag defined at acpi_cpufreq_driver to store information
  about boost state
- Instead of using cpufreq_set_boost_enabled(), modify the boost_enable in
  the acpi driver code

Changes for v5:
- Remove acpi-cpufreq's boost_enabled global flag and reuse one defined at
  cpufreq core

Changes for v4:
- add _store_boost to acpi_cpufreq_driver structure

Changes for v3:
- Bring back boost_enabled as a global flag
- Move boost_supported to cpufreq_driver structure

Changes for v2:
- Replace boost_enabled and boost_supported global flags with proper entries
at struct cpufreq_driver.
- Removal of struct cpufreq_boost

9 years agocpufreq: Add boost frequency support in core
Lukasz Majewski [Fri, 19 Jul 2013 11:33:13 +0000 (13:33 +0200)]
cpufreq: Add boost frequency support in core

This commit adds boost frequency support in cpufreq core (Hardware &
Software).
Some SoC (like Exynos4 - e.g. 4x12) allow setting frequency above
its normal operation limits. Such a mode shall be only used for a short
time.

Overclocking (boost) support is essentially provided by platform
dependent cpufreq driver.

This commit unifies support for SW and HW (Intel) overclocking solutions
in the core cpufreq driver. Previously the "boost" sysfs attribute was
defined at acpi driver code.
By default boost is disabled. One global attribute is available at:
/sys/devices/system/cpu/cpufreq/boost.

It only shows up when cpufreq driver supports overclocking.
Under the hood frequencies dedicated for boosting are marked with a
special flag (CPUFREQ_BOOST_FREQ) at driver's frequency table.
It is the user's concern to enable/disable overclocking with proper call to
sysfs.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- Remove sysfs boost attribute when subsys_iterface_unregister() fails
- Move global boost_enabled variable from cpufreq.c to platform dependent
  struct cpufreq_driver
- pr_err() message is also printed when boost disable fails

Changes for v5:
- Rename cpufreq_boost_trigger_state_sw() to cpufreq_boost_enable_sw()
- Extent cpufreq_register_driver() to check if cpufreq driver provided
  boost_enable callback. If not provided, then use cpufreq_boost_enable_sw()
- Use single call to cpufreq_driver->enable_boost() with cpufreq driver
  provided callback or default SW boost enable routine
- Move pr_debug call to store_boost() from cpufreq_boost_trigger_state()
- Change the user_policy.max value when SW boost is toggled. It is necessary
  for proper operation of e.g. thermal subsystem.
- Add check if cpufreq_driver pointer is not NULL at
  cpufreq_boost_supported() routine
- Add EXPORT_SYMBOL_GPL for cpufreq_boost_supported() and
  cpufreq_boost_enabled()
- Remove extra check for cpufreq_boost_supported() at
  cpufreq_freq_table_cpuinfo()
- Explanation of show boost logic at show_available_freqs()
- Add cpufreq_set_boost_enabled() method to set initial value of boost_enabled
  global flag

Changes for v4:
- Remove boost parameter from cpufreq_frequency_table_cpuinfo() function
- Introduce cpufreq_boost_supported() method
- Use of cpufreq_boost_supported() and cpufreq_boost_enabled() to decide
  if frequency shall be skipped
- Rename set_boost_freq() to enable_boost()
- cpufreq_attr_available_freq() moved to freq_table.c
- Use policy list to get access to cpufreq policies
- Rename global boost flag (cpufreq_boost_enabled -> boost_enabled)
- pr_err corrected ( %sable)
- Remove sanity check at cpufreq_boost_trigger_state() entrance [to test if
  boost is supported]
- Use either HW (boost_enable) callback or SW managed boost
- Introduce new cpufreq_boost_trigger_state_sw() method to handle boost
  at SW.
- Protect boost_enabled manipulation with lock.

Changes for v3:
- Method for reading boost status
- Removal of cpufreq_frequency_table_max()
- Extent cpufreq_frequency_table_cpuinfo() to support boost parameter
- boost_supported flag added to cpufreq_driver struct
- "boost" sysfs attribute control flag removed
- One global flag describing state of the boost defined at cpufreq core
- Rename cpufreq_driver's low_level_boost field to set_boost_freq()
- Usage of cpufreq_sysfs_{remove|add}_file() routines

Changes for v2:
- Removal of cpufreq_boost structure and move its fields to cpufreq_driver
  structure
- Flag to indicate if global boost attribute is already defined
- Extent the pr_{err|debbug} functions to show current function names

9 years agocpufreq: Store cpufreq policies in a list
Lukasz Majewski [Tue, 2 Jul 2013 16:01:10 +0000 (18:01 +0200)]
cpufreq: Store cpufreq policies in a list

Policies available in a cpufreq framework are now linked together. They are
accessible via cpufreq_policy_list defined at cpufreq core.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Changes for v6:
- Move policy list entry delete code to __cpufreq_remove_dev()

Changes for v5:
- Call list_add() only when device successfully added

Changes for v4:
- New patch

9 years agocpufreq: Don't create empty /sys/devices/system/cpu/cpufreq directory
Viresh Kumar [Fri, 17 May 2013 10:39:09 +0000 (16:09 +0530)]
cpufreq: Don't create empty /sys/devices/system/cpu/cpufreq directory

When we don't have any file in cpu/cpufreq directory we shouldn't
create it. Specially with the introduction of per-policy governor
instance patchset, even governors are moved to
cpu/cpu*/cpufreq/governor-name directory and so this directory is
just not required.

Lets have it only when required.

Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
9 years agocosmetic: max77686: Remove unused variable
Lukasz Majewski [Thu, 31 Oct 2013 15:51:54 +0000 (16:51 +0100)]
cosmetic: max77686: Remove unused variable

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoregulator:max77686: Correct GPIOs for BUCK2 DVS setting
Lukasz Majewski [Thu, 31 Oct 2013 15:52:55 +0000 (16:52 +0100)]
regulator:max77686: Correct GPIOs for BUCK2 DVS setting

Before this patch SELB and DVS pins were wrongly defined in the DTS.

As a result MAX77686 always used BUCK2_DVS1 register (the DVS pins were
set all to 0). However the default DVS index (default_dvs_idx) was set to 1.

Therefore, the default value of BUCK2_DVS1 register (1.1V) was always
setup. Wrongly the driver was changing BUCK2_DVS2 register. Due to that
voltage was NOT changed at all.

The problem appeared when BOOST was ported to v3.10-mobile. It requires
around 1.3V, but default voltage is set to 1.1V (0x28). Too small voltage
resulted in OOPs at random places.

As a side note:
The MAX77686 is NOT using DVS with GPIO. It changes the value of current
voltage with I2C utilization.

Tested at: REDWOOD - Exynos4412 - rev1.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agontc_thermistor: Update DT and board configuration to enable NTC thermistors.
Jonghwa Lee [Thu, 31 Oct 2013 15:34:32 +0000 (00:34 +0900)]
ntc_thermistor: Update DT and board configuration to enable NTC thermistors.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoADC: EXYNOS4412: Update DT and board configuration to enable ADC.
Jonghwa Lee [Thu, 31 Oct 2013 15:25:47 +0000 (00:25 +0900)]
ADC: EXYNOS4412: Update DT and board configuration to enable ADC.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger-manager: Fix unit of temperature to deci centigrade.
Jonghwa Lee [Thu, 31 Oct 2013 02:20:56 +0000 (11:20 +0900)]
charger-manager: Fix unit of temperature to deci centigrade.

Fix temperature unit to follow the standard as document describes.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoRevert "battery: max17042/7: Fix temperature unit to milli centigrade."
Jonghwa Lee [Thu, 31 Oct 2013 02:20:27 +0000 (11:20 +0900)]
Revert "battery: max17042/7: Fix temperature unit to milli centigrade."

This reverts commit 79b1d3591b35022b93f2d70c299e74eb54bfec09.

9 years agodisplay: panels: remove duplicated display_entity_set_state() for pm
Donghwa Lee [Wed, 30 Oct 2013 06:46:07 +0000 (15:46 +0900)]
display: panels: remove duplicated display_entity_set_state() for pm

remove duplicated display_entity_set_state() in suspend/resume function

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
9 years agoexynos: drm_fimd: remove duplicated clock control for fimd_dpms
Donghwa Lee [Tue, 29 Oct 2013 07:46:33 +0000 (16:46 +0900)]
exynos: drm_fimd: remove duplicated clock control for fimd_dpms

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
9 years agoexynos: drm_fimd: support lcdblk system register control
Donghwa Lee [Tue, 29 Oct 2013 07:40:20 +0000 (16:40 +0900)]
exynos: drm_fimd: support lcdblk system register control

Signed-off-by: Donghwa Lee <dh09.lee@samsung.com>
9 years agommc: core: change the clkgate_delay value from 0 to 3.
Jaehoon Chung [Mon, 28 Oct 2013 06:13:22 +0000 (15:13 +0900)]
mmc: core: change the clkgate_delay value from 0 to 3.

When clkgate_delay is set to 0, then clk is gated at every request.
It's inefficient. So, it's changed from 0 to 3.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
9 years agodrivers: s3c-hsotg: hide some not really needed debug messages
Marek Szyprowski [Tue, 22 Oct 2013 13:23:24 +0000 (15:23 +0200)]
drivers: s3c-hsotg: hide some not really needed debug messages

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agodrivers: s3c-hsotg: fix incorrect condition for clear_feature request
Marek Szyprowski [Tue, 22 Oct 2013 13:03:59 +0000 (15:03 +0200)]
drivers: s3c-hsotg: fix incorrect condition for clear_feature request

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agodrivers: s3c-hsotg: fix regulator enable sequence in resume callback
Marek Szyprowski [Fri, 25 Oct 2013 09:24:21 +0000 (11:24 +0200)]
drivers: s3c-hsotg: fix regulator enable sequence in resume callback

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agoOF: fdt: Add support for parsing system serial number from device tree
Tomasz Figa [Thu, 26 Sep 2013 17:14:37 +0000 (19:14 +0200)]
OF: fdt: Add support for parsing system serial number from device tree

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
9 years agoARM: atags_to_fdt: Add support for passing serial number
Tomasz Figa [Thu, 26 Sep 2013 17:14:12 +0000 (19:14 +0200)]
ARM: atags_to_fdt: Add support for passing serial number

Signed-off-by: Tomasz Figa <t.figa@samsung.com>
9 years agoARM: dts: exynos4412_slp_pq: add the desc_num for mshc
Jaehoon Chung [Thu, 24 Oct 2013 13:36:43 +0000 (22:36 +0900)]
ARM: dts: exynos4412_slp_pq: add the desc_num for mshc

Add the desc_num for mshc. (using 4)

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
9 years agommc: dw_mmc: add the platdat for descriptor number.
Jaehoon Chung [Thu, 24 Oct 2013 13:35:36 +0000 (22:35 +0900)]
mmc: dw_mmc: add the platdat for descriptor number.

This platdata is related with buffer size.
It's increaed the performance.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
9 years agoARM: dts: exynos4412-spl_pq: rename the fixed regulator for eMMC
Jaehoon Chung [Thu, 24 Oct 2013 12:40:24 +0000 (21:40 +0900)]
ARM: dts: exynos4412-spl_pq: rename the fixed regulator for eMMC

VMEM_2.8V is already defined for LDO22.
Fixed regulator need to rename the other.

Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
9 years agodrm/exynos: fix to calculate offset of each plane for ipp fimc
Seung-Woo Kim [Tue, 22 Oct 2013 07:44:13 +0000 (16:44 +0900)]
drm/exynos: fix to calculate offset of each plane for ipp fimc

NV12 and YUV420 formats are need to calculate offset of each plane
for ipp fimc in a gem buffer. Without proper offset, only Y plane
can be processed, so result shows green frame.
This patch fixes to calculate offset for cbcr planes for NV12 and
YUV420 formats.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
9 years agodrm/exynos: add support ARGB8888 for ipp fimc
Seung-Woo Kim [Fri, 4 Oct 2013 06:45:37 +0000 (15:45 +0900)]
drm/exynos: add support ARGB8888 for ipp fimc

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
9 years agocharger-manager: Parse charger_desc from device tree.
Jonghwa Lee [Tue, 22 Oct 2013 07:53:55 +0000 (16:53 +0900)]
charger-manager: Parse charger_desc from device tree.

With this patch, charger-manager can support device tree fully.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agodrivers: s3c-hsotg: add proper suspend/resume support
Marek Szyprowski [Tue, 22 Oct 2013 12:42:14 +0000 (14:42 +0200)]
drivers: s3c-hsotg: add proper suspend/resume support

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agobattery: max17042/7: Fix temperature unit to milli centigrade.
Jonghwa Lee [Tue, 22 Oct 2013 07:55:52 +0000 (16:55 +0900)]
battery: max17042/7: Fix temperature unit to milli centigrade.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger-manager : Add default battery temperature checking funtion.
Jonghwa Lee [Tue, 22 Oct 2013 08:35:58 +0000 (17:35 +0900)]
charger-manager : Add default battery temperature checking funtion.

During the charger manager driver's probing time, it can't succeed
if there's no pre-defined .temperature_out_of_range callback function.
But if fuel gauge supports battery temperature measurement, we
can use it directly. That's what cm_default_get_temp() function does.

With flag measure_batter_temp ON, we normally use cm_default_get_temp()
for .temperature_out_of_range callback funtion.
The TEMP_AMBIENT property is only used for pre-defined one.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger-manager : Replace kzalloc to devm_kzalloc and remove uneccessary code.
Jonghwa Lee [Mon, 21 Oct 2013 11:03:16 +0000 (20:03 +0900)]
charger-manager : Replace kzalloc to devm_kzalloc and remove uneccessary code.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger-manager: Add cm_chg_add_prorperty() macro.
Jonghwa Lee [Mon, 21 Oct 2013 09:33:48 +0000 (18:33 +0900)]
charger-manager: Add cm_chg_add_prorperty() macro.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoM0 : charging : Make to charge battery fully.
Jonghwa Lee [Wed, 16 Oct 2013 10:42:19 +0000 (19:42 +0900)]
M0 : charging : Make to charge battery fully.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoFuel Guague: MAX17042: Use regmap to interface with internal registers
Jonghwa Lee [Wed, 16 Oct 2013 04:39:11 +0000 (13:39 +0900)]
Fuel Guague: MAX17042: Use regmap to interface with internal registers

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoextcon: Extcon load time modification
Kamil Debski [Tue, 15 Oct 2013 13:30:00 +0000 (15:30 +0200)]
extcon: Extcon load time modification

This modification enables use of extcon by drivers loaded early during the
boot (e.g. udc-core).

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agousb: gadget: udc-core: Add extcon hanling to reduce power use
Kamil Debski [Tue, 15 Oct 2013 11:55:18 +0000 (13:55 +0200)]
usb: gadget: udc-core: Add extcon hanling to reduce power use

Extcon driver provides information about what kind of cable has been
inserted in the device's USB port. Power use can be reduced if UDC is
switched off while no suitable cable is present.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agos3c-hsotg: Fix driver context storing
Kamil Debski [Tue, 15 Oct 2013 13:16:05 +0000 (15:16 +0200)]
s3c-hsotg: Fix driver context storing

Before applying this fix calling s3c_hsotg_udc_start, *stop and *start
again resulted in a WARN_ON(hsotg->driver) being triggered in *start.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agos3c-hsotg: Regulator switching fix
Kamil Debski [Tue, 15 Oct 2013 13:26:40 +0000 (15:26 +0200)]
s3c-hsotg: Regulator switching fix

This patch delays switching off regulators in s3c_hsotg_udc_stop after
the critical section has been finished.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agophy: exynos-usb: Remove ref counting for additional reset for Exynos4212
Kamil Debski [Tue, 15 Oct 2013 13:41:41 +0000 (15:41 +0200)]
phy: exynos-usb: Remove ref counting for additional reset for Exynos4212

Reference counting in this case is not necessary.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: exynos4412-slp_pq: Remove regulator_always_on for HSIC regulator
Kamil Debski [Tue, 15 Oct 2013 13:41:32 +0000 (15:41 +0200)]
dts: exynos4412-slp_pq: Remove regulator_always_on for HSIC regulator

This regulator should be switched on/off by driver that use it.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: Add extcon phandle to hsotg node
Lukasz Czerwinski [Fri, 19 Jul 2013 07:01:50 +0000 (09:01 +0200)]
dts: Add extcon phandle to hsotg node

This patch adds extconi device(max77693) phandle for s3c_hsotg node.

Signed-off-by: Lukasz Czerwinski <l.czerwinski@samsung.com>
9 years agomfd: max77693: Add max77693-pmuic compatible
Lukasz Czerwinski [Thu, 18 Jul 2013 11:58:43 +0000 (13:58 +0200)]
mfd: max77693: Add max77693-pmuic compatible

This patch adds of_compatible field for max7763-pmuic - mfd device

Signed-off-by: Lukasz Czerwinski <l.czerwinski@samsung.com>
9 years agoextcon: Add EXPORT_SYMBOL_GPL for exported functions
Kishon Vijay Abraham I [Mon, 3 Jun 2013 16:13:38 +0000 (01:13 +0900)]
extcon: Add EXPORT_SYMBOL_GPL for exported functions

Added EXPORT_SYMBOL_GPL() for extcon_register_interest and
extcon_register_notifier in order to avoid undefined reference
error when building the consumer modules of extcon as _modules_.

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
9 years agoextcon: Add an API to get extcon device from dt node
Kishon Vijay Abraham I [Tue, 11 Jun 2013 11:48:02 +0000 (20:48 +0900)]
extcon: Add an API to get extcon device from dt node

Added an API of_extcon_get_extcon_dev() to be used by drivers to get
extcon device in the case of dt boot (this can be used instead of
extcon_get_extcon_dev()).

Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com>
9 years agocharger-manager : Make charge_now node under batter sysfs directory.
Jonghwa Lee [Fri, 11 Oct 2013 13:25:13 +0000 (22:25 +0900)]
charger-manager : Make charge_now node under batter sysfs directory.

CHARGE_NOW property has beed used in wrong way, it should be fixed
as it is planned initially. But for now, we just leave it for
upper layer (e.g. OAL) for a while.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger: max77693: Fix initial charger configuration properly.
Jonghwa Lee [Fri, 11 Oct 2013 13:15:16 +0000 (22:15 +0900)]
charger: max77693: Fix initial charger configuration properly.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agocharger: max77693: code cleaning
Jonghwa Lee [Fri, 11 Oct 2013 12:49:51 +0000 (21:49 +0900)]
charger: max77693: code cleaning

- Remove duplicated macro data.
- Improve readability.

Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
9 years agoexynos_drm_fimc: simplify and rename fimc_dst_get_buf_seq
Andrzej Hajda [Wed, 9 Oct 2013 11:59:43 +0000 (13:59 +0200)]
exynos_drm_fimc: simplify and rename fimc_dst_get_buf_seq

fimc_dst_get_buf_seq returns number of buffers
so the name should be fimc_dst_get_buf_count.
Function body has been simplified.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm_fimc: replace mutex by spinlock
Andrzej Hajda [Wed, 9 Oct 2013 11:43:58 +0000 (13:43 +0200)]
exynos_drm_fimc: replace mutex by spinlock

Function fimc_dst_set_buf_seq is called
by irq handler so it should not use mutexes.
This patch fixes it.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm_fimc: replace hw access macros with functions
Andrzej Hajda [Wed, 9 Oct 2013 11:23:21 +0000 (13:23 +0200)]
exynos_drm_fimc: replace hw access macros with functions

HW access macros depended on presence of ctx local variable.
This patch replaces them with proper functions.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm_fimc: rename fimc_handle_irq to fimc_mask_irq
Andrzej Hajda [Wed, 9 Oct 2013 09:45:31 +0000 (11:45 +0200)]
exynos_drm_fimc: rename fimc_handle_irq to fimc_mask_irq

fimc_handle_irq suggests it is IRQ handler but it is
irq masking function. Additional small code improvement.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm_fimc: simplify pre-scaler ratio calculation
Andrzej Hajda [Wed, 9 Oct 2013 07:22:55 +0000 (09:22 +0200)]
exynos_drm_fimc: simplify pre-scaler ratio calculation

The patch replaces special function for scaling ratio
calculation by simple fls calls.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm: replace enums by __u32 in structs used in IOCTLs
Andrzej Hajda [Mon, 7 Oct 2013 13:59:40 +0000 (15:59 +0200)]
exynos_drm: replace enums by __u32 in structs used in IOCTLs

enum type has variable size depending on compiler options,
so it should be avoided in structs passed to userland.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agoexynos_drm_ipp: fix get property IOCTL
Andrzej Hajda [Mon, 7 Oct 2013 07:22:02 +0000 (09:22 +0200)]
exynos_drm_ipp: fix get property IOCTL

Due to incorrect assignment in EXYNOS_IPP_GET_PROPERTY
IOCTL handler this IOCTL did not work at all.
The patch fixes it.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
9 years agomedia: s5p-jpeg: fix clock management in suspend/resume path
Marek Szyprowski [Thu, 10 Oct 2013 08:06:24 +0000 (10:06 +0200)]
media: s5p-jpeg: fix clock management in suspend/resume path

Standard suspend/resume path is called after runtime resume of the given
device, so suspend/resume callbacks must do all clock management done also
by runtime pm to allow proper power domain shutdown.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agomedia: fimc: fix clock management in suspend/resume path
Marek Szyprowski [Thu, 10 Oct 2013 08:05:06 +0000 (10:05 +0200)]
media: fimc: fix clock management in suspend/resume path

Standard suspend/resume path is called after runtime resume of the given
device, so suspend/resume callbacks must do all clock management done also
by runtime pm to allow proper power domain shutdown.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agodrivers: iommu: add workaround for multiple suspend/resume calls
Marek Szyprowski [Wed, 9 Oct 2013 13:30:13 +0000 (15:30 +0200)]
drivers: iommu: add workaround for multiple suspend/resume calls

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
9 years agoRevert "HACK: usb: gadget: Fix enumeration on boot"
Marek Szyprowski [Tue, 8 Oct 2013 11:03:25 +0000 (13:03 +0200)]
Revert "HACK: usb: gadget: Fix enumeration on boot"

This reverts commit b0c2c319763e2ace63ace30cd5b9e3e0eb0b9b48.

9 years agousb:gadget: Refcount for gadget pullup
Lukasz Majewski [Tue, 19 Jun 2012 13:28:05 +0000 (15:28 +0200)]
usb:gadget: Refcount for gadget pullup

This commit fixes the way gadget's pullup method (wrapped at
usb_gadget_connect/disconnect) is called in the udc-core.

The composite driver allows correct driver registration, even when it calls
the usb_gadget_disconnect method (composite driver configuration is defered
for user space - please look into the description of usb_composite_probe at
composite.c - line: 1623)

One such example is the CCG (Configurable Composite Gadget) driver (at
drivers/staging/ccg), which after its registration has no usb descriptor
(i.e. idProduct, idVendor etc.) and functions registered. Those are configured
after writing to /sys/module/g_ccg/parameters/ or /sys/class/ccg_usb/ccg0/.

Unfortunately, the code at 'usb_gadget_probe_driver' method (some code omitted):

if (udc_is_newstyle(udc)) {
bind(udc->gadget);
usb_gadget_udc_start(udc->gadget, driver);
usb_gadget_connect(udc->gadget);
}

Explicitly calls the usb_gadget_connect method for this driver. It looks like
the udc-core enables pullup for a driver, which has no functions and no
descriptor filled (those values are feed from userspace).

The USB composite driver API allows correct driver registration with calling
usb_gadget_disconnect method, but as it is now, _ALL_ newstyle usb gadgets are
connected by default. Therefore it violates the composite API.

The solution (at least until the udc-core is reworked) is to add atomic
variable, which helps in balancing the number of called usb_gadget_connect/
disconnect functions.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
9 years agodts:exynos4412-redwood: Adjust REDWOOD dts to support changed cpufreq
Lukasz Majewski [Tue, 8 Oct 2013 10:59:16 +0000 (12:59 +0200)]
dts:exynos4412-redwood: Adjust REDWOOD dts to support changed cpufreq

Overriding the freq_table attribute inherited from SLP_PQ (Proxima).
Remove bindings for overlocking (now it is called boost).

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodts:thermal:exynos4212:pegasusD: Device tree node definition for TMU
Lukasz Majewski [Tue, 8 Oct 2013 10:14:28 +0000 (12:14 +0200)]
dts:thermal:exynos4212:pegasusD: Device tree node definition for TMU

Device tree nodes defined for Exynos4212 based PEGASUS D device.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agodts:cpufreq:exynos4212:pegasusD: Enable support for cpufreq at PEGASUS D via device...
Lukasz Majewski [Tue, 8 Oct 2013 10:13:21 +0000 (12:13 +0200)]
dts:cpufreq:exynos4212:pegasusD: Enable support for cpufreq at PEGASUS D via device tree

Enable cpufreq driver via DTS. Also empty freq_table is defined to override
"default" freq_table defined for PROXIMA PQ.

The volt_table has been defined to reflect MAX8997 based DVS on the PegasusD
device. This volt_table also can be overrided when defined as empty.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agocosmetic: Remove extern from exynos_of_parse_freq_table() declaration
Lukasz Majewski [Tue, 8 Oct 2013 10:07:43 +0000 (12:07 +0200)]
cosmetic: Remove extern from exynos_of_parse_freq_table() declaration

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agocpufreq: exynos4x12: Support the frequency change only with the common clock framework
Lukasz Majewski [Tue, 8 Oct 2013 10:06:59 +0000 (12:06 +0200)]
cpufreq: exynos4x12: Support the frequency change only with the common clock framework

The exynos4x12_pms_change() function has been removed since the PLL's S
parameter change is already preformed at PLL code.

Also the code which changed the S value at exynos4x12_set_frequency() has been
removed.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoARM:clk:exynos:pll35xx: Extend pll35xx_set_rate to support only S parameter switch
Lukasz Majewski [Tue, 8 Oct 2013 10:02:53 +0000 (12:02 +0200)]
ARM:clk:exynos:pll35xx: Extend pll35xx_set_rate to support only S parameter switch

With PLL35xx device it is possible to switch PLL frequency without waiting
for locking.
This situation happens when P and M for new frequency are equal to
corresponding parameters for old frequency. Then only S needs to be changed.
In this patch support for such a change is provided.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoARM: cpufreq: Parse CPUFREQ's voltage table passed as device tree node
Lukasz Majewski [Tue, 8 Oct 2013 09:57:13 +0000 (11:57 +0200)]
ARM: cpufreq: Parse CPUFREQ's voltage table passed as device tree node

Now it is possible to parse cpufreq's voltage table information passed as
device tree node. This is handy for various different PMICs.

It is also possible to override this device tree node by defining empty
"volt_table" node. Then default exynos4x12_volt_table[] is used.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agoregulator:dts:slp-PD: MAX8997 device tree nodes definitions for MIDAS (PEGASUS_D)
Lukasz Majewski [Tue, 8 Oct 2013 09:50:35 +0000 (11:50 +0200)]
regulator:dts:slp-PD: MAX8997 device tree nodes definitions for MIDAS (PEGASUS_D)

Adjustment of regulator configuration (max8997) for MIDAS (PEGASUSD) device.

Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
9 years agophy: exynos: Change order of initialization of phy in power_on
Kamil Debski [Mon, 7 Oct 2013 16:23:49 +0000 (18:23 +0200)]
phy: exynos: Change order of initialization of phy in power_on

The order was changed to turn power on first and the disable the physical
isolation.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
Phy driver change - order of init - to be squashed

9 years agophy: exynos-usb: Fix referenct counting
Kamil Debski [Tue, 1 Oct 2013 13:48:13 +0000 (15:48 +0200)]
phy: exynos-usb: Fix referenct counting

This patch fixes the reference counting when powerin on/off the phy.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: arm: Add voltage regulator and additional clock supply to ehci-s5p
Kamil Debski [Tue, 8 Oct 2013 08:53:58 +0000 (10:53 +0200)]
dts: arm: Add voltage regulator and additional clock supply to ehci-s5p

This patch adds voltage regulator and additional clock support to the
ehci-s5p driver.

Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agoehci-s5p: Add second clock to the ehci-s5p driver
Kamil Debski [Mon, 7 Oct 2013 10:35:40 +0000 (12:35 +0200)]
ehci-s5p: Add second clock to the ehci-s5p driver

Adding the second clock was necessary for the USB HOST to work. Previously
it was working thanks to the USB DEVICE driver being loaded first.

Signed-off-by: Kamil Debski <k.debski@samsung.com>