Age | Commit message (Collapse) | Author |
|
Stopping output causes full re-detection of the sink and slows down the process.
Change-Id: I2089437635a6df5ba2a75a45a31b7431c365a861
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
These functions are not exported.
Change-Id: If0660466cf41f2e7c281970f05402429537fb3e2
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Write burst should be enabled for MHL_INT_RC_FEAT_REQ and disabled for
other commands. The patch moves functions up and adds delay setting
for MHL3 burst mode.
Change-Id: Id554364c9156eac720672363fd5437b029efbd26
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
MHL1 and MHL3 have different initialization paths. To make both protocols
happy sink detection is put into continuation after link mode enablement.
Change-Id: I739fd47dce782b151e9a498364ed42de9223996b
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
MHL2 receiver require disabling transmitter on initialization.
Change-Id: I85fa2c3c7a8dc2ed39d8b012a7d017a7fd55addd
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Messages queue can be cleaned up by message callbacks, to avoid premature
removal of current message it should be removed from the queue before calling
these callbacks.
Change-Id: Ie95c291d27a1be52291cc2cd1b7dead8f24560b4
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
In case of MHL3 CBUS is bring-up already in sii8620_got_ecbus_speed.
Change-Id: I4abafa944113528eb6cc71799a35f4215aeac428
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Peer capabilities should be read differently depending on protocol version.
Change-Id: I3344af6068da07ccc7842a6e8affc63ee31a33a0
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
MHL3 protocol requires device to respond to feature request from peer.
This minimal answer fulfills the requirement and allows to continue
negotiation.
Change-Id: Ifa2ed4d4db2cd29e50eef8144eef3eeb16aa2d72
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Burst transmissions are used in MHL3 mode negotiation.
Change-Id: Iec7261a46c9743ef95fae0e8e921aeee11cf0cc4
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Burst transmissions are used in MHL3 mode.
Change-Id: If59f1aa3e8bd53c5075de2b2284fa5cbadb2cc6c
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The Single-ended eCBUS Mode (eCBUS-S) mode provides 60 Mb/s full-duplex
bidirectional traffic for three channels:
- CBUS data (CBUS1 channel),
- High-bandwidth MHL data (eMSC channel),
- tunneling data (T-CBUS channel).
It is required to fully support MHL3 dongles.
Change-Id: I64f78981126cc30033b2b4330df042feccd6ffe0
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Due to asynchronous nature of MHL flow of execution is dispersed. Logical
continuation of some actions happens after response of peer, i.e in interrupt
handler. To simplify coding continuation mechanism has been added - it is now
possible to provide continuation callback, which will be called after peer
responds to given action.
Change-Id: I93a9d25912e17787dd9856b65d1fc75b2644b940
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
This functionality is necessary to implement MHL3 modes.
Change-Id: I267d27815527403ace25470f620cb4e5600a2520
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
It is not necessary to set REG_COC_CTL0, REG_MHL_COC_CTL1 registers.
Change-Id: Id363df66baffe0be9f96e61597bc04a16bf42aad
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
MHL3 modes are unstable on MHL3 dongle working in compatibility mode.
The patch denies them until full MHL3 mode is supported.
Change-Id: I0e18ce16e6194c346dde8a67a864feb452cf7b12
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
VSI infoframe registers address space is non-contiguous, so infoframe write
should be split into two chunks.
Change-Id: I40b4598dd64ec205d85a6f99828e2f22ae568918
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
This patch reworks function arguments testing to avoid unreachable code
as pointed out with an SVACE warning:
* UNREACHABLE_CODE: This statement in the source code might be unreachable
during program execution.
[unreachable] unreachable at drivers/gpu/drm/exynos/exynos_drm_ipp.c:1442
[The condition property == 0 is always false because at this program
point the variable property is always not equal to 0] The condition
property == 0 is always false because at this program point the variable
property is always not equal to 0 at drivers/gpu/drm/exynos/exynos_drm_ipp.c:1441
* UNREACHABLE_CODE: This statement in the source code might be unreachable
during program execution.
[unreachable] unreachable at drivers/gpu/drm/exynos/exynos_drm_ipp.c:1569
[The condition event_work == 0 is always false because at this program point the
variable event_work is always not equal to 0] The condition event_work == 0
is always false because at this program point the variable event_work is
always not equal to 0 at drivers/gpu/drm/exynos/exynos_drm_ipp.c:1568
Change-Id: I2a9426685c87047bf5ec3ee88b6cce4d1d7d6158
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
|
|
gcc-6 warns about a pointless loop in exynos_drm_subdrv_open:
drivers/gpu/drm/exynos/exynos_drm_core.c: In function 'exynos_drm_subdrv_open':
drivers/gpu/drm/exynos/exynos_drm_core.c:104:199: error: self-comparison always evaluates to false [-Werror=tautological-compare]
list_for_each_entry_reverse(subdrv, &subdrv->list, list) {
Here, the list_for_each_entry_reverse immediately terminates because
the subdrv pointer is compared to itself as the loop end condition.
If we were to take the current subdrv pointer as the start of the
list (as we would do if list_for_each_entry_reverse() was not a macro),
we would iterate backwards over the &exynos_drm_subdrv_list anchor,
which would be even worse.
Instead, we need to use list_for_each_entry_continue_reverse()
to go back over each subdrv that was successfully opened until
the first entry.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
[Backport from mainline to fix build warning with gcc6]
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Change-Id: Iee4b9078f0bd521507716521a339b37ea5dd8776
|
|
The regulators may not be available just because their driver's probe
function was just not executed and so the regulators not registered.
So, in this case the Exynos HDMI driver should not print logs since
a -EPROBE_DEFER is not really an error and that will just pollute
the kernel log and confuse users.
This patch prevents the following misleading messages to be printed:
[ 1.443638] [drm:hdmi_probe] *ERROR* failed to get regulators
[ 1.449326] [drm:hdmi_probe] *ERROR* hdmi_resources_init failed
Change-Id: Ib23cf62b86f9aacb6e23b64b7716a77d96da83f8
Reported-by: Krzysztof Kozlowski <k.kozlowski@samsung.com>
Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
consumer
The helper, devm_regulator_bulk_get() initializes the consumer as NULL,
so this code can be ignored.
Change-Id: Ib23cf62b86f9aacb6e23b64b7716a77d96da87f8
Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
Paring DT properties and getting PHY IO (memory mapped or I2C) in one
function.
Change-Id: Ibc94c66df85a81a8f5239b5d4f334686b6ae863d
Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
Paring DT properties and getting the I2C adapter in one function.
Change-Id: I1df1b6294f61013110bcddb223a3b35fb5c17169
Signed-off-by: Milo Kim <woogyom.kim@gmail.com>
Reviewed-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
Use core helpers to generate infoframes and add VSI frame generation
for UHD modes.
Change-Id: Ibea33cff20c6c4fa6b07a8e206770708a36fe53f
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The bit is present in all variants (its default value only differs).
The patch makes the code in-sync with mainline.
Change-Id: I6a2a8fcf9d7f8a5616f64eafec7722a4bf1675fa
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch removes unused hdmi_context field.
Change-Id: Id8836961b6dca7c2a09f7d4a99c3455c96057eb6
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
HDMI-PHY configurations are stored as array pointer and count pair,
we can re-use existing helpers to simplify their initialization.
Change-Id: Ie387a23428711edc5c027661ac0b1c623c19c468
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
There are no other users of sysreg besides 5433. The code can be simplified.
The patch synchronizes the code with mainline.
Change-Id: Ie6996e69388b2ea5afece292b56317d60caa91b0
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch:
- adds unwind code to hdmi_clk_enable_gates,
- simplifies code,
- moves routines up, to match mainline.
Change-Id: I79055471688400b6f449c87d210ae698166acb68
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
These variables should not be modified.
Change-Id: I9cef5d79465e24d3bc1d825afb94cccc09ff1756
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
The patch converts API to gpiod and moves initialization code
to hdmi_resources_init.
Change-Id: I5136395b16f3f50defa81be6406d137f3c103e35
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
edid returned by drm_get_edid should be freed.
The patch fixes it.
Change-Id: Ied8d60b6a1e12409037defb04be4bcf0c906690d
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
HDMI registry dump unnecessary spoils console and is not very helpful.
Change-Id: I6155d370fa69e3da620c28c86bf41d17a398c6c3
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
hdmi-en is an optional regulator so it should be better handled by
devm_regulator_get_optional call.
Change-Id: I2cbb12c54c43b10ebac76a00a5ef954c2ae627f6
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
Driver always uses the same number of regulators, so there is no point in
dynamic allocation.
Change-Id: I8227ea4e341c55f1932f1e88e1138bb50271a749
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
hdmi_resources structure was filled by old platform data code and is not
necessary anymore. The patch removes it at groups together resource related
fields in hdmi_context.
The patch is back-ported from mainline.
Change-Id: Iab2209a9177749ce526569e32c6695d4b09272dc
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Simple formula can be used to calculate CTS and N coefficients.
Additionaly ACR registers have different offsets for different versions
of IP.
Change-Id: I41be0b432da51651c007428fce7c7c4870ef1cb6
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
Some registers resides at different offsets depending on device version.
This patch adds infrastructure for mapping such registers to proper address
based on hdmi_type. It adds also mappings to some registers.
Change-Id: Ic345e1a4cb398aebea62b50fd86a44f30b5fd1e5
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
The patch removes duplicated drv_data fields and simplifies drv_data
matching.
Change-Id: I78abbd6dfee0d05c7095ae176fc8e080e233fd64
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch constifies array and renames symbols to be in sync with mainline.
Change-Id: Ife8aa1b6adde978dbf71fc7c57bd18e01f50fdd7
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
There is no point in rewriting default values, as the IP is reset anyway.
Change-Id: I9c0856d48be83a36ed4a8741e86715353acbf2d0
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
hdmi_start is called for both variants.
Change-Id: I6da89cf21599a760c793121f3ae637eca7cc77ff
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch removes intermediate struct for HDMIv14 register configuration,
instead registry values are calculated on the fly.
Change-Id: Ib440e0ab375f4eafdc5e6d3e06fcf64ce212ad84
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
The patch removes intermediate struct for HDMIv13 register configuration,
instead registry values are calculated on the fly.
Change-Id: I4a47b99afda16f9fc928ff3f91359be67c4dc55f
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
The patch removes redundant fields from hdmi_conf_regs. Their values
can be calculated from current_mode. This patch is the first step to remove
whole hdmi_conf_regs structure.
Change-Id: Id40fe15302b2546410f68323e92d136eb93b990a
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Reviewed-by: Joonyoung Shim <jy0922.shim@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
|
|
297MHz is used by UHD modes.
Change-Id: I2040adcc3f132dbf1d510309527a9e1574008961
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
This patch does not provide functional change.
Its main role is to synchronize header files with mainline.
Change-Id: Ia6f338cc3ec1d50728a9e0e946211451f40e7420
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch synchronizes file names with mainline.
Change-Id: I6aa491f2d7858f90055e7ea9bce00e8bb7db50e2
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
The patch does not provide functional change beside code style fixing
and synchronizing driver with mainline.
Change-Id: I5dc303ead4af81883c5199e9eaef7e73733a599b
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|
|
Linux I2C device use lower-case for identification.
Change-Id: I7a86fef880c5c969897658a710c05ead37b74f2b
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
|