platform/kernel/linux-3.10.git
9 years agoupstream: [media] dib8000: Fix handling of interleave bigger than 2
Mauro Carvalho Chehab [Fri, 4 Jul 2014 17:15:27 +0000 (14:15 -0300)]
upstream: [media] dib8000: Fix handling of interleave bigger than 2

If interleave is bigger than 2, the code will set it to 0, as
dib8000 registers use a log2(). So, change the code to handle
it accordingly.

Acked-By: Patrick Boettcher <pboettcher@kernellabs.com>
Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=34ba2e65bab3
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agos5p-mfc: Change buffer allocation per LSI suggestions
Kamil Debski [Thu, 26 Jun 2014 10:32:55 +0000 (12:32 +0200)]
s5p-mfc: Change buffer allocation per LSI suggestions

When using IOMMU page fault were observed. This patches increases the DPB
size for interlaced streams. In addition the reported size of the DPB is
also increased for all tpes of stream.

Change-Id: I5597abe8f9a4a5194a017631d004dcf1e5101237
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agos5p-mfc: Add special handling for MPEG2 decoding with IOMMU use case
Kamil Debski [Wed, 2 Apr 2014 09:18:54 +0000 (11:18 +0200)]
s5p-mfc: Add special handling for MPEG2 decoding with IOMMU use case

The DPB sizes for decoding MPEG2 when IOMMU is used and the stream is
interlaced should be doubled.

Change-Id: I0c69a1fa9be05a3050ae50bc14f10821a455dbcc
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agos5p-mfc: Fix the calculation of DPB size for non H264 video
Kamil Debski [Wed, 2 Apr 2014 09:08:37 +0000 (11:08 +0200)]
s5p-mfc: Fix the calculation of DPB size for non H264 video

Image size was used instead of the buffer size which resulted in a smaller
than necessary buffer allocation.

Change-Id: Ia457957cf8e2777e01c3d9f18216156b0dce4856
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agos5p-mfc: Optimize use of s5p_mfc_ctx parameters
Kamil Debski [Tue, 1 Apr 2014 11:23:16 +0000 (13:23 +0200)]
s5p-mfc: Optimize use of s5p_mfc_ctx parameters

luma_dpb_size, chroma_dpb_size and me_buffer_size were added with MFC v6 to
be used by the encoder. Their function directly maps to the previously used
luma_size, chroma_size and mv_size.

Change-Id: I7e585013d173f0349dd18cf52f2639d03ab16d36
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodrm/exynos: dsi: add driver data to support Exynos5420
YoungJun Cho [Wed, 18 Jun 2014 09:28:24 +0000 (18:28 +0900)]
drm/exynos: dsi: add driver data to support Exynos5420

The offset of register DSIM_PLLTMR_REG in Exynos5420 is
different from the one in Exynos4 SoC.

In case of Exynos5420 SoC, there is no frequency band bit
in DSIM_PLLCTRL_REG,
and it uses DSIM_PHYCTRL_REG and DSIM_PHYTIMING*_REG instead.
So this patch adds driver data to distinguish it.

Change-Id: Id5fad2e6042d28a73ed38de8657db9599d2cb782
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: fimd: support LCD I80 interface
YoungJun Cho [Wed, 18 Jun 2014 09:27:23 +0000 (18:27 +0900)]
drm/exynos: fimd: support LCD I80 interface

To support MIPI command mode based I80 interface panel,
FIMD should do followings:
- Sets LCD I80 interface timings configuration.
- Uses "lcd_sys" as an IRQ resource and sets relevant IRQ configuration.
- Sets LCD block configuration for I80 interface.
- Sets ideal(pixel) clock is 2 times faster than the original one to
  generate frame done IRQ prior to the next TE signal.
- Implements trigger feature that transfers image data if there is page
  flip request, and implements TE handler to call trigger function.

Change-Id: I3a620a40e4d9c03a2d41b61ffb6cc7c43e782d1f
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: dsi: add TE handler to support LCD I80 interface
YoungJun Cho [Thu, 24 Apr 2014 05:07:09 +0000 (14:07 +0900)]
drm/exynos: dsi: add TE handler to support LCD I80 interface

To support LCD I80 interface, the DSI host calls this handler
to notify the panel tearing effect synchronization signal to
the CRTC device manager to trigger to transfer video image.

Change-Id: Ic07e1bc6ee5744c7f7abea2e4ff99eeca86c8a3f
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: add TE handler to support LCD I80 interface
YoungJun Cho [Wed, 18 Jun 2014 09:15:41 +0000 (18:15 +0900)]
drm/exynos: add TE handler to support LCD I80 interface

To support LCD I80 interface, the panel should generates
Tearing Effect synchronization signal between MCU and FB
to display video images.
And the display controller should trigger to transfer
video image at this signal.
So the panel receives the TE IRQ, then calls this handler
chains to notify it to the display controller.

Change-Id: Ie60112b9b135bb8a1b05a01fedcd62bd65fc59cd
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agoARM: dts: samsung-fimd: add LCD I80 interface specific properties
YoungJun Cho [Fri, 11 Apr 2014 12:45:11 +0000 (21:45 +0900)]
ARM: dts: samsung-fimd: add LCD I80 interface specific properties

In case of using MIPI DSI based I80 interface panel,
the relevant registers should be set.
So this patch adds relevant DT bindings.

Change-Id: Ifc476d834f0bf25d9d908ec681fb80f17abf8b8c
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
9 years agoexynos/fimd: add parallel output related bindings
Andrzej Hajda [Thu, 3 Jul 2014 01:26:41 +0000 (10:26 +0900)]
exynos/fimd: add parallel output related bindings

The patch adds bindings required to add support
for parallel output.

Change-Id: I36199e9fce05bb1cfbd2f1447ff9d8c0ccbca0e1
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agotizen: odroid: update defconfig
Chanho Park [Thu, 3 Jul 2014 07:38:27 +0000 (16:38 +0900)]
tizen: odroid: update defconfig

Enable slp gadget
Enable Network configurations
Enable smack

Change-Id: I6d0e5b0b4ae40cef54c5763bf566a17719290fdc
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
9 years agodma: pl330: Modify pause/resume cmd capability flag for slave dma
Huang Chao [Tue, 1 Jul 2014 09:08:05 +0000 (17:08 +0800)]
dma: pl330: Modify pause/resume cmd capability flag for slave dma

Since the pl330 dma pause/resume capability is supported now,
the corresponding flag should be set as true.

Change-Id: I2dfe6575e6407232f3dcb441e1690650e571f66c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: dma: Replace the private pcm operations with the generic ones
Huang Chao [Tue, 1 Jul 2014 01:41:12 +0000 (09:41 +0800)]
ASoC: samsung: dma: Replace the private pcm operations with the generic ones

This patch reshapes the whole samsung platform driver which is composed by
samsung private dmaengine pcm operations, replacing them with the generic
asoc dmaengine pcm operations implemented by alsa soc subsystem.

The dma channel is requested in open callback, and will be released when
the pcm stream is closed. And the pcm trigger operations are also changed
to the asoc generic dmaengine based pcm trigger implementation.

Change-Id: Ib70b973720e5d57a40c7d583b74c11b971b4776c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: Kconfig: Support sound generic dmaengine pcm operations
Huang Chao [Tue, 1 Jul 2014 00:45:29 +0000 (08:45 +0800)]
ASoC: samsung: Kconfig: Support sound generic dmaengine pcm operations

This patch makes the generic dmaengine support for samsung pcm operations,
which can be used to substitute for samsung private dmaengine operations.

