drivers/platform/x86/intel/speed_select_if/isst_tpmi.c

Source file repositories/reference/linux-study-clean/drivers/platform/x86/intel/speed_select_if/isst_tpmi.c

File Facts

System
Linux kernel
Corpus path
drivers/platform/x86/intel/speed_select_if/isst_tpmi.c
Extension
.c
Size
1475 bytes
Lines
73
Domain
Driver Families
Bucket
drivers/platform
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0-only
/*
 * isst_tpmi.c: SST TPMI interface
 *
 * Copyright (c) 2023, Intel Corporation.
 * All Rights Reserved.
 *
 */

#include <linux/auxiliary_bus.h>
#include <linux/module.h>
#include <linux/intel_tpmi.h>

#include "isst_tpmi_core.h"

static int intel_sst_probe(struct auxiliary_device *auxdev, const struct auxiliary_device_id *id)
{
	int ret;

	ret = tpmi_sst_init();
	if (ret)
		return ret;

	ret = tpmi_sst_dev_add(auxdev);
	if (ret)
		tpmi_sst_exit();

	return ret;
}

static void intel_sst_remove(struct auxiliary_device *auxdev)
{
	tpmi_sst_dev_remove(auxdev);
	tpmi_sst_exit();
}

static int intel_sst_suspend(struct device *dev)
{
	tpmi_sst_dev_suspend(to_auxiliary_dev(dev));

	return 0;
}

static int intel_sst_resume(struct device *dev)
{
	tpmi_sst_dev_resume(to_auxiliary_dev(dev));

	return 0;
}

static DEFINE_SIMPLE_DEV_PM_OPS(intel_sst_pm, intel_sst_suspend, intel_sst_resume);

static const struct auxiliary_device_id intel_sst_id_table[] = {
	{ .name = "intel_vsec.tpmi-sst" },
	{}
};
MODULE_DEVICE_TABLE(auxiliary, intel_sst_id_table);

static struct auxiliary_driver intel_sst_aux_driver = {
	.id_table       = intel_sst_id_table,
	.remove         = intel_sst_remove,
	.probe          = intel_sst_probe,
	.driver = {
		.pm = pm_sleep_ptr(&intel_sst_pm),
	},
};

module_auxiliary_driver(intel_sst_aux_driver);

MODULE_IMPORT_NS("INTEL_TPMI_SST");
MODULE_DESCRIPTION("Intel TPMI SST Driver");
MODULE_LICENSE("GPL");

Annotation

Implementation Notes