-
Notifications
You must be signed in to change notification settings - Fork 17
imx6ull-sdma: make BD_DONE handing optional #660
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Changes from all commits
3e9c6bc
a2c2c39
9100f20
14c0c0a
fc73d2b
d6a3d38
c1198c2
8f35865
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| SDMA driver for IMX6ULL | ||
|
|
||
| ## (in)Frequently Asked Questions | ||
|
|
||
| ### Why there are references to BP / DSP / StarCore in IMX6 Reference Manual? | ||
|
|
||
| It seems that SDMA documentation was copied from older devices using same IP core without proper care. Descriptions and | ||
| register were left with original terms that are not defined anywhere. | ||
|
|
||
| * BP - Baseband Processor/Platform (aka. StarCore/DSP) | ||
| * AP - Application Processor/Platform | ||
|
|
||
| There is limited amount of publicly available documentation but this [MXC300 fact-sheet] contains diagram that includes | ||
| SDMA with both application processor and DSP core. There are other diagrams here: [MOTOKRZR K3 – Theory of operation]. | ||
|
|
||
| [MXC300 fact-sheet]: https://www.nxp.com/docs/en/fact-sheet/MXC300301FS.pdf | ||
| [MOTOKRZR K3 – Theory of operation]: https://firmware.center/firmware/Motorola/KRZR%20K3%20%28Sumba%29/Service%20Docs/MOTOKRZR_K3_Theory_of_Operation_v.1.0.pdf |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -80,15 +80,15 @@ int sdma_channel_configure(sdma_t *s, sdma_channel_config_t *cfg) | |
| return sdma_dev_ctl(s, &dev_ctl, NULL, 0); | ||
| } | ||
|
|
||
| int sdma_data_mem_write(sdma_t *s, void *data, size_t size, addr_t addr) | ||
| int sdma_data_mem_write(sdma_t *s, const void *data, size_t size, addr_t addr) | ||
| { | ||
| sdma_dev_ctl_t dev_ctl; | ||
|
|
||
| dev_ctl.type = sdma_dev_ctl__data_mem_write; | ||
| dev_ctl.mem.addr = addr; | ||
| dev_ctl.mem.len = size; | ||
|
|
||
| return sdma_dev_ctl(s, &dev_ctl, data, size); | ||
| return sdma_dev_ctl(s, &dev_ctl, (void *)data, size); | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Casting away
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is required as msg_t uses non const pointer.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. But this data is o->data (pointer to output data). This is not how it supposed to work!
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added comment for now. Doing this properly requires more changes (ie splitting devctl type) and needs to be tested.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And now this comment is actually pushed to this issue |
||
| } | ||
|
|
||
| int sdma_data_mem_read(sdma_t *s, void *data, size_t size, addr_t addr) | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.