From ef691ff48bc838e9fca54b58dccac0a7c36a3130 Mon Sep 17 00:00:00 2001 From: Archit Taneja Date: Tue, 22 Apr 2014 17:43:48 +0530 Subject: OMAPDSS: DT: Get source endpoint by matching reg-id In omapdss_of_find_source_for_first_ep, we retrieve a source endpoint's DT node, and then see what omapdss output has the matching device_node pointer in omap_dss_find_output_by_node. For all DPI and SDI outputs, the device_node pointer is set as the parent's DSS device_node pointer. If the source is one of these outputs, the above method won't work. To get the correct output for ports within DSS(and in other cases in the future, where multiple ports might be under one device), we require additional information which is exclusive to the output port. We create a new field in omap_dss_device called 'port_num', this provides port number of the output port corresponding to this device. When searching for the source endpoint in DT, we extract the 'reg' property from the port corresponding to the endpoint source. From the list of registered outputs, we pick out that output which has both dev->of_node and port_num matching with the device_node pointer and 'reg' of the source endpoint node from DT. For encoder blocks(the ones which have both an input and output port), we need to set the port_num as the 'reg' property for the output port as defined in the DT bindings. We set port_num to 1 in the tfp410 and tpd12s015 encoder drivers. Signed-off-by: Archit Taneja Signed-off-by: Tomi Valkeinen --- include/video/omapdss.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'include') diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 069dfca9549a..1db32023396e 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h @@ -795,6 +795,9 @@ struct omap_dss_device { /* output instance */ enum omap_dss_output_id id; + /* the port number in the DT node */ + int port_num; + /* dynamic fields */ struct omap_overlay_manager *manager; @@ -918,7 +921,7 @@ int omapdss_register_output(struct omap_dss_device *output); void omapdss_unregister_output(struct omap_dss_device *output); struct omap_dss_device *omap_dss_get_output(enum omap_dss_output_id id); struct omap_dss_device *omap_dss_find_output(const char *name); -struct omap_dss_device *omap_dss_find_output_by_node(struct device_node *node); +struct omap_dss_device *omap_dss_find_output_by_port_node(struct device_node *port); int omapdss_output_set_device(struct omap_dss_device *out, struct omap_dss_device *dssdev); int omapdss_output_unset_device(struct omap_dss_device *out); -- cgit v1.2.3 From 6d09dc6b74caaca83e32e67f2454406041d58fb0 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 14 Nov 2014 13:26:52 +0100 Subject: of.h: Keep extern declaration of of_* variables when !CONFIG_OF Keep the extern declaration of of_allnodes and friends, when building without of support, this way code using them can be written like this: if (IS_ENABLED(CONFIG_OF_PLATFORM) && of_chosen) { for_each_child_of_node(of_chosen, np) ... } And rely on the compiler optimizing it away, avoiding the need for #ifdef-ery. Signed-off-by: Hans de Goede Signed-off-by: Tomi Valkeinen --- include/linux/of.h | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'include') diff --git a/include/linux/of.h b/include/linux/of.h index 6545e7aec7bb..f83ca9dddcba 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -105,8 +105,6 @@ static inline struct device_node *of_node_get(struct device_node *node) static inline void of_node_put(struct device_node *node) { } #endif /* !CONFIG_OF_DYNAMIC */ -#ifdef CONFIG_OF - /* Pointer for first entry in chain of all nodes. */ extern struct device_node *of_allnodes; extern struct device_node *of_chosen; @@ -114,6 +112,7 @@ extern struct device_node *of_aliases; extern struct device_node *of_stdout; extern raw_spinlock_t devtree_lock; +#ifdef CONFIG_OF static inline bool of_have_populated_dt(void) { return of_allnodes != NULL; -- cgit v1.2.3 From 50211be80290b061a923ea7e2d36a6865a48920a Mon Sep 17 00:00:00 2001 From: Jyri Sarha Date: Fri, 15 Aug 2014 15:44:44 +0300 Subject: ASoC: omap-hdmi-audio: Add platform device for OMAP HDMI audio support The platform device should only be registered from OMAPDSS HDMI driver. The platform driver registers and unregisters all ASoC components needed for OMAP HDMI audio. The hdmi audio driver implements cpu-dai component using the callbacks provided by OMAPDSS and registers the component under DSS HDMI device. Omap-pcm is registered for platform component also under DSS HDMI device. Dummy codec is used as as codec component. The hdmi audio driver implements also the card and registers it under its own platform device. Signed-off-by: Jyri Sarha Acked-by: Peter Ujfalusi Reviewed-by: Mark Brown Signed-off-by: Tomi Valkeinen --- include/sound/omap-hdmi-audio.h | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 include/sound/omap-hdmi-audio.h (limited to 'include') diff --git a/include/sound/omap-hdmi-audio.h b/include/sound/omap-hdmi-audio.h new file mode 100644 index 000000000000..afdb416898e0 --- /dev/null +++ b/include/sound/omap-hdmi-audio.h @@ -0,0 +1,43 @@ +/* + * hdmi-audio.c -- OMAP4+ DSS HDMI audio support library + * + * Copyright (C) 2014 Texas Instruments Incorporated - http://www.ti.com + * + * Author: Jyri Sarha + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * version 2 as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + */ + +#include