drm/exynos: Don't assume connector is hdata->connector

This patch changes mode_fixup from assuming that the current
connector is hdata->connector to searching through the connectors
to find the one which is attached to encoder. The reason we
need to do this is to accommodate those platforms which
implement their connector in an attached drm_bridge.

BUG=chromium:389174
TEST=Tested on spring, hotplug + boot

Change-Id: I84a5a6f2429c4aa84c30d85170a19c447a69b501
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/205537
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
CHROMIUM: mwifiex: fix Tx timeout issue

https://bugzilla.kernel.org/show_bug.cgi?id=70191
https://bugzilla.kernel.org/show_bug.cgi?id=77581

It is observed that sometimes Tx packet is downloaded without
adding driver's txpd header. This results in firmware parsing
garbage data as packet length. Sometimes firmware is unable
to read the packet if length comes out as invalid. This stops
further traffic and timeout occurs.

The root cause is uninitialized fields in tx_info(skb->cb) of
packet used to get garbage values. In this case if
MWIFIEX_BUF_FLAG_REQUEUED_PKT flag is mistakenly set, txpd
header was skipped. This patch makes sure that tx_info is
correctly initialized to fix the problem.

Cc: <stable@vger.kernel.org>
Reported-by: Andrew Wiley <wiley.andrew.j@gmail.com>
Reported-by: Linus Gasser <list@markas-al-nour.org>
Reported-by: Michael Hirsch <hirsch@teufel.de>
Tested-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Maithili Hinge <maithili@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>

BUG=None
TEST=autotest

Change-Id: I8a76557fbf40645875418f63e24b90e67acc91d0
Reviewed-on: https://chromium-review.googlesource.com/205830
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Bing Zhao <bzhao@marvell.com>
Tested-by: Bing Zhao <bzhao@marvell.com>
CHROMIUM: mwifiex: initialize Tx/Rx info of a packet correctly

There are few places at the begining of Tx/Rx paths where
tx_info/rx_info is not correctly initialized. This patch
takes care of it.

Signed-off-by: Amitkumar Karwar <akarwar@marvell.com>
Signed-off-by: Bing Zhao <bzhao@marvell.com>

BUG=None
TEST=autotest

Change-Id: Ibc6053d9442d1b1a134521c7df4a6488a18ddef1
Reviewed-on: https://chromium-review.googlesource.com/205831
Reviewed-by: Paul Stewart <pstew@chromium.org>
Commit-Queue: Bing Zhao <bzhao@marvell.com>
Tested-by: Bing Zhao <bzhao@marvell.com>
drm/exynos: Update hdcp property on specified object

This patch changes the exynos hdmi driver to update the content
protection property on the correct object. In other words, if
set_property is called on connector, update the property on the
connector, if it's called on the encoder, update it on the
encoder.

BUG=chromium:383489
TEST=Tested on spring with VGA adapter attached

Change-Id: Iacea7db7d584e462b46debd7441c124eb1027b1c
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/205538
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Ben Zhang <benzh@chromium.org>
Merge branch 'chromeos-3.8' of https://chromium.googlesource.com/chromiumos/third_party/kernel into chromeos-3.8
drm/udl: add vblank support

This is needed to be able to send page flip completion events.
Also while I'm at it, fix the error paths on init.

BUG=chromium:363461
TEST=compiles and runs on panther

Change-Id: I30292108c1b5f547284260ff67fed9b2384e1172
Reviewed-on: https://chromium-review.googlesource.com/206165
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Commit-Queue: Stéphane Marchesin <marcheu@chromium.org>
drm/udl: Implement page_flip ioctl

This is a very crude page_flip implementation for UDL. It should let
us implement user space on top.

BUG=chromium:363461
TEST=modetest -Mudl -s 9:800x480 -v

Change-Id: I4b7a5e1695154e25ef9b0670bcb991742017e991
Reviewed-on: https://chromium-review.googlesource.com/206166
Tested-by: Stéphane Marchesin <marcheu@chromium.org>
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Commit-Queue: Stéphane Marchesin <marcheu@chromium.org>
Merge branch 'chromeos-3.8' of https://chromium.googlesource.com/chromiumos/third_party/kernel into chromeos-3.8
drm/exynos: Call hdcp_disable instead of hdcp_stop

This patch changes the hdmi conf_apply function to call hdcp_disable
instead of hdcp_stop. The reason we need to do this is because the
mode_config.mutex is locked in the commit/dpms_on path and hdcp_stop
synchronously waits for hdcp_work to finish, which also tries to acquire
mode_config.mutex. The result is a deadlock if hdcp is both enabled and
disabled in the modeset path.

BUG=chromium:389282
TEST=Tested on spring with hdcp enable in modeset path

Change-Id: Ife627408fbcdada6bedabc99d75c90dc48583472
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/206023
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
drm/exynos: Remove set_property WARN_ON

Don't warn when mode_config.mutex isn't held in set_property. It's permissible
to call set_property without the lock held during drm init.

BUG=chromium:389282
TEST=Tested on spring, no warning on boot

Change-Id: I734b33caecabacc7b07fd7a13c7361c3be600e75
Signed-off-by: Sean Paul <seanpaul@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/206024
Reviewed-by: Stéphane Marchesin <marcheu@chromium.org>
Merge branch 'chromeos-3.8' of https://chromium.googlesource.com/chromiumos/third_party/kernel into chromeos-3.8