drivers: sdhc: intel_emmc_host: update irq handling and ADMA Desc#430
drivers: sdhc: intel_emmc_host: update irq handling and ADMA Desc#430Deepak-AlifSemi wants to merge 1 commit intoalifsemi:mainfrom
Conversation
The PR refers to alifsemi/zephyr_alif/pull/430 Signed-off-by: Deepak Kumar <deepak@alifsemi.com>
d3635bc to
a2fa38c
Compare
|
@Deepak-AlifSemi Please fix checkpatch reported issues |
There was a problem hiding this comment.
Pull request overview
Updates Intel eMMC host ADMA2 descriptor generation and refines ISR interrupt-status handling to improve transfer efficiency and event processing.
Changes:
- Build ADMA2 descriptors using the maximum bytes per descriptor (up to 64 KiB) rather than one descriptor per block.
- Snapshot
normal_int_statin the ISR and use the local value for event posting. - Add new ADMA-related constants/macros for descriptor limits and error masking.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 5 comments.
| File | Description |
|---|---|
| drivers/sdhc/intel_emmc_host.h | Adds ADMA max-length, action-bit, and error-mask defines used by the updated DMA/ISR logic. |
| drivers/sdhc/intel_emmc_host.c | Reworks ADMA2 descriptor population for larger segments and updates ISR to use a snapshotted interrupt-status value. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| { | ||
| struct emmc_data *emmc = dev->data; | ||
| volatile struct emmc_reg *regs = (struct emmc_reg *)DEVICE_MMIO_GET(dev); | ||
| uint16_t normal_int_stat = regs->normal_int_stat; |
|
please fix checkpatch errors: 23:17:04 ++ ./scripts/checkpatch.pl --patch 0001-drivers-sdhc-intel_emmc_host-update-irq-handling-and.patch |
3624341 to
45a51bd
Compare
Use local variable in isr for better event handling. Enhanced ADMA2 performance by utilizing maximum bytes per desc. Signed-off-by: Deepak Kumar <deepak@alifsemi.com>
45a51bd to
42672c3
Compare
|
|
||
| /* Setup DMA transfer using ADMA2 */ | ||
| memset(emmc->desc_table, 0, sizeof(emmc->desc_table)); | ||
| uint32_t desc_idx = 0, desc_cnt; |
There was a problem hiding this comment.
Prefer moving this variable declaration before memset
Use local variable in isr for better event handling.
Enhanced ADMA2 performance by utilizing maximum bytes per desc.