mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 17:25:35 +03:00
pcie: Enable core_deinit only when core has implemented it
The core_deinit callback is the Nvidia internal feature which is not upstreamed yet. Enable the call back from OOT modules only when core have implemented this callback. Bug 4374520 Change-Id: Iee2b92b7d70326ea3ce99ce6f6600d27f1e2896b Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/3014989 GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
a1cc281c17
commit
dc69c0b58a
3
Makefile
3
Makefile
@@ -69,6 +69,9 @@ subdir-ccflags-y += -DNV_FB_DEFERRED_IO_OPS_RENAME
|
|||||||
# Drop the API for pcie_disable_pcie_error_reporting
|
# Drop the API for pcie_disable_pcie_error_reporting
|
||||||
subdir-ccflags-y += -DNV_PCIE_DIABLE_PCIE_ERROR_REPORTING_DROP
|
subdir-ccflags-y += -DNV_PCIE_DIABLE_PCIE_ERROR_REPORTING_DROP
|
||||||
|
|
||||||
|
# PCIE DMA EPF core deinit not implemented in core kernel
|
||||||
|
subdir-ccflags-y += -DNV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE
|
||||||
|
|
||||||
# Crypto driver has major change in it ops, skip it
|
# Crypto driver has major change in it ops, skip it
|
||||||
export CONFIG_SKIP_CRYPTO=y
|
export CONFIG_SKIP_CRYPTO=y
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -169,6 +169,7 @@ allocate_outbound_area(struct pci_epf *epf, size_t win_size,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(NV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE)
|
||||||
static void
|
static void
|
||||||
clear_inbound_translation(struct pci_epf *epf)
|
clear_inbound_translation(struct pci_epf *epf)
|
||||||
{
|
{
|
||||||
@@ -178,6 +179,7 @@ clear_inbound_translation(struct pci_epf *epf)
|
|||||||
|
|
||||||
/* no api to clear epf header.*/
|
/* no api to clear epf header.*/
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int
|
static int
|
||||||
set_inbound_translation(struct pci_epf *epf)
|
set_inbound_translation(struct pci_epf *epf)
|
||||||
@@ -490,6 +492,7 @@ deinit_work(struct work_struct *work)
|
|||||||
* @DRV_MODE_EPC would have already gone then by the time
|
* @DRV_MODE_EPC would have already gone then by the time
|
||||||
* struct pci_epc_event_ops.core_deinit is called.
|
* struct pci_epc_event_ops.core_deinit is called.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(NV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE)
|
||||||
static int
|
static int
|
||||||
nvscic2c_pcie_epf_core_deinit(struct pci_epf *epf)
|
nvscic2c_pcie_epf_core_deinit(struct pci_epf *epf)
|
||||||
{
|
{
|
||||||
@@ -517,6 +520,7 @@ nvscic2c_pcie_epf_core_deinit(struct pci_epf *epf)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Handle link message from @DRV_MODE_EPC. */
|
/* Handle link message from @DRV_MODE_EPC. */
|
||||||
static void
|
static void
|
||||||
@@ -729,7 +733,9 @@ get_driverdata(const struct pci_epf_device_id *id,
|
|||||||
|
|
||||||
static const struct pci_epc_event_ops nvscic2c_event_ops = {
|
static const struct pci_epc_event_ops nvscic2c_event_ops = {
|
||||||
.core_init = nvscic2c_pcie_epf_core_init,
|
.core_init = nvscic2c_pcie_epf_core_init,
|
||||||
|
#if !defined(NV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE)
|
||||||
.core_deinit = nvscic2c_pcie_epf_core_deinit,
|
.core_deinit = nvscic2c_pcie_epf_core_deinit,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static int
|
static int
|
||||||
|
|||||||
@@ -164,6 +164,7 @@ static int pcie_dma_epf_core_init(struct pci_epf *epf)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(NV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE)
|
||||||
static int pcie_dma_epf_core_deinit(struct pci_epf *epf)
|
static int pcie_dma_epf_core_deinit(struct pci_epf *epf)
|
||||||
{
|
{
|
||||||
struct pcie_epf_dma *epfnv = epf_get_drvdata(epf);
|
struct pcie_epf_dma *epfnv = epf_get_drvdata(epf);
|
||||||
@@ -179,6 +180,7 @@ static int pcie_dma_epf_core_deinit(struct pci_epf *epf)
|
|||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static void pcie_dma_epf_unbind(struct pci_epf *epf)
|
static void pcie_dma_epf_unbind(struct pci_epf *epf)
|
||||||
{
|
{
|
||||||
@@ -263,7 +265,9 @@ static const struct pci_epf_device_id pcie_dma_epf_ids[] = {
|
|||||||
|
|
||||||
static const struct pci_epc_event_ops pci_epf_dma_test_event_ops = {
|
static const struct pci_epc_event_ops pci_epf_dma_test_event_ops = {
|
||||||
.core_init = pcie_dma_epf_core_init,
|
.core_init = pcie_dma_epf_core_init,
|
||||||
|
#if !defined(NV_PCIE_DMA_EPF_CORE_DEINIT_NOT_AVAILABLE)
|
||||||
.core_deinit = pcie_dma_epf_core_deinit,
|
.core_deinit = pcie_dma_epf_core_deinit,
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
static int pcie_dma_epf_probe(struct pci_epf *epf)
|
static int pcie_dma_epf_probe(struct pci_epf *epf)
|
||||||
|
|||||||
Reference in New Issue
Block a user