mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
media updates for v4.12-rc1
-----BEGIN PGP SIGNATURE-----
iQIcBAABAgAGBQJZDHJ4AAoJEAhfPr2O5OEVdwAP/jAmT+Bu7gXfgcrrmHNpivx4
knyyGlmpoazPT4WbNvBkqCdYESXpJowQgzOMagRi2zSEqnylCgAFvZ/CF6imGJDd
0r1ahK6JE9sBSw2Y531h8t7IESmEFaDCOdg4W91lCMa76goZoSjWTDhv6xx1nQId
d77lHhbAKctQI7VdBA1KlCdrvn5QKmNKsJHMGWJbXv/zNWube8Lk6ZAeqJ2Q2Efk
yzrjQiXpYKVcG6tnI6BSp+rkzRYshO7vs+xw37RcCPfzf9YgHd9Olp9FDegzmRrd
gJ1UudEpGPFZ6RIiOJLUkurPEdfAiSVMUG7jEimgRwsu0+QEURuVHF0HiTA2XjVX
5jKJSobOQQzc14b1d42eIMDBsqEP2/Bll4BBjy7VHzyAcxh3Jpo8Fqoe0Jq/gmio
jP11RHt5XRrqPmyBoApigxffDSizqNhT+yoOr5G/2EJza/L7rH9SuGALa0OPql6o
OVJyfSit02Eco7ccrcqxp2s6fqFGXBwso6U9aSKyiG2xqXLb/g1GkacOt1TjMCHU
OnuWR/1RjizGyxoom5Y0WhnPcLEJ4x1cVtU8tuqAx2K4YhRFsH5e27gQCXPynm1Z
8yC2DA4+3w57U5uYAGUlZP6/Mo+KGVET83OtNHnmOZ8qH55CzFbp8TTF+iMMmLHm
ZkXCS1/1Iwt+ykNymFLn
=Snzj
-----END PGP SIGNATURE-----
Merge tag 'media/v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media
Pull media updates from Mauro Carvalho Chehab:
"Media updates for v4.12-rc1:
- new driver to support mediatek jpeg in hardware codec
- rc-lirc, s5p-cec and st-cec staging drivers got promoted
- hardware histogram support for vsp1 driver
- added Virtual Media Controller driver, to make easier to test the
media controller
- added a new CEC driver (rainshadow-cec)
- removed two staging LIRC drivers for obscure hardware that are too
obsolete
- added support for Intel SR300 Depth camera
- some improvements at CEC and RC core
- lots of driver cleanups, improvements all over the tree
With this series, we're finally getting rid of the LIRC staging
driver. There's just one left (lirc_zilog), with require more care,
as part of its functionality (IR RX) is already provided by another
driver. Work in progress to convert it on the proper way"
* tag 'media/v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (304 commits)
[media] ov2640: print error if devm_*_optional*() fails
[media] atmel-isc: Fix the static checker warning
[media] ov2640: add support for MEDIA_BUS_FMT_YVYU8_2X8 and MEDIA_BUS_FMT_VYUY8_2X8
[media] ov2640: fix vflip control
[media] ov2640: fix duplicate width+height returning from ov2640_select_win()
[media] ov2640: add missing write to size change preamble
[media] ov2640: add information about DSP register 0xc7
[media] ov2640: improve banding filter register definitions/documentation
[media] ov2640: fix init sequence alignment
[media] ov2640: make GPIOLIB an optional dependency
[media] xc5000: fix spelling mistake: "calibration"
[media] vidioc-queryctrl.rst: fix menu/int menu references
[media] media-entity: only call dev_dbg_obj if mdev is not NULL
[media] pixfmt-meta-vsp1-hgo.rst: remove spurious '-'
[media] mtk-vcodec: avoid warnings because of empty macros
[media] coda: bump maximum number of internal framebuffers to 17
[media] media: mtk-vcodec: remove informative log
[media] subdev-formats.rst: remove spurious '-'
[media] dw2102: limit messages to buffer size
[media] ttusb2: limit messages to buffer size
...
This commit is contained in:
commit
e87d51ac61
352 changed files with 15001 additions and 5238 deletions
|
|
@ -43,6 +43,8 @@
|
|||
|
||||
#include <drm/exynos_drm.h>
|
||||
|
||||
#include <media/cec-notifier.h>
|
||||
|
||||
#include "exynos_drm_crtc.h"
|
||||
|
||||
#define HOTPLUG_DEBOUNCE_MS 1100
|
||||
|
|
@ -118,6 +120,7 @@ struct hdmi_context {
|
|||
bool dvi_mode;
|
||||
struct delayed_work hotplug_work;
|
||||
struct drm_display_mode current_mode;
|
||||
struct cec_notifier *notifier;
|
||||
const struct hdmi_driver_data *drv_data;
|
||||
|
||||
void __iomem *regs;
|
||||
|
|
@ -821,6 +824,7 @@ static enum drm_connector_status hdmi_detect(struct drm_connector *connector,
|
|||
if (gpiod_get_value(hdata->hpd_gpio))
|
||||
return connector_status_connected;
|
||||
|
||||
cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
return connector_status_disconnected;
|
||||
}
|
||||
|
||||
|
|
@ -859,6 +863,7 @@ static int hdmi_get_modes(struct drm_connector *connector)
|
|||
edid->width_cm, edid->height_cm);
|
||||
|
||||
drm_mode_connector_update_edid_property(connector, edid);
|
||||
cec_notifier_set_phys_addr_from_edid(hdata->notifier, edid);
|
||||
|
||||
ret = drm_add_edid_modes(connector, edid);
|
||||
|
||||
|
|
@ -1501,6 +1506,7 @@ static void hdmi_disable(struct drm_encoder *encoder)
|
|||
if (funcs && funcs->disable)
|
||||
(*funcs->disable)(crtc);
|
||||
|
||||
cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
cancel_delayed_work(&hdata->hotplug_work);
|
||||
|
||||
hdmiphy_disable(hdata);
|
||||
|
|
@ -1880,15 +1886,22 @@ static int hdmi_probe(struct platform_device *pdev)
|
|||
}
|
||||
}
|
||||
|
||||
hdata->notifier = cec_notifier_get(&pdev->dev);
|
||||
if (hdata->notifier == NULL) {
|
||||
ret = -ENOMEM;
|
||||
goto err_hdmiphy;
|
||||
}
|
||||
|
||||
pm_runtime_enable(dev);
|
||||
|
||||
ret = component_add(&pdev->dev, &hdmi_component_ops);
|
||||
if (ret)
|
||||
goto err_disable_pm_runtime;
|
||||
goto err_notifier_put;
|
||||
|
||||
return ret;
|
||||
|
||||
err_disable_pm_runtime:
|
||||
err_notifier_put:
|
||||
cec_notifier_put(hdata->notifier);
|
||||
pm_runtime_disable(dev);
|
||||
|
||||
err_hdmiphy:
|
||||
|
|
@ -1907,9 +1920,11 @@ static int hdmi_remove(struct platform_device *pdev)
|
|||
struct hdmi_context *hdata = platform_get_drvdata(pdev);
|
||||
|
||||
cancel_delayed_work_sync(&hdata->hotplug_work);
|
||||
cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
|
||||
component_del(&pdev->dev, &hdmi_component_ops);
|
||||
|
||||
cec_notifier_put(hdata->notifier);
|
||||
pm_runtime_disable(&pdev->dev);
|
||||
|
||||
if (!IS_ERR(hdata->reg_hdmi_en))
|
||||
|
|
|
|||
|
|
@ -771,6 +771,8 @@ static void sti_hdmi_disable(struct drm_bridge *bridge)
|
|||
clk_disable_unprepare(hdmi->clk_pix);
|
||||
|
||||
hdmi->enabled = false;
|
||||
|
||||
cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -973,6 +975,7 @@ static int sti_hdmi_connector_get_modes(struct drm_connector *connector)
|
|||
DRM_DEBUG_KMS("%s : %dx%d cm\n",
|
||||
(hdmi->hdmi_monitor ? "hdmi monitor" : "dvi monitor"),
|
||||
edid->width_cm, edid->height_cm);
|
||||
cec_notifier_set_phys_addr_from_edid(hdmi->notifier, edid);
|
||||
|
||||
count = drm_add_edid_modes(connector, edid);
|
||||
drm_mode_connector_update_edid_property(connector, edid);
|
||||
|
|
@ -1035,6 +1038,7 @@ sti_hdmi_connector_detect(struct drm_connector *connector, bool force)
|
|||
}
|
||||
|
||||
DRM_DEBUG_DRIVER("hdmi cable disconnected\n");
|
||||
cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
return connector_status_disconnected;
|
||||
}
|
||||
|
||||
|
|
@ -1423,6 +1427,10 @@ static int sti_hdmi_probe(struct platform_device *pdev)
|
|||
goto release_adapter;
|
||||
}
|
||||
|
||||
hdmi->notifier = cec_notifier_get(&pdev->dev);
|
||||
if (!hdmi->notifier)
|
||||
goto release_adapter;
|
||||
|
||||
hdmi->reset = devm_reset_control_get(dev, "hdmi");
|
||||
/* Take hdmi out of reset */
|
||||
if (!IS_ERR(hdmi->reset))
|
||||
|
|
@ -1442,11 +1450,14 @@ static int sti_hdmi_remove(struct platform_device *pdev)
|
|||
{
|
||||
struct sti_hdmi *hdmi = dev_get_drvdata(&pdev->dev);
|
||||
|
||||
cec_notifier_set_phys_addr(hdmi->notifier, CEC_PHYS_ADDR_INVALID);
|
||||
|
||||
i2c_put_adapter(hdmi->ddc_adapt);
|
||||
if (hdmi->audio_pdev)
|
||||
platform_device_unregister(hdmi->audio_pdev);
|
||||
component_del(&pdev->dev, &sti_hdmi_ops);
|
||||
|
||||
cec_notifier_put(hdmi->notifier);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <linux/platform_device.h>
|
||||
|
||||
#include <drm/drmP.h>
|
||||
#include <media/cec-notifier.h>
|
||||
|
||||
#define HDMI_STA 0x0010
|
||||
#define HDMI_STA_DLL_LCK BIT(5)
|
||||
|
|
@ -64,6 +65,7 @@ static const struct drm_prop_enum_list colorspace_mode_names[] = {
|
|||
* @audio_pdev: ASoC hdmi-codec platform device
|
||||
* @audio: hdmi audio parameters.
|
||||
* @drm_connector: hdmi connector
|
||||
* @notifier: hotplug detect notifier
|
||||
*/
|
||||
struct sti_hdmi {
|
||||
struct device dev;
|
||||
|
|
@ -89,6 +91,7 @@ struct sti_hdmi {
|
|||
struct platform_device *audio_pdev;
|
||||
struct hdmi_audio_params audio;
|
||||
struct drm_connector *drm_connector;
|
||||
struct cec_notifier *notifier;
|
||||
};
|
||||
|
||||
u32 hdmi_read(struct sti_hdmi *hdmi, int offset);
|
||||
|
|
|
|||
Loading…
Reference in a new issue