drivers/ufs/host/ufshcd-dwc.c
Source file repositories/reference/linux-study-clean/drivers/ufs/host/ufshcd-dwc.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/ufs/host/ufshcd-dwc.c- Extension
.c- Size
- 4042 bytes
- Lines
- 147
- Domain
- Driver Families
- Bucket
- drivers/ufs
- Inferred role
- Driver Families: exported/initcall integration point
- Status
- integration implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Exports symbols or registers init work; inspect boot/module ordering and who consumes the exported contract.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/module.hufs/ufshcd.hufs/unipro.hufshcd-dwc.hufshci-dwc.h
Detected Declarations
function Copyrightfunction ufshcd_dwc_program_clk_divfunction ufshcd_dwc_link_is_upfunction ufshcd_dwc_connection_setupfunction ufshcd_dwc_link_startup_notifyexport ufshcd_dwc_dme_set_attrsexport ufshcd_dwc_link_startup_notify
Annotated Snippet
if (err) {
dev_err(hba->dev, "Phy setup failed (%d)\n", err);
goto out;
}
} else { /* POST_CHANGE */
err = ufshcd_dwc_link_is_up(hba);
if (err) {
dev_err(hba->dev, "Link is not up\n");
goto out;
}
err = ufshcd_dwc_connection_setup(hba);
if (err)
dev_err(hba->dev, "Connection setup failed (%d)\n",
err);
}
out:
return err;
}
EXPORT_SYMBOL(ufshcd_dwc_link_startup_notify);
MODULE_AUTHOR("Joao Pinto <Joao.Pinto@synopsys.com>");
MODULE_DESCRIPTION("UFS Host driver for Synopsys Designware Core");
MODULE_LICENSE("Dual BSD/GPL");
Annotation
- Immediate include surface: `linux/module.h`, `ufs/ufshcd.h`, `ufs/unipro.h`, `ufshcd-dwc.h`, `ufshci-dwc.h`.
- Detected declarations: `function Copyright`, `function ufshcd_dwc_program_clk_div`, `function ufshcd_dwc_link_is_up`, `function ufshcd_dwc_connection_setup`, `function ufshcd_dwc_link_startup_notify`, `export ufshcd_dwc_dme_set_attrs`, `export ufshcd_dwc_link_startup_notify`.
- Atlas domain: Driver Families / drivers/ufs.
- Implementation status: integration implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.