[PULL] drm-misc-next
Benjamin Gaignard
benjamin.gaignard at linaro.org
Fri Oct 13 14:24:38 UTC 2017
2017-10-13 16:08 GMT+02:00 Maarten Lankhorst
<maarten.lankhorst at linux.intel.com>:
> Op 12-10-17 om 14:05 schreef Daniel Vetter:
>> Hi Dave,
>>
>> drm-misc-next-2017-10-12:
>> More 4.15 drm-misc stuff:
>>
>> Cross-subsystem Changes:
>> - bridge cleanup refactor (Benjamin Gaignard)
>>
>> Core Changes:
>> - less surprising atomic iterators (Maarten), fixes an oops introduced
>> in drm-next
>> - better gem/fb helper docs (Noralf)
>> - fix dma-buf rcu races (Christian König)
>>
>> Driver Changes:
>> - adv7511: CEC support (Hans Verkuil)
>> - sun4i update from Chen-Yu to improve hdmi and A31 support
>> - sii8620: add remote control support (Maceiej Purski)
>>
>> New drivers:
>> - SiI9234 bridge driver (Maciej Purski)
>> - 7" rpi touch panel (Eric Anholt)
>>
>> Note that this contains a topic pull from regmap, needed by the sun4i
>> changes. Mark Brown sent that out for pulling into drm-misc.
>>
>> Cheers, Daniel
>> The following changes since commit 15438ab06515b093d61e2f35bb27d21e5e7f966e:
>>
>> Merge tag 'drm-misc-next-2017-10-05' of git://anongit.freedesktop.org/git/drm-misc into drm-next (2017-10-06 11:10:25 +1000)
>>
>> are available in the git repository at:
>>
>> git://anongit.freedesktop.org/drm/drm-misc tags/drm-misc-next-2017-10-12
>>
>> for you to fetch changes up to cccf4e3fe3e286b55634c2c5d0c4399f4288e440:
>>
>> drm/dp: WARN about invalid/unknown link rates and bw codes (2017-10-11 18:41:44 +0300)
>>
>> ----------------------------------------------------------------
>> More 4.15 drm-misc stuff:
>>
>> Cross-subsystem Changes:
>> - bridge cleanup refactor (Benjamin Gaignard)
>>
>> Core Changes:
>> - less surprising atomic iterators (Maarten), fixes an oops introduced
>> in drm-next
>> - better gem/fb helper docs (Noralf)
>> - fix dma-buf rcu races (Christian König)
>>
>> Driver Changes:
>> - adv7511: CEC support (Hans Verkuil)
>> - sun4i update from Chen-Yu to improve hdmi and A31 support
>> - sii8620: add remote control support (Maceiej Purski)
>>
>> New drivers:
>> - SiI9234 bridge driver (Maciej Purski)
>> - 7" rpi touch panel (Eric Anholt)
>>
>> Note that this contains a topic pull from regmap, needed by the sun4i
>> changes. Mark Brown sent that out for pulling into drm-misc.
>>
>> ----------------------------------------------------------------
>> Aishwarya Pant (1):
>> drm/msm/mdp5: remove less than 0 comparison for unsigned value
>>
>> Chen-Yu Tsai (10):
>> regmap: add iopoll-like polling macro for regmap_field
>> drm/sun4i: tcon: Add variant callback for TCON output muxing
>> drm/sun4i: tcon: Add support for demuxing TCON output on A31
>> drm/sun4i: hdmi: Disable clks in bind function error path and unbind function
>> drm/sun4i: hdmi: create a regmap for later use
>> drm/sun4i: hdmi: Allow using second PLL as TMDS clk parent
>> dt-bindings: display: sun4i: Add binding for A31 HDMI controller
>> drm/sun4i: hdmi: Add support for controller hardware variants
>> drm/sun4i: hdmi: Add A31 specific DDC register definitions
>> drm/sun4i: hdmi: Add support for A31's HDMI controller
>>
>> Christian König (2):
>> dma-buf: make reservation_object_copy_fences rcu save
>> dma-fence: fix dma_fence_get_rcu_safe v2
>>
>> Daniel Vetter (1):
>> Merge tag 'regmap-poll-field' of git://git.kernel.org/.../broonie/regmap into drm-misc-next
>>
>> Eric Anholt (2):
>> dt-bindings: Document the Raspberry Pi Touchscreen nodes.
>> drm/panel: Add support for the Raspberry Pi 7" Touchscreen.
>>
>> Hans Verkuil (2):
>> dt-bindings: adi,adv7511.txt: document cec clock
>> drm: adv7511/33: add HDMI CEC support
>>
>> Jani Nikula (1):
>> drm/dp: WARN about invalid/unknown link rates and bw codes
>>
>> Jeffy Chen (1):
>> drm/atomic: Unref duplicated drm_atomic_state in drm_atomic_helper_resume()
>>
>> Maarten Lankhorst (2):
>> drm/atomic: Remove unneeded null check for private objects
>> drm/atomic: Make atomic iterators less surprising
>>
>> Maciej Purski (2):
>> drm/bridge: add Silicon Image SiI9234 driver
>> drm/bridge/sii8620: add remote control support
>>
>> Noralf Trønnes (1):
>> drm/gem-fb-helper: Improve documentation
>>
>> benjamin.gaignard at linaro.org (5):
>> drm/bridge: make drm_panel_bridge_remove more robust
>> drm/drm_of: add drm_of_panel_bridge_remove function
>
> Just found out that this breaks modular drm with cross dependency between drm_of.c and drm_bridge.
>
> insmod drm fails with
> [ 6087.674390] drm: Unknown symbol drm_panel_bridge_remove (err 0)
>
> which is defined in drm_kms_helper.ko
>
> Offending commit is likely:
>
> commit c70087e8f16f1dfe703d223aadd95ede1cde8e30
> Author: benjamin.gaignard at linaro.org <benjamin.gaignard at linaro.org>
> Date: Mon Oct 2 11:34:45 2017 +0200
>
> drm/drm_of: add drm_of_panel_bridge_remove function
>
> Fixup below?
>
> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
> ---
> diff --git a/drivers/gpu/drm/drm_of.c b/drivers/gpu/drm/drm_of.c
> index 7a36934ea5db..4c191c050e7d 100644
> --- a/drivers/gpu/drm/drm_of.c
> +++ b/drivers/gpu/drm/drm_of.c
> @@ -262,36 +262,3 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
> return ret;
> }
> EXPORT_SYMBOL_GPL(drm_of_find_panel_or_bridge);
> -
> -#ifdef CONFIG_DRM_PANEL_BRIDGE
> -/*
> - * drm_of_panel_bridge_remove - remove panel bridge
> - * @np: device tree node containing panel bridge output ports
> - *
> - * Remove the panel bridge of a given DT node's port and endpoint number
> - *
> - * Returns zero if successful, or one of the standard error codes if it fails.
> - */
> -int drm_of_panel_bridge_remove(const struct device_node *np,
> - int port, int endpoint)
> -{
> - struct drm_bridge *bridge;
> - struct device_node *remote;
> -
> - remote = of_graph_get_remote_node(np, port, endpoint);
> - if (!remote)
> - return -ENODEV;
> -
> - bridge = of_drm_find_bridge(remote);
> - drm_panel_bridge_remove(bridge);
> -
> - return 0;
> -}
> -#else
> -int drm_of_panel_bridge_remove(const struct device_node *np,
> - int port, int endpoint)
> -{
> - return -EINVAL;
> -}
> -#endif
> -EXPORT_SYMBOL_GPL(drm_of_panel_bridge_remove);
> diff --git a/include/drm/drm_of.h b/include/drm/drm_of.h
> index 390966e4a308..d20ec4e0431d 100644
> --- a/include/drm/drm_of.h
> +++ b/include/drm/drm_of.h
> @@ -2,6 +2,9 @@
> #define __DRM_OF_H__
>
> #include <linux/of_graph.h>
> +#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
> +#include <drm/drm_bridge.h>
> +#endif
>
> struct component_master_ops;
> struct component_match;
> @@ -29,8 +32,6 @@ int drm_of_find_panel_or_bridge(const struct device_node *np,
> int port, int endpoint,
> struct drm_panel **panel,
> struct drm_bridge **bridge);
> -int drm_of_panel_bridge_remove(const struct device_node *np,
> - int port, int endpoint);
> #else
> static inline uint32_t drm_of_find_possible_crtcs(struct drm_device *dev,
> struct device_node *port)
> @@ -67,13 +68,35 @@ static inline int drm_of_find_panel_or_bridge(const struct device_node *np,
> {
> return -EINVAL;
> }
> +#endif
>
> +/*
> + * drm_of_panel_bridge_remove - remove panel bridge
> + * @np: device tree node containing panel bridge output ports
> + *
> + * Remove the panel bridge of a given DT node's port and endpoint number
> + *
> + * Returns zero if successful, or one of the standard error codes if it fails.
> + */
> static inline int drm_of_panel_bridge_remove(const struct device_node *np,
> int port, int endpoint)
> {
> +#if IS_ENABLED(CONFIG_OF) && IS_ENABLED(CONFIG_DRM_PANEL_BRIDGE)
> + struct drm_bridge *bridge;
> + struct device_node *remote;
> +
> + remote = of_graph_get_remote_node(np, port, endpoint);
> + if (!remote)
> + return -ENODEV;
> +
> + bridge = of_drm_find_bridge(remote);
> + drm_panel_bridge_remove(bridge);
> +
> + return 0;
> +#else
> return -EINVAL;
> -}
> #endif
> +}
>
> static inline int drm_of_encoder_active_endpoint_id(struct device_node *node,
> struct drm_encoder *encoder)
>
Acked-by: Benjamin Gaignard <benjamin.gaignard at linaro.org>
More information about the dri-devel
mailing list