All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V2 1/2] gmux: Add generic write32 function
@ 2012-08-13 22:52 Matthew Garrett
  2012-08-13 22:52 ` [PATCH V2 2/2] apple_gmux: Add support for newer hardware Matthew Garrett
  2012-08-14  0:44 ` [PATCH V2 1/2] gmux: Add generic write32 function Seth Forshee
  0 siblings, 2 replies; 9+ messages in thread
From: Matthew Garrett @ 2012-08-13 22:52 UTC (permalink / raw)
  To: linux-kernel; +Cc: platform-driver-x86, Matthew Garrett, Seth Forshee

Move the special-cased backlight update function to a generic gmux_write32
function.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Cc: Seth Forshee <seth.forshee@canonical.com>
---

Fixed the typo and irrelevant hunk

 drivers/platform/x86/apple-gmux.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/drivers/platform/x86/apple-gmux.c b/drivers/platform/x86/apple-gmux.c
index 905fa01..c9db5072 100644
--- a/drivers/platform/x86/apple-gmux.c
+++ b/drivers/platform/x86/apple-gmux.c
@@ -75,6 +75,18 @@ static inline u32 gmux_read32(struct apple_gmux_data *gmux_data, int port)
 	return inl(gmux_data->iostart + port);
 }
 
+static inline u32 gmux_write32(struct apple_gmux_data *gmux_data, int port,
+			       u32 val)
+{
+	int i;
+	u8 tmpval;
+
+	for (i = 0; i < 4; i++) {
+		tmpval = (val >> (i * 8)) & 0xff;
+		outb(tmpval, port + i);
+	}
+}
+
 static int gmux_get_brightness(struct backlight_device *bd)
 {
 	struct apple_gmux_data *gmux_data = bl_get_data(bd);
@@ -90,16 +102,7 @@ static int gmux_update_status(struct backlight_device *bd)
 	if (bd->props.state & BL_CORE_SUSPENDED)
 		return 0;
 
-	/*
-	 * Older gmux versions require writing out lower bytes first then
-	 * setting the upper byte to 0 to flush the values. Newer versions
-	 * accept a single u32 write, but the old method also works, so we
-	 * just use the old method for all gmux versions.
-	 */
-	gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS, brightness);
-	gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 1, brightness >> 8);
-	gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 2, brightness >> 16);
-	gmux_write8(gmux_data, GMUX_PORT_BRIGHTNESS + 3, 0);
+	gmux_write32(gmux_data, GMUX_PORT_BRIGHTNESS, brightness);
 
 	return 0;
 }
-- 
1.7.11.2

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

end of thread, other threads:[~2012-08-15  7:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-13 22:52 [PATCH V2 1/2] gmux: Add generic write32 function Matthew Garrett
2012-08-13 22:52 ` [PATCH V2 2/2] apple_gmux: Add support for newer hardware Matthew Garrett
2012-08-14  0:46   ` Seth Forshee
2012-08-14 14:05     ` Bernhard Froemel
2012-08-14 14:53       ` Bernhard Froemel
2012-08-14 15:15         ` Seth Forshee
2012-08-14 17:11           ` Bernhard Froemel
2012-08-15  7:46             ` Bernhard Froemel
2012-08-14  0:44 ` [PATCH V2 1/2] gmux: Add generic write32 function Seth Forshee

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.