* [PATCH v2 04/13] OMAPDSS: hdmi: Make hdmi structure public
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Name the anonymous hdmi struct as omap_hdmi. Move the struct definition to
hdmi.h and turn core member into a pointer to deal with it's different
definitions for omap4 and omap5. Make associated changes to hdmi4.c
and hdmi5.c.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/hdmi.h | 24 +++++++++++++++++++
drivers/video/fbdev/omap2/dss/hdmi4.c | 41 +++++++++++----------------------
drivers/video/fbdev/omap2/dss/hdmi5.c | 30 +++++++-----------------
3 files changed, 46 insertions(+), 49 deletions(-)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi.h b/drivers/video/fbdev/omap2/dss/hdmi.h
index 9e85b86..075357e 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi.h
+++ b/drivers/video/fbdev/omap2/dss/hdmi.h
@@ -349,5 +349,29 @@ static inline bool hdmi_mode_has_audio(int mode)
{
return mode = HDMI_HDMI ? true : false;
}
+
+/* HDMI DRV data */
+struct omap_hdmi {
+ struct mutex lock;
+ struct platform_device *pdev;
+
+ struct hdmi_wp_data wp;
+ struct hdmi_pll_data pll;
+ struct hdmi_phy_data phy;
+ struct hdmi_core_data *core;
+
+ struct hdmi_config cfg;
+
+ struct clk *sys_clk;
+ struct regulator *vdda_reg;
+
+#if defined(CONFIG_OMAP_DSS_HDMI_AUDIO)
+ struct hdmi_audio_data audio;
+#endif
+ bool core_enabled;
+
+ struct omap_dss_device output;
+};
+
#endif
#endif
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4.c b/drivers/video/fbdev/omap2/dss/hdmi4.c
index 6a8550c..58f1295 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi4.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi4.c
@@ -37,25 +37,10 @@
#include "hdmi4_core.h"
#include "dss.h"
#include "dss_features.h"
+#include "hdmi.h"
-static struct {
- struct mutex lock;
- struct platform_device *pdev;
-
- struct hdmi_wp_data wp;
- struct hdmi_pll_data pll;
- struct hdmi_phy_data phy;
- struct hdmi_core_data core;
-
- struct hdmi_config cfg;
-
- struct clk *sys_clk;
- struct regulator *vdda_hdmi_dac_reg;
-
- bool core_enabled;
-
- struct omap_dss_device output;
-} hdmi;
+static struct omap_hdmi hdmi;
+static struct hdmi_core_data hdmi4_core;
static int hdmi_runtime_get(void)
{
@@ -117,7 +102,7 @@ static int hdmi_init_regulator(void)
int r;
struct regulator *reg;
- if (hdmi.vdda_hdmi_dac_reg != NULL)
+ if (hdmi.vdda_reg != NULL)
return 0;
reg = devm_regulator_get(&hdmi.pdev->dev, "vdda");
@@ -137,7 +122,7 @@ static int hdmi_init_regulator(void)
}
}
- hdmi.vdda_hdmi_dac_reg = reg;
+ hdmi.vdda_reg = reg;
return 0;
}
@@ -146,7 +131,7 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)
{
int r;
- r = regulator_enable(hdmi.vdda_hdmi_dac_reg);
+ r = regulator_enable(hdmi.vdda_reg);
if (r)
return r;
@@ -162,7 +147,7 @@ static int hdmi_power_on_core(struct omap_dss_device *dssdev)
return 0;
err_runtime_get:
- regulator_disable(hdmi.vdda_hdmi_dac_reg);
+ regulator_disable(hdmi.vdda_reg);
return r;
}
@@ -172,7 +157,7 @@ static void hdmi_power_off_core(struct omap_dss_device *dssdev)
hdmi.core_enabled = false;
hdmi_runtime_put();
- regulator_disable(hdmi.vdda_hdmi_dac_reg);
+ regulator_disable(hdmi.vdda_reg);
}
static int hdmi_power_on_full(struct omap_dss_device *dssdev)
@@ -217,7 +202,7 @@ static int hdmi_power_on_full(struct omap_dss_device *dssdev)
if (r)
goto err_phy_pwr;
- hdmi4_configure(&hdmi.core, &hdmi.wp, &hdmi.cfg);
+ hdmi4_configure(hdmi.core, &hdmi.wp, &hdmi.cfg);
/* bypass TV gamma table */
dispc_enable_gamma_table(0);
@@ -308,7 +293,7 @@ static void hdmi_dump_regs(struct seq_file *s)
hdmi_wp_dump(&hdmi.wp, s);
hdmi_pll_dump(&hdmi.pll, s);
hdmi_phy_dump(&hdmi.phy, s);
- hdmi4_core_dump(&hdmi.core, s);
+ hdmi4_core_dump(hdmi.core, s);
hdmi_runtime_put();
mutex_unlock(&hdmi.lock);
@@ -323,7 +308,7 @@ static int read_edid(u8 *buf, int len)
r = hdmi_runtime_get();
BUG_ON(r);
- r = hdmi4_read_edid(&hdmi.core, buf, len);
+ r = hdmi4_read_edid(hdmi.core, buf, len);
hdmi_runtime_put();
mutex_unlock(&hdmi.lock);
@@ -678,6 +663,8 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
int irq;
hdmi.pdev = pdev;
+ hdmi.core = &hdmi4_core;
+ dev_set_drvdata(&pdev->dev, &hdmi);
mutex_init(&hdmi.lock);
@@ -699,7 +686,7 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
if (r)
return r;
- r = hdmi4_core_init(pdev, &hdmi.core);
+ r = hdmi4_core_init(pdev, hdmi.core);
if (r)
return r;
diff --git a/drivers/video/fbdev/omap2/dss/hdmi5.c b/drivers/video/fbdev/omap2/dss/hdmi5.c
index 32d02ec..83925a9 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi5.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi5.c
@@ -43,24 +43,8 @@
#include "dss.h"
#include "dss_features.h"
-static struct {
- struct mutex lock;
- struct platform_device *pdev;
-
- struct hdmi_wp_data wp;
- struct hdmi_pll_data pll;
- struct hdmi_phy_data phy;
- struct hdmi_core_data core;
-
- struct hdmi_config cfg;
-
- struct clk *sys_clk;
- struct regulator *vdda_reg;
-
- bool core_enabled;
-
- struct omap_dss_device output;
-} hdmi;
+static struct omap_hdmi hdmi;
+static struct hdmi_core_data hdmi5_core;
static int hdmi_runtime_get(void)
{
@@ -235,7 +219,7 @@ static int hdmi_power_on_full(struct omap_dss_device *dssdev)
if (r)
goto err_phy_pwr;
- hdmi5_configure(&hdmi.core, &hdmi.wp, &hdmi.cfg);
+ hdmi5_configure(hdmi.core, &hdmi.wp, &hdmi.cfg);
/* bypass TV gamma table */
dispc_enable_gamma_table(0);
@@ -326,7 +310,7 @@ static void hdmi_dump_regs(struct seq_file *s)
hdmi_wp_dump(&hdmi.wp, s);
hdmi_pll_dump(&hdmi.pll, s);
hdmi_phy_dump(&hdmi.phy, s);
- hdmi5_core_dump(&hdmi.core, s);
+ hdmi5_core_dump(hdmi.core, s);
hdmi_runtime_put();
mutex_unlock(&hdmi.lock);
@@ -346,7 +330,7 @@ static int read_edid(u8 *buf, int len)
/* No-idle mode */
REG_FLD_MOD(hdmi.wp.base, HDMI_WP_SYSCONFIG, 1, 3, 2);
- r = hdmi5_read_edid(&hdmi.core, buf, len);
+ r = hdmi5_read_edid(hdmi.core, buf, len);
REG_FLD_MOD(hdmi.wp.base, HDMI_WP_SYSCONFIG, idlemode, 3, 2);
@@ -703,6 +687,8 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
int irq;
hdmi.pdev = pdev;
+ hdmi.core = &hdmi5_core;
+ dev_set_drvdata(&pdev->dev, &hdmi);
mutex_init(&hdmi.lock);
@@ -724,7 +710,7 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
if (r)
return r;
- r = hdmi5_core_init(pdev, &hdmi.core);
+ r = hdmi5_core_init(pdev, hdmi.core);
if (r)
return r;
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 05/13] OMAPDSS: hdmi_audio: Integrated ASoC DAI component driver implementation
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Integrate ASoC DAI component driver in to the OMAP hdmi driver. The
patch also updates the relevant entry in ti,omap5-dss DT binding
document. The driver registers a dummy hdmi codec driver and a
simple-card driver to produce a fully functional ALSA device. The DAI
driver is implemented in hdmi_audio.c, but it still needs to be
registered from hdmi4.c or hdmi5.c.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/Kconfig | 3 +
drivers/video/fbdev/omap2/dss/Makefile | 1 +
drivers/video/fbdev/omap2/dss/hdmi.h | 35 ++-
drivers/video/fbdev/omap2/dss/hdmi_audio.c | 323 ++++++++++++++++++++++++++++
4 files changed, 358 insertions(+), 4 deletions(-)
create mode 100644 drivers/video/fbdev/omap2/dss/hdmi_audio.c
diff --git a/drivers/video/fbdev/omap2/dss/Kconfig b/drivers/video/fbdev/omap2/dss/Kconfig
index 3d5eb6c..41fb8ac 100644
--- a/drivers/video/fbdev/omap2/dss/Kconfig
+++ b/drivers/video/fbdev/omap2/dss/Kconfig
@@ -67,6 +67,9 @@ config OMAP2_DSS_VENC
config OMAP2_DSS_HDMI_COMMON
bool
+config OMAP_DSS_HDMI_AUDIO
+ bool
+
config OMAP4_DSS_HDMI
bool "HDMI support for OMAP4"
default y
diff --git a/drivers/video/fbdev/omap2/dss/Makefile b/drivers/video/fbdev/omap2/dss/Makefile
index 245f933..a95d715 100644
--- a/drivers/video/fbdev/omap2/dss/Makefile
+++ b/drivers/video/fbdev/omap2/dss/Makefile
@@ -13,6 +13,7 @@ omapdss-$(CONFIG_OMAP2_DSS_SDI) += sdi.o
omapdss-$(CONFIG_OMAP2_DSS_DSI) += dsi.o
omapdss-$(CONFIG_OMAP2_DSS_HDMI_COMMON) += hdmi_common.o hdmi_wp.o hdmi_pll.o \
hdmi_phy.o
+omapdss-$(CONFIG_OMAP_DSS_HDMI_AUDIO) += hdmi_audio.o
omapdss-$(CONFIG_OMAP4_DSS_HDMI) += hdmi4.o hdmi4_core.o
omapdss-$(CONFIG_OMAP5_DSS_HDMI) += hdmi5.o hdmi5_core.o
ccflags-$(CONFIG_OMAP2_DSS_DEBUG) += -DDEBUG
diff --git a/drivers/video/fbdev/omap2/dss/hdmi.h b/drivers/video/fbdev/omap2/dss/hdmi.h
index 075357e..61ad4ce 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi.h
+++ b/drivers/video/fbdev/omap2/dss/hdmi.h
@@ -25,6 +25,9 @@
#include <linux/hdmi.h>
#include <video/omapdss.h>
+#include <sound/dmaengine_pcm.h>
+#include <uapi/sound/asound.h>
+
#include "dss.h"
/* HDMI Wrapper */
@@ -337,7 +340,32 @@ int hdmi_phy_parse_lanes(struct hdmi_phy_data *phy, const u32 *lanes);
int hdmi_parse_lanes_of(struct platform_device *pdev, struct device_node *ep,
struct hdmi_phy_data *phy);
-#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO) || defined(CONFIG_OMAP5_DSS_HDMI_AUDIO)
+/* HDMI audio support */
+struct hdmi_audio_data {
+ /* These should be initialized when hdmi_audio_register() is called */
+ struct snd_soc_dai_driver *hdmi_dai_drv;
+
+ int (*audio_start)(struct hdmi_core_data *core,
+ struct hdmi_wp_data *wp);
+ void (*audio_stop)(struct hdmi_core_data *core,
+ struct hdmi_wp_data *wp);
+ int (*audio_config)(struct hdmi_core_data *core,
+ struct hdmi_wp_data *wp,
+ struct omap_dss_audio *audio,
+ u32 pclk);
+
+ /* These are for audio implementation's private use */
+ struct snd_dmaengine_dai_dma_data dma_data;
+ struct omap_dss_audio dss_audio;
+ struct snd_aes_iec958 iec;
+ struct snd_cea_861_aud_if cea;
+ struct platform_device *codec_pdev;
+ struct platform_device *card_pdev;
+};
+
+int hdmi_audio_register(struct platform_device *pdev);
+void hdmi_audio_unregister(struct platform_device *pdev);
+
int hdmi_compute_acr(u32 pclk, u32 sample_freq, u32 *n, u32 *cts);
int hdmi_wp_audio_enable(struct hdmi_wp_data *wp, bool enable);
int hdmi_wp_audio_core_req_enable(struct hdmi_wp_data *wp, bool enable);
@@ -345,9 +373,9 @@ void hdmi_wp_audio_config_format(struct hdmi_wp_data *wp,
struct hdmi_audio_format *aud_fmt);
void hdmi_wp_audio_config_dma(struct hdmi_wp_data *wp,
struct hdmi_audio_dma *aud_dma);
-static inline bool hdmi_mode_has_audio(int mode)
+static inline bool hdmi_mode_has_audio(struct hdmi_config *cfg)
{
- return mode = HDMI_HDMI ? true : false;
+ return cfg->hdmi_dvi_mode = HDMI_HDMI ? true : false;
}
/* HDMI DRV data */
@@ -374,4 +402,3 @@ struct omap_hdmi {
};
#endif
-#endif
diff --git a/drivers/video/fbdev/omap2/dss/hdmi_audio.c b/drivers/video/fbdev/omap2/dss/hdmi_audio.c
new file mode 100644
index 0000000..7b53a5f
--- /dev/null
+++ b/drivers/video/fbdev/omap2/dss/hdmi_audio.c
@@ -0,0 +1,323 @@
+/*
+ * OMAP4+ HDMI audio
+ *
+ * Copyright (C) 2014 Texas Instruments Incorporated
+ *
+ * Authors: Jyri Sarha <jsarha@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.
+ *
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/err.h>
+#include <linux/string.h>
+#include <linux/platform_device.h>
+#include <sound/soc.h>
+#include <sound/pcm_params.h>
+#include <sound/dmaengine_pcm.h>
+#include <uapi/sound/asound.h>
+#include <sound/asoundef.h>
+#include <sound/omap-pcm.h>
+#include <sound/simple_card.h>
+
+#include "hdmi.h"
+
+static int hdmi_dai_startup(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct omap_hdmi *hd = snd_soc_dai_get_drvdata(dai);
+ struct hdmi_audio_data *ad = &hd->audio;
+ int ret;
+ /*
+ * Make sure that the period bytes are multiple of the DMA packet size.
+ * Largest packet size we use is 32 32-bit words = 128 bytes
+ */
+ ret = snd_pcm_hw_constraint_step(substream->runtime, 0,
+ SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 128);
+ if (ret < 0) {
+ dev_err(dai->dev, "could not apply constraint\n");
+ return ret;
+ }
+
+ mutex_lock(&hd->lock);
+ ret = hdmi_mode_has_audio(&hd->cfg);
+ mutex_unlock(&hd->lock);
+ if (!ret) {
+ dev_err(dai->dev, "audio not supported\n");
+ return -ENODEV;
+ }
+
+ snd_soc_dai_set_dma_data(dai, substream, &ad->dma_data);
+
+ return 0;
+}
+
+static int hdmi_dai_prepare(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct omap_hdmi *hd = snd_soc_dai_get_drvdata(dai);
+ int r;
+
+ mutex_lock(&hd->lock);
+
+ if (!hdmi_mode_has_audio(&hd->cfg)) {
+ r = -EPERM;
+ goto err;
+ }
+
+ r = hdmi_wp_audio_enable(&hd->wp, true);
+
+err:
+ mutex_unlock(&hd->lock);
+ return r;
+}
+
+static int hdmi_dai_hw_params(struct snd_pcm_substream *substream,
+ struct snd_pcm_hw_params *params,
+ struct snd_soc_dai *dai)
+{
+ struct omap_hdmi *hd = snd_soc_dai_get_drvdata(dai);
+ struct hdmi_audio_data *ad = &hd->audio;
+ struct snd_aes_iec958 *iec = &ad->iec;
+ struct snd_cea_861_aud_if *cea = &ad->cea;
+ int err;
+
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S16_LE:
+ ad->dma_data.maxburst = 16;
+ break;
+ case SNDRV_PCM_FORMAT_S24_LE:
+ ad->dma_data.maxburst = 32;
+ break;
+ default:
+ dev_err(dai->dev, "format not supported!\n");
+ return -EINVAL;
+ }
+
+ ad->dss_audio.iec = iec;
+ ad->dss_audio.cea = cea;
+ /*
+ * fill the IEC-60958 channel status word
+ */
+ /* initialize the word bytes */
+ memset(iec->status, 0, sizeof(iec->status));
+
+ /* specify IEC-60958-3 (commercial use) */
+ iec->status[0] &= ~IEC958_AES0_PROFESSIONAL;
+
+ /* specify that the audio is LPCM*/
+ iec->status[0] &= ~IEC958_AES0_NONAUDIO;
+
+ iec->status[0] |= IEC958_AES0_CON_NOT_COPYRIGHT;
+
+ iec->status[0] |= IEC958_AES0_CON_EMPHASIS_NONE;
+
+ iec->status[0] |= IEC958_AES1_PRO_MODE_NOTID;
+
+ iec->status[1] = IEC958_AES1_CON_GENERAL;
+
+ iec->status[2] |= IEC958_AES2_CON_SOURCE_UNSPEC;
+
+ iec->status[2] |= IEC958_AES2_CON_CHANNEL_UNSPEC;
+
+ switch (params_rate(params)) {
+ case 32000:
+ iec->status[3] |= IEC958_AES3_CON_FS_32000;
+ break;
+ case 44100:
+ iec->status[3] |= IEC958_AES3_CON_FS_44100;
+ break;
+ case 48000:
+ iec->status[3] |= IEC958_AES3_CON_FS_48000;
+ break;
+ case 88200:
+ iec->status[3] |= IEC958_AES3_CON_FS_88200;
+ break;
+ case 96000:
+ iec->status[3] |= IEC958_AES3_CON_FS_96000;
+ break;
+ case 176400:
+ iec->status[3] |= IEC958_AES3_CON_FS_176400;
+ break;
+ case 192000:
+ iec->status[3] |= IEC958_AES3_CON_FS_192000;
+ break;
+ default:
+ dev_err(dai->dev, "rate not supported!\n");
+ return -EINVAL;
+ }
+
+ /* specify the clock accuracy */
+ iec->status[3] |= IEC958_AES3_CON_CLOCK_1000PPM;
+
+ /*
+ * specify the word length. The same word length value can mean
+ * two different lengths. Hence, we need to specify the maximum
+ * word length as well.
+ */
+ switch (params_format(params)) {
+ case SNDRV_PCM_FORMAT_S16_LE:
+ iec->status[4] |= IEC958_AES4_CON_WORDLEN_20_16;
+ iec->status[4] &= ~IEC958_AES4_CON_MAX_WORDLEN_24;
+ break;
+ case SNDRV_PCM_FORMAT_S24_LE:
+ iec->status[4] |= IEC958_AES4_CON_WORDLEN_24_20;
+ iec->status[4] |= IEC958_AES4_CON_MAX_WORDLEN_24;
+ break;
+ default:
+ dev_err(dai->dev, "format not supported!\n");
+ return -EINVAL;
+ }
+
+ /*
+ * Fill the CEA-861 audio infoframe (see spec for details)
+ */
+
+ cea->db1_ct_cc = (params_channels(params) - 1)
+ & CEA861_AUDIO_INFOFRAME_DB1CC;
+ cea->db1_ct_cc |= CEA861_AUDIO_INFOFRAME_DB1CT_FROM_STREAM;
+
+ cea->db2_sf_ss = CEA861_AUDIO_INFOFRAME_DB2SF_FROM_STREAM;
+ cea->db2_sf_ss |= CEA861_AUDIO_INFOFRAME_DB2SS_FROM_STREAM;
+
+ cea->db3 = 0; /* not used, all zeros */
+
+ /*
+ * The OMAP HDMI IP requires to use the 8-channel channel code when
+ * transmitting more than two channels.
+ */
+ if (params_channels(params) = 2)
+ cea->db4_ca = 0x0;
+ else
+ cea->db4_ca = 0x13;
+
+ cea->db5_dminh_lsv = CEA861_AUDIO_INFOFRAME_DB5_DM_INH_PROHIBITED;
+ /* the expression is trivial but makes clear what we are doing */
+ cea->db5_dminh_lsv |= (0 & CEA861_AUDIO_INFOFRAME_DB5_LSV);
+
+ mutex_lock(&hd->lock);
+
+ if (!hdmi_mode_has_audio(&hd->cfg)) {
+ err = -EPERM;
+ goto err;
+ }
+
+ err = ad->audio_config(hd->core, &hd->wp, &ad->dss_audio,
+ hd->cfg.timings.pixelclock);
+err:
+ mutex_unlock(&hd->lock);
+ return err;
+}
+
+static int hdmi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
+ struct snd_soc_dai *dai)
+{
+ struct omap_hdmi *hd = snd_soc_dai_get_drvdata(dai);
+ struct hdmi_audio_data *ad = &hd->audio;
+ int err = 0;
+
+ switch (cmd) {
+ case SNDRV_PCM_TRIGGER_START:
+ case SNDRV_PCM_TRIGGER_RESUME:
+ case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
+ err = ad->audio_start(hd->core, &hd->wp);
+ break;
+ case SNDRV_PCM_TRIGGER_STOP:
+ case SNDRV_PCM_TRIGGER_SUSPEND:
+ case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
+ ad->audio_start(hd->core, &hd->wp);
+ break;
+ default:
+ err = -EINVAL;
+ }
+ return err;
+}
+
+static void hdmi_dai_shutdown(struct snd_pcm_substream *substream,
+ struct snd_soc_dai *dai)
+{
+ struct omap_hdmi *hd = snd_soc_dai_get_drvdata(dai);
+
+ hdmi_wp_audio_enable(&hd->wp, false);
+}
+
+static const struct snd_soc_dai_ops hdmi_dai_ops = {
+ .startup = hdmi_dai_startup,
+ .hw_params = hdmi_dai_hw_params,
+ .prepare = hdmi_dai_prepare,
+ .trigger = hdmi_dai_trigger,
+ .shutdown = hdmi_dai_shutdown,
+};
+
+static const struct snd_soc_component_driver omap_hdmi_component = {
+ .name = "omapdss_hdmi",
+};
+
+int hdmi_audio_register(struct platform_device *pdev)
+{
+ struct omap_hdmi *hd = dev_get_drvdata(&pdev->dev);
+ struct hdmi_audio_data *ad = &hd->audio;
+ struct device *dev = &pdev->dev;
+ struct asoc_simple_card_info card_info = {
+ .codec_dai.name = "hdmi-hifi",
+ };
+ char nametmp[64];
+ int ret;
+
+ ad->dma_data.addr = hdmi_wp_get_audio_dma_addr(&hd->wp);
+ ad->dma_data.filter_data = "audio_tx";
+ ad->dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
+ ad->hdmi_dai_drv->ops = &hdmi_dai_ops,
+
+ ret = snd_soc_register_component(dev, &omap_hdmi_component,
+ ad->hdmi_dai_drv, 1);
+ if (ret)
+ return ret;
+
+ ret = omap_pcm_platform_register(dev);
+ if (ret)
+ return ret;
+
+ ad->codec_pdev = platform_device_register_data(dev, "hdmi-audio-codec",
+ 0, NULL, 0);
+ if (IS_ERR(ad->codec_pdev)) {
+ snd_soc_unregister_component(dev);
+ return PTR_ERR(ad->codec_pdev);
+ }
+
+ snprintf(nametmp, sizeof(nametmp), "HDMI %s", dev_name(dev));
+ card_info.name = devm_kstrdup(dev, nametmp, GFP_KERNEL);
+ card_info.card = card_info.name;
+ card_info.cpu_dai.name = dev_name(dev);
+ card_info.platform = dev_name(dev);
+ card_info.codec = dev_name(&ad->codec_pdev->dev);
+
+ ad->card_pdev + platform_device_register_data(dev, "asoc-simple-card", 0,
+ &card_info, sizeof(card_info));
+ if (IS_ERR(ad->card_pdev)) {
+ snd_soc_unregister_component(dev);
+ platform_device_unregister(ad->codec_pdev);
+ return PTR_ERR(ad->card_pdev);
+ }
+ return 0;
+}
+
+void hdmi_audio_unregister(struct platform_device *pdev)
+{
+ struct omap_hdmi *hd = dev_get_drvdata(&pdev->dev);
+ struct hdmi_audio_data *ad = &hd->audio;
+
+ platform_device_unregister(ad->card_pdev);
+ platform_device_unregister(ad->codec_pdev);
+ snd_soc_unregister_component(&pdev->dev);
+}
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 06/13] OMAPDSS: Kconfig: Update OMAP4_DSS_HDMI_AUDIO option
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Add help section to OMAP4_DSS_HDMI_AUDIO with dependency to
OMAP4_DSS_HDMI and select for newly created OMAP_DSS_HDMI_AUDIO. The
OMAP_DSS_HDMI_AUDIO option is for common HDMI audio support and it is
is dependent on SND_SOC.
Also selects SND_OMAP_SOC, SND_SOC_HDMI_CODEC, and SND_SIMPLE_CARD for
OMAP2_DSS if OMAP_DSS_HDMI_AUDIO is enabled.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/Kconfig | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/omap2/dss/Kconfig b/drivers/video/fbdev/omap2/dss/Kconfig
index 41fb8ac..701164a 100644
--- a/drivers/video/fbdev/omap2/dss/Kconfig
+++ b/drivers/video/fbdev/omap2/dss/Kconfig
@@ -6,6 +6,9 @@ menuconfig OMAP2_DSS
select VIDEOMODE_HELPERS
select OMAP2_DSS_INIT
select HDMI
+ select SND_OMAP_SOC if OMAP_DSS_HDMI_AUDIO
+ select SND_SOC_HDMI_CODEC if OMAP_DSS_HDMI_AUDIO
+ select SND_SIMPLE_CARD if OMAP_DSS_HDMI_AUDIO
help
OMAP2+ Display Subsystem support.
@@ -78,7 +81,17 @@ config OMAP4_DSS_HDMI
HDMI support for OMAP4 based SoCs.
config OMAP4_DSS_HDMI_AUDIO
- bool
+ bool "HDMI audio support for OMAP4"
+ depends on OMAP4_DSS_HDMI
+ depends on SND_SOC=y || OMAP2_DSS = SND_SOC
+ select OMAP_DSS_HDMI_AUDIO
+ default y
+ help
+ HDMI audio support for OMAP4 based SoCs. Adds integrated
+ ASoC Digital Audio Interface component driver into OMAPDSS
+ module. If enabled OMAP2_DSS selects SND_OMAP_SOC,
+ SND_SOC_HDMI_CODEC, and SND_SIMPLE_CARD for full HDMI
+ audio support.
config OMAP5_DSS_HDMI
bool "HDMI support for OMAP5"
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 07/13] OMAPDSS: hdmi4: Register HDMI audio ASoC drivers from HDMI driver
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Call register and unregister functions form hdmi_audio.c. Register
function registers the integrated cpu dai, dummy HDMI codec, and
simple-card machine driver for complete HDMI audio support.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/hdmi4.c | 34 +++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4.c b/drivers/video/fbdev/omap2/dss/hdmi4.c
index 58f1295..3840f3f 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi4.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi4.c
@@ -34,6 +34,9 @@
#include <linux/regulator/consumer.h>
#include <video/omapdss.h>
+#include <sound/soc.h>
+#include <sound/soc-dai.h>
+
#include "hdmi4_core.h"
#include "dss.h"
#include "dss_features.h"
@@ -656,6 +659,21 @@ err:
return r;
}
+#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
+static struct snd_soc_dai_driver omap_hdmi_dai = {
+ .name = "omap4-hdmi-dai",
+ .playback = {
+ .channels_min = 2,
+ .channels_max = 8,
+ .rates = (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |
+ SNDRV_PCM_RATE_192000),
+ .formats = SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S24_LE,
+ },
+};
+#endif
+
/* HDMI HW IP initialisation */
static int omapdss_hdmihw_probe(struct platform_device *pdev)
{
@@ -714,6 +732,19 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
hdmi_init_output(pdev);
+#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
+ hdmi.audio.hdmi_dai_drv = &omap_hdmi_dai;
+ hdmi.audio.audio_start = hdmi4_audio_start;
+ hdmi.audio.audio_stop = hdmi4_audio_stop;
+ hdmi.audio.audio_config = hdmi4_audio_config;
+ r = hdmi_audio_register(pdev);
+ if (r) {
+ DSSERR("Registering HDMI audio failed\n");
+ hdmi_uninit_output(pdev);
+ pm_runtime_disable(&pdev->dev);
+ return r;
+ }
+#endif
dss_debugfs_create_file("hdmi", hdmi_dump_regs);
return 0;
@@ -721,6 +752,9 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
static int __exit omapdss_hdmihw_remove(struct platform_device *pdev)
{
+#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
+ hdmi_audio_unregister(pdev);
+#endif
hdmi_uninit_output(pdev);
pm_runtime_disable(&pdev->dev);
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 08/13] OMAPDSS: Kconfig: Update OMAP5_DSS_HDMI_AUDIO option
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Add help section to OMAP5_DSS_HDMI_AUDIO with dependency to
OMAP5_DSS_HDMI and select for OMAP_DSS_HDMI_AUDIO.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/Kconfig | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/omap2/dss/Kconfig b/drivers/video/fbdev/omap2/dss/Kconfig
index 701164a..abd2e92 100644
--- a/drivers/video/fbdev/omap2/dss/Kconfig
+++ b/drivers/video/fbdev/omap2/dss/Kconfig
@@ -103,8 +103,17 @@ config OMAP5_DSS_HDMI
specification.
config OMAP5_DSS_HDMI_AUDIO
+ bool "HDMI audio support for OMAP5"
depends on OMAP5_DSS_HDMI
- bool
+ depends on SND_SOC=y || OMAP2_DSS = SND_SOC
+ select OMAP_DSS_HDMI_AUDIO
+ default y
+ help
+ HDMI audio support for OMAP5 based SoCs. Adds integrated
+ ASoC Digital Audio Interface component driver into OMAPDSS
+ module. If enabled OMAP2_DSS selects SND_OMAP_SOC,
+ SND_SOC_HDMI_CODEC, and SND_SIMPLE_CARD for full HDMI
+ audio support.
config OMAP2_DSS_SDI
bool "SDI support"
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 09/13] OMAPDSS: hdmi5: Register HDMI audio ASoC drivers from HDMI driver
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Call register and unregister functions form hdmi_audio.c. Register
function registers the integrated cpu dai, dummy HDMI codec, and
simple-card machine driver for complete HDMI audio support.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/hdmi5.c | 46 +++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi5.c b/drivers/video/fbdev/omap2/dss/hdmi5.c
index 83925a9..a2b2589 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi5.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi5.c
@@ -39,6 +39,9 @@
#include <linux/regulator/consumer.h>
#include <video/omapdss.h>
+#include <sound/soc.h>
+#include <sound/soc-dai.h>
+
#include "hdmi5_core.h"
#include "dss.h"
#include "dss_features.h"
@@ -680,6 +683,33 @@ err:
return r;
}
+#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO)
+static int audio_start(struct hdmi_core_data *core, struct hdmi_wp_data *wp)
+{
+ hdmi_wp_audio_core_req_enable(wp, true);
+
+ return 0;
+}
+
+static void audio_stop(struct hdmi_core_data *core, struct hdmi_wp_data *wp)
+{
+ hdmi_wp_audio_core_req_enable(wp, false);
+}
+
+static struct snd_soc_dai_driver omap_hdmi_dai = {
+ .name = "omap5-hdmi-dai",
+ .playback = {
+ .channels_min = 2,
+ .channels_max = 8,
+ .rates = (SNDRV_PCM_RATE_32000 | SNDRV_PCM_RATE_44100 |
+ SNDRV_PCM_RATE_48000 | SNDRV_PCM_RATE_88200 |
+ SNDRV_PCM_RATE_96000 | SNDRV_PCM_RATE_176400 |
+ SNDRV_PCM_RATE_192000),
+ .formats = SNDRV_PCM_FMTBIT_S16_LE,
+ },
+};
+#endif
+
/* HDMI HW IP initialisation */
static int omapdss_hdmihw_probe(struct platform_device *pdev)
{
@@ -738,6 +768,19 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
hdmi_init_output(pdev);
+#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO)
+ hdmi.audio.hdmi_dai_drv = &omap_hdmi_dai;
+ hdmi.audio.audio_start = audio_start;
+ hdmi.audio.audio_stop = audio_stop;
+ hdmi.audio.audio_config = hdmi5_audio_config;
+ r = hdmi_audio_register(pdev);
+ if (r) {
+ DSSERR("Registering HDMI audio failed\n");
+ hdmi_uninit_output(pdev);
+ pm_runtime_disable(&pdev->dev);
+ return r;
+ }
+#endif
dss_debugfs_create_file("hdmi", hdmi_dump_regs);
return 0;
@@ -745,6 +788,9 @@ static int omapdss_hdmihw_probe(struct platform_device *pdev)
static int __exit omapdss_hdmihw_remove(struct platform_device *pdev)
{
+#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO)
+ hdmi_audio_unregister(pdev);
+#endif
hdmi_uninit_output(pdev);
pm_runtime_disable(&pdev->dev);
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 10/13] ASoC: omap: Remove obsolete HDMI audio code and Kconfig options
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Removes omap-hdmi DAI driver, omap-hdmi-card driver, the related
Kconfig options, and Makefile entries. The HDMI DAI drivers has been
integrated directly to OMAP4+ HDMI drivers and simple-card driver is
used instead of omap-hdmi-card driver.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
sound/soc/omap/Kconfig | 13 --
sound/soc/omap/Makefile | 4 -
sound/soc/omap/omap-hdmi-card.c | 87 ----------
sound/soc/omap/omap-hdmi.c | 364 ---------------------------------------
sound/soc/omap/omap-hdmi.h | 38 ----
5 files changed, 506 deletions(-)
delete mode 100644 sound/soc/omap/omap-hdmi-card.c
delete mode 100644 sound/soc/omap/omap-hdmi.c
delete mode 100644 sound/soc/omap/omap-hdmi.h
diff --git a/sound/soc/omap/Kconfig b/sound/soc/omap/Kconfig
index d44463a..5c7b0aa 100644
--- a/sound/soc/omap/Kconfig
+++ b/sound/soc/omap/Kconfig
@@ -12,9 +12,6 @@ config SND_OMAP_SOC_MCBSP
config SND_OMAP_SOC_MCPDM
tristate
-config SND_OMAP_SOC_HDMI
- tristate
-
config SND_OMAP_SOC_N810
tristate "SoC Audio support for Nokia N810"
depends on SND_OMAP_SOC && MACH_NOKIA_N810 && I2C
@@ -100,16 +97,6 @@ config SND_OMAP_SOC_OMAP_ABE_TWL6040
- PandaBoard (4430)
- PandaBoardES (4460)
-config SND_OMAP_SOC_OMAP_HDMI
- tristate "SoC Audio support for Texas Instruments OMAP HDMI"
- depends on SND_OMAP_SOC && OMAP4_DSS_HDMI && OMAP2_DSS
- select SND_OMAP_SOC_HDMI
- select SND_SOC_HDMI_CODEC
- select OMAP4_DSS_HDMI_AUDIO
- help
- Say Y if you want to add support for SoC HDMI audio on Texas Instruments
- OMAP4 chips
-
config SND_OMAP_SOC_OMAP3_PANDORA
tristate "SoC Audio support for OMAP3 Pandora"
depends on TWL4030_CORE && SND_OMAP_SOC && MACH_OMAP3_PANDORA
diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile
index a725905..5832fe1 100644
--- a/sound/soc/omap/Makefile
+++ b/sound/soc/omap/Makefile
@@ -3,13 +3,11 @@ snd-soc-omap-objs := omap-pcm.o
snd-soc-omap-dmic-objs := omap-dmic.o
snd-soc-omap-mcbsp-objs := omap-mcbsp.o mcbsp.o
snd-soc-omap-mcpdm-objs := omap-mcpdm.o
-snd-soc-omap-hdmi-objs := omap-hdmi.o
obj-$(CONFIG_SND_OMAP_SOC) += snd-soc-omap.o
obj-$(CONFIG_SND_OMAP_SOC_DMIC) += snd-soc-omap-dmic.o
obj-$(CONFIG_SND_OMAP_SOC_MCBSP) += snd-soc-omap-mcbsp.o
obj-$(CONFIG_SND_OMAP_SOC_MCPDM) += snd-soc-omap-mcpdm.o
-obj-$(CONFIG_SND_OMAP_SOC_HDMI) += snd-soc-omap-hdmi.o
# OMAP Machine Support
snd-soc-n810-objs := n810.o
@@ -20,7 +18,6 @@ snd-soc-am3517evm-objs := am3517evm.o
snd-soc-omap-abe-twl6040-objs := omap-abe-twl6040.o
snd-soc-omap-twl4030-objs := omap-twl4030.o
snd-soc-omap3pandora-objs := omap3pandora.o
-snd-soc-omap-hdmi-card-objs := omap-hdmi-card.o
obj-$(CONFIG_SND_OMAP_SOC_N810) += snd-soc-n810.o
obj-$(CONFIG_SND_OMAP_SOC_RX51) += snd-soc-rx51.o
@@ -30,4 +27,3 @@ obj-$(CONFIG_SND_OMAP_SOC_AM3517EVM) += snd-soc-am3517evm.o
obj-$(CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040) += snd-soc-omap-abe-twl6040.o
obj-$(CONFIG_SND_OMAP_SOC_OMAP_TWL4030) += snd-soc-omap-twl4030.o
obj-$(CONFIG_SND_OMAP_SOC_OMAP3_PANDORA) += snd-soc-omap3pandora.o
-obj-$(CONFIG_SND_OMAP_SOC_OMAP_HDMI) += snd-soc-omap-hdmi-card.o
diff --git a/sound/soc/omap/omap-hdmi-card.c b/sound/soc/omap/omap-hdmi-card.c
deleted file mode 100644
index f649fe8..0000000
--- a/sound/soc/omap/omap-hdmi-card.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * omap-hdmi-card.c
- *
- * OMAP ALSA SoC machine driver for TI OMAP HDMI
- * Copyright (C) 2011 Texas Instruments Incorporated - http://www.ti.com/
- * Author: Ricardo Neri <ricardo.neri@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, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#include <linux/module.h>
-#include <sound/pcm.h>
-#include <sound/soc.h>
-#include <asm/mach-types.h>
-#include <video/omapdss.h>
-
-#define DRV_NAME "omap-hdmi-audio"
-
-static struct snd_soc_dai_link omap_hdmi_dai = {
- .name = "HDMI",
- .stream_name = "HDMI",
- .cpu_dai_name = "omap-hdmi-audio-dai",
- .platform_name = "omap-hdmi-audio-dai",
- .codec_name = "hdmi-audio-codec",
- .codec_dai_name = "hdmi-hifi",
-};
-
-static struct snd_soc_card snd_soc_omap_hdmi = {
- .name = "OMAPHDMI",
- .owner = THIS_MODULE,
- .dai_link = &omap_hdmi_dai,
- .num_links = 1,
-};
-
-static int omap_hdmi_probe(struct platform_device *pdev)
-{
- struct snd_soc_card *card = &snd_soc_omap_hdmi;
- int ret;
-
- card->dev = &pdev->dev;
-
- ret = snd_soc_register_card(card);
- if (ret) {
- dev_err(&pdev->dev, "snd_soc_register_card failed (%d)\n", ret);
- card->dev = NULL;
- return ret;
- }
- return 0;
-}
-
-static int omap_hdmi_remove(struct platform_device *pdev)
-{
- struct snd_soc_card *card = platform_get_drvdata(pdev);
-
- snd_soc_unregister_card(card);
- card->dev = NULL;
- return 0;
-}
-
-static struct platform_driver omap_hdmi_driver = {
- .driver = {
- .name = DRV_NAME,
- .owner = THIS_MODULE,
- },
- .probe = omap_hdmi_probe,
- .remove = omap_hdmi_remove,
-};
-
-module_platform_driver(omap_hdmi_driver);
-
-MODULE_AUTHOR("Ricardo Neri <ricardo.neri@ti.com>");
-MODULE_DESCRIPTION("OMAP HDMI machine ASoC driver");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:" DRV_NAME);
diff --git a/sound/soc/omap/omap-hdmi.c b/sound/soc/omap/omap-hdmi.c
deleted file mode 100644
index eb9c392..0000000
--- a/sound/soc/omap/omap-hdmi.c
+++ /dev/null
@@ -1,364 +0,0 @@
-/*
- * omap-hdmi.c
- *
- * OMAP ALSA SoC DAI driver for HDMI audio on OMAP4 processors.
- * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
- * Authors: Jorge Candelaria <jorge.candelaria@ti.com>
- * Ricardo Neri <ricardo.neri@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, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#include <linux/init.h>
-#include <linux/module.h>
-#include <linux/device.h>
-#include <sound/core.h>
-#include <sound/pcm.h>
-#include <sound/pcm_params.h>
-#include <sound/initval.h>
-#include <sound/soc.h>
-#include <sound/asound.h>
-#include <sound/asoundef.h>
-#include <sound/dmaengine_pcm.h>
-#include <video/omapdss.h>
-#include <sound/omap-pcm.h>
-
-#include "omap-hdmi.h"
-
-#define DRV_NAME "omap-hdmi-audio-dai"
-
-struct hdmi_priv {
- struct snd_dmaengine_dai_dma_data dma_data;
- unsigned int dma_req;
- struct omap_dss_audio dss_audio;
- struct snd_aes_iec958 iec;
- struct snd_cea_861_aud_if cea;
- struct omap_dss_device *dssdev;
-};
-
-static int omap_hdmi_dai_startup(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
- int err;
- /*
- * Make sure that the period bytes are multiple of the DMA packet size.
- * Largest packet size we use is 32 32-bit words = 128 bytes
- */
- err = snd_pcm_hw_constraint_step(substream->runtime, 0,
- SNDRV_PCM_HW_PARAM_PERIOD_BYTES, 128);
- if (err < 0) {
- dev_err(dai->dev, "could not apply constraint\n");
- return err;
- }
-
- if (!priv->dssdev->driver->audio_supported(priv->dssdev)) {
- dev_err(dai->dev, "audio not supported\n");
- return -ENODEV;
- }
-
- snd_soc_dai_set_dma_data(dai, substream, &priv->dma_data);
-
- return 0;
-}
-
-static int omap_hdmi_dai_prepare(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
-
- return priv->dssdev->driver->audio_enable(priv->dssdev);
-}
-
-static int omap_hdmi_dai_hw_params(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params,
- struct snd_soc_dai *dai)
-{
- struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
- struct snd_aes_iec958 *iec = &priv->iec;
- struct snd_cea_861_aud_if *cea = &priv->cea;
- int err = 0;
-
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
- priv->dma_data.maxburst = 16;
- break;
- case SNDRV_PCM_FORMAT_S24_LE:
- priv->dma_data.maxburst = 32;
- break;
- default:
- dev_err(dai->dev, "format not supported!\n");
- return -EINVAL;
- }
-
- /*
- * fill the IEC-60958 channel status word
- */
- /* initialize the word bytes */
- memset(iec->status, 0, sizeof(iec->status));
-
- /* specify IEC-60958-3 (commercial use) */
- iec->status[0] &= ~IEC958_AES0_PROFESSIONAL;
-
- /* specify that the audio is LPCM*/
- iec->status[0] &= ~IEC958_AES0_NONAUDIO;
-
- iec->status[0] |= IEC958_AES0_CON_NOT_COPYRIGHT;
-
- iec->status[0] |= IEC958_AES0_CON_EMPHASIS_NONE;
-
- iec->status[0] |= IEC958_AES1_PRO_MODE_NOTID;
-
- iec->status[1] = IEC958_AES1_CON_GENERAL;
-
- iec->status[2] |= IEC958_AES2_CON_SOURCE_UNSPEC;
-
- iec->status[2] |= IEC958_AES2_CON_CHANNEL_UNSPEC;
-
- switch (params_rate(params)) {
- case 32000:
- iec->status[3] |= IEC958_AES3_CON_FS_32000;
- break;
- case 44100:
- iec->status[3] |= IEC958_AES3_CON_FS_44100;
- break;
- case 48000:
- iec->status[3] |= IEC958_AES3_CON_FS_48000;
- break;
- case 88200:
- iec->status[3] |= IEC958_AES3_CON_FS_88200;
- break;
- case 96000:
- iec->status[3] |= IEC958_AES3_CON_FS_96000;
- break;
- case 176400:
- iec->status[3] |= IEC958_AES3_CON_FS_176400;
- break;
- case 192000:
- iec->status[3] |= IEC958_AES3_CON_FS_192000;
- break;
- default:
- dev_err(dai->dev, "rate not supported!\n");
- return -EINVAL;
- }
-
- /* specify the clock accuracy */
- iec->status[3] |= IEC958_AES3_CON_CLOCK_1000PPM;
-
- /*
- * specify the word length. The same word length value can mean
- * two different lengths. Hence, we need to specify the maximum
- * word length as well.
- */
- switch (params_format(params)) {
- case SNDRV_PCM_FORMAT_S16_LE:
- iec->status[4] |= IEC958_AES4_CON_WORDLEN_20_16;
- iec->status[4] &= ~IEC958_AES4_CON_MAX_WORDLEN_24;
- break;
- case SNDRV_PCM_FORMAT_S24_LE:
- iec->status[4] |= IEC958_AES4_CON_WORDLEN_24_20;
- iec->status[4] |= IEC958_AES4_CON_MAX_WORDLEN_24;
- break;
- default:
- dev_err(dai->dev, "format not supported!\n");
- return -EINVAL;
- }
-
- /*
- * Fill the CEA-861 audio infoframe (see spec for details)
- */
-
- cea->db1_ct_cc = (params_channels(params) - 1)
- & CEA861_AUDIO_INFOFRAME_DB1CC;
- cea->db1_ct_cc |= CEA861_AUDIO_INFOFRAME_DB1CT_FROM_STREAM;
-
- cea->db2_sf_ss = CEA861_AUDIO_INFOFRAME_DB2SF_FROM_STREAM;
- cea->db2_sf_ss |= CEA861_AUDIO_INFOFRAME_DB2SS_FROM_STREAM;
-
- cea->db3 = 0; /* not used, all zeros */
-
- /*
- * The OMAP HDMI IP requires to use the 8-channel channel code when
- * transmitting more than two channels.
- */
- if (params_channels(params) = 2)
- cea->db4_ca = 0x0;
- else
- cea->db4_ca = 0x13;
-
- cea->db5_dminh_lsv = CEA861_AUDIO_INFOFRAME_DB5_DM_INH_PROHIBITED;
- /* the expression is trivial but makes clear what we are doing */
- cea->db5_dminh_lsv |= (0 & CEA861_AUDIO_INFOFRAME_DB5_LSV);
-
- priv->dss_audio.iec = iec;
- priv->dss_audio.cea = cea;
-
- err = priv->dssdev->driver->audio_config(priv->dssdev,
- &priv->dss_audio);
-
- return err;
-}
-
-static int omap_hdmi_dai_trigger(struct snd_pcm_substream *substream, int cmd,
- struct snd_soc_dai *dai)
-{
- struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
- int err = 0;
-
- switch (cmd) {
- case SNDRV_PCM_TRIGGER_START:
- case SNDRV_PCM_TRIGGER_RESUME:
- case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
- err = priv->dssdev->driver->audio_start(priv->dssdev);
- break;
- case SNDRV_PCM_TRIGGER_STOP:
- case SNDRV_PCM_TRIGGER_SUSPEND:
- case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
- priv->dssdev->driver->audio_stop(priv->dssdev);
- break;
- default:
- err = -EINVAL;
- }
- return err;
-}
-
-static void omap_hdmi_dai_shutdown(struct snd_pcm_substream *substream,
- struct snd_soc_dai *dai)
-{
- struct hdmi_priv *priv = snd_soc_dai_get_drvdata(dai);
-
- priv->dssdev->driver->audio_disable(priv->dssdev);
-}
-
-static const struct snd_soc_dai_ops omap_hdmi_dai_ops = {
- .startup = omap_hdmi_dai_startup,
- .hw_params = omap_hdmi_dai_hw_params,
- .prepare = omap_hdmi_dai_prepare,
- .trigger = omap_hdmi_dai_trigger,
- .shutdown = omap_hdmi_dai_shutdown,
-};
-
-static struct snd_soc_dai_driver omap_hdmi_dai = {
- .playback = {
- .channels_min = 2,
- .channels_max = 8,
- .rates = OMAP_HDMI_RATES,
- .formats = OMAP_HDMI_FORMATS,
- },
- .ops = &omap_hdmi_dai_ops,
-};
-
-static const struct snd_soc_component_driver omap_hdmi_component = {
- .name = DRV_NAME,
-};
-
-static int omap_hdmi_probe(struct platform_device *pdev)
-{
- int ret;
- struct resource *hdmi_rsrc;
- struct hdmi_priv *hdmi_data;
- bool hdmi_dev_found = false;
-
- hdmi_data = devm_kzalloc(&pdev->dev, sizeof(*hdmi_data), GFP_KERNEL);
- if (hdmi_data = NULL) {
- dev_err(&pdev->dev, "Cannot allocate memory for HDMI data\n");
- return -ENOMEM;
- }
-
- hdmi_rsrc = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!hdmi_rsrc) {
- dev_err(&pdev->dev, "Cannot obtain IORESOURCE_MEM HDMI\n");
- return -ENODEV;
- }
-
- hdmi_data->dma_data.addr = hdmi_rsrc->start + OMAP_HDMI_AUDIO_DMA_PORT;
-
- hdmi_rsrc = platform_get_resource(pdev, IORESOURCE_DMA, 0);
- if (!hdmi_rsrc) {
- dev_err(&pdev->dev, "Cannot obtain IORESOURCE_DMA HDMI\n");
- return -ENODEV;
- }
-
- hdmi_data->dma_req = hdmi_rsrc->start;
- hdmi_data->dma_data.filter_data = &hdmi_data->dma_req;
- hdmi_data->dma_data.addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
-
- /*
- * TODO: We assume that there is only one DSS HDMI device. Future
- * OMAP implementations may support more than one HDMI devices and
- * we should provided separate audio support for all of them.
- */
- /* Find an HDMI device. */
- for_each_dss_dev(hdmi_data->dssdev) {
- omap_dss_get_device(hdmi_data->dssdev);
-
- if (!hdmi_data->dssdev->driver) {
- omap_dss_put_device(hdmi_data->dssdev);
- continue;
- }
-
- if (hdmi_data->dssdev->type = OMAP_DISPLAY_TYPE_HDMI) {
- hdmi_dev_found = true;
- break;
- }
- }
-
- if (!hdmi_dev_found) {
- dev_err(&pdev->dev, "no driver for HDMI display found\n");
- return -ENODEV;
- }
-
- dev_set_drvdata(&pdev->dev, hdmi_data);
- ret = snd_soc_register_component(&pdev->dev, &omap_hdmi_component,
- &omap_hdmi_dai, 1);
-
- if (ret)
- return ret;
-
- return omap_pcm_platform_register(&pdev->dev);
-}
-
-static int omap_hdmi_remove(struct platform_device *pdev)
-{
- struct hdmi_priv *hdmi_data = dev_get_drvdata(&pdev->dev);
-
- snd_soc_unregister_component(&pdev->dev);
-
- if (hdmi_data = NULL) {
- dev_err(&pdev->dev, "cannot obtain HDMi data\n");
- return -ENODEV;
- }
-
- omap_dss_put_device(hdmi_data->dssdev);
- return 0;
-}
-
-static struct platform_driver hdmi_dai_driver = {
- .driver = {
- .name = DRV_NAME,
- .owner = THIS_MODULE,
- },
- .probe = omap_hdmi_probe,
- .remove = omap_hdmi_remove,
-};
-
-module_platform_driver(hdmi_dai_driver);
-
-MODULE_AUTHOR("Jorge Candelaria <jorge.candelaria@ti.com>");
-MODULE_AUTHOR("Ricardo Neri <ricardo.neri@ti.com>");
-MODULE_DESCRIPTION("OMAP HDMI SoC Interface");
-MODULE_LICENSE("GPL");
-MODULE_ALIAS("platform:" DRV_NAME);
diff --git a/sound/soc/omap/omap-hdmi.h b/sound/soc/omap/omap-hdmi.h
deleted file mode 100644
index 6ad2bf4..0000000
--- a/sound/soc/omap/omap-hdmi.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * omap-hdmi.h
- *
- * Definitions for OMAP ALSA SoC DAI driver for HDMI audio on OMAP4 processors.
- * Copyright (C) 2010-2011 Texas Instruments Incorporated - http://www.ti.com/
- * Authors: Jorge Candelaria <jorge.candelaria@ti.com>
- * Ricardo Neri <ricardo.neri@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, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA
- *
- */
-
-#ifndef __OMAP_HDMI_H__
-#define __OMAP_HDMI_H__
-
-#define OMAP_HDMI_AUDIO_DMA_PORT 0x8c
-
-#define OMAP_HDMI_RATES (SNDRV_PCM_RATE_32000 | \
- SNDRV_PCM_RATE_44100 | SNDRV_PCM_RATE_48000 | \
- SNDRV_PCM_RATE_88200 | SNDRV_PCM_RATE_96000 | \
- SNDRV_PCM_RATE_176400 | SNDRV_PCM_RATE_192000)
-
-#define OMAP_HDMI_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | \
- SNDRV_PCM_FMTBIT_S24_LE)
-
-#endif
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 11/13] OMAPDSS: hdmi4: Remove callbacks for an external ASoC DAI driver
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Removes the OMAP4 HDMI audio callbacks for an external audio driver and
the old external DAI driver does not work anymore after this patch.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/hdmi4.c | 113 ---------------------------------
1 file changed, 113 deletions(-)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi4.c b/drivers/video/fbdev/omap2/dss/hdmi4.c
index 3840f3f..e3937fa 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi4.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi4.c
@@ -472,112 +472,6 @@ static int hdmi_read_edid(struct omap_dss_device *dssdev,
return r;
}
-#if defined(CONFIG_OMAP4_DSS_HDMI_AUDIO)
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
-{
- int r;
-
- mutex_lock(&hdmi.lock);
-
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
- r = -EPERM;
- goto err;
- }
-
- r = hdmi_wp_audio_enable(&hdmi.wp, true);
- if (r)
- goto err;
-
- mutex_unlock(&hdmi.lock);
- return 0;
-
-err:
- mutex_unlock(&hdmi.lock);
- return r;
-}
-
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
-{
- hdmi_wp_audio_enable(&hdmi.wp, false);
-}
-
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
-{
- return hdmi4_audio_start(&hdmi.core, &hdmi.wp);
-}
-
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
-{
- hdmi4_audio_stop(&hdmi.core, &hdmi.wp);
-}
-
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
-{
- bool r;
-
- mutex_lock(&hdmi.lock);
-
- r = hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode);
-
- mutex_unlock(&hdmi.lock);
- return r;
-}
-
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- int r;
- u32 pclk = hdmi.cfg.timings.pixelclock;
-
- mutex_lock(&hdmi.lock);
-
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
- r = -EPERM;
- goto err;
- }
-
- r = hdmi4_audio_config(&hdmi.core, &hdmi.wp, audio, pclk);
- if (r)
- goto err;
-
- mutex_unlock(&hdmi.lock);
- return 0;
-
-err:
- mutex_unlock(&hdmi.lock);
- return r;
-}
-#else
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
-{
- return -EPERM;
-}
-
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
-{
-}
-
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
-{
- return -EPERM;
-}
-
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
-{
-}
-
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
-{
- return false;
-}
-
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- return -EPERM;
-}
-#endif
-
static int hdmi_set_infoframe(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi)
{
@@ -606,13 +500,6 @@ static const struct omapdss_hdmi_ops hdmi_ops = {
.read_edid = hdmi_read_edid,
.set_infoframe = hdmi_set_infoframe,
.set_hdmi_mode = hdmi_set_hdmi_mode,
-
- .audio_enable = hdmi_audio_enable,
- .audio_disable = hdmi_audio_disable,
- .audio_start = hdmi_audio_start,
- .audio_stop = hdmi_audio_stop,
- .audio_supported = hdmi_audio_supported,
- .audio_config = hdmi_audio_config,
};
static void hdmi_init_output(struct platform_device *pdev)
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 12/13] OMAPDSS: hdmi5: Remove callbacks for an external ASoC DAI driver
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
Removes the OMAP5 HDMI audio callbacks for an external audio driver and
the old external DAI driver does not work anymore after this patch.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
drivers/video/fbdev/omap2/dss/hdmi5.c | 113 ---------------------------------
1 file changed, 113 deletions(-)
diff --git a/drivers/video/fbdev/omap2/dss/hdmi5.c b/drivers/video/fbdev/omap2/dss/hdmi5.c
index a2b2589..12d449d 100644
--- a/drivers/video/fbdev/omap2/dss/hdmi5.c
+++ b/drivers/video/fbdev/omap2/dss/hdmi5.c
@@ -496,112 +496,6 @@ static int hdmi_read_edid(struct omap_dss_device *dssdev,
return r;
}
-#if defined(CONFIG_OMAP5_DSS_HDMI_AUDIO)
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
-{
- int r;
-
- mutex_lock(&hdmi.lock);
-
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
- r = -EPERM;
- goto err;
- }
-
- r = hdmi_wp_audio_enable(&hdmi.wp, true);
- if (r)
- goto err;
-
- mutex_unlock(&hdmi.lock);
- return 0;
-
-err:
- mutex_unlock(&hdmi.lock);
- return r;
-}
-
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
-{
- hdmi_wp_audio_enable(&hdmi.wp, false);
-}
-
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
-{
- return hdmi_wp_audio_core_req_enable(&hdmi.wp, true);
-}
-
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
-{
- hdmi_wp_audio_core_req_enable(&hdmi.wp, false);
-}
-
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
-{
- bool r;
-
- mutex_lock(&hdmi.lock);
-
- r = hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode);
-
- mutex_unlock(&hdmi.lock);
- return r;
-}
-
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- int r;
- u32 pclk = hdmi.cfg.timings.pixelclock;
-
- mutex_lock(&hdmi.lock);
-
- if (!hdmi_mode_has_audio(hdmi.cfg.hdmi_dvi_mode)) {
- r = -EPERM;
- goto err;
- }
-
- r = hdmi5_audio_config(&hdmi.core, &hdmi.wp, audio, pclk);
- if (r)
- goto err;
-
- mutex_unlock(&hdmi.lock);
- return 0;
-
-err:
- mutex_unlock(&hdmi.lock);
- return r;
-}
-#else
-static int hdmi_audio_enable(struct omap_dss_device *dssdev)
-{
- return -EPERM;
-}
-
-static void hdmi_audio_disable(struct omap_dss_device *dssdev)
-{
-}
-
-static int hdmi_audio_start(struct omap_dss_device *dssdev)
-{
- return -EPERM;
-}
-
-static void hdmi_audio_stop(struct omap_dss_device *dssdev)
-{
-}
-
-static bool hdmi_audio_supported(struct omap_dss_device *dssdev)
-{
- return false;
-}
-
-static int hdmi_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- return -EPERM;
-}
-#endif
-
static int hdmi_set_infoframe(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi)
{
@@ -630,13 +524,6 @@ static const struct omapdss_hdmi_ops hdmi_ops = {
.read_edid = hdmi_read_edid,
.set_infoframe = hdmi_set_infoframe,
.set_hdmi_mode = hdmi_set_hdmi_mode,
-
- .audio_enable = hdmi_audio_enable,
- .audio_disable = hdmi_audio_disable,
- .audio_start = hdmi_audio_start,
- .audio_stop = hdmi_audio_stop,
- .audio_supported = hdmi_audio_supported,
- .audio_config = hdmi_audio_config,
};
static void hdmi_init_output(struct platform_device *pdev)
--
1.7.9.5
^ permalink raw reply related
* [PATCH v2 13/13] OMAPDSS: Remove all references to obsolete HDMI audio callbacks
From: Jyri Sarha @ 2014-06-27 18:38 UTC (permalink / raw)
To: alsa-devel, linux-fbdev, linux-omap
Cc: peter.ujfalusi, broonie, liam.r.girdwood, tomi.valkeinen,
detheridge, jyri.sarha, Jyri Sarha
In-Reply-To: <cover.1403894190.git.jsarha@ti.com>
In new model these callbacks are obsolete since the ASoC component
drivers are integrated into the HDMI drivers and no callbacks are
needed anymore.
Signed-off-by: Jyri Sarha <jsarha@ti.com>
---
.../fbdev/omap2/displays-new/connector-hdmi.c | 99 --------------------
.../fbdev/omap2/displays-new/encoder-tpd12s015.c | 56 -----------
include/video/omapdss.h | 31 ------
3 files changed, 186 deletions(-)
diff --git a/drivers/video/fbdev/omap2/displays-new/connector-hdmi.c b/drivers/video/fbdev/omap2/displays-new/connector-hdmi.c
index 131c6e2..dd36d71 100644
--- a/drivers/video/fbdev/omap2/displays-new/connector-hdmi.c
+++ b/drivers/video/fbdev/omap2/displays-new/connector-hdmi.c
@@ -170,98 +170,6 @@ static bool hdmic_detect(struct omap_dss_device *dssdev)
return in->ops.hdmi->detect(in);
}
-static int hdmic_audio_enable(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
- int r;
-
- /* enable audio only if the display is active */
- if (!omapdss_device_is_enabled(dssdev))
- return -EPERM;
-
- r = in->ops.hdmi->audio_enable(in);
- if (r)
- return r;
-
- dssdev->audio_state = OMAP_DSS_AUDIO_ENABLED;
-
- return 0;
-}
-
-static void hdmic_audio_disable(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- in->ops.hdmi->audio_disable(in);
-
- dssdev->audio_state = OMAP_DSS_AUDIO_DISABLED;
-}
-
-static int hdmic_audio_start(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
- int r;
-
- /*
- * No need to check the panel state. It was checked when trasitioning
- * to AUDIO_ENABLED.
- */
- if (dssdev->audio_state != OMAP_DSS_AUDIO_ENABLED)
- return -EPERM;
-
- r = in->ops.hdmi->audio_start(in);
- if (r)
- return r;
-
- dssdev->audio_state = OMAP_DSS_AUDIO_PLAYING;
-
- return 0;
-}
-
-static void hdmic_audio_stop(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- in->ops.hdmi->audio_stop(in);
-
- dssdev->audio_state = OMAP_DSS_AUDIO_ENABLED;
-}
-
-static bool hdmic_audio_supported(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- if (!omapdss_device_is_enabled(dssdev))
- return false;
-
- return in->ops.hdmi->audio_supported(in);
-}
-
-static int hdmic_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
- int r;
-
- /* config audio only if the display is active */
- if (!omapdss_device_is_enabled(dssdev))
- return -EPERM;
-
- r = in->ops.hdmi->audio_config(in, audio);
- if (r)
- return r;
-
- dssdev->audio_state = OMAP_DSS_AUDIO_CONFIGURED;
-
- return 0;
-}
-
static int hdmic_set_hdmi_mode(struct omap_dss_device *dssdev, bool hdmi_mode)
{
struct panel_drv_data *ddata = to_panel_data(dssdev);
@@ -296,13 +204,6 @@ static struct omap_dss_driver hdmic_driver = {
.detect = hdmic_detect,
.set_hdmi_mode = hdmic_set_hdmi_mode,
.set_hdmi_infoframe = hdmic_set_infoframe,
-
- .audio_enable = hdmic_audio_enable,
- .audio_disable = hdmic_audio_disable,
- .audio_start = hdmic_audio_start,
- .audio_stop = hdmic_audio_stop,
- .audio_supported = hdmic_audio_supported,
- .audio_config = hdmic_audio_config,
};
static int hdmic_probe_pdata(struct platform_device *pdev)
diff --git a/drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c b/drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c
index c891d8f..235e3d5 100644
--- a/drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c
+++ b/drivers/video/fbdev/omap2/displays-new/encoder-tpd12s015.c
@@ -193,55 +193,6 @@ static bool tpd_detect(struct omap_dss_device *dssdev)
return gpio_get_value_cansleep(ddata->hpd_gpio);
}
-static int tpd_audio_enable(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- return in->ops.hdmi->audio_enable(in);
-}
-
-static void tpd_audio_disable(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- in->ops.hdmi->audio_disable(in);
-}
-
-static int tpd_audio_start(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- return in->ops.hdmi->audio_start(in);
-}
-
-static void tpd_audio_stop(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- in->ops.hdmi->audio_stop(in);
-}
-
-static bool tpd_audio_supported(struct omap_dss_device *dssdev)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- return in->ops.hdmi->audio_supported(in);
-}
-
-static int tpd_audio_config(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio)
-{
- struct panel_drv_data *ddata = to_panel_data(dssdev);
- struct omap_dss_device *in = ddata->in;
-
- return in->ops.hdmi->audio_config(in, audio);
-}
-
static int tpd_set_infoframe(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi)
{
@@ -275,13 +226,6 @@ static const struct omapdss_hdmi_ops tpd_hdmi_ops = {
.detect = tpd_detect,
.set_infoframe = tpd_set_infoframe,
.set_hdmi_mode = tpd_set_hdmi_mode,
-
- .audio_enable = tpd_audio_enable,
- .audio_disable = tpd_audio_disable,
- .audio_start = tpd_audio_start,
- .audio_stop = tpd_audio_stop,
- .audio_supported = tpd_audio_supported,
- .audio_config = tpd_audio_config,
};
static int tpd_probe_pdata(struct platform_device *pdev)
diff --git a/include/video/omapdss.h b/include/video/omapdss.h
index 069dfca..9035325 100644
--- a/include/video/omapdss.h
+++ b/include/video/omapdss.h
@@ -635,19 +635,6 @@ struct omapdss_hdmi_ops {
int (*set_hdmi_mode)(struct omap_dss_device *dssdev, bool hdmi_mode);
int (*set_infoframe)(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi);
-
- /*
- * Note: These functions might sleep. Do not call while
- * holding a spinlock/readlock.
- */
- int (*audio_enable)(struct omap_dss_device *dssdev);
- void (*audio_disable)(struct omap_dss_device *dssdev);
- bool (*audio_supported)(struct omap_dss_device *dssdev);
- int (*audio_config)(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio);
- /* Note: These functions may not sleep */
- int (*audio_start)(struct omap_dss_device *dssdev);
- void (*audio_stop)(struct omap_dss_device *dssdev);
};
struct omapdss_dsi_ops {
@@ -858,24 +845,6 @@ struct omap_dss_driver {
int (*set_hdmi_mode)(struct omap_dss_device *dssdev, bool hdmi_mode);
int (*set_hdmi_infoframe)(struct omap_dss_device *dssdev,
const struct hdmi_avi_infoframe *avi);
-
- /*
- * For display drivers that support audio. This encompasses
- * HDMI and DisplayPort at the moment.
- */
- /*
- * Note: These functions might sleep. Do not call while
- * holding a spinlock/readlock.
- */
- int (*audio_enable)(struct omap_dss_device *dssdev);
- void (*audio_disable)(struct omap_dss_device *dssdev);
- bool (*audio_supported)(struct omap_dss_device *dssdev);
- int (*audio_config)(struct omap_dss_device *dssdev,
- struct omap_dss_audio *audio);
- /* Note: These functions may not sleep */
- int (*audio_start)(struct omap_dss_device *dssdev);
- void (*audio_stop)(struct omap_dss_device *dssdev);
-
};
enum omapdss_version omapdss_get_version(void);
--
1.7.9.5
^ permalink raw reply related
* [PATCH 1/2] video: clps711x: Fix driver build for CONFIG_FB=m
From: Alexander Shiyan @ 2014-06-28 6:34 UTC (permalink / raw)
To: linux-fbdev
This patch fixes building CLPS711X FB driver if the framebuffer
core is used as a module.
LD init/built-in.o
drivers/built-in.o: In function `clps711x_fb_remove':
:(.text+0x44a8): undefined reference to `unregister_framebuffer'
drivers/built-in.o: In function `clps711x_fb_probe':
:(.text+0x44cc): undefined reference to `fb_get_options'
:(.text+0x45d8): undefined reference to `fb_alloc_cmap'
:(.text+0x45e4): undefined reference to `register_framebuffer'
make: *** [vmlinux] Error 1
Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
drivers/video/fbdev/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/video/fbdev/Kconfig b/drivers/video/fbdev/Kconfig
index 06e1ff8..4a7098f 100644
--- a/drivers/video/fbdev/Kconfig
+++ b/drivers/video/fbdev/Kconfig
@@ -302,7 +302,7 @@ config FB_ACORN
unsure, say N.
config FB_CLPS711X_OLD
- bool
+ tristate
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
--
1.8.5.5
^ permalink raw reply related
* [PATCH 2/2] video: clps711x: Fix sparse warnings
From: Alexander Shiyan @ 2014-06-28 6:34 UTC (permalink / raw)
To: linux-fbdev
This patch fixes below warnings:
CHECK drivers/video/fbdev/clps711x-fb.c
drivers/video/fbdev/clps711x-fb.c:247:24: warning: incorrect type in argument 1 (different address spaces)
drivers/video/fbdev/clps711x-fb.c:247:24: expected void const *ptr
drivers/video/fbdev/clps711x-fb.c:247:24: got char [noderef] <asn:2>*screen_base
drivers/video/fbdev/clps711x-fb.c:248:35: warning: incorrect type in argument 1 (different address spaces)
drivers/video/fbdev/clps711x-fb.c:248:35: expected void const *ptr
drivers/video/fbdev/clps711x-fb.c:248:35: got char [noderef] <asn:2>*screen_base
drivers/video/fbdev/clps711x-fb.c:314:17: warning: incorrect type in initializer (different address spaces)
drivers/video/fbdev/clps711x-fb.c:314:17: expected void *__p
drivers/video/fbdev/clps711x-fb.c:314:17: got char [noderef] <asn:2>*screen_base
CC [M] drivers/video/fbdev/clps711x-fb.o
Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
---
drivers/video/fbdev/clps711x-fb.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
index 4d17fbb..bbf40fe 100644
--- a/drivers/video/fbdev/clps711x-fb.c
+++ b/drivers/video/fbdev/clps711x-fb.c
@@ -244,8 +244,8 @@ static int clps711x_fb_probe(struct platform_device *pdev)
res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
info->screen_base = devm_ioremap_resource(dev, res);
- if (IS_ERR(info->screen_base)) {
- ret = PTR_ERR(info->screen_base);
+ if (IS_ERR((__force void *)info->screen_base)) {
+ ret = PTR_ERR((__force void *)info->screen_base);
goto out_fb_release;
}
@@ -311,7 +311,7 @@ static int clps711x_fb_probe(struct platform_device *pdev)
/* Setup start FB address */
writeb(info->fix.smem_start >> 28, cfb->base + CLPS711X_FBADDR);
/* Clean FB memory */
- memset(info->screen_base, 0, cfb->buffsize);
+ memset_io(info->screen_base, 0, cfb->buffsize);
}
cfb->lcd_pwr = devm_regulator_get(dev, "lcd");
--
1.8.5.5
^ permalink raw reply related
* Re: [PATCH 5/5] drm/i915: Kick out vga console
From: Ed Tomlinson @ 2014-06-29 3:55 UTC (permalink / raw)
To: Daniel Vetter
Cc: Intel Graphics Development, DRI Development, LKML, David Herrmann,
Jean-Christophe Plagniol-Villard, Tomi Valkeinen, linux-fbdev,
Jani Nikula, Chris Wilson, Dave Airlie
In-Reply-To: <1602327.OGkKxHtt2b@grover>
On Saturday 28 June 2014 15:28:22 Ed Tomlinson wrote:
Resend without html krud which causes list to bounce the message.
> Hi
>
> This commit ( a4de05268e674e8ed31df6348269e22d6c6a1803 ) hangs my boot with 3.16-git. Reverting it lets the boot proceed.
>
> I have an i7 with a built-in i915 and an pcie r7 260x. The R7 is the primary console. The i915 is initialized
> but does not have a physical display attached.
>
> With the patch applied the boot stops at the messages:
>
> [drm] Memory usable by graphics device = 2048M
> [drm] Replacing VGA console driver
>
> and I need to interrupt or power off the box to get it back.
>
> (I did not notice messages about the R7 but they could have easily been missed - this box does not have a serial console)
>
> Without the patch I get:
>
> Jun 28 14:53:54 localhost kernel: [ 2.075351] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
> Jun 28 14:53:54 localhost kernel: [ 2.075796] [drm] Initialized drm 1.1.0 20060810
> Jun 28 14:53:54 localhost kernel: [ 2.075958] microcode: CPU0 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077289] microcode: CPU1 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077299] microcode: CPU2 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077307] microcode: CPU3 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077315] microcode: CPU4 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077325] microcode: CPU5 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077335] microcode: CPU6 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077342] microcode: CPU7 sig=0x306c3, pf=0x2, revision=0x17
> Jun 28 14:53:54 localhost kernel: [ 2.077378] microcode: Microcode Update Driver: v2.00 <tigran@aivazian.fsnet.co.uk>, Peter Oruba
> Jun 28 14:53:54 localhost kernel: [ 2.079726] input: PC Speaker as /devices/platform/pcspkr/input/input4
> Jun 28 14:53:54 localhost kernel: [ 2.083930] e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
> Jun 28 14:53:54 localhost kernel: [ 2.084787] ACPI Warning: SystemIO range 0x000000000000f040-0x000000000000f05f conflicts with OpRegion 0x000000000000f040-0x000000000000f04f (\_SB_.PCI0.SBUS.SMBI) (20140424/utaddress-258)
> Jun 28 14:53:54 localhost kernel: [ 2.084788] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
> Jun 28 14:53:54 localhost kernel: [ 2.084894] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
> Jun 28 14:53:54 localhost kernel: [ 2.084905] e1000e 0000:00:19.0: irq 44 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.096721] iTCO_vendor_support: vendor-support=0
> Jun 28 14:53:54 localhost kernel: [ 2.096780] AVX2 version of gcm_enc/dec engaged.
> Jun 28 14:53:54 localhost kernel: [ 2.098512] iTCO_wdt: Intel TCO WatchDog Timer Driver v1.11
> Jun 28 14:53:54 localhost kernel: [ 2.099042] iTCO_wdt: Found a Lynx Point TCO device (Version=2, TCOBASE=0x1860)
> Jun 28 14:53:54 localhost kernel: [ 2.099561] iTCO_wdt: initialized. heartbeat0 sec (nowayout=0)
> Jun 28 14:53:54 localhost kernel: [ 2.100401] [drm] radeon kernel modesetting enabled.
> Jun 28 14:53:54 localhost kernel: [ 2.100918] checking generic (e0000000 300000) vs hw (e0000000 10000000)
> Jun 28 14:53:54 localhost kernel: [ 2.100919] fb: switching to radeondrmfb from simple
> Jun 28 14:53:54 localhost kernel: [ 2.101372] Console: switching to colour dummy device 80x25
> Jun 28 14:53:54 localhost kernel: [ 2.101527] [drm] initializing kernel modesetting (BONAIRE 0x1002:0x6658 0x174B:0xE253).
> Jun 28 14:53:54 localhost kernel: [ 2.101534] [drm] register mmio base: 0xF0800000
> Jun 28 14:53:54 localhost kernel: [ 2.101535] [drm] register mmio size: 262144
> Jun 28 14:53:54 localhost kernel: [ 2.101540] [drm] doorbell mmio base: 0xF0000000
> Jun 28 14:53:54 localhost kernel: [ 2.101541] [drm] doorbell mmio size: 8388608
> Jun 28 14:53:54 localhost kernel: [ 2.101579] ATOM BIOS: Bonaire
> Jun 28 14:53:54 localhost kernel: [ 2.101627] radeon 0000:01:00.0: VRAM: 2048M 0x0000000000000000 - 0x000000007FFFFFFF (2048M used)
> Jun 28 14:53:54 localhost kernel: [ 2.101629] radeon 0000:01:00.0: GTT: 1024M 0x0000000080000000 - 0x00000000BFFFFFFF
> Jun 28 14:53:54 localhost kernel: [ 2.101630] [drm] Detected VRAM RAM 48M, BAR%6M
> Jun 28 14:53:54 localhost kernel: [ 2.101631] [drm] RAM width 128bits DDR
> Jun 28 14:53:54 localhost kernel: [ 2.101659] [TTM] Zone kernel: Available graphics memory: 8145364 kiB
> Jun 28 14:53:54 localhost kernel: [ 2.101660] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
> Jun 28 14:53:54 localhost kernel: [ 2.101662] [TTM] Initializing pool allocator
> Jun 28 14:53:54 localhost kernel: [ 2.101664] [TTM] Initializing DMA pool allocator
> Jun 28 14:53:54 localhost kernel: [ 2.101674] [drm] radeon: 2048M of VRAM memory ready
> Jun 28 14:53:54 localhost kernel: [ 2.101675] [drm] radeon: 1024M of GTT memory ready.
> Jun 28 14:53:54 localhost kernel: [ 2.101681] [drm] Loading BONAIRE Microcode
> Jun 28 14:53:54 localhost kernel: [ 2.109479] [drm] radeon/BONAIRE_mc2.bin: 31792 bytes
> Jun 28 14:53:54 localhost kernel: [ 2.110510] [drm] Internal thermal controller with fan control
> Jun 28 14:53:54 localhost kernel: [ 2.110648] [drm] probing gen 2 caps for device 8086:c01 = 261ad03/e
> Jun 28 14:53:54 localhost kernel: [ 2.118508] [drm] radeon: dpm initialized
> Jun 28 14:53:54 localhost kernel: [ 2.122133] [drm] Found VCE firmware/feedback version 40.2.2 / 15!
> Jun 28 14:53:54 localhost kernel: [ 2.122140] [drm] GART: num cpu pages 262144, num gpu pages 262144
> Jun 28 14:53:54 localhost kernel: [ 2.122540] [drm] probing gen 2 caps for device 8086:c01 = 261ad03/e
> Jun 28 14:53:54 localhost kernel: [ 2.122544] [drm] PCIE gen 3 link speeds already enabled
> Jun 28 14:53:54 localhost kernel: [ 2.126118] Adding 5779452k swap on /dev/sdc2. Priority:-1 extents:1 across:5779452k FS
> Jun 28 14:53:54 localhost kernel: [ 2.133031] EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: discard
> Jun 28 14:53:54 localhost kernel: [ 2.136552] [drm] PCIE GART of 1024M enabled (table at 0x000000000078B000).
> Jun 28 14:53:54 localhost kernel: [ 2.136670] radeon 0000:01:00.0: WB enabled
> Jun 28 14:53:54 localhost kernel: [ 2.136697] radeon 0000:01:00.0: fence driver on ring 0 use gpu addr 0x0000000080000c00 and cpu addr 0xffff8802683e6c00
> Jun 28 14:53:54 localhost kernel: [ 2.136699] radeon 0000:01:00.0: fence driver on ring 1 use gpu addr 0x0000000080000c04 and cpu addr 0xffff8802683e6c04
> Jun 28 14:53:54 localhost kernel: [ 2.136701] radeon 0000:01:00.0: fence driver on ring 2 use gpu addr 0x0000000080000c08 and cpu addr 0xffff8802683e6c08
> Jun 28 14:53:54 localhost kernel: [ 2.136703] radeon 0000:01:00.0: fence driver on ring 3 use gpu addr 0x0000000080000c0c and cpu addr 0xffff8802683e6c0c
> Jun 28 14:53:54 localhost kernel: [ 2.136705] radeon 0000:01:00.0: fence driver on ring 4 use gpu addr 0x0000000080000c10 and cpu addr 0xffff8802683e6c10
> Jun 28 14:53:54 localhost kernel: [ 2.137230] radeon 0000:01:00.0: fence driver on ring 5 use gpu addr 0x0000000000076c98 and cpu addr 0xffffc90007936c98
> Jun 28 14:53:54 localhost kernel: [ 2.137293] radeon 0000:01:00.0: fence driver on ring 6 use gpu addr 0x0000000080000c18 and cpu addr 0xffff8802683e6c18
> Jun 28 14:53:54 localhost kernel: [ 2.137296] radeon 0000:01:00.0: fence driver on ring 7 use gpu addr 0x0000000080000c1c and cpu addr 0xffff8802683e6c1c
> Jun 28 14:53:54 localhost kernel: [ 2.137298] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> Jun 28 14:53:54 localhost kernel: [ 2.137299] [drm] Driver supports precise vblank timestamp query.
> Jun 28 14:53:54 localhost kernel: [ 2.137325] radeon 0000:01:00.0: irq 45 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.137331] radeon 0000:01:00.0: radeon: using MSI.
> Jun 28 14:53:54 localhost kernel: [ 2.137357] [drm] radeon: irq initialized.
> Jun 28 14:53:54 localhost kernel: [ 2.139870] [drm] ring test on 0 succeeded in 3 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.139938] [drm] ring test on 1 succeeded in 3 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.139950] [drm] ring test on 2 succeeded in 3 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.140110] [drm] ring test on 3 succeeded in 2 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.140116] [drm] ring test on 4 succeeded in 1 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.142659] Adding 5779452k swap on /dev/sdb2. Priority:-2 extents:1 across:5779452k FS
> Jun 28 14:53:54 localhost kernel: [ 2.152066] usb 1-7: new full-speed USB device number 6 using xhci_hcd
> Jun 28 14:53:54 localhost kernel: [ 2.185418] raid6: sse2x1 13222 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.196219] [drm] ring test on 5 succeeded in 1 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.216257] [drm] UVD initialized successfully.
> Jun 28 14:53:54 localhost kernel: [ 2.242145] raid6: sse2x2 17003 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.259077] e1000e 0000:00:19.0 eth0: registered PHC clock
> Jun 28 14:53:54 localhost kernel: [ 2.259080] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) bc:5f:f4:fc:fa:91
> Jun 28 14:53:54 localhost kernel: [ 2.259081] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection
> Jun 28 14:53:54 localhost kernel: [ 2.259119] e1000e 0000:00:19.0 eth0: MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
> Jun 28 14:53:54 localhost kernel: [ 2.262208] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.265424] nct6775: Found NCT6776D/F or compatible chip at 0x2e:0x290
> Jun 28 14:53:54 localhost kernel: [ 2.286592] sound hdaudioC0D0: ALC1150: SKU not ready 0x00000000
> Jun 28 14:53:54 localhost kernel: [ 2.286961] sound hdaudioC0D0: autoconfig: line_outs=3 (0x14/0x15/0x16/0x0/0x0) type:line
> Jun 28 14:53:54 localhost kernel: [ 2.286963] sound hdaudioC0D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
> Jun 28 14:53:54 localhost kernel: [ 2.286965] sound hdaudioC0D0: hp_outs=1 (0x1b/0x0/0x0/0x0/0x0)
> Jun 28 14:53:54 localhost kernel: [ 2.286966] sound hdaudioC0D0: mono: mono_out=0x0
> Jun 28 14:53:54 localhost kernel: [ 2.286967] sound hdaudioC0D0: dig-out=0x1e/0x0
> Jun 28 14:53:54 localhost kernel: [ 2.286968] sound hdaudioC0D0: inputs:
> Jun 28 14:53:54 localhost kernel: [ 2.286970] sound hdaudioC0D0: Front Mic=0x19
> Jun 28 14:53:54 localhost kernel: [ 2.286971] sound hdaudioC0D0: Rear Mic=0x18
> Jun 28 14:53:54 localhost kernel: [ 2.286972] sound hdaudioC0D0: Line=0x1a
> Jun 28 14:53:54 localhost kernel: [ 2.297632] input: HDA Digital PCBeep as /devices/pci0000:00/0000:00:1b.0/sound/card0/hdaudioC0D0/input5
> Jun 28 14:53:54 localhost kernel: [ 2.297798] input: HDA Intel PCH Front Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input6
> Jun 28 14:53:54 localhost kernel: [ 2.297835] input: HDA Intel PCH Rear Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input7
> Jun 28 14:53:54 localhost kernel: [ 2.297869] input: HDA Intel PCH Line as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8
> Jun 28 14:53:54 localhost kernel: [ 2.297905] input: HDA Intel PCH Line Out Front as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
> Jun 28 14:53:54 localhost kernel: [ 2.297940] input: HDA Intel PCH Line Out Surround as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
> Jun 28 14:53:54 localhost kernel: [ 2.297973] input: HDA Intel PCH Line Out CLFE as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
> Jun 28 14:53:54 localhost kernel: [ 2.298005] input: HDA Intel PCH Front Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input12
> Jun 28 14:53:54 localhost kernel: [ 2.298888] raid6: sse2x4 18101 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.306396] zram: unknown parameter '#32' ignored
> Jun 28 14:53:54 localhost kernel: [ 2.306399] zram: unknown parameter 'is' ignored
> Jun 28 14:53:54 localhost kernel: [ 2.306400] zram: unknown parameter 'max' ignored
> Jun 28 14:53:54 localhost kernel: [ 2.306401] zram: unknown parameter 'zram' ignored
> Jun 28 14:53:54 localhost kernel: [ 2.306402] zram: unknown parameter 'devices' ignored
> Jun 28 14:53:54 localhost kernel: [ 2.312100] zram: Created 32 device(s) ...
> Jun 28 14:53:54 localhost kernel: [ 2.327478] [drm] ring test on 6 succeeded in 22 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.327492] [drm] ring test on 7 succeeded in 4 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.327493] [drm] VCE initialized successfully.
> Jun 28 14:53:54 localhost kernel: [ 2.327763] [drm] ib test on ring 0 succeeded in 0 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.327925] [drm] ib test on ring 1 succeeded in 0 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.328079] [drm] ib test on ring 2 succeeded in 0 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.328237] [drm] ib test on ring 3 succeeded in 0 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.328394] [drm] ib test on ring 4 succeeded in 0 usecs
> Jun 28 14:53:54 localhost kernel: [ 2.328707] usb 1-7: ep 0x85 - rounding interval to 64 microframes, ep desc says 80 microframes
> Jun 28 14:53:54 localhost kernel: [ 2.340997] Adding 254540k swap on /dev/zram0. Priority:32767 extents:1 across:254540k SSFS
> Jun 28 14:53:54 localhost kernel: [ 2.341054] Adding 254540k swap on /dev/zram1. Priority:32767 extents:1 across:254540k SSFS
> Jun 28 14:53:54 localhost kernel: [ 2.341110] Adding 254540k swap on /dev/zram2. Priority:32767 extents:1 across:254540k SSFS
> Jun 28 14:53:54 localhost kernel: [ 2.341162] Adding 254540k swap on /dev/zram3. Priority:32767 extents:1 across:254540k SSFS
> Jun 28 14:53:54 localhost kernel: [ 2.343872] [drm] ib test on ring 5 succeeded
> Jun 28 14:53:54 localhost kernel: [ 2.355627] raid6: avx2x1 16273 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.364832] [drm] ib test on ring 6 succeeded
> Jun 28 14:53:54 localhost kernel: [ 2.365591] [drm] ib test on ring 7 succeeded
> Jun 28 14:53:54 localhost kernel: [ 2.366015] [drm] Radeon Display Connectors
> Jun 28 14:53:54 localhost kernel: [ 2.366018] [drm] Connector 0:
> Jun 28 14:53:54 localhost kernel: [ 2.366019] [drm] DP-1
> Jun 28 14:53:54 localhost kernel: [ 2.366020] [drm] HPD2
> Jun 28 14:53:54 localhost kernel: [ 2.366022] [drm] DDC: 0x6530 0x6530 0x6534 0x6534 0x6538 0x6538 0x653c 0x653c
> Jun 28 14:53:54 localhost kernel: [ 2.366024] [drm] Encoders:
> Jun 28 14:53:54 localhost kernel: [ 2.366026] [drm] DFP1: INTERNAL_UNIPHY2
> Jun 28 14:53:54 localhost kernel: [ 2.366027] [drm] Connector 1:
> Jun 28 14:53:54 localhost kernel: [ 2.366028] [drm] HDMI-A-1
> Jun 28 14:53:54 localhost kernel: [ 2.366030] [drm] HPD3
> Jun 28 14:53:54 localhost kernel: [ 2.366032] [drm] DDC: 0x6550 0x6550 0x6554 0x6554 0x6558 0x6558 0x655c 0x655c
> Jun 28 14:53:54 localhost kernel: [ 2.366033] [drm] Encoders:
> Jun 28 14:53:54 localhost kernel: [ 2.366035] [drm] DFP2: INTERNAL_UNIPHY2
> Jun 28 14:53:54 localhost kernel: [ 2.366036] [drm] Connector 2:
> Jun 28 14:53:54 localhost kernel: [ 2.366037] [drm] DVI-D-1
> Jun 28 14:53:54 localhost kernel: [ 2.366039] [drm] HPD1
> Jun 28 14:53:54 localhost kernel: [ 2.366041] [drm] DDC: 0x6560 0x6560 0x6564 0x6564 0x6568 0x6568 0x656c 0x656c
> Jun 28 14:53:54 localhost kernel: [ 2.366043] [drm] Encoders:
> Jun 28 14:53:54 localhost kernel: [ 2.366044] [drm] DFP3: INTERNAL_UNIPHY1
> Jun 28 14:53:54 localhost kernel: [ 2.366045] [drm] Connector 3:
> Jun 28 14:53:54 localhost kernel: [ 2.366046] [drm] DVI-I-1
> Jun 28 14:53:54 localhost kernel: [ 2.366048] [drm] HPD6
> Jun 28 14:53:54 localhost kernel: [ 2.366049] [drm] DDC: 0x6580 0x6580 0x6584 0x6584 0x6588 0x6588 0x658c 0x658c
> Jun 28 14:53:54 localhost kernel: [ 2.366051] [drm] Encoders:
> Jun 28 14:53:54 localhost kernel: [ 2.366052] [drm] DFP4: INTERNAL_UNIPHY
> Jun 28 14:53:54 localhost kernel: [ 2.366053] [drm] CRT1: INTERNAL_KLDSCP_DAC1
> Jun 28 14:53:54 localhost kernel: [ 2.412356] raid6: avx2x2 20798 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.412358] Switched to clocksource tsc
> Jun 28 14:53:54 localhost kernel: [ 2.439066] usb 1-8: new low-speed USB device number 7 using xhci_hcd
> Jun 28 14:53:54 localhost kernel: [ 2.442481] e1000e 0000:00:19.0: irq 47 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.464181] [drm] fb mappable at 0xE098E000
> Jun 28 14:53:54 localhost kernel: [ 2.464183] [drm] vram apper at 0xE0000000
> Jun 28 14:53:54 localhost kernel: [ 2.464184] [drm] size 9216000
> Jun 28 14:53:54 localhost kernel: [ 2.464185] [drm] fb depth is 24
> Jun 28 14:53:54 localhost kernel: [ 2.464186] [drm] pitch is 7680
> Jun 28 14:53:54 localhost kernel: [ 2.464227] fbcon: radeondrmfb (fb0) is primary device
> Jun 28 14:53:54 localhost kernel: [ 2.469074] raid6: avx2x4 24141 MB/s
> Jun 28 14:53:54 localhost kernel: [ 2.469074] raid6: using algorithm avx2x4 (24141 MB/s)
> Jun 28 14:53:54 localhost kernel: [ 2.469075] raid6: using avx2x2 recovery algorithm
> Jun 28 14:53:54 localhost kernel: [ 2.469466] xor: automatically using best checksumming function:
> Jun 28 14:53:54 localhost kernel: [ 2.484840] Console: switching to colour frame buffer device 240x75
> Jun 28 14:53:54 localhost kernel: [ 2.487822] radeon 0000:01:00.0: fb0: radeondrmfb frame buffer device
> Jun 28 14:53:54 localhost kernel: [ 2.487836] radeon 0000:01:00.0: registered panic notifier
> Jun 28 14:53:54 localhost kernel: [ 2.502444] avx : 41036.400 MB/sec
> Jun 28 14:53:54 localhost kernel: [ 2.510424] Btrfs loaded
> Jun 28 14:53:54 localhost kernel: [ 2.510765] BTRFS: device fsid 9d4254aa-6715-4fa8-986a-1af0d51768ad devid 1 transid 303773 /dev/sdc1
> Jun 28 14:53:54 localhost kernel: [ 2.510907] BTRFS: device fsid 9d4254aa-6715-4fa8-986a-1af0d51768ad devid 2 transid 303773 /dev/sdb1
> Jun 28 14:53:54 localhost kernel: [ 2.513700] [drm] Initialized radeon 2.39.0 20080528 for 0000:01:00.0 on minor 0
> Jun 28 14:53:54 localhost kernel: [ 2.513800] snd_hda_intel 0000:01:00.1: Handle VGA-switcheroo audio client
> Jun 28 14:53:54 localhost kernel: [ 2.513878] snd_hda_intel 0000:01:00.1: irq 48 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.513971] [drm] Memory usable by graphics device = 2048M
> Jun 28 14:53:54 localhost kernel: [ 2.520123] input: HD-Audio Generic HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input13
> Jun 28 14:53:54 localhost kernel: [ 2.520184] input: HD-Audio Generic HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input14
> Jun 28 14:53:54 localhost kernel: [ 2.520258] input: HD-Audio Generic HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input15
> Jun 28 14:53:54 localhost kernel: [ 2.520368] input: HD-Audio Generic HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input16
> Jun 28 14:53:54 localhost kernel: [ 2.520440] input: HD-Audio Generic HDMI/DP,pcm\x10 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input17
> Jun 28 14:53:54 localhost kernel: [ 2.521215] input: HD-Audio Generic HDMI/DP,pcm\x11 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input18
> Jun 28 14:53:54 localhost kernel: [ 2.532558] i915 0000:00:02.0: irq 49 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.532565] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
> Jun 28 14:53:54 localhost kernel: [ 2.532580] [drm] Driver supports precise vblank timestamp query.
> Jun 28 14:53:54 localhost kernel: [ 2.532607] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
> Jun 28 14:53:54 localhost kernel: [ 2.545934] e1000e 0000:00:19.0: irq 50 for MSI/MSI-X
> Jun 28 14:53:54 localhost kernel: [ 2.546018] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
> Jun 28 14:53:54 localhost kernel: [ 2.619122] usb 1-8: ep 0x81 - rounding interval to 512 microframes, ep desc says 800 microframes
> Jun 28 14:53:54 localhost kernel: [ 2.759949] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
> Jun 28 14:53:54 localhost kernel: [ 2.760226] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 1
> Jun 28 14:53:54 localhost kernel: [ 2.779511] usb 1-14: new high-speed USB device number 8 using xhci_hcd
>
> I am willing to try patches.
>
> Please fix or revert this commit.
>
> Thanks,
> Ed Tomlinson
>
>
> On Thursday 05 June 2014 16:58:28 Daniel Vetter wrote:
> > Touching the VGA resources on an IVB EFI machine causes hard hangs when
> > we then kick out the efifb. Ouch.
> >
> > Apparently this also prevents unclaimed register errors on hsw and
> > hard machine hangs on my i855gm when trying to unbind fbcon.
> >
> > Also, we want this to make I915_FBDEV=n safe.
> >
> > v2: Rebase and pimp commit message.
> >
> > v3: We also need to unregister the vga console, otherwise the unbind
> > of the fb console before module unload might resurrect it again.
> >
> > v4: Ignore errors when the vga console is already unregistered - this
> > can happen when e.g. reloading i915.ko.
> >
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?idg813
> > Cc: David Herrmann <dh.herrmann@gmail.com>
> > Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
> > Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > Cc: linux-fbdev@vger.kernel.org
> > Cc: Jani Nikula <jani.nikula@linux.intel.com>
> > Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> (v1)
> > Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> > ---
> > drivers/gpu/drm/i915/i915_dma.c | 43 +++++++++++++++++++++++++++++++++++++++-
> > drivers/video/console/dummycon.c | 1 +
> > drivers/video/console/vgacon.c | 1 +
> > 3 files changed, 44 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
> > index 27fe65ac5940..bcb66ddd649e 100644
> > --- a/drivers/gpu/drm/i915/i915_dma.c
> > +++ b/drivers/gpu/drm/i915/i915_dma.c
> > @@ -36,6 +36,8 @@
> > #include "i915_drv.h"
> > #include "i915_trace.h"
> > #include <linux/pci.h>
> > +#include <linux/console.h>
> > +#include <linux/vt.h>
> > #include <linux/vgaarb.h>
> > #include <linux/acpi.h>
> > #include <linux/pnp.h>
> > @@ -1449,6 +1451,38 @@ static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
> > }
> > #endif
> >
> > +#if !defined(CONFIG_VGA_CONSOLE)
> > +static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
> > +{
> > + return 0;
> > +}
> > +#elif !defined(CONFIG_DUMMY_CONSOLE)
> > +static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
> > +{
> > + return -ENODEV;
> > +}
> > +#else
> > +static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
> > +{
> > + int ret;
> > +
> > + DRM_INFO("Replacing VGA console driver\n");
> > +
> > + console_lock();
> > + ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
> > + if (ret = 0) {
> > + ret = do_unregister_con_driver(&vga_con);
> > +
> > + /* Ignore "already unregistered". */
> > + if (ret = -ENODEV)
> > + ret = 0;
> > + }
> > + console_unlock();
> > +
> > + return ret;
> > +}
> > +#endif
> > +
> > static void i915_dump_device_info(struct drm_i915_private *dev_priv)
> > {
> > const struct intel_device_info *info = &dev_priv->info;
> > @@ -1622,8 +1656,15 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
> > if (ret)
> > goto out_regs;
> >
> > - if (drm_core_check_feature(dev, DRIVER_MODESET))
> > + if (drm_core_check_feature(dev, DRIVER_MODESET)) {
> > + ret = i915_kick_out_vgacon(dev_priv);
> > + if (ret) {
> > + DRM_ERROR("failed to remove conflicting VGA console\n");
> > + goto out_gtt;
> > + }
> > +
> > i915_kick_out_firmware_fb(dev_priv);
> > + }
> >
> > pci_set_master(dev->pdev);
> >
> > diff --git a/drivers/video/console/dummycon.c b/drivers/video/console/dummycon.c
> > index b63860f7beab..40bec8d64b0a 100644
> > --- a/drivers/video/console/dummycon.c
> > +++ b/drivers/video/console/dummycon.c
> > @@ -77,3 +77,4 @@ const struct consw dummy_con = {
> > .con_set_palette = DUMMY,
> > .con_scrolldelta = DUMMY,
> > };
> > +EXPORT_SYMBOL_GPL(dummy_con);
> > diff --git a/drivers/video/console/vgacon.c b/drivers/video/console/vgacon.c
> > index 9d8feac67637..84acd6223dc5 100644
> > --- a/drivers/video/console/vgacon.c
> > +++ b/drivers/video/console/vgacon.c
> > @@ -1440,5 +1440,6 @@ const struct consw vga_con = {
> > .con_build_attr = vgacon_build_attr,
> > .con_invert_region = vgacon_invert_region,
> > };
> > +EXPORT_SYMBOL(vga_con);
> >
> > MODULE_LICENSE("GPL");
> >
>
^ permalink raw reply
* Re: [PATCH 5/5] drm/i915: Kick out vga console
From: Chris Wilson @ 2014-06-30 6:59 UTC (permalink / raw)
To: Ed Tomlinson
Cc: linux-fbdev, Dave Airlie, Daniel Vetter,
Intel Graphics Development, LKML, DRI Development, Tomi Valkeinen,
David Herrmann, Jean-Christophe Plagniol-Villard
In-Reply-To: <3945293.Jtp4nyZMfX@grover>
On Sat, Jun 28, 2014 at 11:55:19PM -0400, Ed Tomlinson wrote:
> On Saturday 28 June 2014 15:28:22 Ed Tomlinson wrote:
>
> Resend without html krud which causes list to bounce the message.
>
> > Hi
> >
> > This commit ( a4de05268e674e8ed31df6348269e22d6c6a1803 ) hangs my boot with 3.16-git. Reverting it lets the boot proceed.
> >
> > I have an i7 with a built-in i915 and an pcie r7 260x. The R7 is the primary console. The i915 is initialized
> > but does not have a physical display attached.
> >
> > With the patch applied the boot stops at the messages:
> >
> > [drm] Memory usable by graphics device = 2048M
> > [drm] Replacing VGA console driver
The issue looks like that we are ripping out the radeon fb_con whilst it
is active and that upsets everyone. In which case, I think the
compromise is:
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index 5f44581..4915f1d 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1439,18 +1439,20 @@ static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
#else
static int i915_kick_out_vgacon(struct drm_i915_private *dev_priv)
{
- int ret;
+ int ret = 0;
DRM_INFO("Replacing VGA console driver\n");
console_lock();
- ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
- if (ret = 0) {
- ret = do_unregister_con_driver(&vga_con);
-
- /* Ignore "already unregistered". */
- if (ret = -ENODEV)
- ret = 0;
+ if (con_is_bound(&vga_con)) {
+ ret = do_take_over_console(&dummy_con, 0, MAX_NR_CONSOLES - 1, 1);
+ if (ret = 0) {
+ ret = do_unregister_con_driver(&vga_con);
+
+ /* Ignore "already unregistered". */
+ if (ret = -ENODEV)
+ ret = 0;
+ }
}
console_unlock();
-Chris
--
Chris Wilson, Intel Open Source Technology Centre
^ permalink raw reply related
* Re: [PATCH v2 01/13] ARM: OMAP2+: Remove non working OMAP HDMI audio initialization
From: Tony Lindgren @ 2014-06-30 7:24 UTC (permalink / raw)
To: Jyri Sarha
Cc: alsa-devel, linux-fbdev, linux-omap, peter.ujfalusi, broonie,
liam.r.girdwood, tomi.valkeinen, detheridge, jyri.sarha
In-Reply-To: <41571cc2e5a93ff95eda9263a4b5808bba7e6e36.1403894190.git.jsarha@ti.com>
* Jyri Sarha <jsarha@ti.com> [140627 11:41]:
> This code is not working currently and it can be removed. There is a
> conflict in sharing resources with the actual HDMI driver and with
> the ASoC HDMI audio DAI driver.
>
> Signed-off-by: Jyri Sarha <jsarha@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
^ permalink raw reply
* Re: [PATCH 5/5] drm/i915: Kick out vga console
From: David Herrmann @ 2014-06-30 8:19 UTC (permalink / raw)
To: Chris Wilson, Ed Tomlinson, Daniel Vetter,
Intel Graphics Development, DRI Development, LKML, David Herrmann,
Jean-Christophe Plagniol-Villard, Tomi Valkeinen,
linux-fbdev@vger.kernel.org, Jani Nikula, Dave Airlie
In-Reply-To: <20140630065955.GD7687@nuc-i3427.alporthouse.com>
Hi
On Mon, Jun 30, 2014 at 8:59 AM, Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Sat, Jun 28, 2014 at 11:55:19PM -0400, Ed Tomlinson wrote:
>> On Saturday 28 June 2014 15:28:22 Ed Tomlinson wrote:
>>
>> Resend without html krud which causes list to bounce the message.
>>
>> > Hi
>> >
>> > This commit ( a4de05268e674e8ed31df6348269e22d6c6a1803 ) hangs my boot with 3.16-git. Reverting it lets the boot proceed.
>> >
>> > I have an i7 with a built-in i915 and an pcie r7 260x. The R7 is the primary console. The i915 is initialized
>> > but does not have a physical display attached.
>> >
>> > With the patch applied the boot stops at the messages:
>> >
>> > [drm] Memory usable by graphics device = 2048M
>> > [drm] Replacing VGA console driver
>
> The issue looks like that we are ripping out the radeon fb_con whilst it
> is active and that upsets everyone. In which case, I think the
> compromise is:
do_take_over_console() should only touch console-drivers like fbcon.
How does this affect the underlying fbdev device? Ripping out active
or inactive fbcon should be just fine, shouldn't it?
Given that this hard-locks at kick_out_vgacon(), this looks more like
a dead-lock to me.
Thanks
David
^ permalink raw reply
* [PATCH 3.12 046/181] drivers/video/fbdev/fb-puv3.c: Add header files for function unifb_mmap
From: Jiri Slaby @ 2014-06-30 11:51 UTC (permalink / raw)
To: stable
Cc: linux-kernel, Zhichuang SUN, Jean-Christophe Plagniol-Villard,
Tomi Valkeinen, Jingoo Han, Daniel Vetter, Joe Perches,
Laurent Pinchart, linux-fbdev, Jiri Slaby
In-Reply-To: <61844d8e25eb8899b0836afa9796fa239db80f1f.1404128997.git.jslaby@suse.cz>
From: Zhichuang SUN <sunzc522@gmail.com>
3.12-stable review patch. If anyone has any objections, please let me know.
=======
commit fbc6c4a13bbfb420eedfdb26a0a859f9c07e8a7b upstream.
Function unifb_mmap calls functions which are defined in linux/mm.h
and asm/pgtable.h
The related error (for unicore32 with unicore32_defconfig):
CC drivers/video/fbdev/fb-puv3.o
drivers/video/fbdev/fb-puv3.c: In function 'unifb_mmap':
drivers/video/fbdev/fb-puv3.c:646: error: implicit declaration of
function 'vm_iomap_memory'
drivers/video/fbdev/fb-puv3.c:646: error: implicit declaration of
function 'pgprot_noncached'
Signed-off-by: Zhichuang Sun <sunzc522@gmail.com>
Cc: Jean-Christophe Plagniol-Villard <plagnioj@jcrosoft.com>
Cc: Tomi Valkeinen <tomi.valkeinen@ti.com>
Cc: Jingoo Han <jg1.han@samsung.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Joe Perches <joe@perches.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: linux-fbdev@vger.kernel.org
Acked-by: Xuetao Guan <gxt@mprc.pku.edu.cn>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
drivers/video/fb-puv3.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/video/fb-puv3.c b/drivers/video/fb-puv3.c
index 27fc956166fa..520112531eb0 100644
--- a/drivers/video/fb-puv3.c
+++ b/drivers/video/fb-puv3.c
@@ -18,8 +18,10 @@
#include <linux/fb.h>
#include <linux/init.h>
#include <linux/console.h>
+#include <linux/mm.h>
#include <asm/sizes.h>
+#include <asm/pgtable.h>
#include <mach/hardware.h>
/* Platform_data reserved for unifb registers. */
--
2.0.0
^ permalink raw reply related
* [PATCH] video: fbdev: s3c2410fb: Move to clk_prepare_enable/clk_disable_unprepare
From: Vasily Khoruzhick @ 2014-06-30 19:14 UTC (permalink / raw)
To: linux-arm-kernel
Use clk_prepare_enable/clk_disable_unprepare to make the driver
work properly with common clock framework.
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
---
drivers/video/fbdev/s3c2410fb.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/video/fbdev/s3c2410fb.c b/drivers/video/fbdev/s3c2410fb.c
index 81af5a6..d68595d 100644
--- a/drivers/video/fbdev/s3c2410fb.c
+++ b/drivers/video/fbdev/s3c2410fb.c
@@ -932,7 +932,7 @@ static int s3c24xxfb_probe(struct platform_device *pdev,
goto release_irq;
}
- clk_enable(info->clk);
+ clk_prepare_enable(info->clk);
dprintk("got and enabled clock\n");
usleep_range(1000, 1100);
@@ -996,7 +996,7 @@ static int s3c24xxfb_probe(struct platform_device *pdev,
free_video_memory:
s3c2410fb_unmap_video_memory(fbinfo);
release_clock:
- clk_disable(info->clk);
+ clk_disable_unprepare(info->clk);
clk_put(info->clk);
release_irq:
free_irq(irq, info);
@@ -1038,7 +1038,7 @@ static int s3c2410fb_remove(struct platform_device *pdev)
s3c2410fb_unmap_video_memory(fbinfo);
if (info->clk) {
- clk_disable(info->clk);
+ clk_disable_unprepare(info->clk);
clk_put(info->clk);
info->clk = NULL;
}
@@ -1070,7 +1070,7 @@ static int s3c2410fb_suspend(struct platform_device *dev, pm_message_t state)
* before the clock goes off again (bjd) */
usleep_range(1000, 1100);
- clk_disable(info->clk);
+ clk_disable_unprepare(info->clk);
return 0;
}
@@ -1080,7 +1080,7 @@ static int s3c2410fb_resume(struct platform_device *dev)
struct fb_info *fbinfo = platform_get_drvdata(dev);
struct s3c2410fb_info *info = fbinfo->par;
- clk_enable(info->clk);
+ clk_prepare_enable(info->clk);
usleep_range(1000, 1100);
s3c2410fb_init_registers(fbinfo);
--
2.0.0
^ permalink raw reply related
* [PATCH] MAINTAINERS: Update Framebuffer file patterns
From: Jingoo Han @ 2014-07-01 1:48 UTC (permalink / raw)
To: linux-fbdev
Since the commit f7018c2 "video: move fbdev to drivers/video/fbdev",
all framebuffer drivers were moved to fbdev directory. Thus, file
patterns of these framebuffer drivers should be updated correctly.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
MAINTAINERS | 76 ++++++++++++++++++++++++++++++-----------------------------
1 file changed, 39 insertions(+), 37 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 3f2e171..7daae48 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -587,7 +587,7 @@ W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_
S: Supported
F: drivers/char/hw_random/geode-rng.c
F: drivers/crypto/geode*
-F: drivers/video/geode/
+F: drivers/video/fbdev/geode/
F: arch/x86/include/asm/geode.h
AMD IOMMU (AMD-VI)
@@ -716,8 +716,8 @@ F: drivers/ata/pata_arasan_cf.c
ARC FRAMEBUFFER DRIVER
M: Jaya Kumar <jayalk@intworks.biz>
S: Maintained
-F: drivers/video/arcfb.c
-F: drivers/video/fb_defio.c
+F: drivers/video/fbdev/arcfb.c
+F: drivers/video/fbdev/core/fb_defio.c
ARM MFM AND FLOPPY DRIVERS
M: Ian Molton <spyro@f2s.com>
@@ -756,7 +756,7 @@ F: sound/arm/aaci.*
ARM PRIMECELL CLCD PL110 DRIVER
M: Russell King <linux@arm.linux.org.uk>
S: Maintained
-F: drivers/video/amba-clcd.*
+F: drivers/video/fbdev/amba-clcd.*
ARM PRIMECELL KMI PL050 DRIVER
M: Russell King <linux@arm.linux.org.uk>
@@ -1135,7 +1135,7 @@ M: Daniel Walker <dwalker@fifo99.com>
M: Bryan Huntsman <bryanh@codeaurora.org>
L: linux-arm-msm@vger.kernel.org
F: arch/arm/mach-msm/
-F: drivers/video/msm/
+F: drivers/video/fbdev/msm/
F: drivers/mmc/host/msm_sdcc.c
F: drivers/mmc/host/msm_sdcc.h
F: drivers/tty/serial/msm_serial.h
@@ -1355,7 +1355,7 @@ F: drivers/mtd/nand/nuc900_nand.c
F: drivers/rtc/rtc-nuc900.c
F: drivers/spi/spi-nuc900.c
F: drivers/usb/host/ehci-w90x900.c
-F: drivers/video/nuc900fb.c
+F: drivers/video/fbdev/nuc900fb.c
ARM/U300 MACHINE SUPPORT
M: Linus Walleij <linus.walleij@linaro.org>
@@ -1424,9 +1424,9 @@ F: drivers/rtc/rtc-vt8500.c
F: drivers/tty/serial/vt8500_serial.c
F: drivers/usb/host/ehci-platform.c
F: drivers/usb/host/uhci-platform.c
-F: drivers/video/vt8500lcdfb.*
-F: drivers/video/wm8505fb*
-F: drivers/video/wmt_ge_rops.*
+F: drivers/video/fbdev/vt8500lcdfb.*
+F: drivers/video/fbdev/wm8505fb*
+F: drivers/video/fbdevwmt_ge_rops.*
ARM/ZIPIT Z2 SUPPORT
M: Marek Vasut <marek.vasut@gmail.com>
@@ -1616,7 +1616,7 @@ ATMEL LCDFB DRIVER
M: Nicolas Ferre <nicolas.ferre@atmel.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/atmel_lcdfb.c
+F: drivers/video/fbdev/atmel_lcdfb.c
F: include/video/atmel_lcdc.h
ATMEL MACB ETHERNET DRIVER
@@ -2626,7 +2626,7 @@ M: Russell King <linux@arm.linux.org.uk>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W: http://www.arm.linux.org.uk/
S: Maintained
-F: drivers/video/cyber2000fb.*
+F: drivers/video/fbdev/cyber2000fb.*
CYCLADES ASYNC MUX DRIVER
W: http://www.cyclades.com/
@@ -2863,7 +2863,7 @@ M: Bernie Thompson <bernie@plugable.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
W: http://plugable.com/category/projects/udlfb/
-F: drivers/video/udlfb.c
+F: drivers/video/fbdev/udlfb.c
F: include/video/udlfb.h
F: Documentation/fb/udlfb.txt
@@ -3385,7 +3385,7 @@ EFIFB FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
M: Peter Jones <pjones@redhat.com>
S: Maintained
-F: drivers/video/efifb.c
+F: drivers/video/fbdev/efifb.c
EFS FILESYSTEM
W: http://aeschi.ch.eu.org/efs/
@@ -3450,7 +3450,7 @@ EPSON S1D13XXX FRAMEBUFFER DRIVER
M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
-F: drivers/video/s1d13xxxfb.c
+F: drivers/video/fbdev/s1d13xxxfb.c
F: include/video/s1d13xxxfb.h
ETHERNET BRIDGE
@@ -3528,7 +3528,7 @@ M: Donghwa Lee <dh09.lee@samsung.com>
M: Kyungmin Park <kyungmin.park@samsung.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/exynos/exynos_mipi*
+F: drivers/video/fbdev/exynos/exynos_mipi*
F: include/video/exynos_mipi*
F71805F HARDWARE MONITORING DRIVER
@@ -3707,7 +3707,8 @@ FREESCALE DIU FRAMEBUFFER DRIVER
M: Timur Tabi <timur@tabi.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/fsl-diu-fb.*
+F: drivers/video/fbdev/fsl-diu-fb.c
+F: include/linux/fsl-diu-fb.h
FREESCALE DMA DRIVER
M: Li Yang <leoli@freescale.com>
@@ -3729,7 +3730,7 @@ L: linux-fbdev@vger.kernel.org
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained
F: include/linux/platform_data/video-imxfb.h
-F: drivers/video/imxfb.c
+F: drivers/video/fbdev/imxfb.c
FREESCALE SOC FS_ENET DRIVER
M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
@@ -4148,7 +4149,7 @@ M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
L: linux-nvidia@lists.surfsouth.com
W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
S: Maintained
-F: drivers/video/hgafb.c
+F: drivers/video/fbdev/hgafb.c
HIBERNATION (aka Software Suspend, aka swsusp)
M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
@@ -4290,7 +4291,7 @@ F: drivers/hv/
F: drivers/input/serio/hyperv-keyboard.c
F: drivers/net/hyperv/
F: drivers/scsi/storvsc_drv.c
-F: drivers/video/hyperv_fb.c
+F: drivers/video/fbdev/hyperv_fb.c
F: include/linux/hyperv.h
F: tools/hv/
@@ -4550,7 +4551,7 @@ F: security/integrity/ima/
IMS TWINTURBO FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
S: Orphan
-F: drivers/video/imsttfb.c
+F: drivers/video/fbdev/imsttfb.c
INFINIBAND SUBSYSTEM
M: Roland Dreier <roland@kernel.org>
@@ -4617,13 +4618,13 @@ M: Maik Broemme <mbroemme@plusserver.de>
L: linux-fbdev@vger.kernel.org
S: Maintained
F: Documentation/fb/intelfb.txt
-F: drivers/video/intelfb/
+F: drivers/video/fbdev/intelfb/
INTEL 810/815 FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/i810/
+F: drivers/video/fbdev/i810/
INTEL MENLOW THERMAL DRIVER
M: Sujith Thomas <sujith.thomas@intel.com>
@@ -5702,7 +5703,7 @@ F: drivers/mmc/host/mvsdio.*
MATROX FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
S: Orphan
-F: drivers/video/matrox/matroxfb_*
+F: drivers/video/fbdev/matrox/matroxfb_*
F: include/uapi/linux/matroxfb.h
MAX16065 HARDWARE MONITOR DRIVER
@@ -6345,8 +6346,8 @@ NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/riva/
-F: drivers/video/nvidia/
+F: drivers/video/fbdev/riva/
+F: drivers/video/fbdev/nvidia/
NVM EXPRESS DRIVER
M: Matthew Wilcox <willy@linux.intel.com>
@@ -6416,14 +6417,14 @@ M: Tomi Valkeinen <tomi.valkeinen@ti.com>
L: linux-fbdev@vger.kernel.org
L: linux-omap@vger.kernel.org
S: Maintained
-F: drivers/video/omap/
+F: drivers/video/fbdev/omap/
OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
M: Tomi Valkeinen <tomi.valkeinen@ti.com>
L: linux-omap@vger.kernel.org
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/omap2/
+F: drivers/video/fbdev/omap2/
F: Documentation/arm/OMAP/DSS
OMAP HARDWARE SPINLOCK SUPPORT
@@ -6714,7 +6715,7 @@ F: drivers/char/agp/parisc-agp.c
F: drivers/input/serio/gscps2.c
F: drivers/parport/parport_gsc.*
F: drivers/tty/serial/8250/8250_gsc.c
-F: drivers/video/sti*
+F: drivers/video/fbdev/sti*
F: drivers/video/console/sti*
F: drivers/video/logo/logo_parisc*
@@ -6963,7 +6964,7 @@ S: Maintained
T: git git://github.com/gxt/linux.git
F: drivers/input/serio/i8042-unicore32io.h
F: drivers/i2c/busses/i2c-puv3.c
-F: drivers/video/fb-puv3.c
+F: drivers/video/fbdev/fb-puv3.c
F: drivers/rtc/rtc-puv3.c
PMBUS HARDWARE MONITORING DRIVERS
@@ -7335,7 +7336,7 @@ RADEON FRAMEBUFFER DISPLAY DRIVER
M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/aty/radeon*
+F: drivers/video/fbdev/aty/radeon*
F: include/uapi/linux/radeonfb.h
RADIOSHARK RADIO DRIVER
@@ -7357,7 +7358,7 @@ RAGE128 FRAMEBUFFER DISPLAY DRIVER
M: Paul Mackerras <paulus@samba.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/aty/aty128fb.c
+F: drivers/video/fbdev/aty/aty128fb.c
RALINK RT2X00 WIRELESS LAN DRIVER
P: rt2x00 project
@@ -7591,7 +7592,7 @@ S3 SAVAGE FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/savage/
+F: drivers/video/fbdev/savage/
S390
M: Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -7714,7 +7715,7 @@ SAMSUNG FRAMEBUFFER DRIVER
M: Jingoo Han <jg1.han@samsung.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/s3c-fb.c
+F: drivers/video/fbdev/s3c-fb.c
SAMSUNG MULTIFUNCTION DEVICE DRIVERS
M: Sangbeom Kim <sbkim73@samsung.com>
@@ -8186,7 +8187,7 @@ M: Thomas Winischhofer <thomas@winischhofer.net>
W: http://www.winischhofer.net/linuxsisvga.shtml
S: Maintained
F: Documentation/fb/sisfb.txt
-F: drivers/video/sis/
+F: drivers/video/fbdev/sis/
F: include/video/sisfb.h
SIS USB2VGA DRIVER
@@ -8290,7 +8291,7 @@ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
M: Steve Glendinning <steve.glendinning@shawell.net>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/smscufx.c
+F: drivers/video/fbdev/smscufx.c
SOC-CAMERA V4L2 SUBSYSTEM
M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
@@ -9622,7 +9623,8 @@ L: linux-fbdev@vger.kernel.org
W: http://dev.gentoo.org/~spock/projects/uvesafb/
S: Maintained
F: Documentation/fb/uvesafb.txt
-F: drivers/video/uvesafb.*
+F: drivers/video/fbdev/uvesafb.c
+F: include/video/uvesafb.h
VFAT/FAT/MSDOS FILESYSTEM
M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
@@ -9695,7 +9697,7 @@ S: Maintained
F: include/linux/via-core.h
F: include/linux/via-gpio.h
F: include/linux/via_i2c.h
-F: drivers/video/via/
+F: drivers/video/fbdev/via/
VIA VELOCITY NETWORK DRIVER
M: Francois Romieu <romieu@fr.zoreil.com>
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH] MAINTAINERS: Update Framebuffer file patterns
From: Liu Ying @ 2014-07-01 3:36 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <00a101cf94ce$9489daf0$bd9d90d0$%han@samsung.com>
On 07/01/2014 09:48 AM, Jingoo Han wrote:
> Since the commit f7018c2 "video: move fbdev to drivers/video/fbdev",
> all framebuffer drivers were moved to fbdev directory. Thus, file
> patterns of these framebuffer drivers should be updated correctly.
>
> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> ---
> MAINTAINERS | 76 ++++++++++++++++++++++++++++++-----------------------------
> 1 file changed, 39 insertions(+), 37 deletions(-)
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 3f2e171..7daae48 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -587,7 +587,7 @@ W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_
> S: Supported
> F: drivers/char/hw_random/geode-rng.c
> F: drivers/crypto/geode*
> -F: drivers/video/geode/
> +F: drivers/video/fbdev/geode/
> F: arch/x86/include/asm/geode.h
>
> AMD IOMMU (AMD-VI)
> @@ -716,8 +716,8 @@ F: drivers/ata/pata_arasan_cf.c
> ARC FRAMEBUFFER DRIVER
> M: Jaya Kumar <jayalk@intworks.biz>
> S: Maintained
> -F: drivers/video/arcfb.c
> -F: drivers/video/fb_defio.c
> +F: drivers/video/fbdev/arcfb.c
> +F: drivers/video/fbdev/core/fb_defio.c
>
> ARM MFM AND FLOPPY DRIVERS
> M: Ian Molton <spyro@f2s.com>
> @@ -756,7 +756,7 @@ F: sound/arm/aaci.*
> ARM PRIMECELL CLCD PL110 DRIVER
> M: Russell King <linux@arm.linux.org.uk>
> S: Maintained
> -F: drivers/video/amba-clcd.*
> +F: drivers/video/fbdev/amba-clcd.*
>
> ARM PRIMECELL KMI PL050 DRIVER
> M: Russell King <linux@arm.linux.org.uk>
> @@ -1135,7 +1135,7 @@ M: Daniel Walker <dwalker@fifo99.com>
> M: Bryan Huntsman <bryanh@codeaurora.org>
> L: linux-arm-msm@vger.kernel.org
> F: arch/arm/mach-msm/
> -F: drivers/video/msm/
> +F: drivers/video/fbdev/msm/
> F: drivers/mmc/host/msm_sdcc.c
> F: drivers/mmc/host/msm_sdcc.h
> F: drivers/tty/serial/msm_serial.h
> @@ -1355,7 +1355,7 @@ F: drivers/mtd/nand/nuc900_nand.c
> F: drivers/rtc/rtc-nuc900.c
> F: drivers/spi/spi-nuc900.c
> F: drivers/usb/host/ehci-w90x900.c
> -F: drivers/video/nuc900fb.c
> +F: drivers/video/fbdev/nuc900fb.c
>
> ARM/U300 MACHINE SUPPORT
> M: Linus Walleij <linus.walleij@linaro.org>
> @@ -1424,9 +1424,9 @@ F: drivers/rtc/rtc-vt8500.c
> F: drivers/tty/serial/vt8500_serial.c
> F: drivers/usb/host/ehci-platform.c
> F: drivers/usb/host/uhci-platform.c
> -F: drivers/video/vt8500lcdfb.*
> -F: drivers/video/wm8505fb*
> -F: drivers/video/wmt_ge_rops.*
> +F: drivers/video/fbdev/vt8500lcdfb.*
> +F: drivers/video/fbdev/wm8505fb*
> +F: drivers/video/fbdevwmt_ge_rops.*
A typo here. This should be
+F: drivers/video/fbdev/wmt_ge_rops.*
Regards,
Liu Ying
>
> ARM/ZIPIT Z2 SUPPORT
> M: Marek Vasut <marek.vasut@gmail.com>
> @@ -1616,7 +1616,7 @@ ATMEL LCDFB DRIVER
> M: Nicolas Ferre <nicolas.ferre@atmel.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/atmel_lcdfb.c
> +F: drivers/video/fbdev/atmel_lcdfb.c
> F: include/video/atmel_lcdc.h
>
> ATMEL MACB ETHERNET DRIVER
> @@ -2626,7 +2626,7 @@ M: Russell King <linux@arm.linux.org.uk>
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> W: http://www.arm.linux.org.uk/
> S: Maintained
> -F: drivers/video/cyber2000fb.*
> +F: drivers/video/fbdev/cyber2000fb.*
>
> CYCLADES ASYNC MUX DRIVER
> W: http://www.cyclades.com/
> @@ -2863,7 +2863,7 @@ M: Bernie Thompson <bernie@plugable.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> W: http://plugable.com/category/projects/udlfb/
> -F: drivers/video/udlfb.c
> +F: drivers/video/fbdev/udlfb.c
> F: include/video/udlfb.h
> F: Documentation/fb/udlfb.txt
>
> @@ -3385,7 +3385,7 @@ EFIFB FRAMEBUFFER DRIVER
> L: linux-fbdev@vger.kernel.org
> M: Peter Jones <pjones@redhat.com>
> S: Maintained
> -F: drivers/video/efifb.c
> +F: drivers/video/fbdev/efifb.c
>
> EFS FILESYSTEM
> W: http://aeschi.ch.eu.org/efs/
> @@ -3450,7 +3450,7 @@ EPSON S1D13XXX FRAMEBUFFER DRIVER
> M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
> S: Maintained
> T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
> -F: drivers/video/s1d13xxxfb.c
> +F: drivers/video/fbdev/s1d13xxxfb.c
> F: include/video/s1d13xxxfb.h
>
> ETHERNET BRIDGE
> @@ -3528,7 +3528,7 @@ M: Donghwa Lee <dh09.lee@samsung.com>
> M: Kyungmin Park <kyungmin.park@samsung.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/exynos/exynos_mipi*
> +F: drivers/video/fbdev/exynos/exynos_mipi*
> F: include/video/exynos_mipi*
>
> F71805F HARDWARE MONITORING DRIVER
> @@ -3707,7 +3707,8 @@ FREESCALE DIU FRAMEBUFFER DRIVER
> M: Timur Tabi <timur@tabi.org>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/fsl-diu-fb.*
> +F: drivers/video/fbdev/fsl-diu-fb.c
> +F: include/linux/fsl-diu-fb.h
>
> FREESCALE DMA DRIVER
> M: Li Yang <leoli@freescale.com>
> @@ -3729,7 +3730,7 @@ L: linux-fbdev@vger.kernel.org
> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> S: Maintained
> F: include/linux/platform_data/video-imxfb.h
> -F: drivers/video/imxfb.c
> +F: drivers/video/fbdev/imxfb.c
>
> FREESCALE SOC FS_ENET DRIVER
> M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
> @@ -4148,7 +4149,7 @@ M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
> L: linux-nvidia@lists.surfsouth.com
> W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
> S: Maintained
> -F: drivers/video/hgafb.c
> +F: drivers/video/fbdev/hgafb.c
>
> HIBERNATION (aka Software Suspend, aka swsusp)
> M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> @@ -4290,7 +4291,7 @@ F: drivers/hv/
> F: drivers/input/serio/hyperv-keyboard.c
> F: drivers/net/hyperv/
> F: drivers/scsi/storvsc_drv.c
> -F: drivers/video/hyperv_fb.c
> +F: drivers/video/fbdev/hyperv_fb.c
> F: include/linux/hyperv.h
> F: tools/hv/
>
> @@ -4550,7 +4551,7 @@ F: security/integrity/ima/
> IMS TWINTURBO FRAMEBUFFER DRIVER
> L: linux-fbdev@vger.kernel.org
> S: Orphan
> -F: drivers/video/imsttfb.c
> +F: drivers/video/fbdev/imsttfb.c
>
> INFINIBAND SUBSYSTEM
> M: Roland Dreier <roland@kernel.org>
> @@ -4617,13 +4618,13 @@ M: Maik Broemme <mbroemme@plusserver.de>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> F: Documentation/fb/intelfb.txt
> -F: drivers/video/intelfb/
> +F: drivers/video/fbdev/intelfb/
>
> INTEL 810/815 FRAMEBUFFER DRIVER
> M: Antonino Daplas <adaplas@gmail.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/i810/
> +F: drivers/video/fbdev/i810/
>
> INTEL MENLOW THERMAL DRIVER
> M: Sujith Thomas <sujith.thomas@intel.com>
> @@ -5702,7 +5703,7 @@ F: drivers/mmc/host/mvsdio.*
> MATROX FRAMEBUFFER DRIVER
> L: linux-fbdev@vger.kernel.org
> S: Orphan
> -F: drivers/video/matrox/matroxfb_*
> +F: drivers/video/fbdev/matrox/matroxfb_*
> F: include/uapi/linux/matroxfb.h
>
> MAX16065 HARDWARE MONITOR DRIVER
> @@ -6345,8 +6346,8 @@ NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
> M: Antonino Daplas <adaplas@gmail.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/riva/
> -F: drivers/video/nvidia/
> +F: drivers/video/fbdev/riva/
> +F: drivers/video/fbdev/nvidia/
>
> NVM EXPRESS DRIVER
> M: Matthew Wilcox <willy@linux.intel.com>
> @@ -6416,14 +6417,14 @@ M: Tomi Valkeinen <tomi.valkeinen@ti.com>
> L: linux-fbdev@vger.kernel.org
> L: linux-omap@vger.kernel.org
> S: Maintained
> -F: drivers/video/omap/
> +F: drivers/video/fbdev/omap/
>
> OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
> M: Tomi Valkeinen <tomi.valkeinen@ti.com>
> L: linux-omap@vger.kernel.org
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/omap2/
> +F: drivers/video/fbdev/omap2/
> F: Documentation/arm/OMAP/DSS
>
> OMAP HARDWARE SPINLOCK SUPPORT
> @@ -6714,7 +6715,7 @@ F: drivers/char/agp/parisc-agp.c
> F: drivers/input/serio/gscps2.c
> F: drivers/parport/parport_gsc.*
> F: drivers/tty/serial/8250/8250_gsc.c
> -F: drivers/video/sti*
> +F: drivers/video/fbdev/sti*
> F: drivers/video/console/sti*
> F: drivers/video/logo/logo_parisc*
>
> @@ -6963,7 +6964,7 @@ S: Maintained
> T: git git://github.com/gxt/linux.git
> F: drivers/input/serio/i8042-unicore32io.h
> F: drivers/i2c/busses/i2c-puv3.c
> -F: drivers/video/fb-puv3.c
> +F: drivers/video/fbdev/fb-puv3.c
> F: drivers/rtc/rtc-puv3.c
>
> PMBUS HARDWARE MONITORING DRIVERS
> @@ -7335,7 +7336,7 @@ RADEON FRAMEBUFFER DISPLAY DRIVER
> M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/aty/radeon*
> +F: drivers/video/fbdev/aty/radeon*
> F: include/uapi/linux/radeonfb.h
>
> RADIOSHARK RADIO DRIVER
> @@ -7357,7 +7358,7 @@ RAGE128 FRAMEBUFFER DISPLAY DRIVER
> M: Paul Mackerras <paulus@samba.org>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/aty/aty128fb.c
> +F: drivers/video/fbdev/aty/aty128fb.c
>
> RALINK RT2X00 WIRELESS LAN DRIVER
> P: rt2x00 project
> @@ -7591,7 +7592,7 @@ S3 SAVAGE FRAMEBUFFER DRIVER
> M: Antonino Daplas <adaplas@gmail.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/savage/
> +F: drivers/video/fbdev/savage/
>
> S390
> M: Martin Schwidefsky <schwidefsky@de.ibm.com>
> @@ -7714,7 +7715,7 @@ SAMSUNG FRAMEBUFFER DRIVER
> M: Jingoo Han <jg1.han@samsung.com>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/s3c-fb.c
> +F: drivers/video/fbdev/s3c-fb.c
>
> SAMSUNG MULTIFUNCTION DEVICE DRIVERS
> M: Sangbeom Kim <sbkim73@samsung.com>
> @@ -8186,7 +8187,7 @@ M: Thomas Winischhofer <thomas@winischhofer.net>
> W: http://www.winischhofer.net/linuxsisvga.shtml
> S: Maintained
> F: Documentation/fb/sisfb.txt
> -F: drivers/video/sis/
> +F: drivers/video/fbdev/sis/
> F: include/video/sisfb.h
>
> SIS USB2VGA DRIVER
> @@ -8290,7 +8291,7 @@ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
> M: Steve Glendinning <steve.glendinning@shawell.net>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/smscufx.c
> +F: drivers/video/fbdev/smscufx.c
>
> SOC-CAMERA V4L2 SUBSYSTEM
> M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> @@ -9622,7 +9623,8 @@ L: linux-fbdev@vger.kernel.org
> W: http://dev.gentoo.org/~spock/projects/uvesafb/
> S: Maintained
> F: Documentation/fb/uvesafb.txt
> -F: drivers/video/uvesafb.*
> +F: drivers/video/fbdev/uvesafb.c
> +F: include/video/uvesafb.h
>
> VFAT/FAT/MSDOS FILESYSTEM
> M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
> @@ -9695,7 +9697,7 @@ S: Maintained
> F: include/linux/via-core.h
> F: include/linux/via-gpio.h
> F: include/linux/via_i2c.h
> -F: drivers/video/via/
> +F: drivers/video/fbdev/via/
>
> VIA VELOCITY NETWORK DRIVER
> M: Francois Romieu <romieu@fr.zoreil.com>
>
^ permalink raw reply
* Re: [PATCH] MAINTAINERS: Update Framebuffer file patterns
From: Jingoo Han @ 2014-07-01 3:53 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <00a101cf94ce$9489daf0$bd9d90d0$%han@samsung.com>
On Tuesday, July 01, 2014 12:37 PM, Liu Ying wrote:
> On 07/01/2014 09:48 AM, Jingoo Han wrote:
> > Since the commit f7018c2 "video: move fbdev to drivers/video/fbdev",
> > all framebuffer drivers were moved to fbdev directory. Thus, file
> > patterns of these framebuffer drivers should be updated correctly.
> >
> > Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> > ---
> > MAINTAINERS | 76 ++++++++++++++++++++++++++++++-----------------------------
> > 1 file changed, 39 insertions(+), 37 deletions(-)
> >
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index 3f2e171..7daae48 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -587,7 +587,7 @@ W: http://www.amd.com/us-
> en/ConnectivitySolutions/TechnicalResources/0,,50_2334_
> > S: Supported
> > F: drivers/char/hw_random/geode-rng.c
> > F: drivers/crypto/geode*
> > -F: drivers/video/geode/
> > +F: drivers/video/fbdev/geode/
> > F: arch/x86/include/asm/geode.h
> >
> > AMD IOMMU (AMD-VI)
> > @@ -716,8 +716,8 @@ F: drivers/ata/pata_arasan_cf.c
> > ARC FRAMEBUFFER DRIVER
> > M: Jaya Kumar <jayalk@intworks.biz>
> > S: Maintained
> > -F: drivers/video/arcfb.c
> > -F: drivers/video/fb_defio.c
> > +F: drivers/video/fbdev/arcfb.c
> > +F: drivers/video/fbdev/core/fb_defio.c
> >
> > ARM MFM AND FLOPPY DRIVERS
> > M: Ian Molton <spyro@f2s.com>
> > @@ -756,7 +756,7 @@ F: sound/arm/aaci.*
> > ARM PRIMECELL CLCD PL110 DRIVER
> > M: Russell King <linux@arm.linux.org.uk>
> > S: Maintained
> > -F: drivers/video/amba-clcd.*
> > +F: drivers/video/fbdev/amba-clcd.*
> >
> > ARM PRIMECELL KMI PL050 DRIVER
> > M: Russell King <linux@arm.linux.org.uk>
> > @@ -1135,7 +1135,7 @@ M: Daniel Walker <dwalker@fifo99.com>
> > M: Bryan Huntsman <bryanh@codeaurora.org>
> > L: linux-arm-msm@vger.kernel.org
> > F: arch/arm/mach-msm/
> > -F: drivers/video/msm/
> > +F: drivers/video/fbdev/msm/
> > F: drivers/mmc/host/msm_sdcc.c
> > F: drivers/mmc/host/msm_sdcc.h
> > F: drivers/tty/serial/msm_serial.h
> > @@ -1355,7 +1355,7 @@ F: drivers/mtd/nand/nuc900_nand.c
> > F: drivers/rtc/rtc-nuc900.c
> > F: drivers/spi/spi-nuc900.c
> > F: drivers/usb/host/ehci-w90x900.c
> > -F: drivers/video/nuc900fb.c
> > +F: drivers/video/fbdev/nuc900fb.c
> >
> > ARM/U300 MACHINE SUPPORT
> > M: Linus Walleij <linus.walleij@linaro.org>
> > @@ -1424,9 +1424,9 @@ F: drivers/rtc/rtc-vt8500.c
> > F: drivers/tty/serial/vt8500_serial.c
> > F: drivers/usb/host/ehci-platform.c
> > F: drivers/usb/host/uhci-platform.c
> > -F: drivers/video/vt8500lcdfb.*
> > -F: drivers/video/wm8505fb*
> > -F: drivers/video/wmt_ge_rops.*
> > +F: drivers/video/fbdev/vt8500lcdfb.*
> > +F: drivers/video/fbdev/wm8505fb*
> > +F: drivers/video/fbdevwmt_ge_rops.*
>
> A typo here. This should be
> +F: drivers/video/fbdev/wmt_ge_rops.*
Oh, it is my mistake!
I really appreciate your comment. :-)
I will fix it and send v2 patch, soon.
Thank you.
Best regards,
Jingoo Han
>
> Regards,
> Liu Ying
>
> >
> > ARM/ZIPIT Z2 SUPPORT
> > M: Marek Vasut <marek.vasut@gmail.com>
> > @@ -1616,7 +1616,7 @@ ATMEL LCDFB DRIVER
> > M: Nicolas Ferre <nicolas.ferre@atmel.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/atmel_lcdfb.c
> > +F: drivers/video/fbdev/atmel_lcdfb.c
> > F: include/video/atmel_lcdc.h
> >
> > ATMEL MACB ETHERNET DRIVER
> > @@ -2626,7 +2626,7 @@ M: Russell King <linux@arm.linux.org.uk>
> > L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> > W: http://www.arm.linux.org.uk/
> > S: Maintained
> > -F: drivers/video/cyber2000fb.*
> > +F: drivers/video/fbdev/cyber2000fb.*
> >
> > CYCLADES ASYNC MUX DRIVER
> > W: http://www.cyclades.com/
> > @@ -2863,7 +2863,7 @@ M: Bernie Thompson <bernie@plugable.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > W: http://plugable.com/category/projects/udlfb/
> > -F: drivers/video/udlfb.c
> > +F: drivers/video/fbdev/udlfb.c
> > F: include/video/udlfb.h
> > F: Documentation/fb/udlfb.txt
> >
> > @@ -3385,7 +3385,7 @@ EFIFB FRAMEBUFFER DRIVER
> > L: linux-fbdev@vger.kernel.org
> > M: Peter Jones <pjones@redhat.com>
> > S: Maintained
> > -F: drivers/video/efifb.c
> > +F: drivers/video/fbdev/efifb.c
> >
> > EFS FILESYSTEM
> > W: http://aeschi.ch.eu.org/efs/
> > @@ -3450,7 +3450,7 @@ EPSON S1D13XXX FRAMEBUFFER DRIVER
> > M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
> > S: Maintained
> > T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
> > -F: drivers/video/s1d13xxxfb.c
> > +F: drivers/video/fbdev/s1d13xxxfb.c
> > F: include/video/s1d13xxxfb.h
> >
> > ETHERNET BRIDGE
> > @@ -3528,7 +3528,7 @@ M: Donghwa Lee <dh09.lee@samsung.com>
> > M: Kyungmin Park <kyungmin.park@samsung.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/exynos/exynos_mipi*
> > +F: drivers/video/fbdev/exynos/exynos_mipi*
> > F: include/video/exynos_mipi*
> >
> > F71805F HARDWARE MONITORING DRIVER
> > @@ -3707,7 +3707,8 @@ FREESCALE DIU FRAMEBUFFER DRIVER
> > M: Timur Tabi <timur@tabi.org>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/fsl-diu-fb.*
> > +F: drivers/video/fbdev/fsl-diu-fb.c
> > +F: include/linux/fsl-diu-fb.h
> >
> > FREESCALE DMA DRIVER
> > M: Li Yang <leoli@freescale.com>
> > @@ -3729,7 +3730,7 @@ L: linux-fbdev@vger.kernel.org
> > L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
> > S: Maintained
> > F: include/linux/platform_data/video-imxfb.h
> > -F: drivers/video/imxfb.c
> > +F: drivers/video/fbdev/imxfb.c
> >
> > FREESCALE SOC FS_ENET DRIVER
> > M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
> > @@ -4148,7 +4149,7 @@ M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
> > L: linux-nvidia@lists.surfsouth.com
> > W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
> > S: Maintained
> > -F: drivers/video/hgafb.c
> > +F: drivers/video/fbdev/hgafb.c
> >
> > HIBERNATION (aka Software Suspend, aka swsusp)
> > M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> > @@ -4290,7 +4291,7 @@ F: drivers/hv/
> > F: drivers/input/serio/hyperv-keyboard.c
> > F: drivers/net/hyperv/
> > F: drivers/scsi/storvsc_drv.c
> > -F: drivers/video/hyperv_fb.c
> > +F: drivers/video/fbdev/hyperv_fb.c
> > F: include/linux/hyperv.h
> > F: tools/hv/
> >
> > @@ -4550,7 +4551,7 @@ F: security/integrity/ima/
> > IMS TWINTURBO FRAMEBUFFER DRIVER
> > L: linux-fbdev@vger.kernel.org
> > S: Orphan
> > -F: drivers/video/imsttfb.c
> > +F: drivers/video/fbdev/imsttfb.c
> >
> > INFINIBAND SUBSYSTEM
> > M: Roland Dreier <roland@kernel.org>
> > @@ -4617,13 +4618,13 @@ M: Maik Broemme <mbroemme@plusserver.de>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > F: Documentation/fb/intelfb.txt
> > -F: drivers/video/intelfb/
> > +F: drivers/video/fbdev/intelfb/
> >
> > INTEL 810/815 FRAMEBUFFER DRIVER
> > M: Antonino Daplas <adaplas@gmail.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/i810/
> > +F: drivers/video/fbdev/i810/
> >
> > INTEL MENLOW THERMAL DRIVER
> > M: Sujith Thomas <sujith.thomas@intel.com>
> > @@ -5702,7 +5703,7 @@ F: drivers/mmc/host/mvsdio.*
> > MATROX FRAMEBUFFER DRIVER
> > L: linux-fbdev@vger.kernel.org
> > S: Orphan
> > -F: drivers/video/matrox/matroxfb_*
> > +F: drivers/video/fbdev/matrox/matroxfb_*
> > F: include/uapi/linux/matroxfb.h
> >
> > MAX16065 HARDWARE MONITOR DRIVER
> > @@ -6345,8 +6346,8 @@ NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
> > M: Antonino Daplas <adaplas@gmail.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/riva/
> > -F: drivers/video/nvidia/
> > +F: drivers/video/fbdev/riva/
> > +F: drivers/video/fbdev/nvidia/
> >
> > NVM EXPRESS DRIVER
> > M: Matthew Wilcox <willy@linux.intel.com>
> > @@ -6416,14 +6417,14 @@ M: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > L: linux-fbdev@vger.kernel.org
> > L: linux-omap@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/omap/
> > +F: drivers/video/fbdev/omap/
> >
> > OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
> > M: Tomi Valkeinen <tomi.valkeinen@ti.com>
> > L: linux-omap@vger.kernel.org
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/omap2/
> > +F: drivers/video/fbdev/omap2/
> > F: Documentation/arm/OMAP/DSS
> >
> > OMAP HARDWARE SPINLOCK SUPPORT
> > @@ -6714,7 +6715,7 @@ F: drivers/char/agp/parisc-agp.c
> > F: drivers/input/serio/gscps2.c
> > F: drivers/parport/parport_gsc.*
> > F: drivers/tty/serial/8250/8250_gsc.c
> > -F: drivers/video/sti*
> > +F: drivers/video/fbdev/sti*
> > F: drivers/video/console/sti*
> > F: drivers/video/logo/logo_parisc*
> >
> > @@ -6963,7 +6964,7 @@ S: Maintained
> > T: git git://github.com/gxt/linux.git
> > F: drivers/input/serio/i8042-unicore32io.h
> > F: drivers/i2c/busses/i2c-puv3.c
> > -F: drivers/video/fb-puv3.c
> > +F: drivers/video/fbdev/fb-puv3.c
> > F: drivers/rtc/rtc-puv3.c
> >
> > PMBUS HARDWARE MONITORING DRIVERS
> > @@ -7335,7 +7336,7 @@ RADEON FRAMEBUFFER DISPLAY DRIVER
> > M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/aty/radeon*
> > +F: drivers/video/fbdev/aty/radeon*
> > F: include/uapi/linux/radeonfb.h
> >
> > RADIOSHARK RADIO DRIVER
> > @@ -7357,7 +7358,7 @@ RAGE128 FRAMEBUFFER DISPLAY DRIVER
> > M: Paul Mackerras <paulus@samba.org>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/aty/aty128fb.c
> > +F: drivers/video/fbdev/aty/aty128fb.c
> >
> > RALINK RT2X00 WIRELESS LAN DRIVER
> > P: rt2x00 project
> > @@ -7591,7 +7592,7 @@ S3 SAVAGE FRAMEBUFFER DRIVER
> > M: Antonino Daplas <adaplas@gmail.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/savage/
> > +F: drivers/video/fbdev/savage/
> >
> > S390
> > M: Martin Schwidefsky <schwidefsky@de.ibm.com>
> > @@ -7714,7 +7715,7 @@ SAMSUNG FRAMEBUFFER DRIVER
> > M: Jingoo Han <jg1.han@samsung.com>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/s3c-fb.c
> > +F: drivers/video/fbdev/s3c-fb.c
> >
> > SAMSUNG MULTIFUNCTION DEVICE DRIVERS
> > M: Sangbeom Kim <sbkim73@samsung.com>
> > @@ -8186,7 +8187,7 @@ M: Thomas Winischhofer <thomas@winischhofer.net>
> > W: http://www.winischhofer.net/linuxsisvga.shtml
> > S: Maintained
> > F: Documentation/fb/sisfb.txt
> > -F: drivers/video/sis/
> > +F: drivers/video/fbdev/sis/
> > F: include/video/sisfb.h
> >
> > SIS USB2VGA DRIVER
> > @@ -8290,7 +8291,7 @@ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
> > M: Steve Glendinning <steve.glendinning@shawell.net>
> > L: linux-fbdev@vger.kernel.org
> > S: Maintained
> > -F: drivers/video/smscufx.c
> > +F: drivers/video/fbdev/smscufx.c
> >
> > SOC-CAMERA V4L2 SUBSYSTEM
> > M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
> > @@ -9622,7 +9623,8 @@ L: linux-fbdev@vger.kernel.org
> > W: http://dev.gentoo.org/~spock/projects/uvesafb/
> > S: Maintained
> > F: Documentation/fb/uvesafb.txt
> > -F: drivers/video/uvesafb.*
> > +F: drivers/video/fbdev/uvesafb.c
> > +F: include/video/uvesafb.h
> >
> > VFAT/FAT/MSDOS FILESYSTEM
> > M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
> > @@ -9695,7 +9697,7 @@ S: Maintained
> > F: include/linux/via-core.h
> > F: include/linux/via-gpio.h
> > F: include/linux/via_i2c.h
> > -F: drivers/video/via/
> > +F: drivers/video/fbdev/via/
> >
> > VIA VELOCITY NETWORK DRIVER
> > M: Francois Romieu <romieu@fr.zoreil.com>
> >
^ permalink raw reply
* [PATCH V2] MAINTAINERS: Update Framebuffer file patterns
From: Jingoo Han @ 2014-07-01 3:59 UTC (permalink / raw)
To: linux-fbdev
Since the commit f7018c2 "video: move fbdev to drivers/video/fbdev",
all framebuffer drivers were moved to fbdev directory. Thus, file
patterns of these framebuffer drivers should be updated correctly.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
---
Changes since v1:
- Fix the typo from 'fbdevwmt_ge_rops.*' to 'fbdev/wmt_ge_rop/*', per Liu Ying
MAINTAINERS | 76 ++++++++++++++++++++++++++++++-----------------------------
1 file changed, 39 insertions(+), 37 deletions(-)
diff --git a/MAINTAINERS b/MAINTAINERS
index 3f2e171..c3d5dad 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -587,7 +587,7 @@ W: http://www.amd.com/us-en/ConnectivitySolutions/TechnicalResources/0,,50_2334_
S: Supported
F: drivers/char/hw_random/geode-rng.c
F: drivers/crypto/geode*
-F: drivers/video/geode/
+F: drivers/video/fbdev/geode/
F: arch/x86/include/asm/geode.h
AMD IOMMU (AMD-VI)
@@ -716,8 +716,8 @@ F: drivers/ata/pata_arasan_cf.c
ARC FRAMEBUFFER DRIVER
M: Jaya Kumar <jayalk@intworks.biz>
S: Maintained
-F: drivers/video/arcfb.c
-F: drivers/video/fb_defio.c
+F: drivers/video/fbdev/arcfb.c
+F: drivers/video/fbdev/core/fb_defio.c
ARM MFM AND FLOPPY DRIVERS
M: Ian Molton <spyro@f2s.com>
@@ -756,7 +756,7 @@ F: sound/arm/aaci.*
ARM PRIMECELL CLCD PL110 DRIVER
M: Russell King <linux@arm.linux.org.uk>
S: Maintained
-F: drivers/video/amba-clcd.*
+F: drivers/video/fbdev/amba-clcd.*
ARM PRIMECELL KMI PL050 DRIVER
M: Russell King <linux@arm.linux.org.uk>
@@ -1135,7 +1135,7 @@ M: Daniel Walker <dwalker@fifo99.com>
M: Bryan Huntsman <bryanh@codeaurora.org>
L: linux-arm-msm@vger.kernel.org
F: arch/arm/mach-msm/
-F: drivers/video/msm/
+F: drivers/video/fbdev/msm/
F: drivers/mmc/host/msm_sdcc.c
F: drivers/mmc/host/msm_sdcc.h
F: drivers/tty/serial/msm_serial.h
@@ -1355,7 +1355,7 @@ F: drivers/mtd/nand/nuc900_nand.c
F: drivers/rtc/rtc-nuc900.c
F: drivers/spi/spi-nuc900.c
F: drivers/usb/host/ehci-w90x900.c
-F: drivers/video/nuc900fb.c
+F: drivers/video/fbdev/nuc900fb.c
ARM/U300 MACHINE SUPPORT
M: Linus Walleij <linus.walleij@linaro.org>
@@ -1424,9 +1424,9 @@ F: drivers/rtc/rtc-vt8500.c
F: drivers/tty/serial/vt8500_serial.c
F: drivers/usb/host/ehci-platform.c
F: drivers/usb/host/uhci-platform.c
-F: drivers/video/vt8500lcdfb.*
-F: drivers/video/wm8505fb*
-F: drivers/video/wmt_ge_rops.*
+F: drivers/video/fbdev/vt8500lcdfb.*
+F: drivers/video/fbdev/wm8505fb*
+F: drivers/video/fbdev/wmt_ge_rops.*
ARM/ZIPIT Z2 SUPPORT
M: Marek Vasut <marek.vasut@gmail.com>
@@ -1616,7 +1616,7 @@ ATMEL LCDFB DRIVER
M: Nicolas Ferre <nicolas.ferre@atmel.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/atmel_lcdfb.c
+F: drivers/video/fbdev/atmel_lcdfb.c
F: include/video/atmel_lcdc.h
ATMEL MACB ETHERNET DRIVER
@@ -2626,7 +2626,7 @@ M: Russell King <linux@arm.linux.org.uk>
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
W: http://www.arm.linux.org.uk/
S: Maintained
-F: drivers/video/cyber2000fb.*
+F: drivers/video/fbdev/cyber2000fb.*
CYCLADES ASYNC MUX DRIVER
W: http://www.cyclades.com/
@@ -2863,7 +2863,7 @@ M: Bernie Thompson <bernie@plugable.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
W: http://plugable.com/category/projects/udlfb/
-F: drivers/video/udlfb.c
+F: drivers/video/fbdev/udlfb.c
F: include/video/udlfb.h
F: Documentation/fb/udlfb.txt
@@ -3385,7 +3385,7 @@ EFIFB FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
M: Peter Jones <pjones@redhat.com>
S: Maintained
-F: drivers/video/efifb.c
+F: drivers/video/fbdev/efifb.c
EFS FILESYSTEM
W: http://aeschi.ch.eu.org/efs/
@@ -3450,7 +3450,7 @@ EPSON S1D13XXX FRAMEBUFFER DRIVER
M: Kristoffer Ericson <kristoffer.ericson@gmail.com>
S: Maintained
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git
-F: drivers/video/s1d13xxxfb.c
+F: drivers/video/fbdev/s1d13xxxfb.c
F: include/video/s1d13xxxfb.h
ETHERNET BRIDGE
@@ -3528,7 +3528,7 @@ M: Donghwa Lee <dh09.lee@samsung.com>
M: Kyungmin Park <kyungmin.park@samsung.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/exynos/exynos_mipi*
+F: drivers/video/fbdev/exynos/exynos_mipi*
F: include/video/exynos_mipi*
F71805F HARDWARE MONITORING DRIVER
@@ -3707,7 +3707,8 @@ FREESCALE DIU FRAMEBUFFER DRIVER
M: Timur Tabi <timur@tabi.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/fsl-diu-fb.*
+F: drivers/video/fbdev/fsl-diu-fb.c
+F: include/linux/fsl-diu-fb.h
FREESCALE DMA DRIVER
M: Li Yang <leoli@freescale.com>
@@ -3729,7 +3730,7 @@ L: linux-fbdev@vger.kernel.org
L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
S: Maintained
F: include/linux/platform_data/video-imxfb.h
-F: drivers/video/imxfb.c
+F: drivers/video/fbdev/imxfb.c
FREESCALE SOC FS_ENET DRIVER
M: Pantelis Antoniou <pantelis.antoniou@gmail.com>
@@ -4148,7 +4149,7 @@ M: Ferenc Bakonyi <fero@drama.obuda.kando.hu>
L: linux-nvidia@lists.surfsouth.com
W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
S: Maintained
-F: drivers/video/hgafb.c
+F: drivers/video/fbdev/hgafb.c
HIBERNATION (aka Software Suspend, aka swsusp)
M: "Rafael J. Wysocki" <rjw@rjwysocki.net>
@@ -4290,7 +4291,7 @@ F: drivers/hv/
F: drivers/input/serio/hyperv-keyboard.c
F: drivers/net/hyperv/
F: drivers/scsi/storvsc_drv.c
-F: drivers/video/hyperv_fb.c
+F: drivers/video/fbdev/hyperv_fb.c
F: include/linux/hyperv.h
F: tools/hv/
@@ -4550,7 +4551,7 @@ F: security/integrity/ima/
IMS TWINTURBO FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
S: Orphan
-F: drivers/video/imsttfb.c
+F: drivers/video/fbdev/imsttfb.c
INFINIBAND SUBSYSTEM
M: Roland Dreier <roland@kernel.org>
@@ -4617,13 +4618,13 @@ M: Maik Broemme <mbroemme@plusserver.de>
L: linux-fbdev@vger.kernel.org
S: Maintained
F: Documentation/fb/intelfb.txt
-F: drivers/video/intelfb/
+F: drivers/video/fbdev/intelfb/
INTEL 810/815 FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/i810/
+F: drivers/video/fbdev/i810/
INTEL MENLOW THERMAL DRIVER
M: Sujith Thomas <sujith.thomas@intel.com>
@@ -5702,7 +5703,7 @@ F: drivers/mmc/host/mvsdio.*
MATROX FRAMEBUFFER DRIVER
L: linux-fbdev@vger.kernel.org
S: Orphan
-F: drivers/video/matrox/matroxfb_*
+F: drivers/video/fbdev/matrox/matroxfb_*
F: include/uapi/linux/matroxfb.h
MAX16065 HARDWARE MONITOR DRIVER
@@ -6345,8 +6346,8 @@ NVIDIA (rivafb and nvidiafb) FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/riva/
-F: drivers/video/nvidia/
+F: drivers/video/fbdev/riva/
+F: drivers/video/fbdev/nvidia/
NVM EXPRESS DRIVER
M: Matthew Wilcox <willy@linux.intel.com>
@@ -6416,14 +6417,14 @@ M: Tomi Valkeinen <tomi.valkeinen@ti.com>
L: linux-fbdev@vger.kernel.org
L: linux-omap@vger.kernel.org
S: Maintained
-F: drivers/video/omap/
+F: drivers/video/fbdev/omap/
OMAP DISPLAY SUBSYSTEM and FRAMEBUFFER SUPPORT (DSS2)
M: Tomi Valkeinen <tomi.valkeinen@ti.com>
L: linux-omap@vger.kernel.org
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/omap2/
+F: drivers/video/fbdev/omap2/
F: Documentation/arm/OMAP/DSS
OMAP HARDWARE SPINLOCK SUPPORT
@@ -6714,7 +6715,7 @@ F: drivers/char/agp/parisc-agp.c
F: drivers/input/serio/gscps2.c
F: drivers/parport/parport_gsc.*
F: drivers/tty/serial/8250/8250_gsc.c
-F: drivers/video/sti*
+F: drivers/video/fbdev/sti*
F: drivers/video/console/sti*
F: drivers/video/logo/logo_parisc*
@@ -6963,7 +6964,7 @@ S: Maintained
T: git git://github.com/gxt/linux.git
F: drivers/input/serio/i8042-unicore32io.h
F: drivers/i2c/busses/i2c-puv3.c
-F: drivers/video/fb-puv3.c
+F: drivers/video/fbdev/fb-puv3.c
F: drivers/rtc/rtc-puv3.c
PMBUS HARDWARE MONITORING DRIVERS
@@ -7335,7 +7336,7 @@ RADEON FRAMEBUFFER DISPLAY DRIVER
M: Benjamin Herrenschmidt <benh@kernel.crashing.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/aty/radeon*
+F: drivers/video/fbdev/aty/radeon*
F: include/uapi/linux/radeonfb.h
RADIOSHARK RADIO DRIVER
@@ -7357,7 +7358,7 @@ RAGE128 FRAMEBUFFER DISPLAY DRIVER
M: Paul Mackerras <paulus@samba.org>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/aty/aty128fb.c
+F: drivers/video/fbdev/aty/aty128fb.c
RALINK RT2X00 WIRELESS LAN DRIVER
P: rt2x00 project
@@ -7591,7 +7592,7 @@ S3 SAVAGE FRAMEBUFFER DRIVER
M: Antonino Daplas <adaplas@gmail.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/savage/
+F: drivers/video/fbdev/savage/
S390
M: Martin Schwidefsky <schwidefsky@de.ibm.com>
@@ -7714,7 +7715,7 @@ SAMSUNG FRAMEBUFFER DRIVER
M: Jingoo Han <jg1.han@samsung.com>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/s3c-fb.c
+F: drivers/video/fbdev/s3c-fb.c
SAMSUNG MULTIFUNCTION DEVICE DRIVERS
M: Sangbeom Kim <sbkim73@samsung.com>
@@ -8186,7 +8187,7 @@ M: Thomas Winischhofer <thomas@winischhofer.net>
W: http://www.winischhofer.net/linuxsisvga.shtml
S: Maintained
F: Documentation/fb/sisfb.txt
-F: drivers/video/sis/
+F: drivers/video/fbdev/sis/
F: include/video/sisfb.h
SIS USB2VGA DRIVER
@@ -8290,7 +8291,7 @@ SMSC UFX6000 and UFX7000 USB to VGA DRIVER
M: Steve Glendinning <steve.glendinning@shawell.net>
L: linux-fbdev@vger.kernel.org
S: Maintained
-F: drivers/video/smscufx.c
+F: drivers/video/fbdev/smscufx.c
SOC-CAMERA V4L2 SUBSYSTEM
M: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
@@ -9622,7 +9623,8 @@ L: linux-fbdev@vger.kernel.org
W: http://dev.gentoo.org/~spock/projects/uvesafb/
S: Maintained
F: Documentation/fb/uvesafb.txt
-F: drivers/video/uvesafb.*
+F: drivers/video/fbdev/uvesafb.c
+F: include/video/uvesafb.h
VFAT/FAT/MSDOS FILESYSTEM
M: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
@@ -9695,7 +9697,7 @@ S: Maintained
F: include/linux/via-core.h
F: include/linux/via-gpio.h
F: include/linux/via_i2c.h
-F: drivers/video/via/
+F: drivers/video/fbdev/via/
VIA VELOCITY NETWORK DRIVER
M: Francois Romieu <romieu@fr.zoreil.com>
--
1.7.10.4
^ permalink raw reply related
* Re: [PATCH 2/2] video: clps711x: Fix sparse warnings
From: Tomi Valkeinen @ 2014-07-01 6:14 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <1403937246-14506-2-git-send-email-shc_work@mail.ru>
[-- Attachment #1: Type: text/plain, Size: 1943 bytes --]
On 28/06/14 09:34, Alexander Shiyan wrote:
> This patch fixes below warnings:
> CHECK drivers/video/fbdev/clps711x-fb.c
> drivers/video/fbdev/clps711x-fb.c:247:24: warning: incorrect type in argument 1 (different address spaces)
> drivers/video/fbdev/clps711x-fb.c:247:24: expected void const *ptr
> drivers/video/fbdev/clps711x-fb.c:247:24: got char [noderef] <asn:2>*screen_base
> drivers/video/fbdev/clps711x-fb.c:248:35: warning: incorrect type in argument 1 (different address spaces)
> drivers/video/fbdev/clps711x-fb.c:248:35: expected void const *ptr
> drivers/video/fbdev/clps711x-fb.c:248:35: got char [noderef] <asn:2>*screen_base
> drivers/video/fbdev/clps711x-fb.c:314:17: warning: incorrect type in initializer (different address spaces)
> drivers/video/fbdev/clps711x-fb.c:314:17: expected void *__p
> drivers/video/fbdev/clps711x-fb.c:314:17: got char [noderef] <asn:2>*screen_base
> CC [M] drivers/video/fbdev/clps711x-fb.o
>
> Reported-by: kbuild test robot <fengguang.wu@intel.com>
> Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
> ---
> drivers/video/fbdev/clps711x-fb.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/video/fbdev/clps711x-fb.c b/drivers/video/fbdev/clps711x-fb.c
> index 4d17fbb..bbf40fe 100644
> --- a/drivers/video/fbdev/clps711x-fb.c
> +++ b/drivers/video/fbdev/clps711x-fb.c
> @@ -244,8 +244,8 @@ static int clps711x_fb_probe(struct platform_device *pdev)
>
> res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
> info->screen_base = devm_ioremap_resource(dev, res);
> - if (IS_ERR(info->screen_base)) {
> - ret = PTR_ERR(info->screen_base);
> + if (IS_ERR((__force void *)info->screen_base)) {
> + ret = PTR_ERR((__force void *)info->screen_base);
I don't see any other user of devm_ioremap_resource() having that kind
of casts. Why are they needed here?
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply
* Re: [PATCH] video: fbdev: s3c2410fb: Move to clk_prepare_enable/clk_disable_unprepare
From: Tomi Valkeinen @ 2014-07-01 6:15 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1404155672-3158-1-git-send-email-anarsoul@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 371 bytes --]
On 30/06/14 22:14, Vasily Khoruzhick wrote:
> Use clk_prepare_enable/clk_disable_unprepare to make the driver
> work properly with common clock framework.
>
> Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
> ---
> drivers/video/fbdev/s3c2410fb.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
Thanks, queued for 3.17.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply
* Re: [PATCH V2] MAINTAINERS: Update Framebuffer file patterns
From: Tomi Valkeinen @ 2014-07-01 6:22 UTC (permalink / raw)
To: linux-fbdev
In-Reply-To: <000801cf94e0$d5856cb0$80904610$%han@samsung.com>
[-- Attachment #1: Type: text/plain, Size: 1077 bytes --]
On 01/07/14 06:59, Jingoo Han wrote:
> Since the commit f7018c2 "video: move fbdev to drivers/video/fbdev",
> all framebuffer drivers were moved to fbdev directory. Thus, file
> patterns of these framebuffer drivers should be updated correctly.
>
> Signed-off-by: Jingoo Han <jg1.han@samsung.com>
> ---
> Changes since v1:
> - Fix the typo from 'fbdevwmt_ge_rops.*' to 'fbdev/wmt_ge_rop/*', per Liu Ying
>
> MAINTAINERS | 76 ++++++++++++++++++++++++++++++-----------------------------
> 1 file changed, 39 insertions(+), 37 deletions(-)
Thanks! I was planning to do this but I seem to have forgotten about it...
<snip>
> @@ -3707,7 +3707,8 @@ FREESCALE DIU FRAMEBUFFER DRIVER
> M: Timur Tabi <timur@tabi.org>
> L: linux-fbdev@vger.kernel.org
> S: Maintained
> -F: drivers/video/fsl-diu-fb.*
> +F: drivers/video/fbdev/fsl-diu-fb.c
> +F: include/linux/fsl-diu-fb.h
You have a few of extra changes like the above. I'd rather have the
"update file patterns" patch doing only that, and make the new changes
in a separate patch.
Tomi
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox