Reorganize hdmi_unmute_interrupts() to put all the HPD-related config
together. This also eliminates an extra clearning of the HPD
interrupt.
BUG=chrome-os-partner:44922
TEST=HDMI still works fine.
Change-Id: I9d3cd847a00f9c887e2d054ff2b5671b0eeb8a42
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/299777
Reviewed-by: Yakir Yang <ykk@rock-chips.com>
This is a no-op change that eliminates the dw_hdmi_fb_registered()
function and just folds the code into the one caller of the function:
hdmi_unmute_interrupts().
Eliminated because:
* The name and comment of the function implied that it was to be called
after the frame buffer was registered. ...but it wasn't called when
that happened, at least not directly.
* The function does some parts of enabling the HPD interrupt but not all
parts. Other parts are done by the calling function, and the calling
function also duplicates some bits (like clearing existing HPD). The
split doesn't make sense.
A future change will reorganize hdmi_unmute_interrupts() a little.
BUG=chrome-os-partner:44922
TEST=HDMI still works fine.
Change-Id: Ib77c03dd8f4791bc7276ccab184ff5b766de5ddd
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/299776
Reviewed-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
We should really do the reset of i2c before we set the speed. There are
no actual known problems fixed by this, but it seems like a good idea
and the latest upstream patch does this.
BUG=chrome-os-partner:34741
TEST=HDMI vs. suspend/resume, broken monitor, HDCP, etc.
Change-Id: I5207f39e074b7ab0d56d945bd1ae74d06f89c74b
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/302629
Commit-Ready: Yakir Yang <ykk@rock-chips.com>
Reviewed-by: Yakir Yang <ykk@rock-chips.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
DDC have two modes: fast mode, standard mode. The previous ddc support
patch(https://chromium-review.googlesource.com/#/c/292012/) configure
the ddc to fast mode.
It works rightly in most HDTV case, but I found that ddc would always
failed if I used the VGA->HDMI adapter. And after I switch ddc to
standard mode, no failed anymore. I believe the standard mode could
provide better compatibility.
BUG=chrome-os-partner:34741
TEST=My VGA->HDMI adapter can read edid now
Change-Id: Ia33ade0a4fda998483baf454b9ccb9f31802f6bc
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/298270
Commit-Ready: Douglas Anderson <dianders@chromium.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
In (3b9ba9a FROMLIST: drm: bridge/dw_hdmi: add dw hdmi i2c bus adapter
support) we added a new i2c bus adapter but no of_node was provided to
the adapter. This made it difficult to assign a bus number to the
adapter in the device tree.
Because of the fact that dynamic bus numbering of i2c starts at 0 and
the fact that i2c busses are no longer allowed to be loaded extra-early
at boot (because deferred probe solves the boot order problem), it's
possible that this could cause the DDC i2c bus to get ID 0 and could
cause later SoC i2c busses to fail to probe because they're expecting to
get ID 0.
Note that probe ordering of mickey is slightly different than probe
ordering of other veyron devices, which is why this only shows up on
mickey.
BUG=chrome-os-partner:44802
TEST=With dts patch can now boot mickey again
Change-Id: I8f971a967f398ab58a6713a2b6471a4a2fe61dc6
Signed-off-by: Douglas Anderson <dianders@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/297040
Reviewed-by: Alexandru Stan <amstan@chromium.org>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
The change adds support of internal HDMI I2C master controller, this
subdevice is used by default, if "ddc-i2c-bus" DT property is omitted.
The main purpose of this functionality is to support reading EDID from
an HDMI monitor on boards, which don't have an I2C bus connected to
DDC pins.
The current implementation does not support "I2C Master Interface
Extended Read Mode" to read data addressed by non-zero segment
pointer, this means that if EDID has more than 1 extension blocks,
EDID reading operation won't succeed, in my practice all tested HDMI
monitors have at maximum one extension block.
(am from https://patchwork.kernel.org/patch/7098101)
Change-Id: Ic3abe878a02f89bda15f39676164803b467c62a1
Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Reviewed-on: https://chromium-review.googlesource.com/292012
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
H381DLN01 is a 3.81" signle channel MIPI SCREEN with resolution 1080x1200,
it can connect to RK3399 via one DSI channel or dual channel with two panels.
Change-Id: Ib6b5e021b65ac5d24f32ef4a6c0e3fdf5aa4cf08
Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
This patch add and enable AP6212 bt node for rk3288-Fennec
Change-Id: I71b7c3a59cad92c6867d3b9f4bcfb44fe560c39c
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
Let Sapphire SoC board name at the front of Excavator Main board.
Change-Id: Ie6bcd411900b43a1412197927238337e3a7ae5b0
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
Resort the RK3399 Excavator and Sapphire dts files by alpha.
Change-Id: I1942144c20d25c6776c5a28132a3ea961cf4ac0f
Signed-off-by: Yakir Yang <ykk@rock-chips.com>
hdmi->disabled maybe not match to the real hardware status.
->dw_hdmi_bridge_enable()
hdmi->disabled = false;
-->dw_hdmi_update_power()
if (hdmi->rxsense)
force = DRM_FORCE_ON;
else
force = DRM_FORCE_OFF;
hdmi->rxsense maybe false on bridge enable path, then hdmi->disabled
is false, but actually hardware is power off, they are not match.
So on dw_hdmi_irq, judge the hardware status with hdmi->disabled is wrong.
This bug would cause display lost, unplug/plug can't recovery display.
Cc: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Fabio Estevam <fabio.estevam@freescale.com>
Cc: Liu Ying <gnuiyl@gmail.com>
Change-Id: Iaa5c56b5df32c6d3811f4131d63033fbccd005ae
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
(am from https://patchwork.kernel.org/patch/9274599)
Register gpd_dev_ops.active_wakeup function to support keep power
during suspend state. And add flag to each power domain to
decide whether keep power during suspend or not.
Change-Id: I00b5111c4703be871180d859993dbea00ec82953
Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
RK3399 EVB1 and EVB2 use pwm3 for vdd_center, but EVB3 use pwm2.
This patch moved the vdd_center node to each board dtsi file.
Change-Id: I2b46b06b622c30ab65f26663a3628e73733472ad
Signed-off-by: Jianqun Xu <jay.xu@rock-chips.com>
We meet some problem of performance with sched policy, interactive is
better.
Change-Id: Ie62c0e7b82b1c67b5646f6b90d3e4666015c5816
Signed-off-by: Chen Liang <cl@rock-chips.com>
some MMC host do not support MMC_CAP_WAIT_WHILE_BUSY but provides
ops->card_busy(), So, add this method to check card status after
switch command.
This patch also fix CMD23 command response timeout which found on
evb-rk3288.
[ 13.725563 ] mmcblk0: timed out sending SET_BLOCK_COUNT
command,card status 0x400e00
[ 13.733328 ] mmcblk0: command error, retrying timeout
[ 13.741792 ] mmcblk0: timed out sending SET_BLOCK_COUNT command,card
status 0x400e00
[ 13.749555 ] mmcblk0: command error, retrying timeout
[ 13.758246 ] mmcblk0: timed out sending SET_BLOCK_COUNT command,card
status 0x400e00
(cherry picked from commit 87a18a6a56)
Change-Id: I7e1b0f0001639e0b43d4a6951148ed5f625e18dd
Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
with CONFIG_HZ=100, the precision of jiffies is 10ms, and the
generic_cmd6_time of some card is also 10ms. then, may be current
time is only 5ms, but already timed out caused by jiffies precision.
(cherry picked from commit 987aa5f805)
Change-Id: I43f1bc93e1100e86b138ec20a37612338a7153c6
Signed-off-by: Chaotian Jing <chaotian.jing@mediatek.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
host->card_busy() was introduced for SD voltage switching which checks all
4 data lines.
Increasingly, host->card_busy is being used to poll the the busy signal
which is only data line 0 (DAT[0]).
The current logic in sdhci_card_busy() does not work in that case because
it returns false if any of the data lines is high. It also ignores
possibilities:
- data lines 1-3 are not connected and could show at any level
- data lines 1-2 can be used by SDIO for other purposes
According to the SD specification, it is OK to check any of the data lines
for voltage switching, so change to use DAT[0] only.
(cherry picked from commit e613cc477c)
Change-Id: I11862e4ab67867271caedc01c0e74c5e24daea37
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ziyuan Xu <xzy.xu@rock-chips.com>
rockchip_drm_fb.c:In function 'rockchip_drm_fb_destroy':
rockchip_drm_fb.c:51:21: warning: unused variable 'dev' [-Wunused-variable]
Change-Id: I4b9f976c71b310c411a4d1fb9990743d7109b45f
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
This patch fix a corruption when reading card information during probe time.
Change-Id: I3fe1b32db12b7d71f7ae0c724b7c6d70382e3210
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
This patch add and enable AP6335 wifi node for rk3288-firefly
Change-Id: I5db126aa50b7d83cd50498d487c35383c900b855
Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
This patch sends the DEVFREQ_POSTCHANGE notification when
devfreq->profile->targer() is failed. The PRECHANGE/POSTCHANGE
should be paired.
Fixes: 0fe3a66410 (PM / devfreq: Add new DEVFREQ_TRANSITION_NOTIFIER notifier)
Change-Id: I571fcc0ba95da6f7533d20818dfbd5f628c2f3ee
Reported-by: Lin Huang <hl@rock-chips.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
(cherry picked from commit 0d37189e80)
This patch adds the new DEVFREQ_TRANSITION_NOTIFIER notifier to send
the notification when the frequency of device is changed.
This notifier has two state as following:
- DEVFREQ_PRECHANGE : Notify it before chaning the frequency of device
- DEVFREQ_POSTCHANGE : Notify it after changed the frequency of device
And this patch adds the resourced-managed function to release the resource
automatically when error happen.
Change-Id: Id92ce7b9b2fba0e8776b1bc6980996b16a2902f3
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
[m.reichl and linux.amoon: Tested it on exynos4412-odroidu3 board]
Tested-by: Markus Reichl <m.reichl@fivetechno.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
(cherry picked from commit 0fe3a66410)
This patch adds the new devfreq_get_devfreq_by_phandle() OF helper function
which can find the instance of devfreq device by using phandle ("devfreq").
Change-Id: I0d0ed78930811e896215c2b7a9125cad69310407
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
[m.reichl and linux.amoon: Tested it on exynos4412-odroidu3 board]
Tested-by: Markus Reichl <m.reichl@fivetechno.de>
Tested-by: Anand Moon <linux.amoon@gmail.com>
Acked-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
(cherry picked from commit 8f510aeb22)