linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* PATCH: fbdev: intelfb - workaround for 830M
@ 2005-01-07  1:00 Pfiffer, AndrewX K
  2005-01-13 13:05 ` Antonino A. Daplas
  0 siblings, 1 reply; 2+ messages in thread
From: Pfiffer, AndrewX K @ 2005-01-07  1:00 UTC (permalink / raw)
  To: sylvain.meyer, linux-fbdev-devel

This is a work around for the 830M with intelfb.  Relative to 2.6.10.
Without this patch, updates to the DSPACNTR register will be ignored.

Signed-off-by: Andrew Pfiffer <andrewx.k.pfiffer@intel.com>

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2005/01/06 16:14:27-08:00 andrewx.k.pfiffer@intel.com 
#   On the 830M, the display plane needs to be enabled before writing
#   to any of the other bits in the DSPACNTR register.
#   
#   This patch detects the specific case, temporarily enables the plane,
#   updates the register, and then disables the plane.  It also appears
#   to require some settling time, but not an entire frame's time.
#   
#   Without this change, the pixel format fields in DSPACNTR won't get
#   written on the 830M.
#   
# 
# drivers/video/intelfb/intelfbhw.c
#   2005/01/06 16:14:08-08:00 andrewx.k.pfiffer@intel.com +14 -0
#   If we're updating the DSPACNTR register on an 830M, temporarily
enable
#   the plane before writing the register.
# 
diff -Nru a/drivers/video/intelfb/intelfbhw.c
b/drivers/video/intelfb/intelfbhw.c
--- a/drivers/video/intelfb/intelfbhw.c	2005-01-06 16:15:36 -08:00
+++ b/drivers/video/intelfb/intelfbhw.c	2005-01-06 16:15:36 -08:00
@@ -1207,6 +1207,20 @@
 	OUTREG(ADPA, tmp);
 
 	/* setup display plane */
+	if (dinfo->pdev->device == PCI_DEVICE_ID_INTEL_830M) {
+		/*
+		 *	i830M errata: the display plane must be enabled
+		 *	to allow writes to the other bits in the plane
+		 *	control register.
+		 */
+		tmp = INREG(DSPACNTR);
+		if ((tmp & DISPPLANE_PLANE_ENABLE) !=
DISPPLANE_PLANE_ENABLE) {
+			tmp |= DISPPLANE_PLANE_ENABLE;
+			OUTREG(DSPACNTR, tmp);
+			OUTREG(DSPACNTR,
hw->disp_a_ctrl|DISPPLANE_PLANE_ENABLE);
+			mdelay(1);
+		}
+	}
 	OUTREG(DSPACNTR, hw->disp_a_ctrl & ~DISPPLANE_PLANE_ENABLE);
 	OUTREG(DSPASTRIDE, hw->disp_a_stride);
 	OUTREG(DSPABASE, hw->disp_a_base);


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: PATCH: fbdev: intelfb - workaround for 830M
  2005-01-07  1:00 PATCH: fbdev: intelfb - workaround for 830M Pfiffer, AndrewX K
@ 2005-01-13 13:05 ` Antonino A. Daplas
  0 siblings, 0 replies; 2+ messages in thread
From: Antonino A. Daplas @ 2005-01-13 13:05 UTC (permalink / raw)
  To: linux-fbdev-devel, Pfiffer, AndrewX K, sylvain.meyer

On Friday 07 January 2005 09:00, Pfiffer, AndrewX K wrote:
> This is a work around for the 830M with intelfb.  Relative to 2.6.10.
> Without this patch, updates to the DSPACNTR register will be ignored.

Can you resend?  Patch is line-wrapped.

Tony




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2005-01-13 13:05 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-01-07  1:00 PATCH: fbdev: intelfb - workaround for 830M Pfiffer, AndrewX K
2005-01-13 13:05 ` Antonino A. Daplas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).