Change-Id: I4ab828fc95199bda7999e1c0c770100000aa2f74
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: i2s: Configure dmaengine playback/capture DAI DMA data
Huang Chao [Mon, 30 Jun 2014 08:35:47 +0000 (16:35 +0800)]
ASoC: samsung: i2s: Configure dmaengine playback/capture DAI DMA data

This patch configures the standard alsa dmaengine configure dai data.
The dma address, width and maxburst size will be initialized during
cpu dai probe process, in which the address width is assigned with
a default value as four bytes. Then when the hardware parameters are
configured as playback or capture are started, the dma address width
will be configured again according to current sound channels.

After the configuration, this patch will set the dai dma data into
the private dma data field in snd_soc_dai structure.

Change-Id: I46ece6472464d003a19d409441619ebbe4ef30cd
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: i2s: Add sound dmaengine playback/capture DAI DMA data
Huang Chao [Mon, 30 Jun 2014 07:45:06 +0000 (15:45 +0800)]
ASoC: samsung: i2s: Add sound dmaengine playback/capture DAI DMA data

This patch adds the standard alsa dmaengine configuration dai data,
which can make the dma slave channel runtime data be configured by
generic sound dmaengine slave config callback. This dmaengine dai
configuration data mainly contain dma address, width and maxburst.

Change-Id: Ief0688913ef89faafb90a1cf72c8a0977f3cb688
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agodma: pl330: Implement the DMA channel PAUSE/RESUME interfaces
Huang Chao [Tue, 24 Jun 2014 05:01:46 +0000 (13:01 +0800)]
dma: pl330: Implement the DMA channel PAUSE/RESUME interfaces

This patch implements the DMA_PAUSE/DMA_RESUME interfaces in pl330 DMAC
driver, which will call the dma pause/resume operations to set the dma
channel status respectively.

When DMA_PAUSE is called from dma subsystem during audio playback, the
DMAC should halt the transfer execution of the channel thread and wait
for the resume event occurs, which is specified by the event number in
INTEN register. The channel thread is stalled by the DMAWFE instruction.
After that, when DMA_RESUME is called, which means that the resume event
occurs, this patch will signal an interrupt to send the DMASEV instruction
and restart the channel thread, and then the channel thread moves to the
Executing state and the DMAC clears the event.

Change-Id: I5d990f0efb31b7e37673a060fdcbc9002b6ea488
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agodma: pl330: Enumerate the DMA channel PAUSE/RESUME operations
Huang Chao [Tue, 24 Jun 2014 03:17:45 +0000 (11:17 +0800)]
dma: pl330: Enumerate the DMA channel PAUSE/RESUME operations

This patch expands the pl330 dma channel operation enumerations,
which will support to pause data transfer and halt dma channel
on DMA_PAUSE command and resume data transfer and restart dma
channel on DMA_RESUME command.

Change-Id: I5d129063edca747a6c03f23a67c82ef508e4de17
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: i2s: Fix the checked out code style problems
Huang Chao [Mon, 30 Jun 2014 06:15:35 +0000 (14:15 +0800)]
ASoC: samsung: i2s: Fix the checked out code style problems

This patch just fix the code style issues about required space
missing and redundant line continuations have been checked out:

