Skip to content

Conversation

@juimonen
Copy link

Dmic dai index was set incorrectly to bits 5-7, when it is actually using just all lowest 8 bits. As the dmic index can only be 0 or 1, just OR copier dai index directly to node_id and remove the macro for fiddling the dmic index.

Signed-off-by: Jaska Uimonen jaska.uimonen@linux.intel.com

@juimonen
Copy link
Author

needs to be synced with thesofproject/sof#6877. for windows compatibility

@juimonen
Copy link
Author

the reason for this: thesofproject/sof#6872

plbossart
plbossart previously approved these changes Dec 21, 2022
ranj063
ranj063 previously approved these changes Dec 21, 2022
@ranj063
Copy link
Collaborator

ranj063 commented Dec 21, 2022

SOFCI TEST

singalsu
singalsu previously approved these changes Dec 21, 2022
@juimonen
Copy link
Author

@libinyang can you test this and the related fw revert with your wov pipeline? you are probably currently the only one with that setup and this will affect you, thanks!

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you have a fixes tag with SHA?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ok let me add

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ujfalusi added fixes tag

abonislawski
abonislawski previously approved these changes Dec 21, 2022
Copy link
Member

@abonislawski abonislawski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is good but if you prefer you can stay with SOF_IPC4_NODE_INDEX_INTEL_DMIC, just bit calculations must be correct.

typedef union _DmicDmaNodeIdVindex
{
    //! Raw 8-bit value of virtual index
    uint8_t b;
    //! Bit fields
    struct /*Bits*/
    {
        //! Index of the input queue within the DMIC instance.
        uint8_t dmic_interface_queue_id : 3;
        //! Index of the time slot group within the queue.
        uint8_t time_slot_group_index   : 2;
        //! Index of DMIC instance.
        uint8_t instance                : 3;
    } f; //!< Bits
} DmicDmaNodeIdVindex;

we need to set dmic_interface_queue_id instead of instance in current code

time_slot_group_index and instance are always 0

Dmic dai index was set incorrectly to bits 5-7, when it is actually using
just the lowest 3. Fix the macro for setting the bits.

Fixes: aa84ffb ("ASoC: SOF: ipc4-topology: Add support for SSP/DMIC DAI's")
Signed-off-by: Jaska Uimonen <jaska.uimonen@linux.intel.com>
@juimonen
Copy link
Author

updated v2. Perhaps we do it as @abonislawski suggested. Never know if we need to use the other bits in the future, and the change is even simpler/smaller.

@plbossart plbossart requested a review from ranj063 December 22, 2022 14:36
@plbossart plbossart merged commit a34eac9 into thesofproject:topic/sof-dev Dec 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants