From: Alan Cox <alan@lxorguk.ukuu.org.uk>
To: linux-kernel@vger.kernel.org, greg@kroah.com
Subject: [PATCH 27/29] gma500: enable Medfield CRTC support
Date: Tue, 28 Jun 2011 23:09:22 +0100 [thread overview]
Message-ID: <20110628220920.898.39482.stgit@bob.linux.org.uk> (raw)
In-Reply-To: <20110628220151.898.15775.stgit@bob.linux.org.uk>
From: Alan Cox <alan@linux.intel.com>
Signed-off-by: Alan Cox <alan@linux.intel.com>
---
drivers/staging/gma500/mdfld_intel_display.c | 33 ++++++++++++++++++++++++--
drivers/staging/gma500/mdfld_output.h | 3 ++
drivers/staging/gma500/mrst_bios.c | 2 +-
drivers/staging/gma500/psb_intel_display.c | 9 +++----
4 files changed, 38 insertions(+), 9 deletions(-)
diff --git a/drivers/staging/gma500/mdfld_intel_display.c b/drivers/staging/gma500/mdfld_intel_display.c
index 26d7f80..0b619b6 100644
--- a/drivers/staging/gma500/mdfld_intel_display.c
+++ b/drivers/staging/gma500/mdfld_intel_display.c
@@ -44,7 +44,6 @@
/* Hardcoded currently */
static int ksel = KSEL_CRYSTAL_19;
-extern struct drm_device *gpDrmDevice;
extern void mdfld_save_display(struct drm_device *dev);
extern bool gbgfxsuspended;
@@ -561,10 +560,10 @@ static void mdfld_crtc_dpms(struct drm_crtc *crtc, int mode)
return;
/* Ignore if system is already in DSR and in suspended state. */
- if(gbgfxsuspended && dev_priv->dispstatus == false && mode == 3){
+ if(/*gbgfxsuspended */0 && dev_priv->dispstatus == false && mode == 3){
if(dev_priv->rpm_enabled && pipe == 1){
// dev_priv->is_mipi_on = false;
- pm_request_idle(&gpDrmDevice->pdev->dev);
+ pm_request_idle(&dev->pdev->dev);
}
return;
}else if(mode == 0) {
@@ -1386,3 +1385,31 @@ mrst_crtc_mode_set_exit:
return 0;
}
+
+static void mdfld_crtc_prepare(struct drm_crtc *crtc)
+{
+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
+ crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
+}
+
+static void mdfld_crtc_commit(struct drm_crtc *crtc)
+{
+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
+ crtc_funcs->dpms(crtc, DRM_MODE_DPMS_ON);
+}
+
+static bool mdfld_crtc_mode_fixup(struct drm_crtc *crtc,
+ struct drm_display_mode *mode,
+ struct drm_display_mode *adjusted_mode)
+{
+ return true;
+}
+
+const struct drm_crtc_helper_funcs mdfld_helper_funcs = {
+ .dpms = mdfld_crtc_dpms,
+ .mode_fixup = mdfld_crtc_mode_fixup,
+ .mode_set = mdfld_crtc_mode_set,
+ .mode_set_base = mdfld__intel_pipe_set_base,
+ .prepare = mdfld_crtc_prepare,
+ .commit = mdfld_crtc_commit,
+};
diff --git a/drivers/staging/gma500/mdfld_output.h b/drivers/staging/gma500/mdfld_output.h
index 53b57db..70f2302a 100644
--- a/drivers/staging/gma500/mdfld_output.h
+++ b/drivers/staging/gma500/mdfld_output.h
@@ -74,4 +74,7 @@ int mdfld_panel_dpi(struct drm_device *dev);
int mdfld_get_panel_type(struct drm_device *dev, int pipe);
void mdfld_disable_crtc (struct drm_device *dev, int pipe);
+extern const struct drm_crtc_helper_funcs mdfld_helper_funcs;
+extern const struct drm_crtc_funcs mdfld_intel_crtc_funcs;
+
#endif
diff --git a/drivers/staging/gma500/mrst_bios.c b/drivers/staging/gma500/mrst_bios.c
index a90fe92..c3707f4 100644
--- a/drivers/staging/gma500/mrst_bios.c
+++ b/drivers/staging/gma500/mrst_bios.c
@@ -237,7 +237,7 @@ void mrst_get_vbt_data(struct drm_psb_private *dev_priv)
dev_err(dev->dev, "Unknown revision of GCT!\n");
vbt->size = 0;
}
- if (IS_MDFLD(dev_priv->dev)){
+ if (IS_MFLD(dev_priv->dev)){
if (panel_id == GCT_DETECT) {
if (dev_priv->gct_data.bpi == 2) {
dev_info(dev->dev, "[GFX] PYR Panel Detected\n");
diff --git a/drivers/staging/gma500/psb_intel_display.c b/drivers/staging/gma500/psb_intel_display.c
index ac0d9da..907c68e 100644
--- a/drivers/staging/gma500/psb_intel_display.c
+++ b/drivers/staging/gma500/psb_intel_display.c
@@ -29,6 +29,7 @@
#include "psb_intel_display.h"
#include "psb_powermgmt.h"
+#include "mdfld_output.h"
struct psb_intel_clock_t {
/* given values */
@@ -1303,12 +1304,10 @@ void psb_intel_crtc_init(struct drm_device *dev, int pipe,
return;
}
-#if 0 /* FIXME */
if (IS_MFLD(dev))
drm_crtc_init(dev, &psb_intel_crtc->base,
- &mfld_intel_crtc_funcs);
+ &mdfld_intel_crtc_funcs);
else
-#endif
drm_crtc_init(dev, &psb_intel_crtc->base,
&psb_intel_crtc_funcs);
@@ -1336,9 +1335,9 @@ void psb_intel_crtc_init(struct drm_device *dev, int pipe,
if (IS_MRST(dev))
drm_crtc_helper_add(&psb_intel_crtc->base,
&mrst_helper_funcs);
-/* else if (IS_MDFLD(dev))
+ else if (IS_MFLD(dev))
drm_crtc_helper_add(&psb_intel_crtc->base,
- &mfld_helper_funcs); */
+ &mdfld_helper_funcs);
else
drm_crtc_helper_add(&psb_intel_crtc->base,
&psb_intel_helper_funcs);
next prev parent reply other threads:[~2011-06-28 22:09 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-28 22:02 [PATCH 00/29] GMA500 updates Alan Cox
2011-06-28 22:03 ` [PATCH 01/29] gma500: fix warnings Alan Cox
2011-06-28 22:03 ` [PATCH 02/29] gma500: Make GTT pages uncached Alan Cox
2011-06-28 22:03 ` [PATCH 03/29] gma500: Ensure the frame buffer has a linear virtual mapping Alan Cox
2011-06-28 22:03 ` [PATCH 04/29] gma500: Set the correct bits according to the pipe Alan Cox
2011-06-28 22:04 ` [PATCH 05/29] gma500: Fix uninitialized variable and style issues Alan Cox
2011-06-28 22:04 ` [PATCH 06/29] gma500: revamp frame buffer creation and handling Alan Cox
2011-06-29 16:38 ` Jesse Barnes
2011-06-29 18:44 ` Alan Cox
2011-06-28 22:04 ` [PATCH 07/29] gma500: Do sane FB cleanup Alan Cox
2011-06-28 22:04 ` [PATCH 08/29] gma500: trim some of the debug Alan Cox
2011-06-28 22:05 ` [PATCH 09/29] gma500: polish for completion of this phase Alan Cox
2011-06-28 22:05 ` [PATCH 10/29] gma500: 2D acceleration tidying Alan Cox
2011-06-28 22:05 ` [PATCH 11/29] gma500: nuke the last bits of TTM code Alan Cox
2011-06-28 22:05 ` [PATCH 12/29] gma500: nuke the PSB debug stuff Alan Cox
2011-06-28 22:06 ` [PATCH 13/29] gma500: Kill spare kref Alan Cox
2011-06-28 22:06 ` [PATCH 14/29] gma500: GEM glue Alan Cox
2011-06-28 22:06 ` [PATCH 15/29] gma500: Use the GEM tweaks to provide a GEM frame buffer Alan Cox
2011-06-28 22:06 ` [PATCH 16/29] gma500: CodingStyle pass Alan Cox
2011-06-28 22:07 ` [PATCH 17/29] gma500: 2D polish Alan Cox
2011-06-28 22:07 ` [PATCH 18/29] gma500: Medfield support Alan Cox
2011-06-28 22:07 ` [PATCH 19/29] gma500: Move our other GEM helper into the bits want to push into GEM Alan Cox
2011-06-28 22:07 ` [PATCH 20/29] gma500: Extract BIOSisy stuff from psb_drv Alan Cox
2011-06-28 22:08 ` [PATCH 21/29] gma500: psb_fb tidy/cleanup pass Alan Cox
2011-06-28 22:08 ` [PATCH 22/29] gma500: Only fiddle with clock gating on PSB Alan Cox
2011-06-28 22:08 ` [PATCH 23/29] gma500: being abstracting out devices a bit more Alan Cox
2011-06-28 22:08 ` [PATCH 24/29] gma500: continue abstracting platform specific code Alan Cox
2011-06-28 22:08 ` [PATCH 25/29] gma500: Fix early Medfield crash Alan Cox
2011-06-28 22:09 ` [PATCH 26/29] gma500: Read the GCT panel type information for Medfield Alan Cox
2011-06-28 22:09 ` Alan Cox [this message]
2011-06-28 22:09 ` [PATCH 28/29] gma500: drivers/staging/gma501/psb_intel_display.c: fix build Alan Cox
2011-06-28 22:09 ` [PATCH 29/29] gma500: fix build without backlight device support Alan Cox
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110628220920.898.39482.stgit@bob.linux.org.uk \
--to=alan@lxorguk.ukuu.org.uk \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.