./scripts/checkpatch.pl -f ./sound/soc/samsung/i2s.c
ERROR: space required before the open brace '{'
\#1033: FILE: sound/soc/samsung/i2s.c:1033:
+ if (!IS_ERR(i2s->op_clk)){

WARNING: Avoid unnecessary line continuations
\#1225: FILE: sound/soc/samsung/i2s.c:1225:
+ dev_err(&pdev->dev, "idma address is not"\

total: 1 errors, 1 warnings, 1398 lines checked

./sound/soc/samsung/i2s.c has style problems, please review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Change-Id: I51f2bf0f6b203613b3a81d604b69c6e08ed97507
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoextcon: max77693: Remove initial path setting
Kamil Debski [Mon, 23 Jun 2014 10:35:16 +0000 (12:35 +0200)]
extcon: max77693: Remove initial path setting

Setting the muic to UART regardles of what is connected results in
havoc on the USB bus if it is connected at the time of boot.

Change-Id: I4f1867afee717635874e905faaffd7398afe050a
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: Enable host port in ehci-exynos in Trats2
Kamil Debski [Tue, 17 Jun 2014 12:17:51 +0000 (14:17 +0200)]
dts: Enable host port in ehci-exynos in Trats2

This patch enables the external host port of the ehci-exynos module in the
Trats2 board.

Change-Id: I60f3a9bdb4baa3acb939c73640200ce44173b763
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: Enabled ohci-exynos in Trats2 board
Kamil Debski [Tue, 17 Jun 2014 12:16:30 +0000 (14:16 +0200)]
dts: Enabled ohci-exynos in Trats2 board

This patch enabled support for the ohci-exynos module in the Trats2 board.

Change-Id: Ibfa78d4fc9f1a04429e65ba2b7ad211178e5ba3b
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agodts: Add support for the exynos-ohci driver for Exynos4
Kamil Debski [Tue, 17 Jun 2014 12:14:56 +0000 (14:14 +0200)]
dts: Add support for the exynos-ohci driver for Exynos4

This patch adds support for the exynos-ohci driver for Exynos4.

Change-Id: I7f195feabe0dfce25bb46fb31c91b3117da5a61c
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agomax77693: Add support for OTG host power supply
Kamil Debski [Tue, 17 Jun 2014 11:49:22 +0000 (13:49 +0200)]
max77693: Add support for OTG host power supply

The max77693_otg_control function was adapted from the 3.0 vendor kernel.
The modification were done to the max77693_read_reg and max77693_write_reg
calls. In the 3.10 kernel these functions use regmap.

Change-Id: If6e42fa3ef1ef5fdc1fe846b3b8a1c517928b626
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agousb: ohci-exynos: Add facility to use phy provided by the generic phy framework
Vivek Gautam [Mon, 5 May 2014 05:02:57 +0000 (10:32 +0530)]
usb: ohci-exynos: Add facility to use phy provided by the generic phy framework

Add support to consume phy provided by Generic phy framework.
Keeping the support for older usb-phy intact right now, in order
to prevent any functionality break in absence of relevant
device tree side change for ohci-exynos.
Once we move to new phy in the device nodes for ohci, we can
remove the support for older phys.

Signed-off-by: Vivek Gautam <gautam.vivek@samsung.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Acked-by: Kukjin Kim <kgene.kim@samsung.com>
Reviewed-by: Tomasz Figa <t.figa@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Change-Id: If4e12fb15edcf179e4433da08d7c06c226e05a63

9 years agousb: gadget: udc: Fix initialization sequence with extcon present
Kamil Debski [Mon, 9 Jun 2014 12:12:41 +0000 (14:12 +0200)]
usb: gadget: udc: Fix initialization sequence with extcon present

Prior to this patch during initialization the udc would switch off regardless
of the current state of the cable. Then it would be enabled if the cable is
present. After applying this patch the udc would be disabled only if the cable
is not present during initialization.

Change-Id: Icfd7e42f9890798afb92428f4041dcffefaa2a08
Signed-off-by: Kamil Debski <k.debski@samsung.com>
9 years agophy: phy-samsung-usb2: Change phy power on/power off sequence
Kamil Debski [Tue, 24 Jun 2014 12:04:54 +0000 (14:04 +0200)]
phy: phy-samsung-usb2: Change phy power on/power off sequence

The Exynos4412 USB 2.0 PHY hardware differs from the description provided
in the documentation. Some register bits have different function. This
patch fixes the defines of register bits and changes the way how phys are
powered on and off.

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

9 years agoASoC: odroidx2_max98090: Support audio routing specified in DT
Sylwester Nawrocki [Thu, 12 Jun 2014 17:29:44 +0000 (19:29 +0200)]
ASoC: odroidx2_max98090: Support audio routing specified in DT

This patch adds support for specifying the audio routing in device
tree.

Change-Id: Iebbd8d4dff79afba888f4e7620cbf1f2debc81de
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: odroidx2_max98090: Allow defining sound card name in DT
Sylwester Nawrocki [Thu, 12 Jun 2014 14:10:57 +0000 (16:10 +0200)]
ASoC: odroidx2_max98090: Allow defining sound card name in DT

The 'samsung,model' property allows to define the sound card name
in device tree, rather than relying on single name coded in the driver
for all Odroid boards.

Change-Id: Iad446b3d95d578d8d5390af5d0a9d8f9dcdd2a46
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoARM: dts: Add audio model and audio-routing information for Odroid X2/U3
Sylwester Nawrocki [Thu, 12 Jun 2014 16:13:01 +0000 (18:13 +0200)]
ARM: dts: Add audio model and audio-routing information for Odroid X2/U3

This will specify the sound card name and the audio routing.

Change-Id: I54e042266cc937e97849ca146e40b65cd9bdaa6f
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: odroidx2_max98090: Add missing of_node_put() calls
Sylwester Nawrocki [Mon, 23 Jun 2014 13:28:36 +0000 (15:28 +0200)]
ASoC: odroidx2_max98090: Add missing of_node_put() calls

Ensure the acquired references to the DT nodes are properly released
on error paths and upon the driver's removal.

Change-Id: I8ffff330041ad6d6adbc1afff3c85154e18dd85d
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agousb: s5p-ehci: fix the status when the device is being resumed
Hyungwon Hwang [Fri, 20 Jun 2014 11:00:59 +0000 (20:00 +0900)]
usb: s5p-ehci: fix the status when the device is being resumed

The device is powered down when it is suspended. So the status must be set as
hibernated when it is being resumed.

Change-Id: Ie67613f0e5e19f4412e46c25a9ea082c31beb0e2
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
9 years agopackaging: use upstream tags
Philippe Coval [Thu, 12 Jun 2014 15:30:20 +0000 (17:30 +0200)]
packaging: use upstream tags

Change-Id: I19ec564fa7fb0e6b88ed64390efd33b430b25894
Signed-off-by: Philippe Coval <philippe.coval@open.eurogiciel.org>
9 years agousb: gadget: s3c-hsotg: delay enabling irq once hardware is configured properly
Marek Szyprowski [Tue, 17 Jun 2014 15:33:33 +0000 (17:33 +0200)]
usb: gadget: s3c-hsotg: delay enabling irq once hardware is configured properly

This patch fixes kernel panic/interrupt storm/etc issues if bootloader
left s3c-hsotg module in enabled state. Now interrupt handler is enabled
only after proper configuration of hardware registers.

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

9 years agoarm: dts: odroid: make the gpio key node for power key common
Hyungwon Hwang [Fri, 20 Jun 2014 10:24:59 +0000 (19:24 +0900)]
arm: dts: odroid: make the gpio key node for power key common

The gpio key for power enable is common in both of Odroid X2 and U3. So move the
dt node to the common odroid dt file from the odroid x2 dt file.

Change-Id: Id295289e092bcd71f9854de6896cb7d5cfae9540
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
9 years agomfd: max77686: check the interrupt is specified or not
Hyungwon Hwang [Fri, 20 Jun 2014 11:05:27 +0000 (20:05 +0900)]
mfd: max77686: check the interrupt is specified or not

For the cases which the interrupt for this device is not specified, it must be
checked whether it is or not. Without it, an error occurs, because some
operations are done on the interrupt number which is not specified well.

Change-Id: Idc0a4b0f1e99f0f1022795927c54c1d3f56a4459
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
9 years agoarm: tizen_odroid_defconfig: enable mmc unsafe resume
Hyungwon Hwang [Fri, 20 Jun 2014 08:37:10 +0000 (17:37 +0900)]
arm: tizen_odroid_defconfig: enable mmc unsafe resume

Enable mmc unsafe resume. This option is needed for the system which uses the mmc
card for rootfs. Without it, errors occur when the system is being suspended,
because the mmc card is removed too early.

Change-Id: Iba885bda33d426df1cd83f9b2bb22d3744ca3f44
Signed-off-by: Hyungwon Hwang <human.hwang@samsung.com>
9 years agodrm/exynos: use wait_event_timeout() for safety usage
YoungJun Cho [Wed, 18 Jun 2014 09:14:00 +0000 (18:14 +0900)]
drm/exynos: use wait_event_timeout() for safety usage

There could be the case that the page flip operation isn't finished correctly
with some abnormal condition such as panel reset. So this patch replaces
wait_event() with wait_event_timeout() to avoid waiting for page flip completion
infinitely.
And clears exynos_crtc->pending_flip in exynos_drm_crtc_page_flip()
when exynos_drm_crtc_mode_set_commit() is failed.

Change-Id: Ib110ff1d6089394da37ba5a8375a4efdd6128672
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agodrm/exynos: dsi: move the EoT packets configuration point
YoungJun Cho [Fri, 11 Apr 2014 08:34:30 +0000 (17:34 +0900)]
drm/exynos: dsi: move the EoT packets configuration point

This configuration could be used in MIPI DSI command mode also.

Change-Id: I7f0f088296cd56d8b68dc9ae6ff910dd63e84d89
Signed-off-by: YoungJun Cho <yj44.cho@samsung.com>
Acked-by: Inki Dae <inki.dae@samsung.com>
Acked-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agoASoC: odroidx2_max98090: Drop unnecessary of_node check
Sylwester Nawrocki [Thu, 12 Jun 2014 13:57:01 +0000 (15:57 +0200)]
ASoC: odroidx2_max98090: Drop unnecessary of_node check

There is no way we can have probe() called with dev->of_node being
NULL on Exynos, so remove the unneeded check.

Change-Id: Icc815a56d2c0da14240dabc2097836e59117ccac
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: odroidx2_max98090: Drop unneeded assignment to NULL
Sylwester Nawrocki [Thu, 12 Jun 2014 13:50:48 +0000 (15:50 +0200)]
ASoC: odroidx2_max98090: Drop unneeded assignment to NULL

odroidx2_dai is a static variable so reinitialization of some
of its members to NULL can be removed.

Change-Id: I8448a6166a5008640ef3fd5d467acbcbc8e3cea9
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: odroidx2_max98090: Make debug logs dev_dbg()
Sylwester Nawrocki [Thu, 12 Jun 2014 13:48:29 +0000 (15:48 +0200)]
ASoC: odroidx2_max98090: Make debug logs dev_dbg()

It's just a debug information so make it dev_dbg(). While at it
use snd_pcm_stream_str() rather than open coding it.

Change-Id: Ib3c9820660bc69fb0c98a12762c6c009a55a6020
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: odroidx2_max98090: Indentation changes
Sylwester Nawrocki [Mon, 16 Jun 2014 14:08:48 +0000 (16:08 +0200)]
ASoC: odroidx2_max98090: Indentation changes

Purely cosmetic, i.e. no functionality changes.

Change-Id: I092e33f8a944c495cbb1ba6f1255c9794f4e76fc
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
9 years agoASoC: samsung: dma: Implement audio pause/resume callback operations
Huang Chao [Fri, 13 Jun 2014 05:28:36 +0000 (13:28 +0800)]
ASoC: samsung: dma: Implement audio pause/resume callback operations

When the dma operations get called from audio platform driver, and
users want to pause or resume the audio pcm stream when playback music,
there should be the related pause and release callback operations for
such requirements. This patch just implements the audio pause/resume
callback operations by simply call the corresponding functions from
the dma engine subsystem.

Change-Id: Ifed8d2acf1cbc09f1bd5d37151dcf74255b20da0
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: dma: Add pause/resume support for pcm stream information
Huang Chao [Fri, 13 Jun 2014 06:11:11 +0000 (14:11 +0800)]
ASoC: samsung: dma: Add pause/resume support for pcm stream information

This patch expands the sound pcm hardware information set, which makes
dma driver support audio stream pause/resume when playback music, and
triggering the push/release commands respectively.

Change-Id: I2f89c13afd335c964d144e9ba1b9d101ceb14a0d
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: dma: Implement audio stream pause/resume interfaces
Huang Chao [Fri, 13 Jun 2014 05:58:31 +0000 (13:58 +0800)]
ASoC: samsung: dma: Implement audio stream pause/resume interfaces

This patch implements the pause/resume operations for audio stream
when users are playback the music, which will call the correlative
pause/resume callbacks from samsung dma operations set.

Change-Id: I151a9b48152dab52b9b618c54af4200fecd3fd8a
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: dma: Define audio pause/resume callback operations
Huang Chao [Fri, 13 Jun 2014 04:36:49 +0000 (12:36 +0800)]
ASoC: samsung: dma: Define audio pause/resume callback operations

When this set of dma operations get called from audio platform
driver, and users want to set the audio pcm stream to pause or
resume state when playback music, there should be the related
pause and release callback operations for such requirements.

Change-Id: Id872285c0c4bc0c5cc537aad0622b1b6d697f049
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agodma: pl330: Implement the dma channel pause/resume interfaces
Huang Chao [Fri, 13 Jun 2014 03:22:17 +0000 (11:22 +0800)]
dma: pl330: Implement the dma channel pause/resume interfaces

This patch implements dma pause and resume interfaces for the
pl330 dmac driver. When the dmaengine_pause callback is called
from audio platform driver, the pl330 driver should handle the
pause command. And when the dmaengine_resume callback function
is called, the pl330 driver should handle the resume command.

In order not to return error code for pause/resume operation,
currently there is nothing implemented for pause and resume
switch interfaces, and there might have some continuous work
for pl330 channel configuration in the future. However, the
odroidx2/u3 board can pause/resume with this implementation.

Change-Id: I584106a4d7861fde308997e6843088fbf0a9b1bb
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agodrm/exynos: hdmi: fix power order issue
Inki Dae [Fri, 13 Jun 2014 08:44:40 +0000 (17:44 +0900)]
drm/exynos: hdmi: fix power order issue

This patch resolves page fault issue of Mixer when disabled.

The SFRs of VP and Mixer are updated by Vertical Sync of Timing
generator which is a part of HDMI so the sequence to disable TV
Subsystem should be as following:
VP -> Mixer -> HDMI

For this, this patch disables Mixer and VP (if used) prior to
disabling HDMI.

Change-Id: I85591e66264c9e5b7efe7ddf7fe71df1b9972356
Signed-off-by: Inki Dae <inki.dae@samsung.com>
9 years agoRevert "drm/exynos: do hdmi power control by crtc DPMS"
Inki Dae [Fri, 13 Jun 2014 06:25:32 +0000 (15:25 +0900)]
Revert "drm/exynos: do hdmi power control by crtc DPMS"

This reverts commit 4d1a75bbabd92b458e8f8cf1d3c071efc873cc87.

Change-Id: I4b56d6ac44586580c4a6d871e20064aacce30331

9 years agovb2: fix buf_init/buf_cleanup call sequences
Hans Verkuil [Wed, 29 Jan 2014 16:36:53 +0000 (13:36 -0300)]
vb2: fix buf_init/buf_cleanup call sequences

Ensure that these ops are properly balanced.

There are two scenarios:

1) for MMAP buf_init is called when the buffers are created and buf_cleanup
   must be called when the queue is finally freed. This scenario was always
   working.

2) for USERPTR and DMABUF it is more complicated. When a buffer is queued
   the code checks if all planes of this buffer have been acquired before.
   If that's the case, then only buf_prepare has to be called. Otherwise
   buf_cleanup needs to be called if the buffer was acquired before, then,
   once all changed planes have been (re)acquired, buf_init has to be
   called followed by buf_prepare. Should buf_prepare fail, then buf_cleanup
   must be called on the newly acquired planes to release them in.

