summaryrefslogtreecommitdiff
path: root/drivers
AgeCommit message (Collapse)Author
2019-10-02ucan: Add old driver to support legacy (pre v3.0) devices.Christoph Muellner
A previous commit updated the ucan driver to the one from mainline Linux. Unfortunately the updated driver does not support the old v2.0 devices, which breaks environments where such devices are deployed and cannot be updated. Therefore this patch adds the old driver back as ucan_legacy. Besides the USB PID/VID combination it will match for device versions from 0x0000 to 0x02ff (the new ucan driver will test for 0x0300+). Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02ucan: Add version matching to enumerate only v3.0+ devices.Christoph Muellner
This patch extends the USB device ID table of the ucan driver to match for the device version as well. Only devices with a firmware version of 3.0 or higher will match. Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02ucan: Backporting UCAN driver from Linux 5.1-rc1.Christoph Muellner
This patch updates the UCAN driver to the improved version, which has been mainlined. Besides addressing stabilization issues this driver update also adds support for more recent firmware versions of Seal and Mule. Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02can: ucan: add driver for Theobroma Systems UCAN devicesJakob Unterwurzacher
The UCAN driver supports the microcontroller-based USB/CAN adapters from Theobroma Systems. There are two form-factors that run essentially the same firmware: * Seal: standalone USB stick ( https://www.theobroma-systems.com/seal ) * Mule: integrated on the PCB of various System-on-Modules from Theobroma Systems like the A31-µQ7 and the RK3399-Q7 ( https://www.theobroma-systems.com/rk3399-q7 ) The USB wire protocol has been designed to be as generic and hardware-indendent as possible in the hope of being useful for implementation on other microcontrollers. Signed-off-by: Martin Elshuber <martin.elshuber@theobroma-systems.com> Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2019-10-02rk: clk: Allow clk_i2s0_frac to violate precision restriction.Christoph Muellner
The fraction approximation code for rockchip frac dividers impose the following requirement (as noted in a driver comment): fractional divider must set that denominator is 20 times larger than numerator to generate precise clock frequency. Additionally the frac driver limits the maximum input frequency to 600 MHz. This limitation can be achieved by using the integer divider (limiting to e.g. 400 MHz). Note, that both restrictions are not stated in the RK3399 TRM. The implication of these restrictions are, that the range of possible output frequencies is reduced quite drastically. This results in the problem, that clk_i2s0_frac cannot generate a clock of 24.56 MHz and thus audio on RK3399-Q7 is broken. Therefore this patch whitelists clk_i2s0_frac from the first restriction, similar to the exception for UART (in the same function). Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02mtd: spi-nor: add GigaDevice gd25lq32Jakob Unterwurzacher
This is the 1.8V version of the gd25q32.
2019-10-02phy: rockchip-emmc: Allow to set drive impedance via DTS.Christoph Muellner
The rockchip-emmc PHY can be configured with different drive impedance values. Currenlty a value of 50 Ohm is hard coded into the driver. This patch introduces the DTS property 'drive-impedance-ohm' for the rockchip-emmc phy node, which uses the value from the DTS to setup the drive impedance accordingly. Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Reviewed-by: Heiko Stuebner <heiko@sntech.de>
2019-10-02gpu: mali: Fix signature of kbase_get_[static|dynamic]_power functions.Christoph Muellner
This addresses a type warning, which elevates to a broken build because of -Werror: CC drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.o drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:582:22: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] error, forbidden warning:mali_kbase_ipa.c:582 .get_static_power = &kbase_get_static_power, ^ drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:582:22: note: (near initialization for ‘kbase_ipa_power_model_ops.get_static_power’) drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:583:23: warning: initialization from incompatible pointer type [-Wincompatible-pointer-types] error, forbidden warning:mali_kbase_ipa.c:583 .get_dynamic_power = &kbase_get_dynamic_power, ^ drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.c:583:23: note: (near initialization for ‘kbase_ipa_power_model_ops.get_dynamic_power’) scripts/Makefile.build:277: recipe for target 'drivers/gpu/arm/midgard/ipa/mali_kbase_ipa.o' failed Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02devfreq: rockchip: Fix unprotected call to smp_processor_id().Christoph Muellner
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
2019-10-02[hack for tc358749] media: rockchip/isp1: set default input format to ↵Jakob Unterwurzacher
1920x1080 UYVY8 This is the default output format of the tc358749 HDMI-to-CSI converter. Setting the default correctly makes playback via qv4l2 "just work". Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com> Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2019-10-02spi: rockchip: configure gpios from cs-gpiosKlaus Goger
SPI core provides the functionality to have GPIO based chip selects but assumes that the pins are already configured by the platform. Configure GPIO style pins in rockchip_spi_setup so they can be used later on. Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com>
2019-10-02spi: Add Flag to Enable Slave Select with GPIO Chip Select.Thor Thayer
Some SPI masters require slave selection before the transfer can begin [1]. The SPI framework currently selects the chip using either 1) the internal CS mechanism or 2) the GPIO CS, but not both. This patch adds a new master->flags define to indicate both the GPIO CS and the internal chip select mechanism should be used. Tested On: Altera CycloneV development kit Compile tested for build errors on x86_64 (allyesconfigs) [1] DesignWare dw_apb_ssi Databook, Version 3.20a (page 39) Signed-off-by: Thor Thayer <tthayer@opensource.altera.com> Signed-off-by: Mark Brown <broonie@kernel.org>
2019-10-02spi: rockchip: Set GPIO_SS flag to enable Slave Select with GPIO CSJeffy Chen
The rockchip spi still requires slave selection when using GPIO CS. Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com> Reviewed-by: Douglas Anderson <dianders@chromium.org> Signed-off-by: Mark Brown <broonie@kernel.org>
2019-10-01rtc: isl1208: set uie_unsupportedJakob Unterwurzacher
The isl1208 emulation on puma / rk3399-q7 does not support interrupts at all, but has no way to announce that fact to the kernel. This causes problems in user-space: # hwclock -r -D [...] select() to /dev/rtc to wait for clock tick timed out...synchronization failed Set the uie_unsupported flag unconditionally in the driver until we get a way to configure it through a device tree property. Fixes the problems with hwclock. Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
2019-10-01brcmfmac: sleep workaround for AP6255 "Gopher" Wifi moduleJakob Unterwurzacher
Disable sleep for now as the Gopher module does not seem to wake up again. Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
2019-10-01drm/rockchip: increase vop selection message priorityJakob Unterwurzacher
As the VOPs have different capabilities, which vop was selected is usually interesting to the user. Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
2019-10-01drm/rockchip: dw-hdmi: downgrade "failed to set" message to infoJakob Unterwurzacher
hdmi works fine, and looking at what properties are actually failing (see below) indicates that they are not essential. Downgrade the message level from "error" to "info". [ 10.545924] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property hdmi_color_depth_capacity [ 10.557993] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property hdmi_output_mode_capacity [ 10.570473] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property brightness [ 10.581221] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property contrast [ 10.591810] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property saturation [ 10.602415] [drm:dw_hdmi_rockchip_set_property] failed to set rockchip hdmi connector property hue [ 10.708193] rockchip-dp ff970000.edp: Link Training Clock Recovery success [ 10.717607] rockchip-dp ff970000.edp: Link Training success!
2019-10-01brcmfmac: add support for BCM43455 with modalias sdio:c00v02D0dA9BFJakob Unterwurzacher
BCM43455 is a more recent revision of the BCM4345. Some of the BCM43455 got a dedicated SDIO device ID which is currently not supported by brcmfmac. Adding the new sdio_device_id to brcmfmac is enough to get the BCM43455 supported because the chip itself is already supported (due to BCM4345 support in the driver). Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com> Reviewed-by: Andreas Färber <afaerber@suse.de> Tested-by: Andreas Färber <afaerber@suse.de> Signed-off-by: Kalle Valo <kvalo@codeaurora.org> Upstream commit a62a77881b1b6708ffeddd9bf0529494f7b199e3
2019-10-01Input: add driver for Silead touchscreensRobert Dolca
This driver adds support for Silead touchscreens. It has been tested with GSL1680 and GSL3680 touch panels. It supports ACPI and device tree enumeration. Screen resolution, the maximum number of fingers supported and firmware name are configurable. Signed-off-by: Robert Dolca <robert.dolca@intel.com> Signed-off-by: Daniel Jansen <djaniboe@gmail.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: silead - remove some dead code buf[0] is an unsigned char. touch_nr is an int. The test for negative here doesn't make sense so I have removed it. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: silead - use devm_gpiod_get The silead code is using devm_foo for everything (and does not free any resources). Except that it is using gpiod_get instead of devm_gpiod_get (but is not freeing the gpio_desc), change this to use devm_gpiod_get so that the gpio will be properly released. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: silead_gsl1680 - document firmware-name, fix implementation The driver has supported touchscreen-fw-name to specify the firmware to load since it has been merged, but this was omitted from the dt-binding documentation. During review of adding touchscreen-fw-name to the binding documentation it was brought up that there is a standard property name called "firmware-name" for this, which should be used. Since there are no users of touchscreen-fw-name yet, this commit adds documentation of "firmware-name" to the dt-binding documentation and switches the driver over to use this. This commit also makes the driver add a "silead/" prefix to the firmware name from dt before calling request_firmware. That the firmware files are stored under /lib/firmware/silead under Linux is an implementation detail and does not belong in devicetree. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: silead_gsl1680 - use "silead/" prefix for firmware loading The silead touch-controller ICs use a different firmware per digitizer / tablet model. So there are going to be quite a few of then and they really should be under a separate subdir. This commit prefixes the default firmware names with "silead/" just like we are already doing for devicetree specified firmware names. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: silead - add OF device ID table The driver doesn't have a struct of_device_id table but supported devices are registered via Device Trees. This is working on the assumption that a I2C device registered via OF will always match a legacy I2C device ID and that the MODALIAS reported will always be of the form i2c:<device>. But this could change in the future so the correct approach is to have an OF device ID table if the devices are registered via OF. As pointed by Hans de Goede, there's no mssl1680 and this is just used in some ACPI systems to identify the gsl1680 chip. So isn't included in the OF device ID table since a DT should use the proper device name instead. Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> Input: back-port silead.c: pos[i] handling/assignment Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Input: back-port silead.c: invert_x/y & swap_xy Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Input: silead: retry firmware load If we get ENOENT when trying to load the firmware, this can just mean that the rootfs is not mounted yet. Return EPROBE_DEFER so the probe is retried later. To prevent an infinite probe loop when the firmware does not exist at all, the retries are capped to 10. Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@theobroma-systems.com>
2019-07-03input: touchscreen: gsl3673: fixes the correct way during s2rCaesar Wang
The early used the fb for display, the new drm display can't callback the suspend to resume function in gsl3673 driver. Change-Id: I36c7d89edaf4052e614c5a354f7a0a12c9c4275a Signed-off-by: Caesar Wang <wxt@rock-chips.com>
2019-06-27drm/rockchip: vop: adjust the layers in RK3399's VOBLNickey Yang
AFAWK, there are four layers in RK3399's VOPB, and two layers for RK3399's VOPL. And RK3399's VOBL has the win0 and win2 layers, the formats they support as below. win0: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16 NV12 NV16 NV24 NA12 NA16 NA24 win2: XR24 AR24 XB24 AB24 RG24 BG24 RG16 BG16 So only win0 layer supports NV12 format (for video decode format), adjust the overlay for video and primary layer for display. It didn't care this case if some platforms had handled the display in application (e.g android), then on the Linux platform, it's hard to handle the all kinds of cases in Display application, perhaps the linux needn't this patch fixes it in the future. Depend-CL:76144 Fixes: d82f1d3e5800 ("arm64: dts: rockchip: reasonable alllcation of VOP on rk3399 linux") Change-Id: Id93b315b6e3ae670bf5ea4dc0a64e140c6e37e80 Signed-off-by: Caesar Wang <wxt@rock-chips.com> Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2019-06-27drm/rockchip: vop: set plane's zpos according to typeNickey Yang
The zpos currently configure is the order in vop_win_data array, which is related to the actual hardware plane. But in the Linux platform, such as video hardware and camera preview, it can only be played on the nv12 plane. So set the order of zpos to PRIMARY < OVERLAY (if have) < CURSOR (if have). Change-Id: Ia9ab3cb9225fd2c385703109afbfbb42a1564110 Signed-off-by: Nickey Yang <nickey.yang@rock-chips.com>
2019-06-26PCI: rockchip: pcie dma transfer function only enabled when ↵Simon Xue
"rockchip,dma_trx_enabled" set Change-Id: I8ae69ac649c15bd4920621d6db27173a7cb36b4a Signed-off-by: Simon Xue <xxm@rock-chips.com>
2019-06-26phy: phy-rockchip-inno-usb2: add exception handling for wakelockFrank Wang
The "OTG wakelock" should be destroyed if otg port was initialized failed, in case of its memory allocate for other module and the "wakeup_sources" list would be broken. Change-Id: Ic478e7297e36def8e105a0736beb86c99ca6261d Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2019-06-26phy: phy-rockchip-inno-usb2: fix otg-id irq errorFrank Wang
For the 'otg-mux' irq in SoC should include 'otg-bvalid', 'linestate', and 'otg-id'. This change fix the previous error condition. Change-Id: I8fe46c8c9efd6ce04eead89c276227d4cc70902e Signed-off-by: Frank Wang <frank.wang@rock-chips.com>
2019-06-26pinctrl: rockchip: Add iomux recalculated for rk3328 GPIO2B0~GPIO2B6David Wu
The pins from GPIO2B0 to GPIO2B6 are located at GRF_GPIO2BL_IOMUX, they are recalculated to get correct iomux. Change-Id: I1e46697c4508c396b5e8140c32c4185925a040ea Signed-off-by: David Wu <david.wu@rock-chips.com>
2019-06-25usb: dwc3: rockchip: fix host mode resume fail for rk3399William Wu
Some of the RK3399 sapphire excavator boards have a suspend/resume issue with the following error log: dpm_run_callback(): usb_dev_suspend+0x0/0x30 returns -16 PM: Device usb6 failed to suspend async: error -16 PM: Some devices failed to suspend, or early wake event detected If this error happens, the USB port can't recognize any USB device with the failed log: usb usb5-port1: connect-debounce failed It's because that the Type-A USB3 port which belongs to fe900000.dwc3 is in abnormal state. We can check the link state easily via the debug node: cat /sys/kernel/debug/fe900000.dwc3/link_state The normal link state is Rx.Detect if no USB device plug in. But after resume, the link state will change to Polling. According to the USB 3.1 Spec, the link state can change from Rx.Detect to Polling state if the USB3 PHY detect the far end receiver termination. From that we infer that the USB3 PHY affects the USB3 controller link state since the USB3 PHY is in power on state when enter suspend. Actually, it's a common problem if the DWC3 work as Host mode in the following cases, and it only happens if system enter suspend/resume without any USB device conneted. Case1. Type-A USB 3.0 interface with dr_mode = "host"; Case2. Type-A USB 3.0 interface with dr_mode = "otg", and set DWC3 to host mode via "dwc3_mode"; Case3. Type-C USB 3.0 interface with dr_mode = "host"; Case4. Type-C USB 3.0 interface with dr_mode = "otg", and plug in Type-C to Host cable; Case5. Type-C USB 3.0 interface with dr_mode = "otg", and set DWC3 to host mode via "dwc3_mode"; This patch power off the USB3 PHY if no USB device connect with the DWC3 Host port before enter suspend, and power on the USB3 PHY again upon resum. Fixes: 323ccc364014 ("usb: dwc3: rockchip: fix rk3399 dwc3 host power on fail") Change-Id: Ifd7805e1f4accb281dd047445d97f4cc954eb5ac Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-06-24PCI: rockchip: DW PCIe controller support reset-gpio undefined caseWeixin Zhou
Change-Id: Ib1e641633b09af9ddea3dc4b0e93a93668a723b2 Signed-off-by: Weixin Zhou <zwx@rock-chips.com>
2019-06-24video: rockchip: vpu: buffer list max nums up to 50.Rimon Xu
If the number of buffers in Import exceeds the original set of 30, it will result in each import buffer kicking out the original stored buffers, and all subsequent buffers need attachments. Change-Id: I6e547e1f8943d54995077827ae0d1019e659d797 Signed-off-by: Rimon Xu <rimon.xu@rock-chips.com>
2019-06-24input: touchscreen: gt9xx: avoid clang warningTao Huang
drivers/input/touchscreen/gt9xx/gt9xx_update.c:2744:19: warning: equality comparison with extraneous parentheses [-Wparentheses-equality] while ((ready == 0)) //Wait for measurement complete ~~~~~~^~~~ Change-Id: I6954c7cd8867e1d85d435a23ee857cd4e3c58b4b Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-06-21drivers: rk_nand: include seq_file.h for rk_nand_blk.cTao Huang
Change-Id: I2736a432c071fae0ff47f7015a87c39a39e07095 Signed-off-by: Tao Huang <huangtao@rock-chips.com>
2019-06-20Revert "drivers: mtd: nand: fix cs configuration error during nand ↵Yifeng Zhao
initialization" This reverts commit 362a761161cbea16cb30cdbd53071c08c5ba95ed. Change-Id: I492d2e15b0d948921613a56e61b920d0885d6699 Signed-off-by: Yifeng Zhao <zyf@rock-chips.com>
2019-06-20drm/rockchip: dsi: do turnaround request manually is only required for ↵Wyon Bi
rk3288 dsi1 Test on RK3399 Fixes: f324dff25289 ("drm/rockchip: dsi: Send turnaround request after a read request for dsi1") Change-Id: Id1fad1e8c7c742291bdbd77082dd872093ad549e Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
2019-06-20cpufreq: dt: Fix memory leak when cpu on/offFinley Xiao
Fixes: e51ed31ccd0f ("cpufreq: dt: Add support to get static power") Change-Id: I613a14a061490fb69e913b8c2cf6677757c73ced Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-20soc: rockchip: ipa: Get leakage when ipa power model initFinley Xiao
Change-Id: Ib0f7855c6faa54fa5ca28010d1c05da8ba478d7e Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2019-06-20usb: gadget: rndis: fix class definitions for windowsWilliam Wu
The RNDIS gadget function has USB class of 2 and subclass of 2, which matches "USB\Class_02&SubClass_02" in the usbser.inf file in the Windows system, so the device is initially detected as a COM port instead of RNDIS. This is why we need to install RNDIS manually. Refer to Defined Class Codes [1] and rndis_host of Linux [2], this patch sets the RNDIS gadget with base class of 0xE0h (Wireless Controller) and subclass of 0x01h and protocol of 0x03h. [1] https://www.usb.org/defined-class-codes [2] http://www.embedded-os.de/en/proto-rndis_host.shtml Change-Id: Ida366749f378a0ce770d707b4ba56b87f9e188cf Signed-off-by: William Wu <william.wu@rock-chips.com>
2019-06-20rk_headset: add support jack reportXing Zheng
This patch supports Jack's event report switching Audio paths on public platforms. Change-Id: I83e395f81fb60a2b446a309fae820d26d7df4661 Signed-off-by: Xing Zheng <zhengxing@rock-chips.com>
2019-06-19media: i2c: gc2145: Fix code style issueAllon Huang
Change-Id: Iba67ab5db9589983e8f3bf544f8fb6d5ce6d2fb2 Signed-off-by: Allon Huang <allon.huang@rock-chips.com>
2019-06-19media: rockchip: cif: support mipi channel and work mode switchingAllon Huang
rk3288 cif can work with mipi channel and switch work mode Change-Id: Ie8a49cf787617ff5d98ef84cdac761c3ece761c9 Signed-off-by: Allon Huang <allon.huang@rock-chips.com>
2019-06-19phy: rockchip: mipi-rx: distinguish control object for txrxAllon Huang
txrx can be linked with isp or csi-host, so separate it Change-Id: I41d81770c53008bdf9703f92834cc41d9724a563 Signed-off-by: Allon Huang <allon.huang@rock-chips.com>
2019-06-19media: rockchip: cif: csi-host compatible with rk3288Allon Huang
Change-Id: I59abdf5088622ba6e556912f5fef39ad75893b11 Signed-off-by: Allon Huang <allon.huang@rock-chips.com>
2019-06-18video/rockchip: rga2: coding style rm ^MTao Huang
Change-Id: I6e571211f8fee9f66c3b97b620f13606fc3604ac Signed-off-by: Shixiang Zheng <shixiang.zheng@rock-chips.com>
2019-06-17UPSTREAM: drm: Do not call drm_dp_cec_set_edid() while registering DP connectorsJosé Roberto de Souza
drm_dp_cec_register_connector() is called when registering each DP connector in DRM, while sounds a good idea register CEC adapters as earlier as possible, it causes some driver initialization delay trying to do DPCD transactions in disconnected connectors. This change will cause no regressions as drm_dp_cec_set_edid() will still be called in further detection of connected connectors with a valid edid parameter. This change reduced the module load of i915 by average 0.5sec in a machine with just one DP port disconnected while reducing more than 3sec in a machine with 4 DP ports disconnected. Cc: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: José Roberto de Souza <jose.souza@intel.com> Acked-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20181011004439.4482-1-jose.souza@intel.com (cherry picked from commit 7323001549804be70b179a8b636f78e758aeb28d) Change-Id: I815948f733719705bbc576fc1ca723fb5a59fe6b Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm_dp_cec: add note about good MegaChips 2900 CEC supportHans Verkuil
A big problem with DP CEC-Tunneling-over-AUX is that it is tricky to find adapters with a chipset that supports this AND where the manufacturer actually connected the HDMI CEC line to the chipset. Add a mention of the MegaChips 2900 chipset which seems to support this feature well. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180827075820.41109-3-hverkuil@xs4all.nl (cherry picked from commit 9bcf6d9868ae95fc7e5eda3dae5200f234ea5623) Change-Id: Idd9a225357a5b3bbb14287cc1f5b13630d0bd449 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm_dp_cec: check that aux has a transfer functionHans Verkuil
If aux->transfer == NULL, then just return without doing anything. In that case the function is likely called for a non-(e)DP connector. This never happened for the i915 driver, but the nouveau and amdgpu drivers need this check. The alternative would be to add this check in those drivers before every drm_dp_cec call, but it makes sense to check it in the drm_dp_cec functions to prevent a kernel oops. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Lyude Paul <lyude@redhat.com> Acked-by: Alex Deucher <alexander.deucher@amd.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180827075820.41109-2-hverkuil@xs4all.nl (cherry picked from commit 5ce70c799ac22c142061c71aaeae518f04283472) Change-Id: I8a56122cc777e17c2b303120372f7087a94c5083 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm_dp_cec.c: fix formatting typo: %pdH -> %phDHans Verkuil
This caused a kernel oops since %pdH interpreted the pointer as a struct file. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com> Link: https://patchwork.freedesktop.org/patch/msgid/f3720ddf-ec0f-cd22-46b6-720a5e2098f2@xs4all.nl (cherry picked from commit ea5569ecd6b81232eb536017b627c417befc1acb) Change-Id: I9780212b39185e8b87b74d0216538378f16baf58 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm: add support for DisplayPort CEC-Tunneling-over-AUXHans Verkuil
This adds support for the DisplayPort CEC-Tunneling-over-AUX feature that is part of the DisplayPort 1.3 standard. Unfortunately, not all DisplayPort/USB-C to HDMI adapters with a chip that has this capability actually hook up the CEC pin, so even though a CEC device is created, it may not actually work. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180711132909.25409-2-hverkuil@xs4all.nl (cherry picked from commit 2c6d1fffa1d9b0a5b5ac1a23be9ad64abe60910d) Conflicts: drivers/gpu/drm/Makefile drivers/gpu/drm/drm_dp_helper.c include/drm/drm_dp_helper.h Change-Id: I63df93f87cc521c148b6a999de9459577680a4f6 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm/dp: start a DPCD based DP sink/branch device quirk databaseJani Nikula
Face the fact, there are Display Port sink and branch devices out there in the wild that don't follow the Display Port specifications, or they have bugs, or just otherwise require special treatment. Start a common quirk database the drivers can query based on the DP device identification. At least for now, we leave the workarounds for the drivers to implement as they see fit. For starters, add a branch device that can't handle full 24-bit main link Mdiv and Ndiv main link attributes properly. Naturally, the workaround of reducing main link attributes for all devices ended up in regressions for other devices. So here we are. v2: Rebase on DRM DP desc read helpers v3: Fix the OUI memcmp blunder (Clint) Cc: Ville Syrjälä <ville.syrjala@linux.intel.com> Cc: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com> Cc: Clint Taylor <clinton.a.taylor@intel.com> Cc: Adam Jackson <ajax@redhat.com> Cc: Harry Wentland <harry.wentland@amd.com> Tested-by: Clinton Taylor <clinton.a.taylor@intel.com> Reviewed-by: Clinton Taylor <clinton.a.taylor@intel.com> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> # v2 Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/91ec198dd95258dbf3bee2f6be739e0da73b4fdd.1495105635.git.jani.nikula@intel.com (cherry picked from commit 76fa998acd86b6b40d0217e12af39c2406bdcd2b) Conflicts: drivers/gpu/drm/drm_dp_helper.c Change-Id: Ic51b5355c7bd1a8d81689755ebd8d14f74bb67ce Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17UPSTREAM: drm/dp: add helper for reading DP sink/branch device desc from DPCDJani Nikula
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: http://patchwork.freedesktop.org/patch/msgid/acba54da7d80eafea9e59a893e27e3c31028c0ba.1495105635.git.jani.nikula@intel.com (cherry picked from commit 118b90f3f18e733c99f0e8b98ea31a815ffc4d14) Conflicts: drivers/gpu/drm/drm_dp_helper.c include/drm/drm_dp_helper.h Change-Id: I963d96c824c086035cdbdd6ffc0f2ca4d64967e1 Signed-off-by: Algea Cao <algea.cao@rock-chips.com>
2019-06-17media: rockchip: isp1: fix isp iommu work after suspendCai YiWei
Change-Id: Ie89ec58c6f99a751bc1fdf681a85a6595716c649 Signed-off-by: Cai YiWei <cyw@rock-chips.com>