mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-01-18 03:06:43 +00:00
HID: intel-ish-hid: Add driver_data for specifying the firmware filename
Introduces a new structure, ishtp_driver_data, to hold driver-specific data, including the firmware filename for different hardware variants of the Intel Integrated Sensor Hub (ISH). Signed-off-by: Zhang Lixu <lixu.zhang@intel.com> Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Jiri Kosina <jkosina@suse.com>
This commit is contained in:
parent
f7ae3091a9
commit
6b2a374adf
@ -23,6 +23,19 @@
|
||||
#include "ishtp-dev.h"
|
||||
#include "hw-ish.h"
|
||||
|
||||
enum ishtp_driver_data_index {
|
||||
ISHTP_DRIVER_DATA_NONE,
|
||||
ISHTP_DRIVER_DATA_LNL_M,
|
||||
};
|
||||
|
||||
#define ISH_FW_FILENAME_LNL_M "intel/ish/ish_lnlm.bin"
|
||||
|
||||
static struct ishtp_driver_data ishtp_driver_data[] = {
|
||||
[ISHTP_DRIVER_DATA_LNL_M] = {
|
||||
.fw_filename = ISH_FW_FILENAME_LNL_M,
|
||||
},
|
||||
};
|
||||
|
||||
static const struct pci_device_id ish_pci_tbl[] = {
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_CHV)},
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_BXT_Ax)},
|
||||
@ -46,7 +59,7 @@ static const struct pci_device_id ish_pci_tbl[] = {
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_MTL_P)},
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_ARL_H)},
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_ARL_S)},
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_LNL_M)},
|
||||
{PCI_VDEVICE(INTEL, PCI_DEVICE_ID_INTEL_ISH_LNL_M), .driver_data = ISHTP_DRIVER_DATA_LNL_M},
|
||||
{}
|
||||
};
|
||||
MODULE_DEVICE_TABLE(pci, ish_pci_tbl);
|
||||
@ -167,6 +180,7 @@ static int ish_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
|
||||
}
|
||||
hw = to_ish_hw(ishtp);
|
||||
ishtp->print_log = ish_event_tracer;
|
||||
ishtp->driver_data = &ishtp_driver_data[ent->driver_data];
|
||||
|
||||
/* mapping IO device memory */
|
||||
hw->mem_addr = pcim_iomap_table(pdev)[0];
|
||||
@ -377,3 +391,5 @@ MODULE_AUTHOR("Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>");
|
||||
|
||||
MODULE_DESCRIPTION("Intel(R) Integrated Sensor Hub PCI Device Driver");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
MODULE_FIRMWARE(ISH_FW_FILENAME_LNL_M);
|
||||
|
@ -122,12 +122,29 @@ struct ishtp_hw_ops {
|
||||
bool (*dma_no_cache_snooping)(struct ishtp_device *dev);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ishtp_driver_data - Driver-specific data for ISHTP devices
|
||||
*
|
||||
* This structure holds driver-specific data that can be associated with each
|
||||
* ISHTP device instance. It allows for the storage of data that is unique to
|
||||
* a particular driver or hardware variant.
|
||||
*
|
||||
* @fw_filename: The firmware filename associated with a specific hardware
|
||||
* variant of the Intel Integrated Sensor Hub (ISH). This allows
|
||||
* the driver to load the correct firmware based on the device's
|
||||
* hardware variant.
|
||||
*/
|
||||
struct ishtp_driver_data {
|
||||
char *fw_filename;
|
||||
};
|
||||
|
||||
/**
|
||||
* struct ishtp_device - ISHTP private device struct
|
||||
*/
|
||||
struct ishtp_device {
|
||||
struct device *devc; /* pointer to lowest device */
|
||||
struct pci_dev *pdev; /* PCI device to get device ids */
|
||||
struct ishtp_driver_data *driver_data; /* pointer to driver-specific data */
|
||||
|
||||
/* waitq for waiting for suspend response */
|
||||
wait_queue_head_t suspend_wait;
|
||||
|
Loading…
x
Reference in New Issue
Block a user