Finally, in __vb2_queue_free we have to check if the buffer was actually
acquired before calling buf_cleanup. While that it always true for MMAP
mode, it is not necessarily true for the other modes. E.g. if you just
call REQBUFS and close the file handle, then buffers were never queued and
so no buf_init was ever called.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
[Backport from upstream to support dmabuf memory]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: I9a020bd5bca6376f70f3a9a85cce63ff0ff555ed

9 years agonetfilter: x_tables: lightweight process control group matching
Daniel Borkmann [Sun, 29 Dec 2013 17:27:12 +0000 (18:27 +0100)]
netfilter: x_tables: lightweight process control group matching

It would be useful e.g. in a server or desktop environment to have
a facility in the notion of fine-grained "per application" or "per
application group" firewall policies. Probably, users in the mobile,
embedded area (e.g. Android based) with different security policy
requirements for application groups could have great benefit from
that as well. For example, with a little bit of configuration effort,
an admin could whitelist well-known applications, and thus block
otherwise unwanted "hard-to-track" applications like [1] from a
user's machine. Blocking is just one example, but it is not limited
to that, meaning we can have much different scenarios/policies that
netfilter allows us than just blocking, e.g. fine grained settings
where applications are allowed to connect/send traffic to, application
traffic marking/conntracking, application-specific packet mangling,
and so on.

Implementation of PID-based matching would not be appropriate
as they frequently change, and child tracking would make that
even more complex and ugly. Cgroups would be a perfect candidate
for accomplishing that as they associate a set of tasks with a
set of parameters for one or more subsystems, in our case the
netfilter subsystem, which, of course, can be combined with other
cgroup subsystems into something more complex if needed.

As mentioned, to overcome this constraint, such processes could
be placed into one or multiple cgroups where different fine-grained
rules can be defined depending on the application scenario, while
e.g. everything else that is not part of that could be dropped (or
vice versa), thus making life harder for unwanted processes to
communicate to the outside world. So, we make use of cgroups here
to track jobs and limit their resources in terms of iptables
policies; in other words, limiting, tracking, etc what they are
allowed to communicate.

In our case we're working on outgoing traffic based on which local
socket that originated from. Also, one doesn't even need to have
an a-prio knowledge of the application internals regarding their
particular use of ports or protocols. Matching is *extremly*
lightweight as we just test for the sk_classid marker of sockets,
originating from net_cls. net_cls and netfilter do not contradict
each other; in fact, each construct can live as standalone or they
can be used in combination with each other, which is perfectly fine,
plus it serves Tejun's requirement to not introduce a new cgroups
subsystem. Through this, we result in a very minimal and efficient
module, and don't add anything except netfilter code.

