From: Tomi Valkeinen <tomi.valkeinen@ti.com>
To: "K, Mythri P" <mythripk@ti.com>
Cc: "linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: Re: [PATCH 6/8] OMAP4 : DSS2 : HDMI: HDMI panel driver addition in the DSS
Date: Sun, 27 Feb 2011 11:43:59 +0200 [thread overview]
Message-ID: <1298799839.1977.31.camel@deskari> (raw)
In-Reply-To: <1298643715-21540-7-git-send-email-mythripk@ti.com>
On Fri, 2011-02-25 at 08:21 -0600, K, Mythri P wrote:
> The panel driver(hdmi_omap4_panel.c) in dss file acts as a controller
> to manage the enable and disable requests and synchronize audio and video.
> Also the header file to export the hdmi registers is added in the
> plat-omap , so that it can be accessed by audio driver.
>
> Signed-off-by: Mythri P K <mythripk@ti.com>
> ---
> drivers/video/omap2/dss/Kconfig | 8 ++
> drivers/video/omap2/dss/Makefile | 1 +
> drivers/video/omap2/dss/hdmi_omap4_panel.c | 190 ++++++++++++++++++++++++++++
> 3 files changed, 199 insertions(+), 0 deletions(-)
> create mode 100644 drivers/video/omap2/dss/hdmi_omap4_panel.c
>
> diff --git a/drivers/video/omap2/dss/Kconfig b/drivers/video/omap2/dss/Kconfig
> index fe1ab09..670a55d 100644
> --- a/drivers/video/omap2/dss/Kconfig
> +++ b/drivers/video/omap2/dss/Kconfig
> @@ -125,4 +125,12 @@ config OMAP2_DSS_MIN_FCK_PER_PCK
> Max FCK is 173MHz, so this doesn't work if your PCK
> is very high.
>
> +config OMAP4_PANEL_HDMI
> + bool "HDMI panel support"
> + depends on OMAP2_DSS_HDMI
> + default n
> + help
> + HDMI panel. This adds the High Definition Multimedia panel.
> + See http://www.hdmi.org/ for HDMI specification.
> +
> endif
> diff --git a/drivers/video/omap2/dss/Makefile b/drivers/video/omap2/dss/Makefile
> index 5998b69..95234d4 100644
> --- a/drivers/video/omap2/dss/Makefile
> +++ b/drivers/video/omap2/dss/Makefile
> @@ -6,3 +6,4 @@ omapdss-$(CONFIG_OMAP2_DSS_VENC) += venc.o
> omapdss-$(CONFIG_OMAP2_DSS_SDI) += sdi.o
> omapdss-$(CONFIG_OMAP2_DSS_DSI) += dsi.o
> omapdss-$(CONFIG_OMAP2_DSS_HDMI) += hdmi.o
> +obj-$(CONFIG_OMAP4_PANEL_HDMI) += hdmi_omap4_panel.o
> diff --git a/drivers/video/omap2/dss/hdmi_omap4_panel.c b/drivers/video/omap2/dss/hdmi_omap4_panel.c
> new file mode 100644
> index 0000000..c28b1f6
> --- /dev/null
> +++ b/drivers/video/omap2/dss/hdmi_omap4_panel.c
> @@ -0,0 +1,190 @@
> +/*
> + * hdmi_omap4_panel.c
> + *
> + * HDMI library support functions for TI OMAP4 processors.
> + *
> + * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
> + * Authors: MythriPk <mythripk@ti.com>
> + *
> + * 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.
> + *
> + * You should have received a copy of the GNU General Public License along with
> + * this program. If not, see <http://www.gnu.org/licenses/>.
> + */
> +
> +#define DSS_SUBSYS_NAME "HDMI"
This is not used.
> +
> +#include <linux/kernel.h>
> +#include <linux/err.h>
> +#include <linux/io.h>
> +#include <linux/mutex.h>
> +#include <linux/string.h>
> +#include <linux/delay.h>
> +#include <linux/module.h>
> +#include <linux/seq_file.h>
> +#include <plat/display.h>
Most of these includes are not needed.
> +
> +#include "dss.h"
> +
> +static struct {
> + struct mutex hdmi_lock;
> +} hdmi;
Static variables in panel drivers are not good, as they won't work if
there are two devices which use the same driver. In this case that
cannot happen, as there's only one HDMI module in DSS. However, it's
worth to mention here in a comment. Or, do it properly and create a per
device data structure.
> +
> +
> +static int hdmi_panel_probe(struct omap_dss_device *dssdev)
> +{
> + DSSDBG("ENTER hdmi_panel_probe\n");
> +
> + dssdev->panel.config = OMAP_DSS_LCD_TFT |
> + OMAP_DSS_LCD_IVS | OMAP_DSS_LCD_IHS;
> +
> + /*
> + * Initialize the timings to 1920 * 1080
> + * This is only for framebuffer update not for TV timing setting
> + * Setting TV timing will be done only on enable
> + */
> + dssdev->panel.timings.x_res = 1920;
> + dssdev->panel.timings.y_res = 1080;
> +
> + DSSDBG("hdmi_panel_probe x_res= %d y_res = %d\n",
> + dssdev->panel.timings.x_res,
> + dssdev->panel.timings.y_res);
> + return 0;
> +}
> +
> +static void hdmi_panel_remove(struct omap_dss_device *dssdev)
> +{
> +
> +}
> +
> +static int hdmi_panel_enable(struct omap_dss_device *dssdev)
> +{
> + int r = 0;
> + DSSDBG("ENTER hdmi_panel_enable\n");
> +
> + if (dssdev->state != OMAP_DSS_DISPLAY_DISABLED)
> + return -EINVAL;
> +
> + mutex_lock(&hdmi.hdmi_lock);
I commented about this in earlier mails already. You need to use the
locks consistently and have the dssdev->state reads also inside the
lock.
Think what happens if, say, two threads call hdmi_panel_enable at the
same time.
Tomi
next prev parent reply other threads:[~2011-02-27 9:44 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-25 14:21 [PATCH 0/8] OMAP4 : DSS2 : HDMI support Mythri P K
2011-02-25 14:21 ` [PATCH 1/8] OMAP4 : DSS2 : Add display type HDMI to DSS2 Mythri P K
2011-02-25 14:21 ` [PATCH 2/8] OMAP4 : DSS2 : Add display structure in the board file for OMAP4 sdp Mythri P K
2011-02-27 9:13 ` Tomi Valkeinen
2011-02-28 5:32 ` K, Mythri P
2011-02-25 14:21 ` [PATCH 3/8] OMAP4 : DSS : HDMI: HDMI specific display controller and dss change Mythri P K
2011-02-27 9:23 ` Tomi Valkeinen
2011-02-28 6:21 ` K, Mythri P
2011-02-28 6:42 ` Tomi Valkeinen
2011-02-25 14:21 ` [PATCH 4/8] OMAP4 : DSS : HDMI: HDMI driver header file addition Mythri P K
2011-02-27 9:28 ` Tomi Valkeinen
2011-02-28 5:40 ` K, Mythri P
2011-02-25 14:21 ` [PATCH 5/8] OMAP4 : DSS2 : HDMI: HDMI driver addition in the DSS drivers interface Mythri P K
2011-02-27 10:17 ` Tomi Valkeinen
2011-02-28 6:11 ` K, Mythri P
2011-02-28 6:27 ` Tomi Valkeinen
2011-02-28 6:30 ` K, Mythri P
2011-02-28 6:51 ` Tomi Valkeinen
2011-02-25 14:21 ` [PATCH 6/8] OMAP4 : DSS2 : HDMI: HDMI panel driver addition in the DSS Mythri P K
2011-02-27 9:43 ` Tomi Valkeinen [this message]
2011-02-28 6:14 ` K, Mythri P
2011-02-25 14:21 ` [PATCH 7/8] OMAP4 : DSS : HDMI: Call to HDMI module init to register driver Mythri P K
2011-02-25 14:21 ` [PATCH 8/8] OMAP4 : DSS2 : Add display structure in the board file for OMAP4 pandaboard Mythri P K
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1298799839.1977.31.camel@deskari \
--to=tomi.valkeinen@ti.com \
--cc=linux-omap@vger.kernel.org \
--cc=mythripk@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox