cnss2: Remove DIAG related MHI channel configuration for Peach
As DIAG is now deprecated on Peach chipset onwards, create a new MHI config struct that removes DIAG related channel configuration. Then, register this new struct for peach chipset onwards. Change-Id: I1ba1cadaa0d1a022d6c9af6d8ff14942d4f219cf CRs-Fixed: 3684700
此提交包含在:
139
cnss2/pci.c
139
cnss2/pci.c
@@ -255,6 +255,124 @@ static const struct mhi_channel_config cnss_mhi_channels[] = {
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct mhi_channel_config cnss_mhi_channels_no_diag[] = {
|
||||
{
|
||||
.num = 0,
|
||||
.name = "LOOPBACK",
|
||||
.num_elements = 32,
|
||||
.event_ring = 1,
|
||||
.dir = DMA_TO_DEVICE,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = false,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 1,
|
||||
.name = "LOOPBACK",
|
||||
.num_elements = 32,
|
||||
.event_ring = 1,
|
||||
.dir = DMA_FROM_DEVICE,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = false,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 20,
|
||||
.name = "IPCR",
|
||||
.num_elements = 64,
|
||||
.event_ring = 1,
|
||||
.dir = DMA_TO_DEVICE,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = false,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 21,
|
||||
.name = "IPCR",
|
||||
.num_elements = 64,
|
||||
.event_ring = 1,
|
||||
.dir = DMA_FROM_DEVICE,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = false,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = true,
|
||||
},
|
||||
/* All MHI satellite config to be at the end of data struct */
|
||||
#if IS_ENABLED(CONFIG_MHI_SATELLITE)
|
||||
{
|
||||
.num = 50,
|
||||
.name = "ADSP_0",
|
||||
.num_elements = 64,
|
||||
.event_ring = 3,
|
||||
.dir = DMA_BIDIRECTIONAL,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = true,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 51,
|
||||
.name = "ADSP_1",
|
||||
.num_elements = 64,
|
||||
.event_ring = 3,
|
||||
.dir = DMA_BIDIRECTIONAL,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = true,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 70,
|
||||
.name = "ADSP_2",
|
||||
.num_elements = 64,
|
||||
.event_ring = 3,
|
||||
.dir = DMA_BIDIRECTIONAL,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = true,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
{
|
||||
.num = 71,
|
||||
.name = "ADSP_3",
|
||||
.num_elements = 64,
|
||||
.event_ring = 3,
|
||||
.dir = DMA_BIDIRECTIONAL,
|
||||
.ee_mask = 0x4,
|
||||
.pollcfg = 0,
|
||||
.doorbell = MHI_DB_BRST_DISABLE,
|
||||
.lpm_notify = false,
|
||||
.offload_channel = true,
|
||||
.doorbell_mode_switch = false,
|
||||
.auto_queue = false,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
||||
static const struct mhi_channel_config cnss_mhi_channels_genoa[] = {
|
||||
{
|
||||
.num = 0,
|
||||
@@ -404,6 +522,22 @@ static const struct mhi_event_config cnss_mhi_events[] = {
|
||||
#define CNSS_MHI_SATELLITE_EVT_COUNT 0
|
||||
#endif
|
||||
|
||||
static const struct mhi_controller_config cnss_mhi_config_no_diag = {
|
||||
#if IS_ENABLED(CONFIG_MHI_SATELLITE)
|
||||
.max_channels = 72,
|
||||
#else
|
||||
.max_channels = 32,
|
||||
#endif
|
||||
.timeout_ms = 10000,
|
||||
.use_bounce_buf = false,
|
||||
.buf_len = 0x8000,
|
||||
.num_channels = ARRAY_SIZE(cnss_mhi_channels_no_diag),
|
||||
.ch_cfg = cnss_mhi_channels_no_diag,
|
||||
.num_events = ARRAY_SIZE(cnss_mhi_events),
|
||||
.event_cfg = cnss_mhi_events,
|
||||
.m2_no_db = true,
|
||||
};
|
||||
|
||||
static const struct mhi_controller_config cnss_mhi_config_default = {
|
||||
#if IS_ENABLED(CONFIG_MHI_SATELLITE)
|
||||
.max_channels = 72,
|
||||
@@ -6959,6 +7093,11 @@ static int cnss_pci_register_mhi(struct cnss_pci_data *pci_priv)
|
||||
cnss_mhi_config = &cnss_mhi_config_no_satellite;
|
||||
}
|
||||
|
||||
/* DIAG no longer supported on PEACH and later chipset */
|
||||
if (plat_priv->device_id >= PEACH_DEVICE_ID) {
|
||||
cnss_mhi_config = &cnss_mhi_config_no_diag;
|
||||
}
|
||||
|
||||
mhi_ctrl->tme_supported_image = cnss_is_tme_supported(pci_priv);
|
||||
|
||||
ret = mhi_register_controller(mhi_ctrl, cnss_mhi_config);
|
||||
|
新增問題並參考
封鎖使用者