[PATCH v8 0/8] Introducing Exynos ChipId driver

Marek Szyprowski m.szyprowski at samsung.com
Fri Dec 16 05:11:04 PST 2016


Hi Pankaj


On 2016-12-10 14:08, Pankaj Dubey wrote:
> Each Exynos SoC has ChipID block which can give information about SoC's
> product Id and revision number.
>
> This patch series introduces Exynos Chipid SoC driver. At the same time
> it reduces dependency of mach-exynos files from plat-samsung, by removing
> soc_is_exynosMMMM and samsung_rev API. Instead of it now we can use
> soc_device_match API proposed by Arnd and getting discussed in thread [1].
>
> Until now we are using static mapping of Exynos Chipid and using this static
> mapping to know about SoC name and revision via soc_is_exynosMMMM macro. This
> is quite cumbersome and every time new ARMv7 based Exynos SoC supports lands in
> mainline a bunch of such new macros needs to be added. Quite long back during
> support of Exynos5260 it has been discussed to solve this problem.
>
> To solve this issue this patchset replaces use of soc_is_exynosMMMM by either
> of_machine_is_compatible or soc_device_match depending upon usecase.
>
> I have tested this patch series on Exynos4210 based Origen board for normal SMP
> boot.
>
>
> Although I submitted this series as a whole of 8 patchsets, following are dependency
> details among the patches.
>
> Patch 1/8 can be taken without any dependency on other patches.
> Patch 2/8 and 3/8 has dependency on 1/8 and can be taken along with 1/8.
> Patch 4/8 has no dependency and can be taken without chipid driver patch 1/8.
> Patch 5/8 has depency on 1/8
> Patch 6/8 has no dependency and can be taken without any other patches.
> Patch 7/8 has dependency on 6/8 and 1/8
> Patch 8/8 has dependency on rest of patches

Which kernel should I use as a base for applying those patches? I wanted 
to test them,
but I got conflicts both for v4.9 and current linux-next (next-20161216).

> [1]: https://patchwork.kernel.org/patch/9361389/
>
> Revision 7 and it's discussion can be found here:
>   - https://www.spinics.net/lists/arm-kernel/msg540790.html
>
> Revision 6 and it's discussion can be found here:
>   - https://lkml.org/lkml/2016/5/25/101
>
> Revision 5 and it's discussion can be found here:
>   - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/310046.html
>
> Revision 4 and it's discussion can be found here:
>   - https://lkml.org/lkml/2014/12/3/115
>
> Changes since v7:
>   - Added ARM64 based Exynos7 and Exynos5433 support in chipid driver.
>   - Removed Exynos4415 support from chipid driver, as exynos4415 has been removed from tree
>   - Added patch to enable chipid driver for ARM64 based Exynos platform
>   - Addressed review comments from Arnd for firmware.c, platsmp.c and pm.c files/
>   - Splitted changes in firmware.c, platsmp.c and pm.c in separate patches
>     for better code review
>   - Included suggested code improvement in exynos-chipid.c from Marek Szyprowski
>
> Chances since v6:
>   - Removed platform driver from chipid, instead use early_init to register soc_device
>   - Removed export functions from exynos chipid driver
>   - Replace soc_is_exynosMMMM via either of_machine_is_compatible or soc_device_match in
>     files in arm/mach-exynos folder
>   - This patchset depends on the following patch series by Geert Uytterhoeven. This series
>     includes patch which introduces soc_device_match.
>     http://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1261739.html
>   - Rebased on latest krzk/for-next branch and retested.
>
> Change since v5:
>   - Addressed Rob's review comments.
>   - Rebased on latest krzk/for-next branch and retested.
>
> Changes since v4:
>   - Removed custom sysfs entries as they were not providing any new information
>     as pointed out by Arnd.
>   - Removed functions exporting product_id and revision, instead we will export
>     exynos_chipid_info structure. It will be helpfull when we need to provide more
>     fields of chipid outside of chipid, as commented by Yadwinder
>   - Converted all funcions as __init.
>
> Change since v3:
>   - This patch set contains 5/6 and 6/6 patch from v3 series.
>   - Made EXYNOS_CHIPID config option non-user selectable,
>     as suggested by Tomasz Figa.
>   - Made uniform macro for EXYNOS4/5_SOC_MASK as EXYNOS_SOC_MASK as
>     suggested by Tomasz Figa.
>   - Made local variables static in chipid driver.
>   - Added existing SoC's product id's.
>   - Added platform driver support.
>
> Changes since v2:
>   - Reorganized patches as suggested by Tomasz Figa.
>   - Addressed review comments of Tomasz Figa in i2c-s3c2410.c file.
>
> Pankaj Dubey (8):
>    soc: samsung: add exynos chipid driver support
>    ARM: EXYNOS: enable exynos_chipid for ARCH_EXYNOS
>    ARM64: EXYNOS: enable exynos_chipid for ARCH_EXYNOS
>    ARM: EXYNOS: refactor firmware specific routines
>    ARM: EXYNOS: refactor power management specific routines
>    ARM: EXYNOS: remove secondary startup initialization from
>      smp_prepare_cpus
>    ARM: EXYNOS: refactor smp specific code and routines
>    ARM: EXYNOS: refactor of mach-exynos to use chipid information
>
>   arch/arm/mach-exynos/Kconfig                 |   1 +
>   arch/arm/mach-exynos/common.h                |  92 ---------
>   arch/arm/mach-exynos/exynos.c                |  38 ----
>   arch/arm/mach-exynos/firmware.c              | 100 +++++++---
>   arch/arm/mach-exynos/include/mach/map.h      |  21 ---
>   arch/arm/mach-exynos/platsmp.c               | 267 +++++++++++++++++++++------
>   arch/arm/mach-exynos/pm.c                    | 185 ++++++++++++++++---
>   arch/arm/plat-samsung/cpu.c                  |  14 --
>   arch/arm/plat-samsung/include/plat/cpu.h     |   2 -
>   arch/arm/plat-samsung/include/plat/map-s5p.h |   2 -
>   arch/arm64/Kconfig.platforms                 |   1 +
>   drivers/soc/samsung/Kconfig                  |   5 +
>   drivers/soc/samsung/Makefile                 |   1 +
>   drivers/soc/samsung/exynos-chipid.c          | 116 ++++++++++++
>   14 files changed, 563 insertions(+), 282 deletions(-)
>   delete mode 100644 arch/arm/mach-exynos/include/mach/map.h
>   create mode 100644 drivers/soc/samsung/exynos-chipid.c
>

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland




More information about the linux-arm-kernel mailing list