PERFORCE change 137167 for review

Rui Paulo rpaulo at FreeBSD.org
Sat Mar 8 17:35:22 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=137167

Change 137167 by rpaulo at rpaulo_vmware on 2008/03/08 17:34:24

	Add support for 2G MacBook Core 2 Duo backlight.
	
	Initial version by:	   Christian Laursen <xi at borderworlds.dk>

Affected files ...

.. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#14 edit
.. //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlightvar.h#5 edit

Differences ...

==== //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#14 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2007 Rui Paulo <rpaulo at fnop.net>
+ * Copyright (c) 2007, 2008 Rui Paulo <rpaulo at FreeBSD.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#13 $
+ * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlight.c#14 $
  *
  */
 
@@ -83,30 +83,34 @@
 	 */
 	{ "MacBook1,1", 0x8086, 0x27a2,
 	  "MacBook Core Duo Backlight Control",
-	  macbook_attach, macbook_enable, macbook_level },
+	  macbook_attach, macbook_enable, macbook_level, BACKLIGHT_MB_MAX },
 
 	{ "MacBook2,1", 0x8086, 0x27a2,
 	  "MacBook Core 2 Duo Backlight Control",
-	  macbook_attach, macbook_enable, macbook_level },
+	  macbook_attach, macbook_enable, macbook_level, BACKLIGHT_MB_MAX },
 
+	{ "MacBook3,1", 0x8086, 0x2a02,
+	  "MacBook Core 2 Duo (2G) Backlight Control",
+	  macbook_attach, macbook_enable, macbook_level, BACKLIGHT_MB2_MAX },
+	
 	/*
 	 * MacBook Pro.
 	 */
 	{ "MacBookPro1,1", 0x1002, 0x71c5,
 	  "MacBook Pro Core Duo (15-inch) Backlight Control",
-	  macbookpro_attach, macbookpro_enable, macbookpro_level },
+	  macbookpro_attach, macbookpro_enable, macbookpro_level, BACKLIGHT_MBP_MAX },
 
 	{ "MacBookPro1,2", 0x1002, 0x71c5,
 	  "MacBook Pro Core Duo (17-inch) Backlight Control",
-	  macbookpro_attach, macbookpro_enable, macbookpro_level },
+	  macbookpro_attach, macbookpro_enable, macbookpro_level, BACKLIGHT_MBP_MAX },
 
 	{ "MacBookPro2,1", 0x1002, 0x71c5,
 	  "MacBook Pro Core 2 Duo (17-inch) Backlight Control",
-	  macbookpro_attach, macbookpro_enable, macbookpro_level },
+	  macbookpro_attach, macbookpro_enable, macbookpro_level, BACKLIGHT_MBP_MAX },
 
 	{ "MacBookPro2,2", 0x1002, 0x71c5,
 	  "MacBook Pro Core 2 Duo (15-inch) Backlight Control",
-	  macbookpro_attach, macbookpro_enable, macbookpro_level },
+	  macbookpro_attach, macbookpro_enable, macbookpro_level, BACKLIGHT_MBP_MAX },
 	
 	{ NULL, 0, 0 }
 };
@@ -207,6 +211,8 @@
 	if (error)
 		return (error);
 
+	sc->sc_max = model->bm_max;
+	
 	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),
 	    SYSCTL_CHILDREN(device_get_sysctl_tree(dev)),
 	    OID_AUTO, "enable", CTLTYPE_INT | CTLFLAG_RW,
@@ -293,7 +299,7 @@
 		return (ENOMEM);
 
 	max = macbook_get_max(sc);
-	if (max > BACKLIGHT_MB_MAX) {
+	if (max > sc->sc_max) {
 		device_printf(dev, "maximum brightness level out of range"
 		    "(0x%x) - please send-pr\n", max);
 		return (EINVAL);
@@ -351,7 +357,7 @@
 	curlevel = macbook_get_current(sc);
 
 	level = (curlevel - BACKLIGHT_MB_MIN) * 100 /
-	    (BACKLIGHT_MB_MAX - BACKLIGHT_MB_MIN);
+	    (sc->sc_max - BACKLIGHT_MB_MIN);
 
 	error = sysctl_handle_int(oidp, &level, 0, req);
 
@@ -361,7 +367,7 @@
 		if (level > 100)
 			return (EINVAL);
 		
-		curlevel = (level * (BACKLIGHT_MB_MAX - BACKLIGHT_MB_MIN) 
+		curlevel = (level * (sc->sc_max - BACKLIGHT_MB_MIN) 
 		    / 100) + BACKLIGHT_MB_MIN;
 		macbook_set_current(sc, curlevel);
 
@@ -468,7 +474,7 @@
 	curlevel = macbookpro_get_current(sc);
 	
 	level = (curlevel - BACKLIGHT_MBP_MIN) * 100 /
-	    (BACKLIGHT_MBP_MAX - BACKLIGHT_MBP_MIN);
+	    (sc->sc_max - BACKLIGHT_MBP_MIN);
 	
 	error = sysctl_handle_int(oidp, &level, 0, req);
 	
@@ -478,7 +484,7 @@
 		if (level > 100)
 			return (EINVAL);
 		
-		curlevel = (level * (BACKLIGHT_MBP_MAX - BACKLIGHT_MBP_MIN)
+		curlevel = (level * (sc->sc_max - BACKLIGHT_MBP_MIN)
 		    / 100) + BACKLIGHT_MBP_MIN;
 		macbookpro_set_current(sc, curlevel);
 

==== //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlightvar.h#5 (text+ko) ====

@@ -1,5 +1,5 @@
 /*-
- * Copyright (c) 2007 Rui Paulo <rpaulo at fnop.net>
+ * Copyright (c) 2007, 2008 Rui Paulo <rpaulo at FreeBSD.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -23,7 +23,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlightvar.h#4 $
+ * $P4: //depot/projects/soc2007/rpaulo-macbook/dev/backlight/backlightvar.h#5 $
  *
  */
 
@@ -34,6 +34,7 @@
 	struct resource *sc_res;
 	struct sysctl_ctx_list	sc_sysctl_ctx;
 	struct sysctl_oid      *sc_sysctl_tree;
+	int		sc_max;
 };
 
 struct backlight_model {
@@ -46,6 +47,8 @@
 	int (*bm_attach)(device_t);
 	int (*bm_enable)(SYSCTL_HANDLER_ARGS);
 	int (*bm_level)(SYSCTL_HANDLER_ARGS);
+
+	uint8_t		bm_max;
 };
 
 
@@ -60,6 +63,7 @@
 #define BACKLIGHT_MB_DEF	0x44
 #define BACKLIGHT_MB_MIN	0x1f
 #define	BACKLIGHT_MB_MAX	0x94
+#define BACKLIGHT_MB2_MAX	0x1f		/* MacBook Core 2 Duo 2G */
 #define BACKLIGHT_MB_OFF	0x12
 #define BACKLIGHT_MB_ON		0x1f
 


More information about the p4-projects mailing list