All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lee Jones <lee.jones@linaro.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Cc: Will McVicker <willmcvicker@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Cc: Android Kernel" <kernel-team@android.com>,
	linux-arm-kernel@lists.infradead.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v1 2/4] soc: samsung: change SOC_SAMSUNG default config logic
Date: Thu, 23 Sep 2021 13:39:15 +0100	[thread overview]
Message-ID: <YUx1c/xZ+nP5aI+X@google.com> (raw)
In-Reply-To: <ad2de848-8fce-f275-25de-83a886243645@canonical.com>

On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:

> On 21/09/2021 19:45, Will McVicker wrote:
> > On Tue, Sep 21, 2021 at 1:19 AM Lee Jones <lee.jones@linaro.org> wrote:
> >>
> >> On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:
> >>
> >>> On 20/09/2021 21:03, Will McVicker wrote:
> >>>> Switch the default logic to enable SOC_SAMSUNG and it's sub-configs to
> >>>> be enabled by default via "default y if ARCH_EXYNOS" versus being
> >>>> selected by the ARCH_EXYNOS config directly. This allows vendors to
> >>>> disable these configs if they wish and provides additional flexibility
> >>>> to modularize them in the presence of a generic kernel.
> >>>
> >>> This is not true. Vendors cannot disable these options as they are not
> >>> visible.
> >>
> >> Good point, well made.
> >>
> >>> Although I understand that Arnd prefers this way and I do not
> >>> object it, but your explanation is incorrect.
> > 
> > Thanks Krzysztof for the reviews! I'm sorry I missed the whole "hidden
> > configs" part. I'll upload the series to include the fix that refactos
> > the Samsung SoC drivers menuconfig which will address that and allow
> > one to enable/disable those configs. I'm going to hold off though
> > until we hash out the rest of the discussion in the cover letter
> > email.
> 
> No, please first read our discussions, including Lee's and Geert's
> comments. The drivers should not be converted to modules or made visible
> if such configuration does not work. If it works, please describe your
> testing setup.

Modules *should* work.  William is going to try it out.

Might need to lean-on for some testing on different H/W though.

> All these drivers are *necessary* for a multiplatform kernel supporting
> Exynos platforms, therefore disabling them does not make any sense (if
> you support Exynos platform). If your kernel does not support Exynos
> platform, just do not select ARCH_EXYNOS and problem disappears because
> none of these drivers will be visible and selected.
> 
> Unless you describe here some out-of-tree kernel which wants
> ARCH_EXYNOS, because vendor did not upstream it's code, but you do not
> want existing Exynos upstream drivers. We do not support such
> configuration. Please push your lovely vendor to work with upstream.
> That's the only solution.
> 
> It's the third time this abuse re-usage of ARCH_EXYNOS appears and the
> same as before - the vendor does not like to upstream stuff. There are
> few guys trying to upstream recent Samsung SoC support by themself (ping
> me for contacts if you would like to participate) but the one party
> which should be doing it - the lovely vendor - does not actually
> participate and instead sends ridiculous patches like this one here...
> or like this [1] [2].
> 
> Nope, please work with upstreaming SoC support, instead of abusing
> ARCH_EXYNOS for out of tree code from the vendor.

One of the on-going issues that GKI aims to solve pertains to the
disparity between what upstream engineers would like to be upstreamed
(i.e. everything) and what vendors can upstream (i.e. most things).

The old Open Source vs Business (i.e. products/real-life) struggle!

Vendors are not able to upstream all functionality right away, as it
would give away their perceived edge on the competition (i.e. other
vendors).  This is something we just have to accept as it will *never*
change.

GKI attempts to solve this issue by providing a generic core
containing all of the elements required to get every supported
platform bootstrapped to a point where modules can be loaded and
additional functionality can be brought in.  GKI provides all of the
modules available from the upstream kernel BUT allows them to be
overwritten/swapped-out by modules containing code (new/shiny
unreleased value-add) that the vendors do not wish to share (yet).

