Skip to content

[BUG][TGL][DSM] feedback data for DSM should be voltage information only #3409

Closed

Description

@RDharageswari

DSM has 2 streams, playback and a reference capture stream.
For 2 spk solution, the expected feedback is 2 channel from the MUXDEMUX11.0 DEMUX to the Host. That is Voltage data of each stream, but today we get 4 channel output(VIVI)- voltage and current information of each stream and hence the feedback is 4 channel capture.
Ideally for 2 speakers: pb will be of 2 channel, capture will also be 2 channel voltage information to the host, while the 4 channel feedback information(VIVI) will be given to the DSM in pb pipeline for quality output.
and for 4 speakers: pb will be of 4 channel, capture will also be 4 channel voltage information to the host, while the 8 channel feedback information(VIVIVIVI) will be given to the DSM module in pb pipeline.

Activity

  1. added
    bugSomething isn't working as expected
    TGLApplies to Tiger Lake
    on Sep 14, 2020
  2. lgirdwood commented on Sep 14, 2020

    @lgirdwood
    Member

    @RDharageswari do you think a topology change is needed here in demux or do you suspect a FW issue ?

  3. RDharageswari commented on Sep 14, 2020

    @RDharageswari
    Author

    @lgirdwood
    i see there is a mux_configuration available sof_mux_config and the right slot mapping in the topology file will actually help here.
    numid=165,iface=MIXER,name='MUXDEMUX11.0 DEMUX'. But not very sure if the Mux component can o/p two different configurations.
    4 ch to DSM & 2 ch to Host FW component.

  4. RDharageswari commented on Sep 14, 2020

    @RDharageswari
    Author

    Attaching the topology for reference:
    image

  5. ranj063 commented on Sep 14, 2020

    @ranj063
    Collaborator

    @lgirdwood it looks like the ask is for the DEMUX component to provide 4-ch data to the DSM module and only provide 2-ch to the HOST component. Do you think we need a splitter to extract just the 2 channels from the 4-ch feedback data?

  6. keyonjie commented on Sep 15, 2020

    @keyonjie
    Contributor

    We have already designed to use macros for all of this, @RDharageswari just try to specify different values for them: e.g.

    For 2 speakers:

    define(`SMART_PB_CH_NUM', 2)
    define(`SMART_TX_CHANNELS', 2)
    define(`SMART_RX_CHANNELS', 4)
    define(`SMART_FB_CHANNELS', 4)
    define(`SMART_REF_CH_NUM', 2)
    
    

    For 4 speakers:

    define(`SMART_PB_CH_NUM', 4)
    define(`SMART_TX_CHANNELS', 4)
    define(`SMART_RX_CHANNELS', 8)
    define(`SMART_FB_CHANNELS', 8)
    define(`SMART_REF_CH_NUM', 4)
    
    
  7. keyonjie commented on Sep 15, 2020

    @keyonjie
    Contributor

    @RDharageswari feel free to experiment and submit tplg changes after verified.

  8. sathya-nujella commented on Sep 15, 2020

    @sathya-nujella
    Contributor

    We have already designed to use macros for all of this, @RDharageswari just try to specify different values for them: e.g.

    For 2 speakers:

    define(`SMART_PB_CH_NUM', 2)
    define(`SMART_TX_CHANNELS', 2)
    define(`SMART_RX_CHANNELS', 4)
    define(`SMART_FB_CHANNELS', 4)
    define(`SMART_REF_CH_NUM', 2)
    

    For 4 speakers:

    define(`SMART_PB_CH_NUM', 4)
    define(`SMART_TX_CHANNELS', 4)
    define(`SMART_RX_CHANNELS', 8)
    define(`SMART_FB_CHANNELS', 8)
    define(`SMART_REF_CH_NUM', 4)
    

    SMART_FB_CHANNELS=4 (Let's say this is - VIVI )
    SMART_REF_CH_NUM=2
    Which of the 2 channels out of 4 are given as REF channels?

  9. keyonjie commented on Sep 15, 2020

    @keyonjie
    Contributor

    SMART_FB_CHANNELS=4 (Let's say this is - VIVI )
    SMART_REF_CH_NUM=2
    Which of the 2 channels out of 4 are given as REF channels?

    That is also programmable, @RDharageswari is doing some similar changes for the FB channels, it worth to add macros for channel mask for both FB and REF if needed:

    CONTROLBYTES_PRIV(DEMUX_priv,
    `       bytes "0x53,0x4f,0x46,0x00,0x00,0x00,0x00,0x00,'
    `       0x28,0x00,0x00,0x00,0x00,0x60,0x00,0x03,'
    `       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,'
    `       0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,'
    `       COMP_FORMAT_VALUE(PIPELINE_FORMAT),0x00,DEC2HEX(SMART_RX_CHANNELS),0x00,0x02,0x00,0x00,0x00,'
    `       DEC2HEX(SMART_PB_PPL_ID),0x00,0x00,0x00,DEC2HEX(SMART_FB_CHANNELS),0x01,0x02,0x04,'
    `       0x08,0x10,0x20,0x40,0x80,0x00,0x00,0x00,'
    `       DEC2HEX(SMART_REF_PPL_ID),0x00,0x00,0x00,DEC2HEX(SMART_REF_CH_NUM),0x01,0x02,0x04,'
    `       0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00"'
    )
    
    
  10. added this to the v1.6 milestone on Sep 15, 2020
  11. RDharageswari commented on Sep 16, 2020

    @RDharageswari
    Author

    Hi All,
    I have submitted the patches here:
    #3421

  12. lgirdwood commented on Sep 17, 2020

    @lgirdwood
    Member

    @RDharageswari cane we close now ? PR merged.

  13. RDharageswari commented on Sep 17, 2020

    @RDharageswari
    Author
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1Blocker bugs or important featuresTGLApplies to Tiger LakebugSomething isn't working as expectedtopologyTopology issues

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions