Date: Sat, 8 Mar 2008 17:35:21 GMT From: Rui Paulo <rpaulo@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 137167 for review Message-ID: <200803081735.m28HZLAe030249@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=137167 Change 137167 by rpaulo@rpaulo_vmware on 2008/03/08 17:34:24 Add support for 2G MacBook Core 2 Duo backlight. Initial version by: Christian Laursen <xi@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@fnop.net> + * Copyright (c) 2007, 2008 Rui Paulo <rpaulo@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@fnop.net> + * Copyright (c) 2007, 2008 Rui Paulo <rpaulo@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200803081735.m28HZLAe030249>