@@ -72,6 +72,36 @@ static struct macsmc_power *g_power;
7272#define ACSt_CAN_BOOT_AP BIT(2)
7373#define ACSt_CAN_BOOT_IBOOT BIT(1)
7474
75+ static void macsmc_do_dbg (struct macsmc_power * power )
76+ {
77+ int p_in = 0 , p_sys = 0 , p_3v8 = 0 , p_mpmu = 0 , p_spmu = 0 , p_clvr = 0 , p_cpu = 0 ;
78+ s32 p_bat = 0 ;
79+ s16 t_full = 0 , t_empty = 0 ;
80+ u8 charge = 0 ;
81+
82+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PDTR ), & p_in , 1000 );
83+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PSTR ), & p_sys , 1000 );
84+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PMVR ), & p_3v8 , 1000 );
85+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PHPC ), & p_cpu , 1000 );
86+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PSVR ), & p_clvr , 1000 );
87+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PPMC ), & p_mpmu , 1000 );
88+ apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PPSC ), & p_spmu , 1000 );
89+ apple_smc_read_s32 (power -> smc , SMC_KEY (B0AP ), & p_bat );
90+ apple_smc_read_s16 (power -> smc , SMC_KEY (B0TE ), & t_empty );
91+ apple_smc_read_s16 (power -> smc , SMC_KEY (B0TF ), & t_full );
92+ apple_smc_read_u8 (power -> smc , SMC_KEY (BUIC ), & charge );
93+
94+ #define FD3 (x ) ((x) / 1000), abs((x) % 1000)
95+ dev_info (power -> dev ,
96+ "In %2d.%03dW Sys %2d.%03dW 3V8 %2d.%03dW MPMU %2d.%03dW SPMU %2d.%03dW "
97+ "CLVR %2d.%03dW CPU %2d.%03dW Batt %2d.%03dW %d%% T%s %dm\n" ,
98+ FD3 (p_in ), FD3 (p_sys ), FD3 (p_3v8 ), FD3 (p_mpmu ), FD3 (p_spmu ), FD3 (p_clvr ),
99+ FD3 (p_cpu ), FD3 (p_bat ), charge ,
100+ t_full >= 0 ? "full" : "empty" ,
101+ t_full >= 0 ? t_full : t_empty );
102+ #undef FD3
103+ }
104+
75105static int macsmc_battery_get_status (struct macsmc_power * power )
76106{
77107 u64 nocharge_flags ;
@@ -501,34 +531,8 @@ static void macsmc_dbg_work(struct work_struct *wrk)
501531{
502532 struct macsmc_power * power = container_of (to_delayed_work (wrk ),
503533 struct macsmc_power , dbg_log_work );
504- int p_in = 0 , p_sys = 0 , p_3v8 = 0 , p_mpmu = 0 , p_spmu = 0 , p_clvr = 0 , p_cpu = 0 ;
505- s32 p_bat = 0 ;
506- s16 t_full = 0 , t_empty = 0 ;
507- u8 charge = 0 ;
508534
509- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PDTR ), & p_in , 1000 );
510- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PSTR ), & p_sys , 1000 );
511- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PMVR ), & p_3v8 , 1000 );
512- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PHPC ), & p_cpu , 1000 );
513- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PSVR ), & p_clvr , 1000 );
514- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PPMC ), & p_mpmu , 1000 );
515- apple_smc_read_f32_scaled (power -> smc , SMC_KEY (PPSC ), & p_spmu , 1000 );
516- apple_smc_read_s32 (power -> smc , SMC_KEY (B0AP ), & p_bat );
517- apple_smc_read_s16 (power -> smc , SMC_KEY (B0TE ), & t_empty );
518- apple_smc_read_s16 (power -> smc , SMC_KEY (B0TF ), & t_full );
519- apple_smc_read_u8 (power -> smc , SMC_KEY (BUIC ), & charge );
520-
521- #define FD3 (x ) ((x) / 1000), abs((x) % 1000)
522-
523- dev_info (power -> dev ,
524- "In %2d.%03dW Sys %2d.%03dW 3V8 %2d.%03dW MPMU %2d.%03dW SPMU %2d.%03dW "
525- "CLVR %2d.%03dW CPU %2d.%03dW Batt %2d.%03dW %d%% T%s %dm\n" ,
526- FD3 (p_in ), FD3 (p_sys ), FD3 (p_3v8 ), FD3 (p_mpmu ), FD3 (p_spmu ), FD3 (p_clvr ),
527- FD3 (p_cpu ), FD3 (p_bat ), charge ,
528- t_full >= 0 ? "full" : "empty" ,
529- t_full >= 0 ? t_full : t_empty );
530-
531- #undef FD3
535+ macsmc_do_dbg (power );
532536
533537 if (log_power )
534538 schedule_delayed_work (& power -> dbg_log_work , POWER_LOG_INTERVAL );
@@ -621,6 +625,12 @@ static int macsmc_power_event(struct notifier_block *nb, unsigned long event, vo
621625 } else if ((event & 0xff000000 ) == 0x71000000 ) {
622626 dev_info (power -> dev , "Unknown charger event 0x%lx\n" , event );
623627
628+ return NOTIFY_OK ;
629+ } else if ((event & 0xffff0000 ) == 0x72010000 ) {
630+ /* Button event handled by macsmc-hid, but let's do a debug print */
631+ if (log_power )
632+ macsmc_do_dbg (power );
633+
624634 return NOTIFY_OK ;
625635 }
626636
0 commit comments