platform/kernel/linux-3.10.git
10 years agodrivers: power: hide some excessive debugs
Marek Szyprowski [Tue, 4 Mar 2014 07:17:46 +0000 (08:17 +0100)]
drivers: power: hide some excessive debugs

Hide following excessive debug messages, which are really not helpful
for anything:
device xyz: start latency exceeded, new value XXX ns
device xyz: state restore latency exceeded, new value YYY ns

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Idab765ebd307ac40af1a556c0b08e26938a1c9cf

10 years agousb: misc: usb3503: Support operation with no I2C control
Mark Brown [Fri, 9 Aug 2013 10:41:58 +0000 (11:41 +0100)]
usb: misc: usb3503: Support operation with no I2C control

Refactor so that register writes for configuration are only performed if
the device has a regmap provided and also register as a platform driver.
This allows the driver to be used to manage GPIO based control of the
device.

Signed-off-by: Mark Brown <broonie@linaro.org>
Cc: devicetree@vger.kernel.org
Reviewed-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 3f0d1c67fa20d524fdcb4a7dcda19ed76c59be44]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I3f0d1c67fa20d524fdcb4a7dcda19ed76c59be44

10 years agousb: misc: usb3503: Add USB3503A to the compatible list
Mark Brown [Fri, 9 Aug 2013 10:41:56 +0000 (11:41 +0100)]
usb: misc: usb3503: Add USB3503A to the compatible list

There are no software visible differences that I am aware of but in case
any are discovered allow the DTS to specify exactly which device is
present.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 5bdd1f4a1daf398042203b72430891dfc40c0fa6]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I5bdd1f4a1daf398042203b72430891dfc40c0fa6

10 years agousb: misc: usb3503: Default to hub mode
Mark Brown [Fri, 9 Aug 2013 10:41:55 +0000 (11:41 +0100)]
usb: misc: usb3503: Default to hub mode

Since there is no runtime interface for changing modes this is probably
the most sensible default.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit e5a0c874ec7babc1931a67489b292de152d2a641]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie5a0c874ec7babc1931a67489b292de152d2a641

10 years agousb: misc: usb3503: Fix typos in error messages
Mark Brown [Fri, 9 Aug 2013 10:41:54 +0000 (11:41 +0100)]
usb: misc: usb3503: Fix typos in error messages

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit dd8e670d2775c02169a3b9e4c8d84c8652342836]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Idd8e670d2775c02169a3b9e4c8d84c8652342836

10 years agousb: misc: usb3503: Factor out I2C probe
Mark Brown [Fri, 9 Aug 2013 10:41:53 +0000 (11:41 +0100)]
usb: misc: usb3503: Factor out I2C probe

In preparation for supporting operation without an I2C control interface
factor out the I2C-specific parts of the probe routine from those that
don't do any register I/O.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 2487e3ee33dd6c4fa3dabbe11bc988883be81f1e]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I2487e3ee33dd6c4fa3dabbe11bc988883be81f1e

10 years agousb: misc: usb3503: Convert to regmap
Mark Brown [Fri, 9 Aug 2013 10:41:52 +0000 (11:41 +0100)]
usb: misc: usb3503: Convert to regmap

This will give access to the diagnostic infrastructure regmap has but
the main point is to support future refactoring.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 68b14134be55eca7340b9a8b3ec4cb8f79622a3c]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I68b14134be55eca7340b9a8b3ec4cb8f79622a3c

10 years agousb: misc: usb3503: Actively manage Hub Connect GPIO
Mark Brown [Fri, 9 Aug 2013 10:41:51 +0000 (11:41 +0100)]
usb: misc: usb3503: Actively manage Hub Connect GPIO

If the connect signal is pulled high then the device will start up meaning
that if we just pull it high on probe then the device will start running
prior to the configuration being written out. Fix this by pulling the GPIO
low when we reset and only pulling it high when configuration is finished.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 8e7245b8386cb1dc941e10a4c97307e3f48da5da]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I8e7245b8386cb1dc941e10a4c97307e3f48da5da

10 years agousb: misc: usb3503: Use gpio_set_value_cansleep()
Mark Brown [Fri, 9 Aug 2013 10:41:49 +0000 (11:41 +0100)]
usb: misc: usb3503: Use gpio_set_value_cansleep()

The /RESET GPIO is not manipulated from atomic context so support GPIOs
that can't be written from atomic context by using _cansleep().

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 24455b09b4838cdc0165af0f24ca63ec9ad54e44]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I24455b09b4838cdc0165af0f24ca63ec9ad54e44

10 years agousb: misc: usb3503: Convert to devm_ APIs
Mark Brown [Wed, 7 Aug 2013 21:02:54 +0000 (22:02 +0100)]
usb: misc: usb3503: Convert to devm_ APIs

Saves us a bit of code.

Signed-off-by: Mark Brown <broonie@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit cffedd6794bb32c4fbc03600fac61beca7950f08]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Icffedd6794bb32c4fbc03600fac61beca7950f08

10 years agoARM: dts: exynos4412: fix usb3503 swapped gpio properties
Marek Szyprowski [Tue, 4 Mar 2014 07:18:06 +0000 (08:18 +0100)]
ARM: dts: exynos4412: fix usb3503 swapped gpio properties

GPIO properties were swapped in the USB3503 driver. This has been fixed
by mainline commit 42416cc81f4990ad8d425b41a0fc8cd985eb5fa5, so now also
fix the DTS using this driver.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I42416cc81f4990ad8d425b41a0fc8cd985eb5fa6

10 years agousb: misc: Fix swapped properties in usb3503 DT parsing
Mark Brown [Wed, 7 Aug 2013 19:28:24 +0000 (20:28 +0100)]
usb: misc: Fix swapped properties in usb3503 DT parsing

The intn and connect GPIO properties are swapped in the code which will
cause failures at runtime if these are connected, fix the code.

There are currently no in-tree users of this device to check or update.

Signed-off-by: Mark Brown <broonie@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 42416cc81f4990ad8d425b41a0fc8cd985eb5fa5]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I42416cc81f4990ad8d425b41a0fc8cd985eb5fa5

10 years agousb: misc: usb3503: use dev_get_platdata()
Jingoo Han [Tue, 30 Jul 2013 08:05:28 +0000 (17:05 +0900)]
usb: misc: usb3503: use dev_get_platdata()

Use the wrapper function for retrieving the platform data instead of
accessing dev->platform_data directly.

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit b977a3068a284b2ad4612cdb8ca326cbd2a7ffc9]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ib977a3068a284b2ad4612cdb8ca326cbd2a7ffc9

