Changeset 31374


Ignore:
Timestamp:
Feb 13, 2017, 2:49:10 PM (7 days ago)
Author:
brainslayer
Message:

more fan control

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/router/rc/watchdog.c

    r31355 r31374  
    150150#endif
    151151#ifdef HAVE_R9000
    152                 int cpu, wifi1, wifi2;
     152                int cpu, wifi1, wifi2, wifi3_mac=0, wifi3_phy=0;
    153153                FILE *tempfp;
    154154                tempfp = fopen("/sys/class/hwmon/hwmon1/temp1_input", "rb");
     
    166166                if (tempfp) {
    167167                        fscanf(tempfp, "%d", &wifi2);
     168                        fclose(tempfp);
     169                }
     170                int dummy;
     171                tempfp = popen("cat /sys/kernel/debug/ieee80211/phy2/wil6210/temp | grep \"T_mac\" |cut -d = -f 2", "rb");
     172                if (tempfp) {
     173                       
     174                        fscanf(tempfp, "%d.%d", &wifi3_mac,&dummy);
     175                        fclose(tempfp);
     176                }
     177                tempfp = popen("cat /sys/kernel/debug/ieee80211/phy2/wil6210/temp | grep \"T_radio\" |cut -d = -f 2", "rb");
     178                if (tempfp) {
     179                        fscanf(tempfp, "%d.%d", &wifi3_phy,&dummy);
    168180                        fclose(tempfp);
    169181                }
     
    172184                if (wifi2 > cpu)
    173185                        cpu = wifi2;
     186                if (wifi3_mac > cpu)
     187                        cpu = wifi3_mac;
     188                if (wifi3_phy > cpu)
     189                        cpu = wifi3_phy;
    174190
    175191                int target = cpu - (nvram_geti("hwmon_temp_max") * 1000);
    176192                if (target < 0)
    177193                        target = 0;
    178                 if (target > 10000)
     194                if (target > 10000) 
    179195                        target = 10000;
    180196                target *= 4000;
    181197                target /= 10000;
     198                if (target)
     199                        fprintf(stderr,"set fan to %d\n",target);
    182200                sysprintf("/bin/echo %d > /sys/class/hwmon/hwmon0/device/fan1_target", target);
    183201
Note: See TracChangeset for help on using the changeset viewer.