On 4/12/19 9:33 AM, Yang, Libin wrote:
- device_link_add(component->card->dev, &hdev->dev,
DL_FLAG_RPM_ACTIVE |
DL_FLAG_AUTOREMOVE_CONSUMER);
Should device_link_free() be added to hdmi_codec_remove then?
As Takashi suggested, I add the DL_FLAG_AUTOREMOVE_CONSUMER flag. This will make sure the link will be freed when machine driver are removed. And as machine driver depends on the hdac_hdmi module, when hdmi_codec_remove() is called, the link is freed already.
ok, maybe adding a comment would help dummies like me who didn't know about this flag? Thanks!
Thanks for suggestion. I will add the comment.
After a second thought, is there any possibility that the machine driver does not depend on the hdac_hdmi module? I checked our current driver, there is the dependency between machine driver and hdac_hdmi module.
I don't get your question. All machine drivers supporting the iDISP link explicitly use a select HDAC_HDMI in the Kconfig and refer to DAIs created/exposed by the hdac_hdmi module. It's possible that the hdac_hdmi codec is probed as a result of the platform driver configuration but the machine driver does not support HDMI. In that case, is there any issue with your solution?