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