10 years agousb: misc: usb3503: Remove 100ms sleep on reset, conform to data sheet
Julius Werner [Sat, 1 Jun 2013 01:34:52 +0000 (18:34 -0700)]
usb: misc: usb3503: Remove 100ms sleep on reset, conform to data sheet

The usb3503 driver sleeps a flat 100ms when resetting the chip, with a
comment about waiting for the reference clock. This seems to be a
board-specific detail that should not hold up boot across all platforms.
This patch reduces the sleep to the 4ms initialization delay that the
chip itself actually requires (as per its data sheet). If certain boards
require more time to set up the reference clock, they should change this
through local patches or add a proper, configurable synchronization
mechanism.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit 06a962fa7f9bf068eb1238d7aa20453b9e11a9fd]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I06a962fa7f9bf068eb1238d7aa20453b9e11a9fd

10 years agousb: misc: usb3503: Fix up whitespace
Julius Werner [Sat, 1 Jun 2013 01:34:50 +0000 (18:34 -0700)]
usb: misc: usb3503: Fix up whitespace

Remove an erroneous tab that should be a space.

Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Acked-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit ccf92c94135059c2fa7ee67bbd19af5103547510]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Iccf92c94135059c2fa7ee67bbd19af5103547510

10 years agousb: misc: usb3503: Adding device tree entry 'disabled-ports'
Dongjin Kim [Tue, 21 May 2013 20:20:09 +0000 (05:20 +0900)]
usb: misc: usb3503: Adding device tree entry 'disabled-ports'

This patch is to add a property 'disabled-ports' representing the unused port
of USB3503. USB3503 can support up to 3 USB host port and each ports can be
controlled to be enabled or disabled. Do not describe this property if all
ports must be enabled.

You can represent the ports to disable in the device tree.

usb3503@08{
...
disabled-ports = <2 3>;
...
};

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit e8b58b49130f40c29bb95cd5d9b36955ff703822]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie8b58b49130f40c29bb95cd5d9b36955ff703822

10 years agousb: misc: usb3503: Add to select the ports to disable
Dongjin Kim [Tue, 21 May 2013 20:20:08 +0000 (05:20 +0900)]
usb: misc: usb3503: Add to select the ports to disable

This patch is to disable the USB ports unconnected to USB3503. In order to
disable the port, 'port_off_mask' must be set.

* Disable PORT1 only
.port_off_mask = USB3503_OFF_PORT1;

* Disable PORT1 and PORT3 only
.port_off_mask = USB3503_OFF_PORT1 | USB3503_OFF_PORT3;

* Enables all ports
.port_off_mask = 0;

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[mszyprow: mainline commit e8e44a4896a5f0bde1af36a31b7ec662bdaa44ef]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie8e44a4896a5f0bde1af36a31b7ec662bdaa44ef

10 years agophy: exynos : add delay after reset phy for usb host
Joonyoung Shim [Tue, 4 Mar 2014 06:38:14 +0000 (15:38 +0900)]
phy: exynos : add delay after reset phy for usb host

The commit 2b431ff74a850db3d5b804be3ac466b6ed7f516d(ARM: EXYNOS4:
Increase reset delay for USB HOST PHY) uses 80 usec delay time after
reset phy for usb host, so this adds delay for reset. If isn't this
delay, it will cause any problem to set usb host register.

Change-Id: I1410dacc6939218bc26510cd45ebd4c0d37dbc62
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agoARM: odroidx2: update defconfig for DViCO FusionHDTV USB
Joonyoung Shim [Mon, 3 Mar 2014 11:43:06 +0000 (20:43 +0900)]
ARM: odroidx2: update defconfig for DViCO FusionHDTV USB

This enables au0828 bridge, au8522 dvb frontend and xc5000 tuner for
DViCO FusionHDTV USB.

Change-Id: I2dcac4f9d543da95de6fe07e80088684b5ae8ad9
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agoau0828: fix i2c clock speed for DViCO FusionHDTV7
Joonyoung Shim [Tue, 11 Feb 2014 01:54:34 +0000 (10:54 +0900)]
au0828: fix i2c clock speed for DViCO FusionHDTV7

DViCO FusionHDTV7 device that use au0828 can fail to communicate with
xc5000 using i2c interface because of high i2c clock speed - i2c clock
stretching bug. It causes to fail xc5000 firmware loading normally at
the current driver.

Already this problem fixed as changing to low i2c clock speed at
HVR-950q device, also DViCO FusionHDTV7 device can solve it as using low
i2c clock speed - 20KHz.

Change-Id: Ie6fed3673081970a7d6aceeda584433f95c092a2
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agoARM: odroidx2: update defconfig
Joonyoung Shim [Fri, 28 Feb 2014 07:00:39 +0000 (16:00 +0900)]
ARM: odroidx2: update defconfig

Enable cgroup, ipv6, nfs and disable serial8250. This will enable to
boot until console login prompt on tizen platform.

Change-Id: Ie29ee730c4a1f30d1fe201b16aab689f03453d5b
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agoARM: odroidx2: enable P3V3 fixed regulator to always on
Joonyoung Shim [Fri, 28 Feb 2014 06:38:00 +0000 (15:38 +0900)]
ARM: odroidx2: enable P3V3 fixed regulator to always on

This fixed regulator is used at usb module mainly, not mmc. Just use to
always on it.

Change-Id: Ib43ea87aa85cd21aca9f44937c7c7a70c0e916f4
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
10 years agoARM: defconfig: update tizen_odroidx2_defconfig
Marek Szyprowski [Thu, 27 Feb 2014 10:40:41 +0000 (11:40 +0100)]
ARM: defconfig: update tizen_odroidx2_defconfig

Add missing USB3503 HSIC chip driver (enables host usb support) and
disable UART debug.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I5ba5ef112a0fb02c8a38673a3bf3dfcefa28f696

10 years agoEnable FHANDLE, needed by systemd >= 209
Maciej Wereski [Wed, 26 Feb 2014 16:14:34 +0000 (17:14 +0100)]
Enable FHANDLE, needed by systemd >= 209

Change-Id: Ic01e9ad45ff6241ba451742857f5808f56deb970
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
10 years agomath64: New separate div64_u64_rem helper
Mike Snitzer [Tue, 20 Aug 2013 19:05:17 +0000 (15:05 -0400)]
math64: New separate div64_u64_rem helper

