This commit adds support for ringing channel and event ring doorbells by MHI host. The MHI host can use the channel and event ring doorbells for notifying the client device about processing transfer and event rings which it has queued using MMIO registers. This is based on the patch submitted by Sujeev Dias: https://lkml.org/lkml/2018/7/9/989
Showing the changes to include/linux (1 of 4 files). Show all
Unified · Split
| @@ -240,6 +240,8 @@ struct mhi_controller_config { · 239 unmodified lines | |||
| 240 | * controller (required) | 240 | * controller (required) |
| 241 | * @mhi_dev: MHI device instance for the controller | 241 | * @mhi_dev: MHI device instance for the controller |
| 242 | * @regs: Base address of MHI MMIO register space (required) | 242 | * @regs: Base address of MHI MMIO register space (required) |
| 243 | * @bhi: Points to base of MHI BHI register space | ||
| 244 | * @wake_db: MHI WAKE doorbell register address | ||
| 243 | * @iova_start: IOMMU starting address for data (required) | 245 | * @iova_start: IOMMU starting address for data (required) |
| 244 | * @iova_stop: IOMMU stop address for data (required) | 246 | * @iova_stop: IOMMU stop address for data (required) |
| 245 | * @fw_image: Firmware image name for normal booting (required) | 247 | * @fw_image: Firmware image name for normal booting (required) |
| @@ -294,6 +296,8 @@ struct mhi_controller { · 48 unmodified lines | |||
| 294 | struct device *cntrl_dev; | 296 | struct device *cntrl_dev; |
| 295 | struct mhi_device *mhi_dev; | 297 | struct mhi_device *mhi_dev; |
| 296 | void __iomem *regs; | 298 | void __iomem *regs; |
| 299 | void __iomem *bhi; | ||
| 300 | void __iomem *wake_db; | ||
| 297 | dma_addr_t iova_start; | 301 | dma_addr_t iova_start; |
| 298 | dma_addr_t iova_stop; | 302 | dma_addr_t iova_stop; |
| 299 | const char *fw_image; | 303 | const char *fw_image; |