mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
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>
This commit is contained in:
@@ -1836,7 +1836,7 @@ print_errlog1_2(struct seq_file *file, struct tegra194_cbb *cbb,
|
||||
}
|
||||
|
||||
/*
|
||||
* Print transcation type, error code and description from ErrLog0 for all
|
||||
* Print transaction type, error code and description from ErrLog0 for all
|
||||
* errors. For NOC target errors, all relevant error info is printed using
|
||||
* ErrLog0 only. But additional information is printed for errors from
|
||||
* APB targets because for them:
|
||||
|
||||
@@ -182,8 +182,6 @@ static int tegra_fuse_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
fuse->soc->init(fuse);
|
||||
tegra_fuse_print_sku_info(&tegra_sku_info);
|
||||
tegra_soc_device_register();
|
||||
|
||||
err = tegra_fuse_add_lookups(fuse);
|
||||
if (err)
|
||||
|
||||
@@ -65,27 +65,52 @@ static void __init rev_sku_to_speedo_ids(struct tegra_sku_info *sku_info,
|
||||
sku_info->gpu_speedo_id = 0;
|
||||
*threshold = THRESHOLD_INDEX_0;
|
||||
|
||||
switch (sku) {
|
||||
case 0x00: /* Engineering SKU */
|
||||
case 0x01: /* Engineering SKU */
|
||||
case 0x07:
|
||||
case 0x17:
|
||||
case 0x27:
|
||||
if (speedo_rev >= 2)
|
||||
if (sku_info->revision >= TEGRA_REVISION_A02) {
|
||||
switch (sku) {
|
||||
case 0x00: /* Engineering SKU */
|
||||
case 0x01: /* Engineering SKU */
|
||||
case 0x13:
|
||||
sku_info->cpu_speedo_id = 5;
|
||||
sku_info->gpu_speedo_id = 2;
|
||||
break;
|
||||
|
||||
case 0x07:
|
||||
case 0x17:
|
||||
case 0x1F:
|
||||
sku_info->cpu_speedo_id = 7;
|
||||
sku_info->gpu_speedo_id = 2;
|
||||
break;
|
||||
|
||||
case 0x27:
|
||||
sku_info->cpu_speedo_id = 1;
|
||||
sku_info->gpu_speedo_id = 2;
|
||||
break;
|
||||
|
||||
case 0x83:
|
||||
sku_info->cpu_speedo_id = 3;
|
||||
sku_info->gpu_speedo_id = 3;
|
||||
break;
|
||||
|
||||
case 0x87:
|
||||
sku_info->cpu_speedo_id = 2;
|
||||
sku_info->gpu_speedo_id = 1;
|
||||
break;
|
||||
break;
|
||||
|
||||
case 0x13:
|
||||
if (speedo_rev >= 2)
|
||||
sku_info->gpu_speedo_id = 1;
|
||||
case 0x8F:
|
||||
sku_info->soc_speedo_id = 2;
|
||||
sku_info->cpu_speedo_id = 9;
|
||||
sku_info->gpu_speedo_id = 2;
|
||||
break;
|
||||
|
||||
sku_info->cpu_speedo_id = 1;
|
||||
break;
|
||||
|
||||
default:
|
||||
default:
|
||||
pr_err("Tegra210: unknown revision 2 or newer SKU %#04x\n", sku);
|
||||
/* Using the default for the error case */
|
||||
break;
|
||||
}
|
||||
} else if (sku == 0x00 || sku == 0x01 || sku == 0x07 || sku == 0x13 || sku == 0x17) {
|
||||
sku_info->gpu_speedo_id = 1;
|
||||
} else {
|
||||
pr_err("Tegra210: unknown SKU %#04x\n", sku);
|
||||
/* Using the default for the error case */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -423,6 +423,7 @@ struct tegra_pmc_soc {
|
||||
* @wake_sw_status_map: Bitmap to hold raw status of wakes without mask
|
||||
* @wake_cntrl_level_map: Bitmap to hold wake levels to be programmed in
|
||||
* cntrl register associated with each wake during system suspend.
|
||||
* @syscore: syscore suspend/resume callbacks
|
||||
*/
|
||||
struct tegra_pmc {
|
||||
struct device *dev;
|
||||
@@ -2897,9 +2898,16 @@ static int tegra_pmc_probe(struct platform_device *pdev)
|
||||
if (IS_ERR(pmc->wake))
|
||||
return PTR_ERR(pmc->wake);
|
||||
|
||||
pmc->aotag = devm_platform_ioremap_resource_byname(pdev, "aotag");
|
||||
if (IS_ERR(pmc->aotag))
|
||||
return PTR_ERR(pmc->aotag);
|
||||
/* "aotag" is an optional aperture */
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
|
||||
"aotag");
|
||||
if (res) {
|
||||
pmc->aotag = devm_ioremap_resource(&pdev->dev, res);
|
||||
if (IS_ERR(pmc->aotag))
|
||||
return PTR_ERR(pmc->aotag);
|
||||
} else {
|
||||
pmc->aotag = NULL;
|
||||
}
|
||||
|
||||
/* "scratch" is an optional aperture */
|
||||
res = platform_get_resource_byname(pdev, IORESOURCE_MEM,
|
||||
@@ -4217,6 +4225,13 @@ static const struct tegra_wake_event tegra234_wake_events[] = {
|
||||
TEGRA_WAKE_GPIO("power", 29, 1, TEGRA234_AON_GPIO(EE, 4)),
|
||||
TEGRA_WAKE_GPIO("mgbe", 56, 0, TEGRA234_MAIN_GPIO(Y, 3)),
|
||||
TEGRA_WAKE_IRQ("rtc", 73, 10),
|
||||
TEGRA_WAKE_IRQ("usb3-port-0", 76, 167),
|
||||
TEGRA_WAKE_IRQ("usb3-port-1", 77, 167),
|
||||
TEGRA_WAKE_IRQ("usb3-port-2-3", 78, 167),
|
||||
TEGRA_WAKE_IRQ("usb2-port-0", 79, 167),
|
||||
TEGRA_WAKE_IRQ("usb2-port-1", 80, 167),
|
||||
TEGRA_WAKE_IRQ("usb2-port-2", 81, 167),
|
||||
TEGRA_WAKE_IRQ("usb2-port-3", 82, 167),
|
||||
TEGRA_WAKE_IRQ("sw-wake", SW_WAKE_ID, 179),
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user