Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'tegra-for-6.19-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into soc/drivers

soc/tegra: Changes for v6.19-rc1

A couple of small fixes across the board: ACPI support on FUSE no longer
exposes duplicate SoC information, speedo IDs for Tegra210 are updated,
some comments see typo fixes or kerneldoc additions. Finally, support
for USB wake events is added on Tegra234, which allow these systems to
resume from suspend on USB activity.

* tag 'tegra-for-6.19-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
soc/tegra: pmc: Add USB wake events for Tegra234
soc/tegra: pmc: Document tegra_pmc.syscore field
soc/tegra: pmc: Don't fail if "aotag" is not present
soc/tegra: fuse: speedo-tegra210: Add SoC speedo 2
soc/tegra: fuse: speedo-tegra210: Update speedo IDs
soc/tegra: Resolve a spelling error in the tegra194-cbb.c
soc/tegra: fuse: Do not register SoC device on ACPI boot

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

+61 -23
+1 -1
drivers/soc/tegra/cbb/tegra194-cbb.c
··· 1836 1836 } 1837 1837 1838 1838 /* 1839 - * Print transcation type, error code and description from ErrLog0 for all 1839 + * Print transaction type, error code and description from ErrLog0 for all 1840 1840 * errors. For NOC target errors, all relevant error info is printed using 1841 1841 * ErrLog0 only. But additional information is printed for errors from 1842 1842 * APB targets because for them:
-2
drivers/soc/tegra/fuse/fuse-tegra.c
··· 182 182 } 183 183 184 184 fuse->soc->init(fuse); 185 - tegra_fuse_print_sku_info(&tegra_sku_info); 186 - tegra_soc_device_register(); 187 185 188 186 err = tegra_fuse_add_lookups(fuse); 189 187 if (err)
+42 -17
drivers/soc/tegra/fuse/speedo-tegra210.c
··· 65 65 sku_info->gpu_speedo_id = 0; 66 66 *threshold = THRESHOLD_INDEX_0; 67 67 68 - switch (sku) { 69 - case 0x00: /* Engineering SKU */ 70 - case 0x01: /* Engineering SKU */ 71 - case 0x07: 72 - case 0x17: 73 - case 0x27: 74 - if (speedo_rev >= 2) 68 + if (sku_info->revision >= TEGRA_REVISION_A02) { 69 + switch (sku) { 70 + case 0x00: /* Engineering SKU */ 71 + case 0x01: /* Engineering SKU */ 72 + case 0x13: 73 + sku_info->cpu_speedo_id = 5; 74 + sku_info->gpu_speedo_id = 2; 75 + break; 76 + 77 + case 0x07: 78 + case 0x17: 79 + case 0x1F: 80 + sku_info->cpu_speedo_id = 7; 81 + sku_info->gpu_speedo_id = 2; 82 + break; 83 + 84 + case 0x27: 85 + sku_info->cpu_speedo_id = 1; 86 + sku_info->gpu_speedo_id = 2; 87 + break; 88 + 89 + case 0x83: 90 + sku_info->cpu_speedo_id = 3; 91 + sku_info->gpu_speedo_id = 3; 92 + break; 93 + 94 + case 0x87: 95 + sku_info->cpu_speedo_id = 2; 75 96 sku_info->gpu_speedo_id = 1; 76 - break; 97 + break; 77 98 78 - case 0x13: 79 - if (speedo_rev >= 2) 80 - sku_info->gpu_speedo_id = 1; 99 + case 0x8F: 100 + sku_info->soc_speedo_id = 2; 101 + sku_info->cpu_speedo_id = 9; 102 + sku_info->gpu_speedo_id = 2; 103 + break; 81 104 82 - sku_info->cpu_speedo_id = 1; 83 - break; 84 - 85 - default: 105 + default: 106 + pr_err("Tegra210: unknown revision 2 or newer SKU %#04x\n", sku); 107 + /* Using the default for the error case */ 108 + break; 109 + } 110 + } else if (sku == 0x00 || sku == 0x01 || sku == 0x07 || sku == 0x13 || sku == 0x17) { 111 + sku_info->gpu_speedo_id = 1; 112 + } else { 86 113 pr_err("Tegra210: unknown SKU %#04x\n", sku); 87 - /* Using the default for the error case */ 88 - break; 89 114 } 90 115 } 91 116
+18 -3
drivers/soc/tegra/pmc.c
··· 423 423 * @wake_sw_status_map: Bitmap to hold raw status of wakes without mask 424 424 * @wake_cntrl_level_map: Bitmap to hold wake levels to be programmed in 425 425 * cntrl register associated with each wake during system suspend. 426 + * @syscore: syscore suspend/resume callbacks 426 427 */ 427 428 struct tegra_pmc { 428 429 struct device *dev; ··· 2898 2897 if (IS_ERR(pmc->wake)) 2899 2898 return PTR_ERR(pmc->wake); 2900 2899 2901 - pmc->aotag = devm_platform_ioremap_resource_byname(pdev, "aotag"); 2902 - if (IS_ERR(pmc->aotag)) 2903 - return PTR_ERR(pmc->aotag); 2900 + /* "aotag" is an optional aperture */ 2901 + res = platform_get_resource_byname(pdev, IORESOURCE_MEM, 2902 + "aotag"); 2903 + if (res) { 2904 + pmc->aotag = devm_ioremap_resource(&pdev->dev, res); 2905 + if (IS_ERR(pmc->aotag)) 2906 + return PTR_ERR(pmc->aotag); 2907 + } else { 2908 + pmc->aotag = NULL; 2909 + } 2904 2910 2905 2911 /* "scratch" is an optional aperture */ 2906 2912 res = platform_get_resource_byname(pdev, IORESOURCE_MEM, ··· 4225 4217 TEGRA_WAKE_GPIO("power", 29, 1, TEGRA234_AON_GPIO(EE, 4)), 4226 4218 TEGRA_WAKE_GPIO("mgbe", 56, 0, TEGRA234_MAIN_GPIO(Y, 3)), 4227 4219 TEGRA_WAKE_IRQ("rtc", 73, 10), 4220 + TEGRA_WAKE_IRQ("usb3-port-0", 76, 167), 4221 + TEGRA_WAKE_IRQ("usb3-port-1", 77, 167), 4222 + TEGRA_WAKE_IRQ("usb3-port-2-3", 78, 167), 4223 + TEGRA_WAKE_IRQ("usb2-port-0", 79, 167), 4224 + TEGRA_WAKE_IRQ("usb2-port-1", 80, 167), 4225 + TEGRA_WAKE_IRQ("usb2-port-2", 81, 167), 4226 + TEGRA_WAKE_IRQ("usb2-port-3", 82, 167), 4228 4227 TEGRA_WAKE_IRQ("sw-wake", SW_WAKE_ID, 179), 4229 4228 }; 4230 4229