Commit f792685006274a850e6cc0ea9ade275ccdfc90bc ("math64: New
div64_u64_rem helper") implemented div64_u64 in terms of div64_u64_rem.
But div64_u64_rem was removed because it slowed down div64_u64 (and
there were no other users of div64_u64_rem).

Device Mapper's I/O statistics support has a need for div64_u64_rem;
reintroduce this helper as a separate method that doesn't slow down
div64_u64, especially on 32-bit systems.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Alasdair G Kergon <agk@redhat.com>
[backport]
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
Change-Id: Icd721ff57c6d127e7acb0bf17d233d0a50ff24da

10 years agoFix building RPM with tar 1.27 and renamed m0 dtb
Maciej Wereski [Tue, 25 Feb 2014 10:23:55 +0000 (11:23 +0100)]
Fix building RPM with tar 1.27 and renamed m0 dtb

Change-Id: I50a01f8a005ed958e0d2d00f8033eb1a9a2340ec
Signed-off-by: Maciej Wereski <m.wereski@partner.samsung.com>
10 years agoexynos4-is: Register v4l2_async notifier only when sensors are available
Sylwester Nawrocki [Mon, 24 Feb 2014 12:48:41 +0000 (13:48 +0100)]
exynos4-is: Register v4l2_async notifier only when sensors are available

This allows driver initialization again if no camera sensors are
specified. It fixes regression introduced in commit 9cb4cf023f4d793ca
"exynos4-is: Add support for asynchronous sensor subddevs registration"

Change-Id: I02379781ff51142f02dc3a4c3f0bc7b0da999e1f
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
10 years agoARM: defconfig: Add tizen_odroidx2_defconfig
Marek Szyprowski [Mon, 24 Feb 2014 11:40:02 +0000 (12:40 +0100)]
ARM: defconfig: Add tizen_odroidx2_defconfig

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ic1fb103c9620aedc1bfee0de5906f58d437db19c

10 years agoarm: dts: exynos4412-odroidx2: add HDMI devices
Tomasz Stanislawski [Thu, 20 Feb 2014 14:47:44 +0000 (15:47 +0100)]
arm: dts: exynos4412-odroidx2: add HDMI devices

This patch adds configuration of HDMI devices on OdroidX2 board.
Moreover, FIMD is enabled as workaround for ia bug caused by
unintialized size of framebuffer.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I8fa76980f35644f886ffc971a4ced1ae03300d12

10 years agodts: odroid x2: add support for multimedia blocks
Marek Szyprowski [Tue, 18 Feb 2014 08:07:33 +0000 (09:07 +0100)]
dts: odroid x2: add support for multimedia blocks

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I7332d504ad79e866ee5e12cca09f8da3416101d5

10 years agocpufreq: conservative: Provide correct pointer for conservative governor
Lukasz Majewski [Fri, 21 Feb 2014 16:42:57 +0000 (17:42 +0100)]
cpufreq: conservative: Provide correct pointer for conservative governor

This patch restores correct value of cs_dbs_info pointer for conservative
governor at CPUFREQ_GOV_STOP event.

Without this patch the NULL pointer dereference error shows up and cpufreq
subsystem hangs.
To trigger the behavior one needs to compile ondemand as default one. Then
enable conservative governor and afterwards enable ondemand again.

Change-Id: Iefd933f5984abb1a46d15357b9ea5f8492deeb08
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agoboost: dts: trats2: Define boost_freq attribute for cpufreq node
Lukasz Majewski [Wed, 19 Feb 2014 12:02:58 +0000 (13:02 +0100)]
boost: dts: trats2: Define boost_freq attribute for cpufreq node

This commit explicitly enables the boost frequency support for Exynos4412
based Trats2 board.

Change-Id: Ie51ad5c5d983578c33ede442d3f9d67ee9dfb4f7
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agocpufreq: dts: trats2: Remove redundant definitions of cpufreq node
Lukasz Majewski [Wed, 19 Feb 2014 11:56:13 +0000 (12:56 +0100)]
cpufreq: dts: trats2: Remove redundant definitions of cpufreq node

After the dts cleanup the cpufreq nodes were duplicated for trats2.
As a result the trats2 had freq_table definition corresponding to
SLP_PQ (Proxima PQ) target.

Change-Id: I63a7f627c448caa163df5e915b91cd0979da468e
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agocpufreq: ondemand: Change the calculation of target frequency
Stratos Karafotis [Wed, 5 Jun 2013 16:01:25 +0000 (19:01 +0300)]
cpufreq: ondemand: Change the calculation of target frequency

The ondemand governor calculates load in terms of frequency and
increases it only if load_freq is greater than up_threshold
multiplied by the current or average frequency.  This appears to
produce oscillations of frequency between min and max because,
for example, a relatively small load can easily saturate minimum
frequency and lead the CPU to the max.  Then, it will decrease
back to the min due to small load_freq.

Change the calculation method of load and target frequency on the
basis of the following two observations:

 - Load computation should not depend on the current or average
   measured frequency.  For example, absolute load of 80% at 100MHz
   is not necessarily equivalent to 8% at 1000MHz in the next
   sampling interval.

 - It should be possible to increase the target frequency to any
   value present in the frequency table proportional to the absolute
   load, rather than to the max only, so that:

   Target frequency = C * load

   where we take C = policy->cpuinfo.max_freq / 100.

Tested on Intel i7-3770 CPU @ 3.40GHz and on Quad core 1500MHz Krait.
Phoronix benchmark of Linux Kernel Compilation 3.1 test shows an
increase ~1.5% in performance. cpufreq_stats (time_in_state) shows
that middle frequencies are used more, with this patch.  Highest
and lowest frequencies were used less by ~9%.

[rjw: We have run multiple other tests on kernels with this
 change applied and in the vast majority of cases it turns out
 that the resulting performance improvement also leads to reduced
 consumption of energy.  The change is additionally justified by
 the overall simplification of the code in question.]

Change-Id: I26399d5d61616ee9157baa7eb8b337bacab5b892
Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
10 years agoclocksource: exynos4: Fix wrong bit operation in exynos4_mct_write()
Jonghwa Lee [Tue, 4 Feb 2014 09:54:23 +0000 (18:54 +0900)]
clocksource: exynos4: Fix wrong bit operation in exynos4_mct_write()

There is a faulty bit operation during checking offset in exyno4_mct_write().
This patch fixes it correctly.

Change-Id: Ifbe30007bc378d8ab0585a70c0c343dbbc350415
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
10 years agouserns: Allow PR_CAPBSET_DROP in a user namespace.
Eric W. Biederman [Tue, 2 Jul 2013 17:04:54 +0000 (10:04 -0700)]
userns: Allow PR_CAPBSET_DROP in a user namespace.

As the capabilites and capability bounding set are per user namespace
properties it is safe to allow changing them with just CAP_SETPCAP
permission in the user namespace.

Change-Id: I65d5c6ef80d4196cc6b8cbc86a9661764c5b3ab1
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Tested-by: Richard Weinberger <richard@nod.at>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Dariusz Michaluk <d.michaluk@samsung.com>
10 years agomm/page_alloc: fix freeing of MIGRATE_RESERVE migratetype pages
Bartlomiej Zolnierkiewicz [Fri, 14 Feb 2014 18:34:17 +0000 (19:34 +0100)]
mm/page_alloc: fix freeing of MIGRATE_RESERVE migratetype pages

Pages allocated from MIGRATE_RESERVE migratetype pageblocks
are not freed back to MIGRATE_RESERVE migratetype free
lists in free_pcppages_bulk()->__free_one_page() if we got
to free_pcppages_bulk() through drain_[zone_]pages().
The freeing through free_hot_cold_page() is okay because
freepage migratetype is set to pageblock migratetype before
calling free_pcppages_bulk().  If pages of MIGRATE_RESERVE
migratetype end up on the free lists of other migratetype
whole Reserved pageblock may be later changed to the other
migratetype in __rmqueue_fallback() and it will be never
changed back to be a Reserved pageblock.  Fix the issue by
preserving freepage migratetype as a pageblock migratetype
(instead of overriding it to the requested migratetype)
for MIGRATE_RESERVE migratetype pages in rmqueue_bulk().

The problem was introduced in v2.6.31 by commit ed0ae21
("page allocator: do not call get_pageblock_migratetype()
more than necessary").

Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Reported-by: Yong-Taek Lee <ytk.lee@samsung.com>
Cc: Marek Szyprowski <m.szyprowski@samsung.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: I1d4ab2a3241387160dd376b0ead864cd2b0c59f0

10 years agoARM: exynos: dts: cleanup the dts file for trats2
Jaehoon Chung [Mon, 17 Feb 2014 08:28:43 +0000 (17:28 +0900)]
ARM: exynos: dts: cleanup the dts file for trats2

Unused dts file is removed, and trats2.dts file is created.
It's maintained more better than before.

Change-Id: Ie51a02044a988fd0e2c8deac2c5fd407f5e374da
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
10 years agoarm: dts: cleanup entries for usb phy for Exynos4
Marek Szyprowski [Tue, 18 Feb 2014 08:07:09 +0000 (09:07 +0100)]
arm: dts: cleanup entries for usb phy for Exynos4

Remove old, obsoleted entries for usb phy and move new common nodes to
exynos4x12/exynos4.dtsi files.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ie73f5d365dd72ee4cf4f39c7b07706ec286356fe

10 years agousb: gadget: Enable rndis in the slp gadget driver
Jacek Bukarewicz [Fri, 14 Feb 2014 14:22:16 +0000 (15:22 +0100)]
usb: gadget: Enable rndis in the slp gadget driver

Rndis was disabled temporarily in commit 7ca93af to fix build break.
It can be enabled now as commit 65c9d04 adapted slp driver to the new interface
of rndis.

Change-Id: Id28413de771818cf1a358664d637aa989615fe26
Signed-off-by: Jacek Bukarewicz <j.bukarewicz@samsung.com>
10 years agoarm: config: tizen: enable HDMI drivers
Tomasz Stanislawski [Wed, 12 Feb 2014 15:03:51 +0000 (16:03 +0100)]
arm: config: tizen: enable HDMI drivers

This patch enables HDMI drivers including:
- DRM HDMI
- SII9234 HDMI-to-MHL bridge
- Exynos PHY

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I8d9d6d6163bdda2c8d299bcd8048b10fa7bb2f35

10 years agoarm: dts: exynos4412-slp-pq: add HDMI devices
Tomasz Stanislawski [Fri, 20 Dec 2013 11:33:58 +0000 (12:33 +0100)]
arm: dts: exynos4412-slp-pq: add HDMI devices

This patch adds configuration of HDMI devices on SLP-PQ board.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: Ib2992887d3e0054d14dfba1872a575a707249849

10 years agoarm: dts: universal_c210: add HDMI devices
Tomasz Stanislawski [Thu, 17 Oct 2013 12:58:06 +0000 (14:58 +0200)]
arm: dts: universal_c210: add HDMI devices

This patch adds configuration of HDMI devices on Universal C210 board.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: Ic391e351309d99dc5f7fef48f78ec08a89819cc9

10 years agoarm: dts: exynos4: add HDMI devices
Tomasz Stanislawski [Thu, 17 Oct 2013 11:56:04 +0000 (13:56 +0200)]
arm: dts: exynos4: add HDMI devices

This patch adds DT nodes for HDMI related devices on SoCs from Exynos4 family.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I92462470abd05ce14635b33a37b3f1e50e463085

10 years agoarm: dts: exynos4: add i2c controller for HDMIPHY
Tomasz Stanislawski [Thu, 17 Oct 2013 11:56:04 +0000 (13:56 +0200)]
arm: dts: exynos4: add i2c controller for HDMIPHY

This patch adds DT nodes for I2C controller dedicated for HDMIPHY.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: Ia45c9fc0594b534036175deaee5562ca66dcbcc0

10 years agodrm: exynos: hdmi: add support for pixel clock limitation
Tomasz Stanislawski [Thu, 19 Dec 2013 15:24:07 +0000 (16:24 +0100)]
drm: exynos: hdmi: add support for pixel clock limitation

Adds support for limitation of maximal pixel clock of HDMI
signal. This feature is needed on boards that contains
lines or bridges with frequency limitations.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I4cc38e995feeaca77b73e9ea0197d67f99d57715

10 years agodrm: exynos: add compatibles for HDMI and Mixer chips and exynos4210 SoC
Tomasz Stanislawski [Wed, 16 Oct 2013 11:41:14 +0000 (13:41 +0200)]
drm: exynos: add compatibles for HDMI and Mixer chips and exynos4210 SoC

This patch add proper compatibles for Mixer and HDMI chip
available on exynos4210 SoCs.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I5ca49ea9f95b139834de9ed8bba79b37b685bf3a

10 years agodrm: exynos: migrate to Common Clock Framework
Tomasz Stanislawski [Wed, 9 Oct 2013 13:51:00 +0000 (15:51 +0200)]
drm: exynos: migrate to Common Clock Framework

Transform all clk_enable() to clk_prepare_enable() and
all clk_disable() to clk_disable_unprepare().

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: Iaf66f2229677234273c7b66f6d9f0f17c74bf2ff

10 years agodrm: exynos: hdmi: simplify extracting hpd-gpio from DT
Tomasz Stanislawski [Tue, 15 Oct 2013 14:40:07 +0000 (16:40 +0200)]
drm: exynos: hdmi: simplify extracting hpd-gpio from DT

This patch eliminates redundant checks while retrieving HPD gpio from DT during
HDMI's probe().

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I1f2312291bd7c2334783c8067889b95db305377f

10 years agodrm: exynos: hdmi: use hdmiphy as PHY
Tomasz Stanislawski [Thu, 3 Oct 2013 14:04:53 +0000 (16:04 +0200)]
drm: exynos: hdmi: use hdmiphy as PHY

The HDMIPHY (physical interface) is controlled by a single
bit in a power controller's regiter. It was implemented
as clock. It was a simple but effective hack.

This patch makes HDMI driver to control HDMIPHY via PHY interface.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I7e4729b61c7e71f7e411d423794420893f99f384

10 years agoclk: exynos4: enable clk_set_parent() propagation for sclk_hdmi and sclk_mixer clocks
Tomasz Stanislawski [Wed, 16 Oct 2013 11:08:55 +0000 (13:08 +0200)]
clk: exynos4: enable clk_set_parent() propagation for sclk_hdmi and sclk_mixer clocks

This patch enables clk_set_parent() propagation for clocks used
by s5p-tv and exynos-drm drivers.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I8f91dcd73a43291297def7f69eb35950afd45c55

10 years agoclk: propagate parent change up one level
Tomasz Stanislawski [Tue, 15 Oct 2013 15:59:11 +0000 (17:59 +0200)]
clk: propagate parent change up one level

This patch adds support for propagation of setup of clock's parent one level
up.

This feature is helpful when a driver changes topology of its clocks using
clk_set_parent().  The problem occurs when on one platform/SoC driver's clock
is located at MUX output but on the other platform/SoC there is a gated proxy
clock between the MUX and driver's clock.  In such a case, driver's code has to
be modified to use one clock for enabling and the other clock for setup of a
parent.

The code updates are avoided by propagating setup of a parent up one level.

Additionally, this patch adds CLK_SET_PARENT_PARENT (sorry for naming) flag to
inform clk-core that clk_set_parent() should be propagated.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I206d23fb86cc09bce943ef9971a710876e3a7744

10 years agoclk: exynos4: export sclk_hdmiphy clock
Tomasz Stanislawski [Mon, 7 Oct 2013 12:27:52 +0000 (14:27 +0200)]
clk: exynos4: export sclk_hdmiphy clock

Export sclk_hdmiphy clock to be usable from DT.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I0d1c8d0c2e2e93bd34f9fcdf82154208c2381a73

10 years agomisc: add sii9234 driver
Tomasz Stanislawski [Fri, 20 Dec 2013 11:30:43 +0000 (12:30 +0100)]
misc: add sii9234 driver

Add driver for HDMI bridge usnig MHL connection.
Contains refactored MHL driver developed by:

Adam Hampson <ahampson@sta.samsung.com>
Erik Gilling <konkers@android.com>
Shankar Bandal <shankar.b@samsung.com>
Dharam Kumar <dharam.kr@samsung.com>

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I7fed88ab786a4fef8fb97dca6c7336d11eb806c5

10 years agophy: Add exynos-phy driver
Tomasz Stanislawski [Mon, 30 Sep 2013 15:46:53 +0000 (17:46 +0200)]
phy: Add exynos-phy driver

Add exynos-phy driver to support a single register
PHY interfaces present on Exynos4 SoC.

Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
Change-Id: I1a2eeab876507e1e427fcb26782d060a1614852a

10 years agotools: usb: aio example applications
Robert Baldyga [Tue, 11 Feb 2014 10:43:03 +0000 (11:43 +0100)]
tools: usb: aio example applications

This patch adds two example applications showing usage of Asynchronous I/O API
of FunctionFS. First one (aio_simple) is simple example of bidirectional data
transfer. Second one (aio_multibuff) shows multi-buffer data transfer, which
may to be used in high performance applications.

Both examples contains userspace applications for device and for host.
It needs libaio library on the device, and libusb library on host.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
10 years agousb: gadget: f_fs: add aio support
Robert Baldyga [Mon, 10 Feb 2014 09:42:44 +0000 (10:42 +0100)]
usb: gadget: f_fs: add aio support

This patch adds asynchronous I/O support for FunctionFS endpoint files.
It adds ffs_epfile_aio_write() and ffs_epfile_aio_read() functions responsible
for preparing AIO operations.

It also modifies ffs_epfile_io() function, adding aio handling code. Instead
of extending list of parameters of this function, there is new struct
ffs_io_data which contains all information needed to perform I/O operation.
Pointer to this struct replaces "buf" and "len" parameters of ffs_epfile_io()
function. Allocated buffer is freed immediately only after sync operation,
because in async IO it's freed in complete funcion. For each async operation
an USB request is allocated, because it allows to have more than one request
queued on single endpoint.

According to changes in ffs_epfile_io() function, functions ffs_epfile_write()
and ffs_epfile_read() are updated to use new API.

For asynchronous I/O operations there is new request complete function named
ffs_epfile_async_io_complete(), which completes AIO operation, and frees
used memory.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
10 years agousb: gadget: f_fs: add poll for endpoint 0
Robert Baldyga [Mon, 10 Feb 2014 09:42:43 +0000 (10:42 +0100)]
usb: gadget: f_fs: add poll for endpoint 0

This patch adds poll function for file representing ep0.

Ability of read from or write to ep0 file is related with actual state of ffs:
- When desctiptors or strings are not written yet, POLLOUT flag is set.
- If there is any event to read, POLLIN flag is set.
- If setup request was read, POLLIN and POLLOUT flag is set, to allow
  send response (by performing I/O operation consistent with setup request
  direction) or set stall (by performing I/O operation opposite  setup
  request direction).

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
10 years agousb: gadget: f_fs: fix setup request handling
Robert Baldyga [Mon, 10 Feb 2014 09:42:42 +0000 (10:42 +0100)]
usb: gadget: f_fs: fix setup request handling

This patch fixes __ffs_ep0_queue_wait() function, which now returns number of
bytes transferred in USB request or error code in case of failure. This is
needed by ffs_ep0_read() function, when read data is copied to userspace.

It also cleans up code by removing usused variable ep0req_status.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
10 years agousb: gadget: functionfs: replace FFS_SETUP_STATUS with an inline function
Michal Nazarewicz [Mon, 10 Feb 2014 09:42:41 +0000 (10:42 +0100)]
usb: gadget: functionfs: replace FFS_SETUP_STATUS with an inline function

The FFS_SETUP_STATUS macro could be trivialy replaced with an static
inline function but more importantly its name was tad confusing.
The name suggested it was a simple accessor macro but it actually
did change the state of the ffs_data structure perfomring
a FFS_SETUP_CANCELLED -> FFS_NO_SETUP transition.  The name of the
function -- ffs_setup_state_clear_cancelled -- should better
describe what the function actually does.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
10 years agousb: gadget: functionfs: fix typo in the enum variable
Michal Nazarewicz [Mon, 10 Feb 2014 09:42:40 +0000 (10:42 +0100)]
usb: gadget: functionfs: fix typo in the enum variable

Since “cancelled” is spelled with two “l”s, rename FFS_SETUP_CANCELED
to FFS_SETUP_CANCELLED.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
10 years agocpufreq: boost: trats2: Define boost_freq attribute for cpufreq node.
Lukasz Majewski [Mon, 10 Feb 2014 14:44:31 +0000 (15:44 +0100)]
cpufreq: boost: trats2: Define boost_freq attribute for cpufreq node.

The Trats2 board (Exynos 4412 rev.1) is now able to work with 1.5 GHz
BOOST frequency.

Change-Id: Ic7da854dda7b99c9381708c54ff2528bd45a0cd9
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agocpufreq: boost: Provide support for BOOST on linux-3.10-tizen
Lukasz Majewski [Mon, 10 Feb 2014 14:42:51 +0000 (15:42 +0100)]
cpufreq: boost: Provide support for BOOST on linux-3.10-tizen

This code reads from device tree the boost_freq attribute and properly
modify the cpufreq table to support BOOST framework.

This attribute is only read when CONFIG_CPU_FREQ_BOOST_SW flag is set.

Change-Id: I16fcba69b16c29434e3ec1a8a0ef1bc8bdebc0ca
Signed-off-by: Lukasz Majewski <l.majewski@samsung.com>
10 years agovideo: display: s6e8aa0: fix a erratum in gamma table
Hyungwon Hwang [Thu, 6 Feb 2014 01:22:26 +0000 (10:22 +0900)]
video: display: s6e8aa0: fix a erratum in gamma table

Fix a erratum in gamma table.

Change-Id: I88f9220de98fe34c5e47ae076f850de603dab8fe
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
10 years agoiio: ak8975: Add device name
Beomho Seo [Mon, 10 Feb 2014 01:01:57 +0000 (10:01 +0900)]
iio: ak8975: Add device name

This patch add device name.

Change-Id: Icda321686ee9c9809463592bddfbaa87563aeae4
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
10 years agoiio: ak8975: Fix calculation formula for convert micro tesla to gauss unit
Beomho Seo [Mon, 10 Feb 2014 00:52:28 +0000 (09:52 +0900)]
iio: ak8975: Fix calculation formula for convert micro tesla to gauss unit

Oen micro tesla equal 0.01 gauss. So I have fixed calculation formula And add RAW_TO_GAUSS macro.
ASA is in the range of 0 to 255. If multiply 0.003, calculation result(in_magn_[*]_scale) is
always 0. So multiply 3000 and return IIO_VAL_INT_PLUS_MICRO.
As a result read_raw call back function return accurate scale value.

Change-Id: Ia00b801d4867955eef661b64add82ca634f0256c
Signed-off-by: Beomho Seo <beomho.seo@samsung.com>
10 years agopm: exynos: Skip re-enabling L2 cache for early waking-up.
Jonghwa Lee [Mon, 3 Feb 2014 08:37:04 +0000 (17:37 +0900)]
pm: exynos: Skip re-enabling L2 cache for early waking-up.

If L2 cache is powered on, accessing L2 cache's control register is
forbidden. Ohterwise system will hang up.
So, when system fails to go to sleep, we have to avoid reset L2 cache
because it still be powered on.

Change-Id: Ie0271619116012627477e332b0cd5e60a27882ff
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
10 years agoclk: exynos4: Keep 'chipid' clock enabled
Jonghwa Lee [Mon, 3 Feb 2014 08:31:33 +0000 (17:31 +0900)]
clk: exynos4: Keep 'chipid' clock enabled

During STR, we needed to access CHIP_ID, thus its clock should be online.
It's better to keep it enabled even in runtime for later suspend.

Change-Id: I057471e0aac3a9343b0ca8a73d4c8abf0ae36812
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
10 years agoRevert "WORKAROUND: Temporary workaround for Suspend-To-Ram."
Jonghwa Lee [Mon, 3 Feb 2014 08:29:25 +0000 (17:29 +0900)]
Revert "WORKAROUND: Temporary workaround for Suspend-To-Ram."

This reverts commit 682061cb597d5174de6fee211a2ad565c33680f7.

Change-Id: I4ac3f3b86ecd6a8b15ea2d266ab84b16aeb69dda
Signed-off-by: Jonghwa Lee <jonghwa3.lee@samsung.com>
10 years agospec: add missing build dependences and output packages cleanup.
Jacek Pielaszkiewicz [Mon, 27 Jan 2014 14:19:59 +0000 (15:19 +0100)]
spec: add missing build dependences and output packages cleanup.

The following changes have been implemeneted:
1. Add BuildRequires on module-init-tools
2. Cleanup  Documentation directory from *.txt files
3. Update file permisions for executable files (*.sh, *pl)

Change-Id: I06a9348f6220ce2383b6f788635acbd0fe5ef78e
Signed-off-by: Jacek Pielaszkiewicz <j.pielaszkie@samsung.com>
10 years agousb: gadget: eliminate memory leak in slp gadget
Andrzej Pietrasiewicz [Thu, 23 Jan 2014 10:18:36 +0000 (11:18 +0100)]
usb: gadget: eliminate memory leak in slp gadget

Free the allocated acm_function_config struct in case of error.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Change-Id: Ie935cf67beccc2071d1ecd74437cffbe6a6827b8

10 years agousb: gadget: adapt slp to new interface of rndis
Andrzej Pietrasiewicz [Thu, 23 Jan 2014 10:08:57 +0000 (11:08 +0100)]
usb: gadget: adapt slp to new interface of rndis

f_rndis has a new interface. Use it.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Change-Id: I4cd8baf2180cc69fb372c6cce018ecf3a5729a38

10 years agousb: gadget: temporarily turn off rndis from slp gadget
Andrzej Pietrasiewicz [Wed, 22 Jan 2014 13:58:04 +0000 (14:58 +0100)]
usb: gadget: temporarily turn off rndis from slp gadget

This fixes build break caused by recently merged removal
of compatibility layer in rndis.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Change-Id: I11c2d02e2d491f30f8c9936916f627389787a1e5

10 years agotizen: packaging: support perf build
Chanho Park [Tue, 21 Jan 2014 01:11:34 +0000 (10:11 +0900)]
tizen: packaging: support perf build

Change-Id: Idc375608e3bde344347de6ad37c434b5f16aefbc
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
10 years agoAdd dependency on kernel package in kernel-devel package.
Jacek Pielaszkiewicz [Mon, 20 Jan 2014 09:20:35 +0000 (10:20 +0100)]
Add dependency on kernel package in kernel-devel package.

Change-Id: Iba7d12ecac46b3e5985f412f4cc3f623162cf728
Signed-off-by: Jacek Pielaszkiewicz <j.pielaszkie@samsung.com>
10 years agousb: gadget: fix NULL pointer dereference
Andrzej Pietrasiewicz [Mon, 20 Jan 2014 07:32:43 +0000 (08:32 +0100)]
usb: gadget: fix NULL pointer dereference

Fix possible NULL pointer dereference introduced in

219580e64f035bb9018dbb08d340f90b0ac50f8c
usb: f_fs: check quirk to pad epout buf size when not aligned to
maxpacketsize

In cases we do wait with:

wait_event_interruptible(epfile->wait, (ep = epfile->ep));

for endpoint to be enabled, functionfs_bind() has not been called yet
and epfile->ffs->gadget is still NULL and the automatic variable 'gadget'
has been initialized with NULL at the point of its definition.
Later on it is used as a parameter to:

usb_ep_align_maybe(gadget, ep->ep, len)

which in turn dereferences it.

This patch fixes it by moving the actual assignment to the local 'gadget'
variable after the potential waiting has completed.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
10 years agousb: gadget: FunctionFS: use consistent naming with regard to ffs_lock
Andrzej Pietrasiewicz [Mon, 13 Jan 2014 12:48:05 +0000 (13:48 +0100)]
usb: gadget: FunctionFS: use consistent naming with regard to ffs_lock

Consistently prefix function name with underscore if the function has to
be called with ffs_lock taken.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
10 years agousb: gadget: FunctionFS: staticize functions used only in f_fs.c
Andrzej Pietrasiewicz [Mon, 13 Jan 2014 12:20:25 +0000 (13:20 +0100)]
usb: gadget: FunctionFS: staticize functions used only in f_fs.c

ffs_alloc_dev and ffs_free_dev are used only in f_fs.c,
so make them static.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
10 years agousb: gadget: code cleanup
Andrzej Pietrasiewicz [Mon, 13 Jan 2014 15:42:02 +0000 (16:42 +0100)]
usb: gadget: code cleanup

Remove trailing whitespace

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
10 years agousb: gadget: FunctionFS: dereference ffs_dev conditionally
Andrzej Pietrasiewicz [Mon, 13 Jan 2014 15:41:22 +0000 (16:41 +0100)]
usb: gadget: FunctionFS: dereference ffs_dev conditionally

ffs_dev->ffs_release_dev_callback should be accessed only if ffs_dev
is not NULL.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
10 years agousb: gadget: fix up some comments about CONFIG_USB_DEBUG
Greg Kroah-Hartman [Thu, 19 Dec 2013 23:43:10 +0000 (15:43 -0800)]
usb: gadget: fix up some comments about CONFIG_USB_DEBUG

These two gadget drivers said that their #endif was for
CONFIG_USB_DEBUG, but they really were not, so fix them up to be
correct.

Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: should use u16 type variable to store MaxPower
Du, ChangbinX [Tue, 17 Dec 2013 11:47:42 +0000 (11:47 +0000)]
usb: gadget: should use u16 type variable to store MaxPower

From 7e827a0d300e084f74c65122baa5e3193f9a7f18 Mon Sep 17 00:00:00 2001
From: "Du, Changbin" <changbinx.du@intel.com>
Date: Mon, 16 Dec 2013 20:32:13 +0800
Subject: [PATCH] usb/gadget: should use u16 type variable to store MaxPower

The MaxPower field is of u16 type. So using u8 type variable can break
data (high byte lost).

Signed-off-by: Du, Changbin <changbinx.du@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: configfs: include appropriate header file in configfs.c
Rashika Kheria [Thu, 19 Dec 2013 10:07:37 +0000 (15:37 +0530)]
usb: gadget: configfs: include appropriate header file in configfs.c

Include appropriate header file drivers/usb/gadget/configfs.h in
gadget/configfs.c because function unregister_gadget_item() has its
prototype declaration in gadget/configfs.h.

This eliminates the following warning in gadget/configfs.c:
drivers/usb/gadget/configfs.c:994:6: warning: no previous prototype for ‘unregister_gadget_item’ [-Wmissing-prototypes]

Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_mass_storage: call try_to_freeze only when its safe
George Cherian [Fri, 8 Nov 2013 05:20:52 +0000 (10:50 +0530)]
usb: gadget: f_mass_storage: call try_to_freeze only when its safe

Call try_to_freeze() in sleep_thread() only when it's safe to sleep.
do_read() and do_write() calls sleep_thread with lock held.
Make sure these won't call try_to_freeze() by passing can_freeze flag
to sleep_thread.

Calling try_to_freeze() with a lock hold was done since day one in
f_mass_storage but since commit 0f9548ca1 ("lockdep: check that no
locks held at freeze time") lockdep complains about it.

Signed-off-by: George Cherian <george.cherian@ti.com>
Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: zero: module parameters can be static
Fengguang Wu [Mon, 25 Nov 2013 17:10:59 +0000 (11:10 -0600)]
usb: gadget: zero: module parameters can be static

g_zero's module parameters can, and should, be
static. This fixes sparse warnings.

Cc: Peter Chen <peter.chen@freescale.com>
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: mass storage: fix return of delayed status
Pratyush Anand [Mon, 4 Nov 2013 16:43:54 +0000 (22:13 +0530)]
usb: gadget: mass storage: fix return of delayed status

Mass storage gadget returns DELAYED_STATUS in stead of
USB_GADGET_DELAYED_STATUS while handling bulk reset request. Since
peripheral driver uses USB_GADGET_DELAYED_STATUS for delayed status
handling, therefore replace DELAYED_STATUS by USB_GADGET_DELAYED_STATUS
in mass storage driver.

Since, DELAYED_STATUS and hence EP0_BUFSIZE will no longer be used now,
so remove them.

Signed-off-by: Pratyush Anand <pratyush.anand@st.com>
Cc: Paul Zimmerman <Paul.Zimmerman@synopsys.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_mass_storage: fix mass storage dependency
Andrzej Pietrasiewicz [Mon, 4 Nov 2013 12:46:17 +0000 (13:46 +0100)]
usb: gadget: f_mass_storage: fix mass storage dependency

Legacy gadgets supporting mass storage (g_mass_storage, g_acm_ms, g_multi)
all depend on BLOCK.

Make the standalone compilation of f_mass_storage (without any legacy
gadget) dependent no BLOCK, too.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_sourcesink: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:44:43 +0000 (18:44 +0900)]
usb: gadget: f_sourcesink: Fix sparse warning

Make local symbols static in order to fix the following sparse
warnings.

drivers/usb/gadget/f_sourcesink.c:205:34: warning: symbol 'ss_source_comp_desc' was not declared. Should it be static?
drivers/usb/gadget/f_sourcesink.c:222:34: warning: symbol 'ss_sink_comp_desc' was not declared. Should it be static?
drivers/usb/gadget/f_sourcesink.c:240:34: warning: symbol 'ss_iso_source_comp_desc' was not declared. Should it be static?
drivers/usb/gadget/f_sourcesink.c:258:34: warning: symbol 'ss_iso_sink_comp_desc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_serial: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:44:25 +0000 (18:44 +0900)]
usb: gadget: f_serial: Fix sparse warning

Make local symbol static in order to fix the following sparse
warning.

drivers/usb/gadget/f_serial.c:357:21: warning: symbol 'gser_alloc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_phonet: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:44:07 +0000 (18:44 +0900)]
usb: gadget: f_phonet: Fix sparse warning

Make local symbol static in order to fix the following sparse
warning.

drivers/usb/gadget/f_phonet.c:692:21: warning: symbol 'phonet_alloc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_obex: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:43:50 +0000 (18:43 +0900)]
usb: gadget: f_obex: Fix sparse warning

Make local symbol static in order to fix the following sparse
warning.

drivers/usb/gadget/f_obex.c:502:21: warning: symbol 'obex_alloc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_ncm: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:43:32 +0000 (18:43 +0900)]
usb: gadget: f_ncm: Fix sparse warning

Make local symbol static in order to fix the following sparse
warning.

drivers/usb/gadget/f_ncm.c:1389:21: warning: symbol 'ncm_alloc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_mass_storage: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:42:48 +0000 (18:42 +0900)]
usb: gadget: f_mass_storage: Fix sparse warning

Use NULL instead of 0 when returning pointer, to fix the following
sparse warnings.

drivers/usb/gadget/f_mass_storage.c:3114:60: warning: Using plain integer as NULL pointer
drivers/usb/gadget/f_mass_storage.c:3114:63: warning: Using plain integer as NULL pointer

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_loopback: Fix sparse warning
Jingoo Han [Mon, 16 Dec 2013 09:40:49 +0000 (18:40 +0900)]
usb: gadget: f_loopback: Fix sparse warning

Make local symbols static in order to fix the following sparse
warnings.

drivers/usb/gadget/f_loopback.c:123:34: warning: symbol 'ss_loop_source_comp_desc' was not declared. Should it be static?
drivers/usb/gadget/f_loopback.c:139:34: warning: symbol 'ss_loop_sink_comp_desc' was not declared. Should it be static?

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: nokia: fix error recovery path for optional functions
Andrzej Pietrasiewicz [Fri, 13 Dec 2013 13:46:40 +0000 (14:46 +0100)]
usb: gadget: nokia: fix error recovery path for optional functions

In the nokia gadget some USB functions (obex 1 and 2, phonet) are optional.

If at the start of nokia_bind_config e.g. fi_phonet is an error pointer,
which can happen because we don't fail the bind process if
usb_get_function_instance() fails for fi_phonet, then f_phonet is NULL, and

phonet_stat = usb_add_function(c, f_phonet);

is never called and phonet_stat remains 0.

If, in these circumstances, we hit the err_conf label then !phonet_stat
evaluates to true and we try usb_remove_function() with its second
parameter being f_phonet which is NULL and it causes NULL pointer
dereference.

This patch changes the initial values of (obex1|obex2|phonet)_stat to a
nonzero value so that if the err_conf label is hit while the respective
functions have not been acquired the usb_remove_function() is not called
for those functions.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: f_fs: fix sparse warning
Felipe Balbi [Thu, 12 Dec 2013 18:15:43 +0000 (12:15 -0600)]
usb: gadget: f_fs: fix sparse warning

use NULL when returning NULL pointers, not 0.

Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: FunctionFS: add configfs support
Andrzej Pietrasiewicz [Tue, 3 Dec 2013 14:15:36 +0000 (15:15 +0100)]
usb: gadget: FunctionFS: add configfs support

Add support for using FunctionFS in configfs-based USB gadgets.

[ balbi@ti.com : removed redefinition of VERBOSE_DEBUG and few
trailing whitespaces ]

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: FunctionFS: Remove compatibility layer
Andrzej Pietrasiewicz [Tue, 3 Dec 2013 14:15:35 +0000 (15:15 +0100)]
usb: gadget: FunctionFS: Remove compatibility layer

There are no old function interface users left, so the old interface can
be removed.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: g_ffs: convert to new interface of f_fs
Andrzej Pietrasiewicz [Tue, 3 Dec 2013 14:15:34 +0000 (15:15 +0100)]
usb: gadget: g_ffs: convert to new interface of f_fs

Prepare for configfs integration. Use the new interface so that f_fs can be
made a module.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
10 years agousb: gadget: FunctionFS: convert to new function interface with backward compatibility
Andrzej Pietrasiewicz [Tue, 3 Dec 2013 14:15:33 +0000 (15:15 +0100)]
usb: gadget: FunctionFS: convert to new function interface with backward compatibility

This is required in order to integrate configfs support.
f_fs needs to be a separately compiled module and so it needs to use the new
interface.

Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>