mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
qcacld-3.0: Correction in SMMU mapping and interrupt registeration
Add pld wrapper for interrupt registration and SMMU map for WCN6750. Change-Id: Iea7130f3462b4d1fb2bf0dde147f7e5f51c491b4
This commit is contained in:
parent
3667f24544
commit
580e5e989d
2 changed files with 28 additions and 0 deletions
|
|
@ -1744,6 +1744,7 @@ void *pld_smmu_get_domain(struct device *dev)
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
pld_ipci_smmu_get_domain(dev);
|
||||
break;
|
||||
case PLD_BUS_TYPE_SDIO:
|
||||
case PLD_BUS_TYPE_USB:
|
||||
|
|
@ -1813,6 +1814,7 @@ int pld_smmu_map(struct device *dev, phys_addr_t paddr,
|
|||
case PLD_BUS_TYPE_SNOC_FW_SIM:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
ret = pld_ipci_smmu_map(dev, paddr, iova_addr, size);
|
||||
break;
|
||||
case PLD_BUS_TYPE_PCIE:
|
||||
ret = pld_pcie_smmu_map(dev, paddr, iova_addr, size);
|
||||
|
|
@ -1917,6 +1919,7 @@ int pld_srng_request_irq(struct device *dev, int irq, irq_handler_t handler,
|
|||
ret = -ENODEV;
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
ret = request_irq(irq, handler, irqflags, devname, dev_data);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type %d\n", type);
|
||||
|
|
@ -1959,6 +1962,7 @@ int pld_srng_free_irq(struct device *dev, int irq, void *dev_data)
|
|||
ret = -ENODEV;
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
free_irq(irq, dev_data);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type %d\n", type);
|
||||
|
|
@ -1991,6 +1995,7 @@ void pld_srng_enable_irq(struct device *dev, int irq)
|
|||
case PLD_BUS_TYPE_SDIO:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
enable_irq(irq);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type\n");
|
||||
|
|
@ -2020,6 +2025,7 @@ void pld_srng_disable_irq(struct device *dev, int irq)
|
|||
case PLD_BUS_TYPE_SDIO:
|
||||
break;
|
||||
case PLD_BUS_TYPE_IPCI:
|
||||
disable_irq_nosync(irq);
|
||||
break;
|
||||
default:
|
||||
pr_err("Invalid device type\n");
|
||||
|
|
|
|||
|
|
@ -109,6 +109,17 @@ static inline int pld_ipci_set_fw_log_mode(struct device *dev, u8 fw_log_mode)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static inline void *pld_ipci_smmu_get_domain(struct device *dev)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static inline int pld_ipci_smmu_map(struct device *dev, phys_addr_t paddr,
|
||||
uint32_t *iova_addr, size_t size)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
#else
|
||||
int pld_ipci_register_driver(void);
|
||||
void pld_ipci_unregister_driver(void);
|
||||
|
|
@ -175,5 +186,16 @@ static inline int pld_ipci_set_fw_log_mode(struct device *dev, u8 fw_log_mode)
|
|||
return icnss_set_fw_log_mode(dev, fw_log_mode);
|
||||
}
|
||||
|
||||
static inline void *pld_ipci_smmu_get_domain(struct device *dev)
|
||||
{
|
||||
return icnss_smmu_get_domain(dev);
|
||||
}
|
||||
|
||||
static inline int pld_ipci_smmu_map(struct device *dev, phys_addr_t paddr,
|
||||
uint32_t *iova_addr, size_t size)
|
||||
{
|
||||
return icnss_smmu_map(dev, paddr, iova_addr, size);
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in a new issue