Clever, eh!

As I've explained before, the trigger for all of this was
SERIAL_SAMSUNG which is required for early console on supported
Samsung platforms i.e. this symbol *has* to be built-in.  In order for
this to built-in ARCH_EXYNOS has to be enabled due to the listed
dependencies in Kconfig.  And since ARCH_EXYNOS 'selects' all of these
different extra symbols, it means they too will be built-in, meaning
that a) the core binary will be unnecessarily bloated and b) vendors
who wish to overwrite/replace this functionality with their
non-shareable value-add, are not able to do so.

Going forward, it sounds like the best approach that will make
everyone happy, providing it's technically feasible, is to enable
these added (sometimes required, other times superfluous) symbols as
loadable modules.

> [1]
> https://lore.kernel.org/linux-samsung-soc/001001d5a03d$05de1f70$119a5e50$@samsung.com/
> 
> [2]
> https://lore.kernel.org/linux-usb/20210303022628.6540-1-taehyun.cho@samsung.com/
> 
> Best regards,
> Krzysztof

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Cc: Will McVicker <willmcvicker@google.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	"Cc: Android Kernel" <kernel-team@android.com>,
	linux-arm-kernel@lists.infradead.org,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-samsung-soc@vger.kernel.org
Subject: Re: [PATCH v1 2/4] soc: samsung: change SOC_SAMSUNG default config logic
Date: Thu, 23 Sep 2021 13:39:15 +0100	[thread overview]
Message-ID: <YUx1c/xZ+nP5aI+X@google.com> (raw)
In-Reply-To: <ad2de848-8fce-f275-25de-83a886243645@canonical.com>

On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:

> On 21/09/2021 19:45, Will McVicker wrote:
> > On Tue, Sep 21, 2021 at 1:19 AM Lee Jones <lee.jones@linaro.org> wrote:
> >>
> >> On Tue, 21 Sep 2021, Krzysztof Kozlowski wrote:
> >>
> >>> On 20/09/2021 21:03, Will McVicker wrote:
> >>>> Switch the default logic to enable SOC_SAMSUNG and it's sub-configs to
> >>>> be enabled by default via "default y if ARCH_EXYNOS" versus being
> >>>> selected by the ARCH_EXYNOS config directly. This allows vendors to
> >>>> disable these configs if they wish and provides additional flexibility
> >>>> to modularize them in the presence of a generic kernel.
> >>>
> >>> This is not true. Vendors cannot disable these options as they are not
> >>> visible.
> >>
> >> Good point, well made.
> >>
> >>> Although I understand that Arnd prefers this way and I do not
> >>> object it, but your explanation is incorrect.
> > 
> > Thanks Krzysztof for the reviews! I'm sorry I missed the whole "hidden
> > configs" part. I'll upload the series to include the fix that refactos
> > the Samsung SoC drivers menuconfig which will address that and allow
> > one to enable/disable those configs. I'm going to hold off though
> > until we hash out the rest of the discussion in the cover letter
> > email.
> 
> No, please first read our discussions, including Lee's and Geert's
> comments. The drivers should not be converted to modules or made visible
> if such configuration does not work. If it works, please describe your
> testing setup.

Modules *should* work.  William is going to try it out.

Might need to lean-on for some testing on different H/W though.

> All these drivers are *necessary* for a multiplatform kernel supporting
> Exynos platforms, therefore disabling them does not make any sense (if
> you support Exynos platform). If your kernel does not support Exynos
> platform, just do not select ARCH_EXYNOS and problem disappears because
> none of these drivers will be visible and selected.
> 
> Unless you describe here some out-of-tree kernel which wants
> ARCH_EXYNOS, because vendor did not upstream it's code, but you do not
> want existing Exynos upstream drivers. We do not support such
> configuration. Please push your lovely vendor to work with upstream.
> That's the only solution.
> 
> It's the third time this abuse re-usage of ARCH_EXYNOS appears and the
> same as before - the vendor does not like to upstream stuff. There are
> few guys trying to upstream recent Samsung SoC support by themself (ping
> me for contacts if you would like to participate) but the one party
> which should be doing it - the lovely vendor - does not actually
> participate and instead sends ridiculous patches like this one here...
> or like this [1] [2].
> 
> Nope, please work with upstreaming SoC support, instead of abusing
> ARCH_EXYNOS for out of tree code from the vendor.

