#include #include #include // YoKu 20-10-04 for PMU #include #include // YoKu #define PAGES 900 #define SIGPAGE 4096 #define REFERESH 0 // LCD VDIG_1 #define LCD 2 // LCD_BACKLIGHT CURR1 #define LCD_BACKLIGHT 3 #define I2C_DEV "/dev/i2c-0" // I2C Device File #define PMU_CHARGER "/dev/PMU_CHARGER" #define WAVE_PIPE "/tmp/WAVE_PIPE" #define PMU_ADDR 0x41 // PMU Write Address #define POWER_CONTROL 9 #define ON 1 #define OFF 0 #define LCD_ON_MASK 0x04 // 0000 0100 POWER_CONTROL #define LCD_BACKLIGHT_ON_MASK 0x04 // 0000 0100 CURR_CONTROL #define CURR_CONTROL 40 #define CURR_MODE 41 int fdI2C; unsigned char gbyLCDBackOn = 1; fn_SwitchDev(unsigned char byDev, unsigned char byOp) { __s16 byPresent_val; if ( byDev == LCD ) { if( (byPresent_val = i2c_smbus_read_byte_data(fdI2C , POWER_CONTROL)) < 0) { perror("\nfn_SwitchDev: I2C POWER_CONTROL Read Fail") ; } else { if ( byOp == ON ) { byPresent_val |= LCD_ON_MASK; #ifdef MAIN_DEBUG printf("\nPMU: Switching LCD ON"); #endif } else { byPresent_val &= ~LCD_ON_MASK; #ifdef MAIN_DEBUG printf("\nPMU: Switching LCD OFF"); #endif } if(i2c_smbus_write_byte_data( fdI2C, POWER_CONTROL, byPresent_val ) < 0) { perror("\nfn_SwitchDev: I2C POWER_CONTROL write Fail") ; } } } else if ( byDev == LCD_BACKLIGHT ) { if( (byPresent_val = i2c_smbus_read_byte_data( fdI2C , CURR_CONTROL )) < 0) { perror("\nfn_SwitchDev: I2C CURR_CONTROL Read Fail") ; } else { //pthread_mutex_lock(&_mutgbyLCDBackOn); if ( byOp == ON ) { byPresent_val |= LCD_BACKLIGHT_ON_MASK; #ifdef MAIN_DEBUG printf("\nPMU: Switching LCD BACKLIGHT ON"); #endif if(i2c_smbus_write_byte_data( fdI2C, CURR_CONTROL, byPresent_val ) < 0) perror("\nfn_SwitchDev: I2C CURR_CONTROL write Fail") ; else gbyLCDBackOn = 1; } else { byPresent_val &= ~LCD_BACKLIGHT_ON_MASK; #ifdef MAIN_DEBUG printf("\nPMU: Switching LCD BACKLIGHT OFF"); #endif if(i2c_smbus_write_byte_data( fdI2C, CURR_CONTROL, byPresent_val ) < 0) perror("\nfn_SwitchDev: I2C CURR_CONTROL write Fail") ; else gbyLCDBackOn = 0; } //pthread_mutex_unlock(&_mutgbyLCDBackOn); } } } int main() { int i=-1; static unsigned int cntr = 0 ; char *poarray,*p2=NULL; system("cat /proc/meminfo"); for (i=0;i/proc/sys/pm/suspend"); system("cat /proc/meminfo"); printf("\nInserting Modules\n"); system("/sbin/insmod /lib/modules/2.6.13/alsa/soundcore.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-timer.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-page-alloc.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-pcm.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-ac97-codec.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-pxa2xx-pcm.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-pxa2xx-ac97.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-mixer-oss.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); sleep(REFERESH); system("/sbin/insmod /lib/modules/2.6.13/alsa/snd-pcm-oss.ko"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("rmmod linuxdrv"); sleep(REFERESH); system("cat /proc/buddyinfo"); system("cat /proc/meminfo"); system("/sbin/insmod /root/linuxdrv.ko"); system("cat /proc/meminfo"); system("lsmod"); system("cat /proc/buddyinfo"); sleep(REFERESH); free(p2); p2 = NULL; } }