One possible, minimal usage example (many other iptables options
can be applied obviously):

 1) Configuring cgroups if not already done, e.g.:

  mkdir /sys/fs/cgroup/net_cls
  mount -t cgroup -o net_cls net_cls /sys/fs/cgroup/net_cls
  mkdir /sys/fs/cgroup/net_cls/0
  echo 1 > /sys/fs/cgroup/net_cls/0/net_cls.classid
  (resp. a real flow handle id for tc)

 2) Configuring netfilter (iptables-nftables), e.g.:

  iptables -A OUTPUT -m cgroup ! --cgroup 1 -j DROP

 3) Running applications, e.g.:

  ping 208.67.222.222  <pid:1799>
  echo 1799 > /sys/fs/cgroup/net_cls/0/tasks
  64 bytes from 208.67.222.222: icmp_seq=44 ttl=49 time=11.9 ms
  [...]
  ping 208.67.220.220  <pid:1804>
  ping: sendmsg: Operation not permitted
  [...]
  echo 1804 > /sys/fs/cgroup/net_cls/0/tasks
  64 bytes from 208.67.220.220: icmp_seq=89 ttl=56 time=19.0 ms
  [...]

Of course, real-world deployments would make use of cgroups user
space toolsuite, or own custom policy daemons dynamically moving
applications from/to various cgroups.

  [1] http://www.blackhat.com/presentations/bh-europe-06/bh-eu-06-biondi/bh-eu-06-biondi-up.pdf

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: cgroups@vger.kernel.org
Acked-by: Li Zefan <lizefan@huawei.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
[backport from upstream commit 82a37132f300ea53bdcd812917af5a6329ec80c3]
Signed-off-by: Przemyslaw Kedzierski <p.kedzierski@samsung.com>
Change-Id: Iac82ecef5b31a50f52ad9329bdd0403c667f154d

9 years agoASoC: samsung: odroidx2/u3: Remove unnecessary system clock setting
Huang Chao [Thu, 12 Jun 2014 06:42:58 +0000 (14:42 +0800)]
ASoC: samsung: odroidx2/u3: Remove unnecessary system clock setting

This patch removes the redundant sysclk setting of odroid cpu_dai.
Since the audio working mode has been changed from I2S master mode
to I2S slave mode, so we don't need to set the cpu_dai I2S clock
mode to operation any more. Besides, the hw_params function will
set cpu_dai I2S sysclk to CDCCLK mode, which makes the cpu_dai to
use the system clock generated by audio codec max98090.

Change-Id: Ia09f9774c07d22991a706eff6553892b9d7ca39c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: odroidx2/u3: Add secondary I2S bind DAI link
Huang Chao [Wed, 11 Jun 2014 04:23:14 +0000 (12:23 +0800)]
ASoC: samsung: odroidx2/u3: Add secondary I2S bind DAI link

This patch enables the I2S0 secondary DAI and create a
related audio playback device node, which will use the
internal DMA (IDMA) platform driver for PCM data transfer.
IDMA can support up to two channel sound for playback.

Change-Id: If7a84437cf0dda6d018ced22f52e4e995b72f01c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoASoC: samsung: odroidx2/u3: Fix the checking out code style problem
Huang Chao [Thu, 12 Jun 2014 06:10:45 +0000 (14:10 +0800)]
ASoC: samsung: odroidx2/u3: Fix the checking out code style problem

This patch fix the redundant line continuation problem checked over:
./scripts/checkpatch.pl -f ./sound/soc/samsung/odroidx2_max98090.c
WARNING: Avoid unnecessary line continuations
\#52: FILE: sound/soc/samsung/odroidx2_max98090.c:52:
+ ((substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ? \

total: 0 errors, 1 warnings, 145 lines checked

./sound/soc/samsung/odroidx2_max98090.c has style problems, please
review.

If any of these errors are false positives, please report
them to the maintainer, see CHECKPATCH in MAINTAINERS.

Change-Id: Idf5a7c8a57c06e5b35401c24141d740887c5d65c
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agousb: gadget: f_fs: resurect usb_functionfs_descs_head structure
Michal Nazarewicz [Fri, 6 Jun 2014 09:12:52 +0000 (11:12 +0200)]
usb: gadget: f_fs: resurect usb_functionfs_descs_head structure

Even though usb_functionfs_descs_head structure is now deprecated,
it has been used by some user space tools.  Its removel in commit
[ac8dde1: “Add flags to descriptors block”] was an oversight
leading to build breakage for such tools.

Bring it back so that old user space tools can still be build
without problems on newer kernel versions.

Reported-by: Lad, Prabhakar <prabhakar.csengg@gmail.com>
Reported-by: Krzysztof Opasiak <k.opasiak@samsung.com>
Cc: <stable@vger.kernel.org> # 3.14
Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Commit taken from linux-usb mailing list. Not merged yet but
required to fix build of FFS apps.

Change-Id: I90fc3786f043aca9463e255ad9900c2d341fd17b
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
9 years agoASoC: samsung: add audio interface support for BT, modem, idma
Inha Song [Fri, 2 May 2014 04:37:06 +0000 (13:37 +0900)]
ASoC: samsung: add audio interface support for BT, modem, idma

- Support for BT and mode, add Digital Audio Interface 2 and 3.
- Support for idma, modify Secondary DAI's cpu_dai_name and platform_name.

Change-Id: I90fc3786f043aca9463e255ad3388c2d341fd17b
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoASoC: samsung: Modify i2s driver to support idma
Inha Song [Wed, 30 Apr 2014 11:09:09 +0000 (20:09 +0900)]
ASoC: samsung: Modify i2s driver to support idma

i2s-sec driver uses the internal dma.

Because ASoC idma devices are not registered as platform device,
asoc_idma_platform_register() should be called for idma registration.

Change-Id: Iaf7b0c0e3cdf66f4eda720cd705cf802c391d76b
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoarm: dts: exynos4: add i2s0 irq number for exynos4
Inha Song [Wed, 30 Apr 2014 11:41:52 +0000 (20:41 +0900)]
arm: dts: exynos4: add i2s0 irq number for exynos4

Add i2s0 irq number by referring to the GIC interrupt table of exynos4.

Change-Id: I29cab56b672fa353f5acaecd34ed76804c182cbd
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoASoC: Samsung: Add irq member in s3c_dma_params struct
Inha Song [Wed, 30 Apr 2014 11:05:03 +0000 (20:05 +0900)]
ASoC: Samsung: Add irq member in s3c_dma_params struct

ASoC dma/idma devices are not registered as platform device any more.
In order to save irq value, "irq" member is added to the s3c_dma_params
data structure.

Change-Id: I1bfd0cfd9a6b4d67582dddade52b4eb4822afcac
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoASoC: Samsung: Don't register idma device as platform device
Inha Song [Wed, 30 Apr 2014 07:04:28 +0000 (16:04 +0900)]
ASoC: Samsung: Don't register idma device as platform device

Previously, the ASoC idma was instantiated via a platform_device.
But it was a virtual device with sole purpose to call snd_soc_register_platform().

Each Samsung DAI now registers the ASoC 'platform' itself.

Change-Id: Ie1c9b2bdf5522dc085fe2bbb271cd9ceb86252f7
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agousb: gadget: ffs: race between ffs_epfile_io() and ffs_func_eps_disable()
Chao Bi [Mon, 14 Apr 2014 03:19:53 +0000 (11:19 +0800)]
usb: gadget: ffs: race between ffs_epfile_io() and ffs_func_eps_disable()

ffs_epfile_io() is called from userspace, while ffs_func_eps_disable() might be
called from USB disconnect interrupt, the two functions would run in parallel
but they are not well protected, that epfile->ep would be removed by
ffs_func_eps_disable() during ffs_epfile_io() is referring this pointer, then
it leads to kernel PANIC.

The scenario is as below:

Thread 1                                 Thread 2
   |                                        |
SyS_read                             dwc3_gadget_disconnect_interrupt
   |                                        |
ffs_epfile_read                         reset_config
   |                                        |
ffs_epfile_io                       ffs_func_eps_disable
   |                                        |
 -----                      usb_ep_disable():  epfile->ep->ep->desc = NULL
   |                                        |
usb_ep_align_maybe():                     -----
it refers ep->desc->wMaxPacketSize        -----

Signed-off-by: Chao Bi <chao.bi@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
[backport from upstream commit 97839ca4b06ab27790700ad7da6be9a75fc0cc1d]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I97839ca4b06ab27790700ad7da6be9a75fc0cc1d

9 years agoKconfig: enable snd-usb-audio module
Mauro Carvalho Chehab [Thu, 26 Jun 2014 13:50:52 +0000 (10:50 -0300)]
Kconfig: enable snd-usb-audio module

HVR950Q analog TV outputs audi via snd-usb-audio. Enable
it, in order to have analog TV fully working.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au0828: don't hardcode height/width
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:58 +0000 (13:54 -0300)]
upstream: [media] au0828: don't hardcode height/width

While this device doesn't have a scaler (or have it disabled),
the screen dimentions are a function of the standard. Ok, right
now, only 480 lines standards are implemented, although it
supports other ones. Yet, let's calculate the size, to make
easier to add more standards latter.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=1fe3a8fe4944
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au0828/au8522: Add PAL-M support
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:56 +0000 (13:54 -0300)]
upstream: [media] au0828/au8522: Add PAL-M support

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=f2fd7ce6f2db
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au8522: Fix demod analog mode setting
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:55 +0000 (13:54 -0300)]
upstream: [media] au8522: Fix demod analog mode setting