One of the on-going issues that GKI aims to solve pertains to the
disparity between what upstream engineers would like to be upstreamed
(i.e. everything) and what vendors can upstream (i.e. most things).

The old Open Source vs Business (i.e. products/real-life) struggle!

Vendors are not able to upstream all functionality right away, as it
would give away their perceived edge on the competition (i.e. other
vendors).  This is something we just have to accept as it will *never*
change.

GKI attempts to solve this issue by providing a generic core
containing all of the elements required to get every supported
platform bootstrapped to a point where modules can be loaded and
additional functionality can be brought in.  GKI provides all of the
modules available from the upstream kernel BUT allows them to be
overwritten/swapped-out by modules containing code (new/shiny
unreleased value-add) that the vendors do not wish to share (yet).

Clever, eh!

As I've explained before, the trigger for all of this was
SERIAL_SAMSUNG which is required for early console on supported
Samsung platforms i.e. this symbol *has* to be built-in.  In order for
this to built-in ARCH_EXYNOS has to be enabled due to the listed
dependencies in Kconfig.  And since ARCH_EXYNOS 'selects' all of these
different extra symbols, it means they too will be built-in, meaning
that a) the core binary will be unnecessarily bloated and b) vendors
who wish to overwrite/replace this functionality with their
non-shareable value-add, are not able to do so.

Going forward, it sounds like the best approach that will make
everyone happy, providing it's technically feasible, is to enable
these added (sometimes required, other times superfluous) symbols as
loadable modules.

