diff for duplicates of <ed8a9454164ef573ffefff123aeb2a37@codeaurora.org> diff --git a/a/1.txt b/N1/1.txt index e08dd02..76ff182 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -15,68 +15,68 @@ On 2018-04-02 02:11, Stanimir Varbanov wrote: >>>> LLCC driver programs these parameters for each slice. Clients that >>>> are assigned to use LLCC need to get information such size & ID of >>>> the ->>>> slice they get and activate or deactivate the slice as needed. LLCC +>>>> ?slice they get and activate or deactivate the slice as needed. LLCC >>>> driver >>>> provides API interfaces for the clients to perform these operations. >>>> >>>> Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org> >>>> Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org> >>>> --- ->>>> drivers/soc/qcom/Kconfig | 16 ++ ->>>> drivers/soc/qcom/Makefile | 2 + ->>>> drivers/soc/qcom/llcc-sdm845.c | 120 ++++++++++ ->>>> drivers/soc/qcom/llcc-slice.c | 454 +>>>> ?drivers/soc/qcom/Kconfig?????????? |? 16 ++ +>>>> ?drivers/soc/qcom/Makefile????????? |?? 2 + +>>>> ?drivers/soc/qcom/llcc-sdm845.c???? | 120 ++++++++++ +>>>> ?drivers/soc/qcom/llcc-slice.c????? | 454 >>>> +++++++++++++++++++++++++++++++++++++ >>> >>> I'd name it just llcc.c, slice suffix didn't add any value. >>> ->>>> include/linux/soc/qcom/llcc-qcom.h | 178 +++++++++++++++ ->>>> 5 files changed, 770 insertions(+) ->>>> create mode 100644 drivers/soc/qcom/llcc-sdm845.c ->>>> create mode 100644 drivers/soc/qcom/llcc-slice.c ->>>> create mode 100644 include/linux/soc/qcom/llcc-qcom.h +>>>> ?include/linux/soc/qcom/llcc-qcom.h | 178 +++++++++++++++ +>>>> ?5 files changed, 770 insertions(+) +>>>> ?create mode 100644 drivers/soc/qcom/llcc-sdm845.c +>>>> ?create mode 100644 drivers/soc/qcom/llcc-slice.c +>>>> ?create mode 100644 include/linux/soc/qcom/llcc-qcom.h >>>> >>>> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig >>>> index e050eb8..28237fc 100644 >>>> --- a/drivers/soc/qcom/Kconfig >>>> +++ b/drivers/soc/qcom/Kconfig >>>> @@ -21,6 +21,22 @@ config QCOM_GSBI ->>>> functions for connecting the underlying serial UART, SPI, +>>>> ?????????? functions for connecting the underlying serial UART, SPI, >>>> and I2C ->>>> devices to the output pins. +>>>> ?????????? devices to the output pins. >>>> >>>> +config QCOM_LLCC ->>>> + tristate "Qualcomm Technologies, Inc. LLCC driver" ->>>> + depends on ARCH_QCOM ->>>> + help ->>>> + Qualcomm Technologies, Inc. platform specific LLCC driver for +>>>> +??? tristate "Qualcomm Technologies, Inc. LLCC driver" +>>>> +??? depends on ARCH_QCOM +>>>> +??? help +>>>> +????? Qualcomm Technologies, Inc. platform specific LLCC driver for >>>> Last ->>>> + Level Cache. This provides interfaces to client's that use +>>>> +????? Level Cache. This provides interfaces to client's that use >>>> the >>>> LLCC. ->>>> + Say yes here to enable LLCC slice driver. +>>>> +????? Say yes here to enable LLCC slice driver. >>>> + >>>> +config QCOM_SDM845_LLCC ->>>> + tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver" ->>>> + depends on QCOM_LLCC ->>>> + help ->>>> + Say yes here to enable the LLCC driver for SDM845. This is +>>>> +??? tristate "Qualcomm Technologies, Inc. SDM845 LLCC driver" +>>>> +??? depends on QCOM_LLCC +>>>> +??? help +>>>> +????? Say yes here to enable the LLCC driver for SDM845. This is >>>> provides ->>>> + data required to configure LLCC so that clients can start +>>>> +????? data required to configure LLCC so that clients can start >>>> using the ->>>> + LLCC slices. +>>>> +????? LLCC slices. >>>> + ->>>> config QCOM_MDT_LOADER ->>>> tristate ->>>> select QCOM_SCM +>>>> ?config QCOM_MDT_LOADER +>>>> ???? tristate +>>>> ???? select QCOM_SCM >>>> diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile >>>> index dcebf28..e16d6a2 100644 >>>> --- a/drivers/soc/qcom/Makefile >>>> +++ b/drivers/soc/qcom/Makefile >>>> @@ -12,3 +12,5 @@ obj-$(CONFIG_QCOM_SMEM_STATE) += smem_state.o ->>>> obj-$(CONFIG_QCOM_SMP2P) += smp2p.o ->>>> obj-$(CONFIG_QCOM_SMSM) += smsm.o ->>>> obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o +>>>> ?obj-$(CONFIG_QCOM_SMP2P)??? += smp2p.o +>>>> ?obj-$(CONFIG_QCOM_SMSM)??? += smsm.o +>>>> ?obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o >>>> +obj-$(CONFIG_QCOM_LLCC) += llcc-slice.o >>>> +obj-$(CONFIG_QCOM_SDM845_LLCC) += llcc-sdm845.o >>>> diff --git a/drivers/soc/qcom/llcc-sdm845.c @@ -97,7 +97,7 @@ On 2018-04-02 02:11, Stanimir Varbanov wrote: >>>> + * >>>> + * This program is distributed in the hope that it will be useful, >>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of ->>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +>>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.? See the >>>> + * GNU General Public License for more details. >>>> + */ >>>> + @@ -125,91 +125,91 @@ On 2018-04-02 02:11, Stanimir Varbanov wrote: >>>> + * bonus_ways: Bonus ways to be used by any slice, bonus way is >>>> used >>>> only if ->>>> + * it't not a reserved way. +>>>> + *???????????? it't not a reserved way. >>>> + * res_ways: Reserved ways for the cache slice, the reserved ways >>>> cannot be used ->>>> + * by any other client than the one its assigned to. +>>>> + *?????????? by any other client than the one its assigned to. >>>> + * cache_mode: Each slice operates as a cache, this controls the >>>> mode of the ->>>> + * slice normal or TCM +>>>> + *???????????? slice normal or TCM >>>> + * probe_target_ways: Determines what ways to probe for access hit. >>>> When ->>>> + * configured to 1 only bonus and reseved ways +>>>> + *??????????????????? configured to 1 only bonus and reseved ways >>>> are probed. ->>>> + * when configured to 0 all ways in llcc are +>>>> + *??????????????????? when configured to 0 all ways in llcc are >>>> probed. >>>> + * dis_cap_alloc: Disable capacity based allocation for a client >>>> + * retain_on_pc: If this bit is set and client has maitained active >>>> vote ->>>> + * then the ways assigned to this client are not +>>>> + *?????????????? then the ways assigned to this client are not >>>> flushed on power ->>>> + * collapse. +>>>> + *?????????????? collapse. >>>> + * activate_on_init: Activate the slice immidiately after the SCT >>>> is >>>> programmed >>>> + */ >>>> +#define SCT_ENTRY(n, uid, sid, mc, p, fs, bway, rway, cmod, ptw, >>>> dca, rp, a) \ ->>>> + { \ ->>>> + .name = n, \ ->>>> + .usecase_id = uid, \ ->>>> + .slice_id = sid, \ ->>>> + .max_cap = mc, \ ->>>> + .priority = p, \ ->>>> + .fixed_size = fs, \ ->>>> + .bonus_ways = bway, \ ->>>> + .res_ways = rway, \ ->>>> + .cache_mode = cmod, \ ->>>> + .probe_target_ways = ptw, \ ->>>> + .dis_cap_alloc = dca, \ ->>>> + .retain_on_pc = rp, \ ->>>> + .activate_on_init = a, \ ->>>> + } +>>>> +??? {??????????????????? \ +>>>> +??????? .name = n,??????????? \ +>>>> +??????? .usecase_id = uid,??????? \ +>>>> +??????? .slice_id = sid,??????? \ +>>>> +??????? .max_cap = mc,??????????? \ +>>>> +??????? .priority = p,??????????? \ +>>>> +??????? .fixed_size = fs,??????? \ +>>>> +??????? .bonus_ways = bway,??????? \ +>>>> +??????? .res_ways = rway,??????? \ +>>>> +??????? .cache_mode = cmod,??????? \ +>>>> +??????? .probe_target_ways = ptw,??? \ +>>>> +??????? .dis_cap_alloc = dca,??????? \ +>>>> +??????? .retain_on_pc = rp,??????? \ +>>>> +??????? .activate_on_init = a,??????? \ +>>>> +??? } >>>> + >>>> + ->>>> +static struct llcc_slice_config sdm845_data[] = { ->>>> + SCT_ENTRY("cpuss", 1, 1, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, +>>>> +static struct llcc_slice_config sdm845_data[] =? { +>>>> +??? SCT_ENTRY("cpuss",?????? 1, 1, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, >>>> 1, 1), ->>>> + SCT_ENTRY("vidsc0", 2, 2, 512, 2, 1, 0x0, 0x0F0, 0, 0, 1, +>>>> +??? SCT_ENTRY("vidsc0",????? 2, 2, 512, 2, 1, 0x0,? 0x0F0, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("vidsc1", 3, 3, 512, 2, 1, 0x0, 0x0F0, 0, 0, 1, +>>>> +??? SCT_ENTRY("vidsc1",????? 3, 3, 512, 2, 1, 0x0,? 0x0F0, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("rotator", 4, 4, 563, 2, 1, 0x0, 0x00e, 2, 0, 1, +>>>> +??? SCT_ENTRY("rotator",???? 4, 4, 563, 2, 1, 0x0,? 0x00e, 2, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("voice", 5, 5, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, +>>>> +??? SCT_ENTRY("voice",?????? 5, 5, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("audio", 6, 6, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, +>>>> +??? SCT_ENTRY("audio",?????? 6, 6, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("modemhp_grow", 7, 7, 1024, 2, 0, 0x0FC, 0xF00, 0, 0, +>>>> +??? SCT_ENTRY("modemhp_grow", 7, 7, 1024, 2, 0, 0x0FC, 0xF00, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("modem", 8, 8, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, +>>>> +??? SCT_ENTRY("modem",?????? 8, 8, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("compute", 10, 10, 2816, 1, 0, 0xFFC, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("compute",???? 10, 10, 2816, 1, 0, 0xFFC, 0x2, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("gpuhtw", 11, 11, 512, 1, 1, 0xC, 0x0, 0, 0, 1, +>>>> +??? SCT_ENTRY("gpuhtw",????? 11, 11, 512, 1, 1, 0xC,? 0x0, 0, 0, 1, >>>> 1, 0), ->>>> + SCT_ENTRY("gpu", 12, 12, 2304, 1, 0, 0xFF0, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("gpu",???????? 12, 12, 2304, 1, 0, 0xFF0, 0x2, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("mmuhwt", 13, 13, 256, 2, 0, 0x0, 0x1, 0, 0, 1, +>>>> +??? SCT_ENTRY("mmuhwt",????? 13, 13, 256, 2, 0, 0x0,? 0x1, 0, 0, 1, >>>> 0, 1), ->>>> + SCT_ENTRY("compute_dma", 15, 15, 2816, 1, 0, 0xFFC, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("compute_dma", 15, 15, 2816, 1, 0, 0xFFC, 0x2, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("display", 16, 16, 2816, 1, 0, 0xFFC, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("display",???? 16, 16, 2816, 1, 0, 0xFFC, 0x2, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("videofw", 17, 17, 2816, 1, 0, 0xFFC, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("videofw",???? 17, 17, 2816, 1, 0, 0xFFC, 0x2, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("modemhp_fix", 20, 20, 1024, 2, 1, 0x0, 0xF00, 0, 0, +>>>> +??? SCT_ENTRY("modemhp_fix", 20, 20, 1024, 2, 1, 0x0,? 0xF00, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("modem_paging", 21, 21, 1024, 0, 1, 0x1e, 0x0, 0, 0, +>>>> +??? SCT_ENTRY("modem_paging", 21, 21, 1024, 0, 1, 0x1e, 0x0, 0, 0, >>>> 1, 1, 0), ->>>> + SCT_ENTRY("audiohw", 22, 22, 1024, 1, 1, 0xFFC, 0x2, 0, 0, +>>>> +??? SCT_ENTRY("audiohw",???? 22, 22, 1024, 1, 1, 0xFFC, 0x2, 0, 0, >>>> 1, 1, 0), >>>> +}; >>>> + >>>> + >>>> +static int sdm845_qcom_llcc_probe(struct platform_device *pdev) >>>> +{ ->>>> + return qcom_llcc_probe(pdev, sdm845_data, +>>>> +??? return qcom_llcc_probe(pdev, sdm845_data, >>>> ARRAY_SIZE(sdm845_data)); >>> >>> I think having separate driver just for this config structure is diff --git a/a/content_digest b/N1/content_digest index 231d424..51beca4 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,18 +3,10 @@ "ref\0ff949d44-1b2a-15d4-511d-8686a973b081@linaro.org\0" "ref\079f87ed77b4b6b446d0ee065ecefe6fa@codeaurora.org\0" "ref\0faddb372-4efa-9032-e5cd-54778071b0dd@linaro.org\0" - "From\0Channa <ckadabi@codeaurora.org>\0" - "Subject\0Re: [PATCH v3 2/2] drivers: soc: Add LLCC driver\0" + "From\0ckadabi@codeaurora.org (Channa)\0" + "Subject\0[PATCH v3 2/2] drivers: soc: Add LLCC driver\0" "Date\0Mon, 02 Apr 2018 12:03:04 -0700\0" - "To\0Stanimir Varbanov <stanimir.varbanov@linaro.org>\0" - "Cc\0Rishabh Bhatnagar <rishabhb@codeaurora.org>" - linux-arm-kernel@lists.infradead.org - linux-arm-msm@vger.kernel.org - linux-arm@lists.infradead.org - linux-kernel@vger.kernel.org - tsoni@codeaurora.org - kyan@codeaurora.org - " linux-kernel-owner@vger.kernel.org\0" + "To\0linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "On 2018-04-02 02:11, Stanimir Varbanov wrote:\n" @@ -34,68 +26,68 @@ ">>>> LLCC driver programs these parameters for each slice. Clients that\n" ">>>> are assigned to use LLCC need to get information such size & ID of \n" ">>>> the\n" - ">>>> \302\240slice they get and activate or deactivate the slice as needed. LLCC\n" + ">>>> ?slice they get and activate or deactivate the slice as needed. LLCC\n" ">>>> driver\n" ">>>> provides API interfaces for the clients to perform these operations.\n" ">>>> \n" ">>>> Signed-off-by: Channagoud Kadabi <ckadabi@codeaurora.org>\n" ">>>> Signed-off-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>\n" ">>>> ---\n" - ">>>> \302\240drivers/soc/qcom/Kconfig\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240 16 ++\n" - ">>>> \302\240drivers/soc/qcom/Makefile\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 |\302\240\302\240 2 +\n" - ">>>> \302\240drivers/soc/qcom/llcc-sdm845.c\302\240\302\240\302\240\302\240 | 120 ++++++++++\n" - ">>>> \302\240drivers/soc/qcom/llcc-slice.c\302\240\302\240\302\240\302\240\302\240 | 454\n" + ">>>> ?drivers/soc/qcom/Kconfig?????????? |? 16 ++\n" + ">>>> ?drivers/soc/qcom/Makefile????????? |?? 2 +\n" + ">>>> ?drivers/soc/qcom/llcc-sdm845.c???? | 120 ++++++++++\n" + ">>>> ?drivers/soc/qcom/llcc-slice.c????? | 454\n" ">>>> +++++++++++++++++++++++++++++++++++++\n" ">>> \n" ">>> I'd name it just llcc.c, slice suffix didn't add any value.\n" ">>> \n" - ">>>> \302\240include/linux/soc/qcom/llcc-qcom.h | 178 +++++++++++++++\n" - ">>>> \302\2405 files changed, 770 insertions(+)\n" - ">>>> \302\240create mode 100644 drivers/soc/qcom/llcc-sdm845.c\n" - ">>>> \302\240create mode 100644 drivers/soc/qcom/llcc-slice.c\n" - ">>>> \302\240create mode 100644 include/linux/soc/qcom/llcc-qcom.h\n" + ">>>> ?include/linux/soc/qcom/llcc-qcom.h | 178 +++++++++++++++\n" + ">>>> ?5 files changed, 770 insertions(+)\n" + ">>>> ?create mode 100644 drivers/soc/qcom/llcc-sdm845.c\n" + ">>>> ?create mode 100644 drivers/soc/qcom/llcc-slice.c\n" + ">>>> ?create mode 100644 include/linux/soc/qcom/llcc-qcom.h\n" ">>>> \n" ">>>> diff --git a/drivers/soc/qcom/Kconfig b/drivers/soc/qcom/Kconfig\n" ">>>> index e050eb8..28237fc 100644\n" ">>>> --- a/drivers/soc/qcom/Kconfig\n" ">>>> +++ b/drivers/soc/qcom/Kconfig\n" ">>>> @@ -21,6 +21,22 @@ config QCOM_GSBI\n" - ">>>> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 functions for connecting the underlying serial UART, SPI,\n" + ">>>> ?????????? functions for connecting the underlying serial UART, SPI,\n" ">>>> and I2C\n" - ">>>> \302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 devices to the output pins.\n" + ">>>> ?????????? devices to the output pins.\n" ">>>> \n" ">>>> +config QCOM_LLCC\n" - ">>>> +\302\240\302\240\302\240 tristate \"Qualcomm Technologies, Inc. LLCC driver\"\n" - ">>>> +\302\240\302\240\302\240 depends on ARCH_QCOM\n" - ">>>> +\302\240\302\240\302\240 help\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 Qualcomm Technologies, Inc. platform specific LLCC driver for\n" + ">>>> +??? tristate \"Qualcomm Technologies, Inc. LLCC driver\"\n" + ">>>> +??? depends on ARCH_QCOM\n" + ">>>> +??? help\n" + ">>>> +????? Qualcomm Technologies, Inc. platform specific LLCC driver for\n" ">>>> Last\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 Level Cache. This provides interfaces to client's that use \n" + ">>>> +????? Level Cache. This provides interfaces to client's that use \n" ">>>> the\n" ">>>> LLCC.\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 Say yes here to enable LLCC slice driver.\n" + ">>>> +????? Say yes here to enable LLCC slice driver.\n" ">>>> +\n" ">>>> +config QCOM_SDM845_LLCC\n" - ">>>> +\302\240\302\240\302\240 tristate \"Qualcomm Technologies, Inc. SDM845 LLCC driver\"\n" - ">>>> +\302\240\302\240\302\240 depends on QCOM_LLCC\n" - ">>>> +\302\240\302\240\302\240 help\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 Say yes here to enable the LLCC driver for SDM845. This is\n" + ">>>> +??? tristate \"Qualcomm Technologies, Inc. SDM845 LLCC driver\"\n" + ">>>> +??? depends on QCOM_LLCC\n" + ">>>> +??? help\n" + ">>>> +????? Say yes here to enable the LLCC driver for SDM845. This is\n" ">>>> provides\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 data required to configure LLCC so that clients can start\n" + ">>>> +????? data required to configure LLCC so that clients can start\n" ">>>> using the\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240 LLCC slices.\n" + ">>>> +????? LLCC slices.\n" ">>>> +\n" - ">>>> \302\240config QCOM_MDT_LOADER\n" - ">>>> \302\240\302\240\302\240\302\240 tristate\n" - ">>>> \302\240\302\240\302\240\302\240 select QCOM_SCM\n" + ">>>> ?config QCOM_MDT_LOADER\n" + ">>>> ???? tristate\n" + ">>>> ???? select QCOM_SCM\n" ">>>> diff --git a/drivers/soc/qcom/Makefile b/drivers/soc/qcom/Makefile\n" ">>>> index dcebf28..e16d6a2 100644\n" ">>>> --- a/drivers/soc/qcom/Makefile\n" ">>>> +++ b/drivers/soc/qcom/Makefile\n" ">>>> @@ -12,3 +12,5 @@ obj-$(CONFIG_QCOM_SMEM_STATE) += smem_state.o\n" - ">>>> \302\240obj-$(CONFIG_QCOM_SMP2P)\302\240\302\240\302\240 += smp2p.o\n" - ">>>> \302\240obj-$(CONFIG_QCOM_SMSM)\302\240\302\240\302\240 += smsm.o\n" - ">>>> \302\240obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o\n" + ">>>> ?obj-$(CONFIG_QCOM_SMP2P)??? += smp2p.o\n" + ">>>> ?obj-$(CONFIG_QCOM_SMSM)??? += smsm.o\n" + ">>>> ?obj-$(CONFIG_QCOM_WCNSS_CTRL) += wcnss_ctrl.o\n" ">>>> +obj-$(CONFIG_QCOM_LLCC) += llcc-slice.o\n" ">>>> +obj-$(CONFIG_QCOM_SDM845_LLCC) += llcc-sdm845.o\n" ">>>> diff --git a/drivers/soc/qcom/llcc-sdm845.c\n" @@ -116,7 +108,7 @@ ">>>> + *\n" ">>>> + * This program is distributed in the hope that it will be useful,\n" ">>>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of\n" - ">>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\302\240 See the\n" + ">>>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.? See the\n" ">>>> + * GNU General Public License for more details.\n" ">>>> + */\n" ">>>> +\n" @@ -144,91 +136,91 @@ ">>>> + * bonus_ways: Bonus ways to be used by any slice, bonus way is \n" ">>>> used\n" ">>>> only if\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 it't not a reserved way.\n" + ">>>> + *???????????? it't not a reserved way.\n" ">>>> + * res_ways: Reserved ways for the cache slice, the reserved ways\n" ">>>> cannot be used\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 by any other client than the one its assigned to.\n" + ">>>> + *?????????? by any other client than the one its assigned to.\n" ">>>> + * cache_mode: Each slice operates as a cache, this controls the\n" ">>>> mode of the\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 slice normal or TCM\n" + ">>>> + *???????????? slice normal or TCM\n" ">>>> + * probe_target_ways: Determines what ways to probe for access hit.\n" ">>>> When\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 configured to 1 only bonus and reseved ways\n" + ">>>> + *??????????????????? configured to 1 only bonus and reseved ways\n" ">>>> are probed.\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 when configured to 0 all ways in llcc are \n" + ">>>> + *??????????????????? when configured to 0 all ways in llcc are \n" ">>>> probed.\n" ">>>> + * dis_cap_alloc: Disable capacity based allocation for a client\n" ">>>> + * retain_on_pc: If this bit is set and client has maitained active\n" ">>>> vote\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 then the ways assigned to this client are not\n" + ">>>> + *?????????????? then the ways assigned to this client are not\n" ">>>> flushed on power\n" - ">>>> + *\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 collapse.\n" + ">>>> + *?????????????? collapse.\n" ">>>> + * activate_on_init: Activate the slice immidiately after the SCT \n" ">>>> is\n" ">>>> programmed\n" ">>>> + */\n" ">>>> +#define SCT_ENTRY(n, uid, sid, mc, p, fs, bway, rway, cmod, ptw,\n" ">>>> dca, rp, a) \\\n" - ">>>> +\302\240\302\240\302\240 {\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .name = n,\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .usecase_id = uid,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .slice_id = sid,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .max_cap = mc,\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .priority = p,\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .fixed_size = fs,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .bonus_ways = bway,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .res_ways = rway,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .cache_mode = cmod,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .probe_target_ways = ptw,\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .dis_cap_alloc = dca,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .retain_on_pc = rp,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240\302\240\302\240\302\240\302\240 .activate_on_init = a,\302\240\302\240\302\240\302\240\302\240\302\240\302\240 \\\n" - ">>>> +\302\240\302\240\302\240 }\n" + ">>>> +??? {??????????????????? \\\n" + ">>>> +??????? .name = n,??????????? \\\n" + ">>>> +??????? .usecase_id = uid,??????? \\\n" + ">>>> +??????? .slice_id = sid,??????? \\\n" + ">>>> +??????? .max_cap = mc,??????????? \\\n" + ">>>> +??????? .priority = p,??????????? \\\n" + ">>>> +??????? .fixed_size = fs,??????? \\\n" + ">>>> +??????? .bonus_ways = bway,??????? \\\n" + ">>>> +??????? .res_ways = rway,??????? \\\n" + ">>>> +??????? .cache_mode = cmod,??????? \\\n" + ">>>> +??????? .probe_target_ways = ptw,??? \\\n" + ">>>> +??????? .dis_cap_alloc = dca,??????? \\\n" + ">>>> +??????? .retain_on_pc = rp,??????? \\\n" + ">>>> +??????? .activate_on_init = a,??????? \\\n" + ">>>> +??? }\n" ">>>> +\n" ">>>> +\n" - ">>>> +static struct llcc_slice_config sdm845_data[] =\302\240 {\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"cpuss\",\302\240\302\240\302\240\302\240\302\240\302\240 1, 1, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" + ">>>> +static struct llcc_slice_config sdm845_data[] =? {\n" + ">>>> +??? SCT_ENTRY(\"cpuss\",?????? 1, 1, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" ">>>> 1, 1),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"vidsc0\",\302\240\302\240\302\240\302\240\302\240 2, 2, 512, 2, 1, 0x0,\302\240 0x0F0, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"vidsc0\",????? 2, 2, 512, 2, 1, 0x0,? 0x0F0, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"vidsc1\",\302\240\302\240\302\240\302\240\302\240 3, 3, 512, 2, 1, 0x0,\302\240 0x0F0, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"vidsc1\",????? 3, 3, 512, 2, 1, 0x0,? 0x0F0, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"rotator\",\302\240\302\240\302\240\302\240 4, 4, 563, 2, 1, 0x0,\302\240 0x00e, 2, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"rotator\",???? 4, 4, 563, 2, 1, 0x0,? 0x00e, 2, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"voice\",\302\240\302\240\302\240\302\240\302\240\302\240 5, 5, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"voice\",?????? 5, 5, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"audio\",\302\240\302\240\302\240\302\240\302\240\302\240 6, 6, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"audio\",?????? 6, 6, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"modemhp_grow\", 7, 7, 1024, 2, 0, 0x0FC, 0xF00, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"modemhp_grow\", 7, 7, 1024, 2, 0, 0x0FC, 0xF00, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"modem\",\302\240\302\240\302\240\302\240\302\240\302\240 8, 8, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"modem\",?????? 8, 8, 2816, 1, 0, 0xFFC, 0x2, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"compute\",\302\240\302\240\302\240\302\240 10, 10, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"compute\",???? 10, 10, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"gpuhtw\",\302\240\302\240\302\240\302\240\302\240 11, 11, 512, 1, 1, 0xC,\302\240 0x0, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"gpuhtw\",????? 11, 11, 512, 1, 1, 0xC,? 0x0, 0, 0, 1,\n" ">>>> 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"gpu\",\302\240\302\240\302\240\302\240\302\240\302\240\302\240\302\240 12, 12, 2304, 1, 0, 0xFF0, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"gpu\",???????? 12, 12, 2304, 1, 0, 0xFF0, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"mmuhwt\",\302\240\302\240\302\240\302\240\302\240 13, 13, 256, 2, 0, 0x0,\302\240 0x1, 0, 0, 1,\n" + ">>>> +??? SCT_ENTRY(\"mmuhwt\",????? 13, 13, 256, 2, 0, 0x0,? 0x1, 0, 0, 1,\n" ">>>> 0, 1),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"compute_dma\", 15, 15, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"compute_dma\", 15, 15, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"display\",\302\240\302\240\302\240\302\240 16, 16, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"display\",???? 16, 16, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"videofw\",\302\240\302\240\302\240\302\240 17, 17, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"videofw\",???? 17, 17, 2816, 1, 0, 0xFFC, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"modemhp_fix\", 20, 20, 1024, 2, 1, 0x0,\302\240 0xF00, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"modemhp_fix\", 20, 20, 1024, 2, 1, 0x0,? 0xF00, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"modem_paging\", 21, 21, 1024, 0, 1, 0x1e, 0x0, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"modem_paging\", 21, 21, 1024, 0, 1, 0x1e, 0x0, 0, 0,\n" ">>>> 1, 1, 0),\n" - ">>>> +\302\240\302\240\302\240 SCT_ENTRY(\"audiohw\",\302\240\302\240\302\240\302\240 22, 22, 1024, 1, 1, 0xFFC, 0x2, 0, 0,\n" + ">>>> +??? SCT_ENTRY(\"audiohw\",???? 22, 22, 1024, 1, 1, 0xFFC, 0x2, 0, 0,\n" ">>>> 1, 1, 0),\n" ">>>> +};\n" ">>>> +\n" ">>>> +\n" ">>>> +static int sdm845_qcom_llcc_probe(struct platform_device *pdev)\n" ">>>> +{\n" - ">>>> +\302\240\302\240\302\240 return qcom_llcc_probe(pdev, sdm845_data, \n" + ">>>> +??? return qcom_llcc_probe(pdev, sdm845_data, \n" ">>>> ARRAY_SIZE(sdm845_data));\n" ">>> \n" ">>> I think having separate driver just for this config structure is\n" @@ -270,4 +262,4 @@ "Forum,\n" a Linux Foundation Collaborative Project -7005cf5ad434e2c39da5c8b850420549d30c8fbd92db51e1ddfbbb3159ca3b70 +35873ce8904a3f98eff6b447ab58a1d2f7c2e3ac62f220d4bff7df9c8827339f
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.