[oe-commits] org.oe.dev libopie2_cvs: Add ipaq-2.6-sys-class-backlight-support.patch.

pfalcon commit openembedded-commits at lists.openembedded.org
Sat Nov 18 05:17:09 UTC 2006


libopie2_cvs: Add ipaq-2.6-sys-class-backlight-support.patch.
* Support kernel 2.6 backlight classdev to control backlight.
* From Familiar tree.

Author: pfalcon at openembedded.org
Branch: org.openembedded.dev
Revision: 0d1b152adad503ee4fb6161676fa61801c45d2f0
ViewMTN: http://monotone.openembedded.org/revision.psp?id=0d1b152adad503ee4fb6161676fa61801c45d2f0
Files:
1
packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch
packages/libopie/libopie2_cvs.bb
Diffs:

#
# mt diff -r6402e4658cf4796b8f92d0b817add4df9bd7aaf2 -r0d1b152adad503ee4fb6161676fa61801c45d2f0
#
# 
# 
# add_file "packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch"
#  content [a64580c5b289d5ec00b11b127a1e9b8a212713b1]
# 
# patch "packages/libopie/libopie2_cvs.bb"
#  from [79eadae4b4254395679e792a653ae960d9452763]
#    to [5f9522f29a75ae338c32697e5473b0b33ea40f84]
# 
============================================================
--- packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch	a64580c5b289d5ec00b11b127a1e9b8a212713b1
+++ packages/libopie/libopie2/ipaq-2.6-sys-class-backlight-support.patch	a64580c5b289d5ec00b11b127a1e9b8a212713b1
@@ -0,0 +1,144 @@
+Index: libopie2/opiecore/device/odevice_ipaq.cpp
+===================================================================
+RCS file: /cvs/opie/libopie2/opiecore/device/odevice_ipaq.cpp,v
+retrieving revision 1.26
+diff -u -r1.26 odevice_ipaq.cpp
+--- libopie2/opiecore/device/odevice_ipaq.cpp	2 Aug 2006 19:12:39 -0000	1.26
++++ libopie2/opiecore/device/odevice_ipaq.cpp	11 Oct 2006 00:46:38 -0000
+@@ -408,45 +408,19 @@
+     if ( bright < 0 )
+         bright = 0;
+ 
+-    QString cmdline;
+-
+-    switch ( model()) {
+-    case Model_iPAQ_H191x:
+-    case Model_iPAQ_H4xxx:
+-	{
+-	    QDir sysClass( "/sys/class/backlight/pxafb/" );
+-	    sysClass.setFilter(QDir::Dirs);
+-	    int fd;
+-	    if ( sysClass.exists() ) {
+-		QString sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/power" );
+-		fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK );
+-		if ( fd ) {
+-		    char buf[10];
+-		    buf[0] = bright ? 0 : 4;
+-		    buf[1] = '\0';
+-		    res = ( ::write( fd, &buf[0], 2 ) == 0 );
+-		    ::close( fd );
+-		}
+-		sysClassPath = sysClass.absFilePath( "/sys/class/backlight/pxafb/brightness" );
+-		fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK );
+-		if ( fd ) {
+-		    char buf[100];
+-		    int len = ::snprintf( &buf[0], sizeof buf, "%d", bright );
+-		    res = ( ::write( fd, &buf[0], len ) == 0 );
+-		    ::close( fd );
+-		}
+-	    }
+-	}
+-        break; 
+-	
+-    case Model_iPAQ_HX4700:
+-            cmdline = QString::fromLatin1( "echo %1 > /sys/class/backlight/w100fb/brightness" ).arg( bright );
+-        // No Global::shellQuote as we gurantee it to be sane
+-        res = ( ::system( QFile::encodeName(cmdline) ) == 0 );
+-        break; 
+-	
+-
+-    default:
++    QDir sysClass( "/sys/class/backlight/" );
++    sysClass.setFilter(QDir::Dirs);
++    if ( sysClass.exists() && sysClass.count() > 2 ) {
++        QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/brightness" );
++        int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK );
++        if ( fd ) {
++            char buf[100];
++            int val = bright * displayBrightnessResolution() / 255;
++            int len = ::snprintf( &buf[0], sizeof buf, "%d", val );
++            res = ( ::write( fd, &buf[0], len ) == 0 );
++            ::close( fd );
++        }
++    } else {
+         if (( fd = ::open ( "/dev/touchscreen/0", O_WRONLY )) >= 0 ) {
+             FLITE_IN bl;
+             bl. mode = 1;
+@@ -456,11 +430,28 @@
+             ::close ( fd );
+         }
+     }
++
+     return res;
+ }
+ 
+ int iPAQ::displayBrightnessResolution() const
+ {
++    int res = 16;
++
++    QDir sysClass( "/sys/class/backlight/" );
++    sysClass.setFilter(QDir::Dirs);
++    if ( sysClass.exists() && sysClass.count() > 2 ) {
++	QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/max_brightness" );
++        int fd = ::open( sysClassPath, O_RDONLY|O_NONBLOCK );
++        if ( fd ) {
++            char buf[100];
++            if ( ::read( fd, &buf[0], sizeof buf ) )
++                ::sscanf( &buf[0], "%d", &res );
++            ::close( fd );
++        }
++    	return res;
++    } 
++
+     switch ( model()) {
+         case Model_iPAQ_H31xx:
+         case Model_iPAQ_H36xx:
+@@ -489,27 +480,22 @@
+ 
+     QString cmdline;
+ 
+-    if ( model() == Model_iPAQ_H191x ) {
+-	QDir sysClass( "/sys/class/lcd/pxafb/" );
+-	sysClass.setFilter(QDir::Dirs);
+-	if ( sysClass.exists() ) {
+-	    QString sysClassPath = sysClass.absFilePath( "/sys/class/lcd/pxafb/power" );
+-	    int fd = ::open( sysClassPath, O_WRONLY | O_NONBLOCK );
+-	    if ( fd ) {
+-		char buf[10];
+-		buf[0] = on ? 0 : 4;
+-		buf[1] = '\0';
+-		res = ( ::write( fd, &buf[0], 2 ) == 0 );
+-		::close( fd );
+-	    }
+-	}
+-	return res;
++    QDir sysClass( "/sys/class/lcd/" );
++    sysClass.setFilter(QDir::Dirs);
++    if ( sysClass.exists() && sysClass.count() > 2 ) {
++        QString sysClassPath = sysClass.absFilePath( sysClass[2] + "/power" );
++        int fd = ::open( sysClassPath, O_WRONLY|O_NONBLOCK );
++        if ( fd ) {
++            char buf[10];
++            buf[0] = on ? 0 : 4;
++            buf[1] = '\0';
++            res = ( ::write( fd, &buf[0], 2 ) == 0 );
++            ::close( fd );
++        }
+     } else {
+-        return OAbstractMobileDevice::setDisplayStatus(on);
++         res = OAbstractMobileDevice::setDisplayStatus(on);
+     }
+ 
+-    res = ( ::system( QFile::encodeName(cmdline) ) == 0 );
+-
+     return res;
+ }
+ 
+@@ -517,6 +503,7 @@
+ {
+     switch (model()) {
+ 	case Model_iPAQ_H191x:
++	case Model_iPAQ_H22xx:
+ 	case Model_iPAQ_H4xxx:
+ 	    return false;
+ 	default:
============================================================
--- packages/libopie/libopie2_cvs.bb	79eadae4b4254395679e792a653ae960d9452763
+++ packages/libopie/libopie2_cvs.bb	5f9522f29a75ae338c32697e5473b0b33ea40f84
@@ -5,6 +5,7 @@ SRC_URI = "${HANDHELDS_CVS};module=opie/
 DEFAULT_PREFERENCE = "-1"
 
 SRC_URI = "${HANDHELDS_CVS};module=opie/libopie2 \
+           file://ipaq-2.6-sys-class-backlight-support.patch;patch=1 \
            file://include.pro"
 
 SRC_URI_append_poodle = " file://poodle-2.6-hotkeys.patch;patch=1"






More information about the Openembedded-commits mailing list