thesofproject / sof

Sound Open Firmware
Other
561 stars 318 forks source link

[FEATURE] Add support for Samus (2015 Pixelbook) #2157

Closed cujomalainey closed 3 years ago

cujomalainey commented 4 years ago

Is your feature request related to a problem? Please describe. A common machine for Google to test on is the pixelbooks, it would be excellent to add samus to the mix

Additional context Uses the bdw-rt5677 machine driver

lgirdwood commented 4 years ago

@wenqingfu @mengdonglin do we have any Samus HW ?

cujomalainey commented 4 years ago

I think we found the issue in the DAI links in another bug, we are patching both samus and buddy to support SOF

cujomalainey commented 4 years ago

https://github.com/thesofproject/linux/pull/1484

xiulipan commented 4 years ago

@cujomalainey I have test on one device with https://github.com/thesofproject/sof/pull/2188 and https://github.com/thesofproject/sof/pull/2095 Will try to redo the test after rebase and update thesofproject/linux#1484

plbossart commented 4 years ago

Samus is well supported now, the only bug is https://github.com/thesofproject/sof/issues/2459 at the firmware level, and we need to sort out suspend-resume + improve the position reports without IPC: https://github.com/thesofproject/linux/issues?q=is%3Aissue+is%3Aopen+label%3ABDW

lgirdwood commented 4 years ago

@plbossart do you think the SSP L/R bit is inverted here ? or incorrectly documented ? It seems like the L/R swap fix is probably a SSP bit change (unless you have already tried this) ?

plbossart commented 4 years ago

@plbossart do you think the SSP L/R bit is inverted here ? or incorrectly documented ? It seems like the L/R swap fix is probably a SSP bit change (unless you have already tried this) ?

Yeah, I tried and it's not a polarity issue (happens also with DSP_A/B). I have pictures somewhere.

plbossart commented 4 years ago

@lgirdwood see screen grabs in https://github.com/thesofproject/sof/issues/2459

lgirdwood commented 4 years ago

@plbossart thanks got you. Fwiw, I wonder (since swapping is consistent) if we were to write a single 32 bit word to the SSP FIFO as part of trigger for > 16 bit data output to re-order the FIFO output on the link. Alternatively we could fill the FIFO with 16 * 0s as part of trigger start meaning the FIFO is always in a consistent state at start has send data without underruning (which may mean we drop a sample and invert L/R). Just guessing....

plbossart commented 3 years ago

Closing, Samus is well supported at the firmware level. The driver is still missing suspend/resume support but that's a different request that will probably never be implemented.