lkml.org 
[lkml]   [2022]   [Mar]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH v13 1/6] soc: mediatek: mutex: add common interface to accommodate multiple modules operationg MUTEX
    From
    Date
    Hi, Moudy:

    On Tue, 2022-03-15 at 14:10 +0800, Moudy Ho wrote:
    > In order to allow multiple modules to operate MUTEX hardware through
    > a common interfrace, a flexible index "mtk_mutex_table_index" needs
    > to
    > be added to replace original component ID so that like DDP and MDP
    > can add their own MUTEX table settings independently.
    >
    > In addition, 4 generic interface "mtk_mutex_set_mod",
    > "mtk_mutex_set_sof",
    > "mtk_mutex_clear_mod" and "mtk_mutex_clear_sof" have been added,
    > which is
    > expected to replace the "mtk_mutex_add_comp" and
    > "mtk_mutex_remove_comp"
    > pair originally dedicated to DDP in the future.
    >
    > Signed-off-by: Moudy Ho <moudy.ho@mediatek.com>
    > ---
    > drivers/soc/mediatek/mtk-mutex.c | 122
    > +++++++++++++++++++++++++
    > include/linux/soc/mediatek/mtk-mutex.h | 33 +++++++
    > 2 files changed, 155 insertions(+)
    >

    [snip]

    >
    > diff --git a/include/linux/soc/mediatek/mtk-mutex.h
    > b/include/linux/soc/mediatek/mtk-mutex.h
    > index 6fe4ffbde290..c8355bb0e6d6 100644
    > --- a/include/linux/soc/mediatek/mtk-mutex.h
    > +++ b/include/linux/soc/mediatek/mtk-mutex.h
    > @@ -10,14 +10,47 @@ struct regmap;
    > struct device;
    > struct mtk_mutex;
    >
    > +enum mtk_mutex_table_index {
    > + MUTEX_TABLE_IDX_NONE = 0, /* Invalid engine */

    Useless, so remove this.

    > +
    > + /* MDP table index */
    > + MUTEX_TABLE_IDX_MDP_RDMA0,
    > + MUTEX_TABLE_IDX_MDP_RSZ0,
    > + MUTEX_TABLE_IDX_MDP_RSZ1,
    > + MUTEX_TABLE_IDX_MDP_TDSHP0,
    > + MUTEX_TABLE_IDX_MDP_WROT0,
    > + MUTEX_TABLE_IDX_MDP_WDMA,
    > + MUTEX_TABLE_IDX_MDP_AAL0,
    > + MUTEX_TABLE_IDX_MDP_CCORR0,
    > +
    > + /* DDP table index */
    > + MUTEX_TABLE_IDX_DDP_DSI0,
    > + MUTEX_TABLE_IDX_DDP_DSI1,
    > + MUTEX_TABLE_IDX_DDP_DSI2,
    > + MUTEX_TABLE_IDX_DDP_DSI3,
    > + MUTEX_TABLE_IDX_DDP_DPI0,
    > + MUTEX_TABLE_IDX_DDP_DPI1,
    > + MUTEX_TABLE_IDX_DDP_DP_INTF0,
    > + MUTEX_TABLE_IDX_DDP_DP_INTF1,

    If this patch would support DDP, add all DDP index. If this patch does
    not support DDP, remove these.

    Regards,
    CK

    > +
    > + MUTEX_TABLE_IDX_MAX /* ALWAYS keep at the end */
    > +};
    > +
    > struct mtk_mutex *mtk_mutex_get(struct device *dev);
    > int mtk_mutex_prepare(struct mtk_mutex *mutex);
    > void mtk_mutex_add_comp(struct mtk_mutex *mutex,
    > enum mtk_ddp_comp_id id);
    > +void mtk_mutex_set_mod(struct mtk_mutex *mutex,
    > + enum mtk_mutex_table_index idx);
    > +void mtk_mutex_set_sof(struct mtk_mutex *mutex,
    > + enum mtk_mutex_table_index idx);
    > void mtk_mutex_enable(struct mtk_mutex *mutex);
    > void mtk_mutex_disable(struct mtk_mutex *mutex);
    > void mtk_mutex_remove_comp(struct mtk_mutex *mutex,
    > enum mtk_ddp_comp_id id);
    > +void mtk_mutex_clear_mod(struct mtk_mutex *mutex,
    > + enum mtk_mutex_table_index idx);
    > +void mtk_mutex_clear_sof(struct mtk_mutex *mutex);
    > void mtk_mutex_unprepare(struct mtk_mutex *mutex);
    > void mtk_mutex_put(struct mtk_mutex *mutex);
    > void mtk_mutex_acquire(struct mtk_mutex *mutex);

    \
     
     \ /
      Last update: 2022-03-16 03:25    [W:4.770 / U:0.096 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site