|
31 | 31 | struct macsmc_power {
|
32 | 32 | struct device *dev;
|
33 | 33 | struct apple_smc *smc;
|
| 34 | + struct power_supply_desc ac_desc; |
34 | 35 | struct power_supply_desc batt_desc;
|
35 | 36 |
|
36 | 37 | struct power_supply *batt;
|
@@ -638,9 +639,9 @@ static int macsmc_ac_get_property(struct power_supply *psy,
|
638 | 639 |
|
639 | 640 | static enum power_supply_property macsmc_ac_props[] = {
|
640 | 641 | POWER_SUPPLY_PROP_ONLINE,
|
| 642 | + POWER_SUPPLY_PROP_INPUT_POWER_LIMIT, |
641 | 643 | POWER_SUPPLY_PROP_VOLTAGE_NOW,
|
642 | 644 | POWER_SUPPLY_PROP_INPUT_CURRENT_LIMIT,
|
643 |
| - POWER_SUPPLY_PROP_INPUT_POWER_LIMIT, |
644 | 645 | };
|
645 | 646 |
|
646 | 647 | static const struct power_supply_desc macsmc_ac_desc = {
|
@@ -789,6 +790,7 @@ static int macsmc_power_probe(struct platform_device *pdev)
|
789 | 790 |
|
790 | 791 | power->dev = &pdev->dev;
|
791 | 792 | power->smc = smc;
|
| 793 | + power->ac_desc = macsmc_ac_desc; |
792 | 794 | power->batt_desc = macsmc_battery_desc;
|
793 | 795 | dev_set_drvdata(&pdev->dev, power);
|
794 | 796 |
|
@@ -832,7 +834,12 @@ static int macsmc_power_probe(struct platform_device *pdev)
|
832 | 834 | return ret;
|
833 | 835 | }
|
834 | 836 |
|
835 |
| - power->ac = devm_power_supply_register(&pdev->dev, &macsmc_ac_desc, &psy_cfg); |
| 837 | + /* SMC firmware in macOS 15.4 dropped "AC-i" and "AC-n" (and all keys |
| 838 | + * with lower case last letter) without obvious replacement. */ |
| 839 | + if (apple_smc_read_u16(power->smc, SMC_KEY(AC-n), &vu16) < 0) |
| 840 | + power->ac_desc.num_properties -= 2; |
| 841 | + |
| 842 | + power->ac = devm_power_supply_register(&pdev->dev, &power->ac_desc, &psy_cfg); |
836 | 843 | if (IS_ERR(power->ac)) {
|
837 | 844 | dev_err(&pdev->dev, "Failed to register AC adapter\n");
|
838 | 845 | ret = PTR_ERR(power->ac);
|
|
0 commit comments