There are several issues on the current code:
1) msleep(1) is actually equivalent to msleep(10);
2) au8522_video_set() will set reg 0xa4 to the
   proper value for SIF, CVBS or S-Video. No need
   to force it to CVBS;
3) Let's not hardcode 0x9d for CBS on audio_set.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=c9f5ccc24d1c
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au8522: cleanup s-video settings at setup_decoder_defaults()
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:54 +0000 (13:54 -0300)]
upstream: [media] au8522: cleanup s-video settings at setup_decoder_defaults()

setup_decoder_defaults() doesn't really care about the input
port. All it needs to know is if the input port is s-video or
not.

As the caller function already knows that, just pass a boolean
instead.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=65c8820912d9
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au8522: be sure that we'll setup audio routing at the right time
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:53 +0000 (13:54 -0300)]
upstream: [media] au8522: be sure that we'll setup audio routing at the right time

Let's set the the audio routing also at stream start. With this change,
we don't risk enabling the analog demux while not streaming, reducing
the risk of interfering with a DVB demux that might be happening.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=d289cdf022c5
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au8522: be sure that the setup will happen at streamon time
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:52 +0000 (13:54 -0300)]
upstream: [media] au8522: be sure that the setup will happen at streamon time

The same demod is used on both analog and digital mode. We should
not let the commands for analog mode to happen while the device
is in digital mode. So, monitor it via streamon.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=38fe3510fa8f
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au8522: move input_mode out one level
Mauro Carvalho Chehab [Sun, 8 Jun 2014 16:54:51 +0000 (13:54 -0300)]
upstream: [media] au8522: move input_mode out one level

The input mode is used not only inside the setup_decoder_defaults()
but also at au8522_*_mode routines.

So, move it one level up. As an advantage, we can now group the
function that sets the input into just one.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=364693166cf4
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] au0828: add missing tuner Kconfig dependency
Mauro Carvalho Chehab [Mon, 9 Jun 2014 21:49:01 +0000 (18:49 -0300)]
upstream: [media] au0828: add missing tuner Kconfig dependency

The analog part of au0828 is missing the tuner Kconfig dependency.
That makes the device to not work while in analog mode.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=0bf49ec9f7e2
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib7000p: Callibrate signal strength
Mauro Carvalho Chehab [Thu, 29 May 2014 17:44:57 +0000 (14:44 -0300)]
upstream: [media] dib7000p: Callibrate signal strength

Calibrate the signal strength to dB.

For this callibration, I used adapter 0 (antenna 1), connected
via a normal cable to a DTF-2111 generator.

The same cabling and RF generator connected to adapter 1
(antenna 2) has a difference of +3dBm (signal was stronger
there).

Yet, changing the RF for a difference of, let's say, 6dB
reflected on a 6dB difference at the measured signal, with
is good.

So, the signal strengh can indeed be used to measure the
antenna gain, if the antenna is repositioned. It is
not precise to measure the absolute dBm value, however.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=3926d91a6b93
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib7000p: Add DVBv5 stats support
Mauro Carvalho Chehab [Thu, 29 May 2014 17:44:56 +0000 (14:44 -0300)]
upstream: [media] dib7000p: Add DVBv5 stats support

Adds DVBv5 stats support. For now, just mimic whatever dib8000
does, as they're very similar, with regards to statistics.

However, dib7000p_get_time_us() likely require some
adjustments, as I didn't actually reviewed the formula
for it to work with DVB-T. Still, better than nothing,
as latter patches can improve it.

This patch also doesn't show the signal strength in dB
yet. The code is already there, but it requires to be
callibrated.

A latter patch will do the calibration.

It seems that this patch is also a bug fix: Before this
patch, the frontend were not tuning with some userspace
tools. I suspect that dib7000p firmware or hardware
internally expects that the statistics to be collected,
in order for it to work. With this patch, the DVB core
will always retrive statistics, even if userspace doesn't
request. So, it makes the device work on all tested apps.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=041ad449683b
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib8000: export just one symbol
Mauro Carvalho Chehab [Thu, 29 May 2014 12:20:17 +0000 (09:20 -0300)]
upstream: [media] dib8000: export just one symbol

Exporting multiple symbols don't work as it causes compilation
breakages, due to the way dvb_attach() works.

The bug happens when:
        CONFIG_DVB_DIB8000=m
CONFIG_DVB_USB_DIB0700=y

As a bonus, dib8000 won't be loaded anymore if the device uses
a different frontend, reducing the memory footprint.

Tested with both Pixelview PV-D231 and MyGica S870.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=d44913c1e547
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib8000: rename dib8000_attach to dib8000_init
Mauro Carvalho Chehab [Thu, 29 May 2014 12:20:16 +0000 (09:20 -0300)]
upstream: [media] dib8000: rename dib8000_attach to dib8000_init

Well, what we call as "foo_attach" is the method that should
be called by the dvb_attach() macro.

It should be noticed that the name "dvb_attach" is really a
bad name and don't express what it does.

dvb_attach() basically does three things, if the frontend is
compiled as a module:
- It lookups for the module that it is known to have the
  given symbol name and requests such module;