> [1]
> https://lore.kernel.org/linux-samsung-soc/001001d5a03d$05de1f70$119a5e50$@samsung.com/
> 
> [2]
> https://lore.kernel.org/linux-usb/20210303022628.6540-1-taehyun.cho@samsung.com/
> 
> Best regards,
> Krzysztof

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-09-23 12:41 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-20 19:03 [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Will McVicker
2021-09-20 19:03 ` Will McVicker
2021-09-20 19:03 ` [PATCH v1 1/4] clk: samsung: change COMMON_CLK_SAMSUNG default config logic Will McVicker
2021-09-20 19:03   ` Will McVicker
2021-09-21  7:29   ` Krzysztof Kozlowski
2021-09-21  7:29     ` Krzysztof Kozlowski
2021-09-21  7:50     ` Geert Uytterhoeven
2021-09-21  7:50       ` Geert Uytterhoeven
2021-09-21  8:35       ` Krzysztof Kozlowski
2021-09-21  8:35         ` Krzysztof Kozlowski
2021-09-21 17:58         ` Will McVicker
2021-09-21 17:58           ` Will McVicker
2021-09-21 18:04           ` Krzysztof Kozlowski
2021-09-21 18:04             ` Krzysztof Kozlowski
2021-09-23 12:57             ` Lee Jones
2021-09-23 12:57               ` Lee Jones
2021-09-23 13:27               ` Krzysztof Kozlowski
2021-09-23 13:27                 ` Krzysztof Kozlowski
2021-09-23 14:18                 ` Lee Jones
2021-09-23 14:18                   ` Lee Jones
2021-09-23 16:27                   ` Krzysztof Kozlowski
2021-09-23 16:27                     ` Krzysztof Kozlowski
2021-09-23 16:30                     ` Krzysztof Kozlowski
2021-09-23 16:30                       ` Krzysztof Kozlowski
2021-09-20 19:03 ` [PATCH v1 2/4] soc: samsung: change SOC_SAMSUNG " Will McVicker
2021-09-20 19:03   ` Will McVicker
2021-09-20 20:57   ` Will McVicker
2021-09-20 20:57     ` Will McVicker
2021-09-21  7:23   ` Krzysztof Kozlowski
2021-09-21  7:23     ` Krzysztof Kozlowski
2021-09-21  8:19     ` Lee Jones
2021-09-21  8:19       ` Lee Jones
2021-09-21 17:45       ` Will McVicker
2021-09-21 17:45         ` Will McVicker
2021-09-21 18:20         ` Krzysztof Kozlowski
2021-09-21 18:20           ` Krzysztof Kozlowski
2021-09-23 12:39           ` Lee Jones [this message]
2021-09-23 12:39             ` Lee Jones
2021-09-23 12:57             ` Krzysztof Kozlowski
2021-09-23 12:57               ` Krzysztof Kozlowski
2021-09-23 13:41               ` Lee Jones
2021-09-23 13:41                 ` Lee Jones
2021-09-23 16:19                 ` Geert Uytterhoeven
2021-09-23 16:19                   ` Geert Uytterhoeven
2021-09-23 18:05                   ` Geert Uytterhoeven
2021-09-23 18:05                     ` Geert Uytterhoeven
2021-09-20 19:03 ` [PATCH v1 3/4] pinctrl: samsung: change PINCTRL_EXYNOS " Will McVicker
2021-09-20 19:03   ` Will McVicker
2021-09-21  7:27   ` Krzysztof Kozlowski
2021-09-21  7:27     ` Krzysztof Kozlowski
2021-09-21  8:18     ` Lee Jones
2021-09-21  8:18       ` Lee Jones
2021-09-23 21:52   ` Linus Walleij
2021-09-23 21:52     ` Linus Walleij
2021-09-20 19:03 ` [PATCH v1 4/4] rtc: change HAVE_S3C_RTC " Will McVicker
2021-09-20 19:03   ` Will McVicker
2021-09-20 20:05   ` Alexandre Belloni
2021-09-20 20:05     ` Alexandre Belloni
2021-09-21  7:36   ` Krzysztof Kozlowski
2021-09-21  7:36     ` Krzysztof Kozlowski
2021-09-21  7:08 ` [PATCH v1 0/4] arm64: Kconfig: Update ARCH_EXYNOS select configs Lee Jones
2021-09-21  7:08   ` Lee Jones
2021-09-21  7:19 ` Krzysztof Kozlowski
2021-09-21  7:19   ` Krzysztof Kozlowski
2021-09-21  7:22   ` Krzysztof Kozlowski
2021-09-21  7:22     ` Krzysztof Kozlowski
2021-09-21  8:11   ` Lee Jones
2021-09-21  8:11     ` Lee Jones
2021-09-21  8:25     ` Krzysztof Kozlowski
2021-09-21  8:25       ` Krzysztof Kozlowski
2021-09-21  8:41       ` Lee Jones
2021-09-21  8:41         ` Lee Jones
2021-09-25  2:17       ` Saravana Kannan
2021-09-25  2:17         ` Saravana Kannan
2021-09-27  8:08         ` Krzysztof Kozlowski
2021-09-27  8:08           ` Krzysztof Kozlowski
2021-09-27  8:16           ` Geert Uytterhoeven
2021-09-27  8:16             ` Geert Uytterhoeven
2021-09-27 18:07           ` Saravana Kannan
2021-09-27 18:07             ` Saravana Kannan
2021-09-27 19:54             ` Geert Uytterhoeven
2021-09-27 19:54               ` Geert Uytterhoeven

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YUx1c/xZ+nP5aI+X@google.com \
    --to=lee.jones@linaro.org \
    --cc=catalin.marinas@arm.com \
    --cc=kernel-team@android.com \
    --cc=krzysztof.kozlowski@canonical.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=will@kernel.org \
    --cc=willmcvicker@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.