- It increments the module usage (anonymously - so lsmod
  doesn't print who loaded the module);
- after loading the module, it runs the function associated
  with the dynamic symbol.

When compiled as builtin, it just calls the function given to it.

As dvb_attach() increments refcount, it can't be (easily)
called more than once for the same module, or the kernel
will deny to remove the module, because refcount will never
be zeroed.

In other words, the function name given to dvb_attach()
should be one single symbol that will always be called
before any other function on that module to be used.

For almost all DVB frontends, there's just one function,
but, on dib8000, there are several exported symbols.

We need to get rid of all those direct calls, because they
cause compilation breakages when bridge is builtin and
frontend is module, we'll need to add a new function that
will be the first one to be called, whatever initialization
is needed.

So, let's rename this function, in order to prepare for
a next patch that will add a new attach() function that
will be the only one exported by this module.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=b9bc7d59b725
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib7000: export just one symbol
Mauro Carvalho Chehab [Thu, 29 May 2014 12:20:15 +0000 (09:20 -0300)]
upstream: [media] dib7000: export just one symbol

Exporting multiple symbols don't work as it causes compilation
breakages, due to the way dvb_attach() works.

This were reported several times, like:

   drivers/built-in.o: In function `cxusb_dualdig4_rev2_tuner_attach':
>> cxusb.c:(.text+0x27d4b5): undefined reference to `dib7000p_get_i2c_master'
   drivers/built-in.o: In function `dib7070_set_param_override':
   cxusb.c:(.text+0x27d5a5): undefined reference to `dib0070_wbd_offset'
>> cxusb.c:(.text+0x27d5be): undefined reference to `dib7000p_set_wbd_ref'
   drivers/built-in.o: In function `dib7070_tuner_reset':
>> cxusb.c:(.text+0x27d5f9): undefined reference to `dib7000p_set_gpio'
   drivers/built-in.o: In function `cxusb_dualdig4_rev2_frontend_attach':
>> cxusb.c:(.text+0x27df5c): undefined reference to `dib7000p_i2c_enumeration'

In this specific report:
CONFIG_DVB_USB_CXUSB=y
CONFIG_DVB_DIB7000P=m

But the same type of bug can happen if:
CONFIG_DVB_DIB7000P=m
and one of the bridge drivers is compiled builtin (cxusb, cx23885-dvb
and/or dib0700).

As a bonus, dib7000p won't be loaded anymore if the device uses
a different frontend, reducing the memory footprint.

Tested with Hauppauge Nova-TD (2 frontends).

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=8abe4a0a3f6d
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dib7000p: rename dib7000p_attach to dib7000p_init
Mauro Carvalho Chehab [Thu, 29 May 2014 12:20:14 +0000 (09:20 -0300)]
upstream: [media] dib7000p: rename dib7000p_attach to dib7000p_init

Well, what we call as "foo_attach" is the method that should
be called by the dvb_attach() macro.

It should be noticed that the name "dvb_attach" is really a
bad name and don't express what it does.

dvb_attach() basically does three things, if the frontend is
compiled as a module:
- It lookups for the module that it is known to have the
  given symbol name and requests such module;
- It increments the module usage (anonymously - so lsmod
  doesn't print who loaded the module);
- after loading the module, it runs the function associated
  with the dynamic symbol.

When compiled as builtin, it just calls the function given to it.

As dvb_attach() increments refcount, it can't be (easily)
called more than once for the same module, or the kernel
will deny to remove the module, because refcount will never
be zeroed.

In other words, the function name given to dvb_attach()
should be one single symbol that will always be called
before any other function on that module to be used.

For almost all DVB frontends, there's just one function.

However, the dib7000p initialization can require up to 3
functions to be called:
- dib7000p_get_i2c_master;
- dib7000p_i2c_enumeration;
- dib7000p_init (before this patch dib7000_attach).

(plus a bunch of other functions that the bridge driver will
need to call).

As we need to get rid of all those direct calls, because they
cause compilation breakages when bridge is builtin and
frontend is module, we'll need to add a new function that
will be the first one to be called, whatever initialization
is needed.

So, let's rename the function that probes and init the hardware
to dib7000p_init.

A latter patch will add a new dib7000p_attach that will be
used as originally conceived by dvb_attach() way.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=7f67d96ab181
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] dvbdev: add a dvb_detach() macro
Mauro Carvalho Chehab [Thu, 29 May 2014 12:20:13 +0000 (09:20 -0300)]
upstream: [media] dvbdev: add a dvb_detach() macro

The dvb_attach() was unbalanced, as there was no dvb_dettach. Ok,
on current cases, the dettach is done by dvbdev, but that are some
future corner cases where we may need to do this before registering
the frontend.

So, add a dvb_detach() and use it at dvb_frontend.c.

Backports http://git.linuxtv.org/cgit.cgi/media_tree.git/commit/?id=4647f487083d
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agousb: gadget: f_fs: add missing spinlock and mutex unlock
Robert Baldyga [Mon, 10 Mar 2014 08:33:37 +0000 (09:33 +0100)]
usb: gadget: f_fs: add missing spinlock and mutex unlock

This patch adds missing spin_unlock and mutex_unlock calls in
error handling code.

Signed-off-by: Robert Baldyga <r.baldyga@samsung.com>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Acked-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[backport from upstream commit 48968f8d5f2234fb1768c55cf7d96d0b87446cd6]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I48968f8d5f2234fb1768c55cf7d96d0b87446cd6

9 years agousb: gadget: return the right length in ffs_epfile_io()
Chuansheng Liu [Tue, 4 Mar 2014 07:34:57 +0000 (15:34 +0800)]
usb: gadget: return the right length in ffs_epfile_io()

When the request length is aligned to maxpacketsize, sometimes
the return length ret > the user space requested len.

At that time, we will use min_t(size_t, ret, len) to limit the
size in case of user data buffer overflow.

But we need return the min_t(size_t, ret, len) to tell the user
space rightly also.

[ balbi@ti.com: also fix comment's indentation ]

Acked-by: Michal Nazarewicz <mina86@mina86.com>
Reviewed-by: David Cohen <david.a.cohen@linux.intel.com>
Signed-off-by: Chuansheng Liu <chuansheng.liu@intel.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
[backport from upstream commit cfe919b53b807ab32e89e1c662c6d242948449bd]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: Icfe919b53b807ab32e89e1c662c6d242948449bd

9 years agousb: gadget: f_fs: Add flags to descriptors block
Michal Nazarewicz [Fri, 28 Feb 2014 11:20:23 +0000 (16:50 +0530)]
usb: gadget: f_fs: Add flags to descriptors block

This reworks the way SuperSpeed descriptors are added and instead of
having a magic after full and high speed descriptors, it reworks the
whole descriptors block to include a flags field which lists which
descriptors are present and makes future extensions possible.

Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
[backport from upstream commit 410b1f0e1c86443c57dc70d78db7aec193c79787]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I410b1f0e1c86443c57dc70d78db7aec193c79787

9 years agousb: gadget: f_fs: Add support for SuperSpeed Mode
Manu Gautam [Fri, 28 Feb 2014 11:20:22 +0000 (16:50 +0530)]
usb: gadget: f_fs: Add support for SuperSpeed Mode

Allow userspace to pass SuperSpeed descriptors and
handle them in the driver accordingly.
This change doesn't modify existing desc_header and thereby
keeps the ABI changes backward compatible i.e. existing
userspace drivers compiled with old header (functionfs.h)
would continue to work with the updated kernel.

Signed-off-by: Manu Gautam <mgautam@codeaurora.org>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
[backport from upstream commit 8d4e897bd0150fab594a871484e554472ee01452]
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-id: I8d4e897bd0150fab594a871484e554472ee01452

9 years agousb: gadget: f_fs: fix aio support
Marek Szyprowski [Wed, 4 Jun 2014 12:54:03 +0000 (14:54 +0200)]
usb: gadget: f_fs: fix aio support

Fix incompatible function signature caused by mainline backport

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

9 years agoARM: odroidx2/u3: Fix interrupt line assignment
Łukasz Stelmach [Mon, 9 Jun 2014 11:43:19 +0000 (13:43 +0200)]
ARM: odroidx2/u3: Fix interrupt line assignment

According to circuit diagram[1] MAX98090 codec is hooked to GPX0[0]
and not to GPX0[1].

[1] https://drive.google.com/file/d/0B4UPrML8Nk9lSk5aai1MQ1VVTmc/edit?usp=sharing

Change-Id: I5d7d56c866dd4e7e6dcce744f43646babc7119d4
Signed-off-by: Łukasz Stelmach <l.stelmach@samsung.com>
9 years agoARM: dts: Exynos4412-odroid: set available memory to 2 GiB
Marek Szyprowski [Tue, 3 Jun 2014 09:18:16 +0000 (11:18 +0200)]
ARM: dts: Exynos4412-odroid: set available memory to 2 GiB

Both Odroid X2 and U2/U3 boards have 2 GiB of memory, so set the amount
of memory in the DTS file to 2 GiB.

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

9 years agoARM: Exynos: fix reboot hang on Odroid X2/U2/U3 with eMMC memory
Marek Szyprowski [Wed, 4 Jun 2014 13:08:23 +0000 (15:08 +0200)]
ARM: Exynos: fix reboot hang on Odroid X2/U2/U3 with eMMC memory

Odroid X/X2/U2/U3 require special handling of SD4_nRESET_OUT line for eMMC
memory to perform complete reboot. This patch adds code for performing such
reset.

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

9 years agoarm: tizen_odroid_defconfig: enable l2cache and tizen global lock
Marek Szyprowski [Wed, 4 Jun 2014 09:29:35 +0000 (11:29 +0200)]
arm: tizen_odroid_defconfig: enable l2cache and tizen global lock

Enable Outer L2 CACHE controller and Tizen Global Lock.

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

9 years agoARM: config: enable ISDB-T usb tuner stick of S870
Liu Peiwen [Thu, 29 May 2014 03:26:29 +0000 (11:26 +0800)]
ARM: config: enable ISDB-T usb tuner stick of S870

ISDB-T usb stick S870 consists of DIB8000 tuner ,RC controller and usb interface,
RC_CORE ,VIDEO_IR_I2C and  MEDIA_RC_SUPPORT  are  enabled for supporting RC controller,
DVB_USB for supporting USB interface,DVB_DIB8000 for supporting tuner component.

Change-Id: I03a05c21762b133130ba22aa8d267b3b0b1b0740
Signed-off-by: Liu Peiwen <peiwen.liu@samsung.com>
9 years agodrm/exynos: do hdmi power control by crtc DPMS
Joonyoung Shim [Tue, 3 Jun 2014 05:43:42 +0000 (14:43 +0900)]
drm/exynos: do hdmi power control by crtc DPMS

The hdmi should turn off after mixer turns off by H/W limitation.
Otherwise, the TV power domain is not disabled. Generally, first it's
called DPMS function of encoder than DPMS function of crtc at from DPMS
off to DPMS on. It can be solution about the H/W dependency to control
hdmi power by crtc DPMS instead of encoder DPMS.

Change-Id: I86e39c438453af5bcc19b7109d2e3569d629d52f
Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
9 years agodrm: exynos: mixer: fix using usleep() in atomic context
Tomasz Stanislawski [Wed, 16 Apr 2014 15:12:56 +0000 (17:12 +0200)]
drm: exynos: mixer: fix using usleep() in atomic context

This patch fixes calling usleep_range() after taking reg_slock
using spin_lock_irqsave(). The mdelay() is used instead.
Waiting in atomic context is not the best idea in general.
Hopefully, waiting occurs only when Video Processor fails
to reset correctly.

Change-Id: Ib2bf151cb4dcb45ab42e9d8f85bf27e1fab21757
Signed-off-by: Tomasz Stanislawski <t.stanislaws@samsung.com>
9 years agoarm: tizen_defconfig: Disable unused configuration
Inha Song [Wed, 30 Apr 2014 06:42:58 +0000 (15:42 +0900)]
arm: tizen_defconfig: Disable unused configuration

This patch disable unused configuration
 - ASoC: SMDK_WM8994: Machine, PCM, S/PDIF driver

Change-Id: I41fd503587fb7c0344add8b2a6db2f83ad1e9662
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoASoC: samsung: Expand odroidx2 compatible of match table
Huang Chao [Mon, 26 May 2014 02:11:02 +0000 (10:11 +0800)]
ASoC: samsung: Expand odroidx2 compatible of match table

This patch updates the compatible match table for odroid.
Since the machine driver is not only used on odroidx2 board,
but is also used on odroidu3 board, so it's better to expand
the compatible match table string for compatibility concern.

Change-Id: I668ab8236091d1336a0101142cbbadf6a0e23591
Signed-off-by: Huang Chao <chao7.huang@samsung.com>
9 years agoarm: dts: trats2: change sound device name
Inha Song [Fri, 2 May 2014 03:55:17 +0000 (12:55 +0900)]
arm: dts: trats2: change sound device name

Change sound device name from "exynos4-wm1811" to "trats2-wm1811"

Change-Id: Ibd94d99c1957359dd3a220dcb3908ca76c0700ce
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoarm: config: tizen: update to enable Audio
Inha Song [Fri, 2 May 2014 04:04:06 +0000 (13:04 +0900)]
arm: config: tizen: update to enable Audio

The machine driver name was changed from "exynos4-wm1811" to "trats2-wm1811".

Change-Id: I452b1321310d342a142e94e1671269e1e794b646
Signed-off-by: Inha Song <ideal.song@samsung.com>
9 years agoEnable several USB drivers for Odroid-X2/U3
Mauro Carvalho Chehab [Thu, 29 May 2014 20:30:02 +0000 (17:30 -0300)]
Enable several USB drivers for Odroid-X2/U3

Those USB drivers are the ones most commonly found nowadays
for ISDB-T, ATSC and DVB-T/T2.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: drxd: get rid of EXPORT_SYMBOL(drxd_config_i2c)
Mauro Carvalho Chehab [Tue, 18 Mar 2014 00:26:33 +0000 (21:26 -0300)]
upstream: drxd: get rid of EXPORT_SYMBOL(drxd_config_i2c)

This symbol is not used externally. Get rid of it.

Upstream changeset: 016b003c188c

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] v4l: vsp1: Remove the unneeded vsp1_video_buffer video field
Laurent Pinchart [Wed, 21 May 2014 20:39:16 +0000 (17:39 -0300)]
upstream: [media] v4l: vsp1: Remove the unneeded vsp1_video_buffer video field

The field is assigned but never read, remove it.

This fixes a bug caused by the struct vb2_buffer field not being be the
very first field of the vsp1_video_buffer buffer structure as required
by videobuf2.

Cc: stable@vger.kernel.org
Reported-by: Takanari Hayama <taki@igel.co.jp>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] xc5000: delay tuner sleep to 5 seconds
Mauro Carvalho Chehab [Wed, 21 May 2014 16:57:30 +0000 (13:57 -0300)]
upstream: [media] xc5000: delay tuner sleep to 5 seconds

Some drivers, like au0828 are very sensitive to tuner sleep and may
break if the sleep happens too fast. Also, by keeping the tuner alive
for a while could speedup tuning process during channel scan. So,
change the logic to delay the actual sleep to 5 seconds after its
command.

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
9 years agoupstream: [media] xc5000: Don't use whitespace before tabs
Mauro Carvalho Chehab [Wed, 21 May 2014 16:41:01 +0000 (13:41 -0300)]
upstream: [media] xc5000: Don't use whitespace before tabs

WARNING: please, no space before tabs
+#define XC_PRODUCT_ID_FW_LOADED ^I0x1388$

WARNING: please, no space before tabs
+#define DK_SECAM_A2LDK3 ^I13$

WARNING: please, no space before tabs
+#define DK_SECAM_A2MONO ^I14$

WARNING: please, no space before tabs
+#define FM_RADIO_INPUT2 ^I21$

WARNING: please, no space before tabs
+#define FM_RADIO_INPUT1 ^I22$

Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>