All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chanwoo Choi <chanwoo@kernel.org>
To: "Artur Świgoń" <a.swigon@samsung.com>
Cc: devicetree <devicetree@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	inki.dae@samsung.com, Seung-Woo Kim <sw0312.kim@samsung.com>,
	Georgi Djakov <georgi.djakov@linaro.org>,
	Leonard Crestez <leonard.crestez@nxp.com>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>
Subject: Re: [RFC PATCH v3 3/7] interconnect: Allow inter-provider pairs to be configured
Date: Mon, 23 Dec 2019 02:08:41 +0900	[thread overview]
Message-ID: <CAGTfZH0zfvPYtTv6v+5nq99Gd2PVtg+O20dwf2nbV2j1U0nxCQ@mail.gmail.com> (raw)
In-Reply-To: <20191220115653.6487-4-a.swigon@samsung.com>

Hi,

On Fri, Dec 20, 2019 at 9:03 PM Artur Świgoń <a.swigon@samsung.com> wrote:
>
> In the exynos-bus devfreq driver every bus is probed separately and is

IMHO, the patch description should specify the more general cause
why have to be changed. Actually, almost people might not know
the 'exynos-bus'. So, firstly, you have to specify the general cause
why this patch is necessary without 'exynos-bus' word and then
add the real use-case with 'exynos-bus' example.

> assigned a separate interconnect provider. However, the interconnect
> framework does not call the '->set' callback for pairs of nodes which
> belong to different providers.
>
> This patch adds support for a new boolean 'inter_set' field in struct
> icc_provider. Setting it to 'true' enables calling '->set' for
> inter-provider node pairs. All existing users of the interconnect
> framework allocate this structure with kzalloc, and are therefore
> unaffected.
>
> Signed-off-by: Artur Świgoń <a.swigon@samsung.com>
> ---
>  drivers/interconnect/core.c           | 11 +++++------
>  include/linux/interconnect-provider.h |  2 ++
>  2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index 74c68898a350..a28bd0f8a497 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -259,23 +259,22 @@ static int aggregate_requests(struct icc_node *node)
>  static int apply_constraints(struct icc_path *path)
>  {
>         struct icc_node *next, *prev = NULL;
> +       struct icc_provider *p;
>         int ret = -EINVAL;
>         int i;
>
>         for (i = 0; i < path->num_nodes; i++) {
>                 next = path->reqs[i].node;
> +               p = next->provider;
>
> -               /*
> -                * Both endpoints should be valid master-slave pairs of the
> -                * same interconnect provider that will be configured.
> -                */
> -               if (!prev || next->provider != prev->provider) {
> +               /* both endpoints should be valid master-slave pairs */
> +               if (!prev || (p != prev->provider && !p->inter_set)) {
>                         prev = next;
>                         continue;
>                 }
>
>                 /* set the constraints */
> -               ret = next->provider->set(prev, next);
> +               ret = p->set(prev, next);
>                 if (ret)
>                         goto out;
>
> diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h
> index cc965b8fab53..b6ae0ee686c5 100644
> --- a/include/linux/interconnect-provider.h
> +++ b/include/linux/interconnect-provider.h
> @@ -41,6 +41,7 @@ struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
>   * @xlate: provider-specific callback for mapping nodes from phandle arguments
>   * @dev: the device this interconnect provider belongs to
>   * @users: count of active users
> + * @inter_set: whether inter-provider pairs will be configured with @set
>   * @data: pointer to private data
>   */
>  struct icc_provider {
> @@ -53,6 +54,7 @@ struct icc_provider {
>         struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
>         struct device           *dev;
>         int                     users;
> +       bool                    inter_set;
>         void                    *data;
>  };
>
> --
> 2.17.1
>


-- 
Best Regards,
Chanwoo Choi

WARNING: multiple messages have this Message-ID (diff)
From: Chanwoo Choi <chanwoo@kernel.org>
To: "Artur Świgoń" <a.swigon@samsung.com>
Cc: devicetree <devicetree@vger.kernel.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	inki.dae@samsung.com, Chanwoo Choi <cw00.choi@samsung.com>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Leonard Crestez <leonard.crestez@nxp.com>,
	Georgi Djakov <georgi.djakov@linaro.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [RFC PATCH v3 3/7] interconnect: Allow inter-provider pairs to be configured
Date: Mon, 23 Dec 2019 02:08:41 +0900	[thread overview]
Message-ID: <CAGTfZH0zfvPYtTv6v+5nq99Gd2PVtg+O20dwf2nbV2j1U0nxCQ@mail.gmail.com> (raw)
In-Reply-To: <20191220115653.6487-4-a.swigon@samsung.com>

Hi,

On Fri, Dec 20, 2019 at 9:03 PM Artur Świgoń <a.swigon@samsung.com> wrote:
>
> In the exynos-bus devfreq driver every bus is probed separately and is

IMHO, the patch description should specify the more general cause
why have to be changed. Actually, almost people might not know
the 'exynos-bus'. So, firstly, you have to specify the general cause
why this patch is necessary without 'exynos-bus' word and then
add the real use-case with 'exynos-bus' example.

> assigned a separate interconnect provider. However, the interconnect
> framework does not call the '->set' callback for pairs of nodes which
> belong to different providers.
>
> This patch adds support for a new boolean 'inter_set' field in struct
> icc_provider. Setting it to 'true' enables calling '->set' for
> inter-provider node pairs. All existing users of the interconnect
> framework allocate this structure with kzalloc, and are therefore
> unaffected.
>
> Signed-off-by: Artur Świgoń <a.swigon@samsung.com>
> ---
>  drivers/interconnect/core.c           | 11 +++++------
>  include/linux/interconnect-provider.h |  2 ++
>  2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index 74c68898a350..a28bd0f8a497 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -259,23 +259,22 @@ static int aggregate_requests(struct icc_node *node)
>  static int apply_constraints(struct icc_path *path)
>  {
>         struct icc_node *next, *prev = NULL;
> +       struct icc_provider *p;
>         int ret = -EINVAL;
>         int i;
>
>         for (i = 0; i < path->num_nodes; i++) {
>                 next = path->reqs[i].node;
> +               p = next->provider;
>
> -               /*
> -                * Both endpoints should be valid master-slave pairs of the
> -                * same interconnect provider that will be configured.
> -                */
> -               if (!prev || next->provider != prev->provider) {
> +               /* both endpoints should be valid master-slave pairs */
> +               if (!prev || (p != prev->provider && !p->inter_set)) {
>                         prev = next;
>                         continue;
>                 }
>
>                 /* set the constraints */
> -               ret = next->provider->set(prev, next);
> +               ret = p->set(prev, next);
>                 if (ret)
>                         goto out;
>
> diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h
> index cc965b8fab53..b6ae0ee686c5 100644
> --- a/include/linux/interconnect-provider.h
> +++ b/include/linux/interconnect-provider.h
> @@ -41,6 +41,7 @@ struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
>   * @xlate: provider-specific callback for mapping nodes from phandle arguments
>   * @dev: the device this interconnect provider belongs to
>   * @users: count of active users
> + * @inter_set: whether inter-provider pairs will be configured with @set
>   * @data: pointer to private data
>   */
>  struct icc_provider {
> @@ -53,6 +54,7 @@ struct icc_provider {
>         struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
>         struct device           *dev;
>         int                     users;
> +       bool                    inter_set;
>         void                    *data;
>  };
>
> --
> 2.17.1
>


-- 
Best Regards,
Chanwoo Choi

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

WARNING: multiple messages have this Message-ID (diff)
From: Chanwoo Choi <chanwoo@kernel.org>
To: "Artur Świgoń" <a.swigon@samsung.com>
Cc: devicetree <devicetree@vger.kernel.org>,
	linux-samsung-soc <linux-samsung-soc@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>,
	Seung-Woo Kim <sw0312.kim@samsung.com>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Krzysztof Kozlowski <krzk@kernel.org>,
	Leonard Crestez <leonard.crestez@nxp.com>,
	Georgi Djakov <georgi.djakov@linaro.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: Re: [RFC PATCH v3 3/7] interconnect: Allow inter-provider pairs to be configured
Date: Mon, 23 Dec 2019 02:08:41 +0900	[thread overview]
Message-ID: <CAGTfZH0zfvPYtTv6v+5nq99Gd2PVtg+O20dwf2nbV2j1U0nxCQ@mail.gmail.com> (raw)
In-Reply-To: <20191220115653.6487-4-a.swigon@samsung.com>

Hi,

On Fri, Dec 20, 2019 at 9:03 PM Artur Świgoń <a.swigon@samsung.com> wrote:
>
> In the exynos-bus devfreq driver every bus is probed separately and is

IMHO, the patch description should specify the more general cause
why have to be changed. Actually, almost people might not know
the 'exynos-bus'. So, firstly, you have to specify the general cause
why this patch is necessary without 'exynos-bus' word and then
add the real use-case with 'exynos-bus' example.

> assigned a separate interconnect provider. However, the interconnect
> framework does not call the '->set' callback for pairs of nodes which
> belong to different providers.
>
> This patch adds support for a new boolean 'inter_set' field in struct
> icc_provider. Setting it to 'true' enables calling '->set' for
> inter-provider node pairs. All existing users of the interconnect
> framework allocate this structure with kzalloc, and are therefore
> unaffected.
>
> Signed-off-by: Artur Świgoń <a.swigon@samsung.com>
> ---
>  drivers/interconnect/core.c           | 11 +++++------
>  include/linux/interconnect-provider.h |  2 ++
>  2 files changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/interconnect/core.c b/drivers/interconnect/core.c
> index 74c68898a350..a28bd0f8a497 100644
> --- a/drivers/interconnect/core.c
> +++ b/drivers/interconnect/core.c
> @@ -259,23 +259,22 @@ static int aggregate_requests(struct icc_node *node)
>  static int apply_constraints(struct icc_path *path)
>  {
>         struct icc_node *next, *prev = NULL;
> +       struct icc_provider *p;
>         int ret = -EINVAL;
>         int i;
>
>         for (i = 0; i < path->num_nodes; i++) {
>                 next = path->reqs[i].node;
> +               p = next->provider;
>
> -               /*
> -                * Both endpoints should be valid master-slave pairs of the
> -                * same interconnect provider that will be configured.
> -                */
> -               if (!prev || next->provider != prev->provider) {
> +               /* both endpoints should be valid master-slave pairs */
> +               if (!prev || (p != prev->provider && !p->inter_set)) {
>                         prev = next;
>                         continue;
>                 }
>
>                 /* set the constraints */
> -               ret = next->provider->set(prev, next);
> +               ret = p->set(prev, next);
>                 if (ret)
>                         goto out;
>
> diff --git a/include/linux/interconnect-provider.h b/include/linux/interconnect-provider.h
> index cc965b8fab53..b6ae0ee686c5 100644
> --- a/include/linux/interconnect-provider.h
> +++ b/include/linux/interconnect-provider.h
> @@ -41,6 +41,7 @@ struct icc_node *of_icc_xlate_onecell(struct of_phandle_args *spec,
>   * @xlate: provider-specific callback for mapping nodes from phandle arguments
>   * @dev: the device this interconnect provider belongs to
>   * @users: count of active users
> + * @inter_set: whether inter-provider pairs will be configured with @set
>   * @data: pointer to private data
>   */
>  struct icc_provider {
> @@ -53,6 +54,7 @@ struct icc_provider {
>         struct icc_node* (*xlate)(struct of_phandle_args *spec, void *data);
>         struct device           *dev;
>         int                     users;
> +       bool                    inter_set;
>         void                    *data;
>  };
>
> --
> 2.17.1
>


-- 
Best Regards,
Chanwoo Choi
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

  reply	other threads:[~2019-12-22 17:09 UTC|newest]

Thread overview: 93+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CGME20191220120140eucas1p14ad33c20882f8f48e02337ea16754d91@eucas1p1.samsung.com>
2019-12-20 11:56 ` [RFC PATCH v3 0/7] PM / devfreq: Simple QoS for exynos-bus using interconnect Artur Świgoń
2019-12-20 11:56   ` Artur Świgoń
2019-12-20 11:56   ` Artur Świgoń
     [not found]   ` <CGME20191220120141eucas1p11f5fa9d76d17e80e06199cb7a911c482@eucas1p1.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 1/7] interconnect: Export of_icc_get_from_provider() Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
     [not found]   ` <CGME20191220120142eucas1p1f43c7a862d9c0faa72e14b21d7d697e9@eucas1p1.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 2/7] interconnect: Relax requirement in of_icc_get_from_provider() Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-21 17:20       ` Chanwoo Choi
2019-12-21 17:20         ` Chanwoo Choi
2019-12-21 17:20         ` Chanwoo Choi
     [not found]   ` <CGME20191220120143eucas1p1c9b01ae8c2e4ecd70423ef9d8001536f@eucas1p1.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 3/7] interconnect: Allow inter-provider pairs to be configured Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-22 17:08       ` Chanwoo Choi [this message]
2019-12-22 17:08         ` Chanwoo Choi
2019-12-22 17:08         ` Chanwoo Choi
     [not found]   ` <CGME20191220120144eucas1p119ececf161a6d45a6a194e432bbbd1f9@eucas1p1.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 4/7] arm: dts: exynos: Add interconnect bindings for Exynos4412 Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-21 20:00       ` Chanwoo Choi
2019-12-21 20:00         ` Chanwoo Choi
2019-12-21 20:00         ` Chanwoo Choi
2019-12-30 15:44       ` Krzysztof Kozlowski
2019-12-30 15:44         ` Krzysztof Kozlowski
2019-12-30 15:44         ` Krzysztof Kozlowski
2019-12-31  7:18         ` Artur Świgoń
2019-12-31  7:18           ` Artur Świgoń
2019-12-31  7:18           ` Artur Świgoń
2019-12-31  9:22           ` Krzysztof Kozlowski
2019-12-31  9:22             ` Krzysztof Kozlowski
2019-12-31  9:22             ` Krzysztof Kozlowski
2019-12-31  9:41             ` Artur Świgoń
2019-12-31  9:41               ` Artur Świgoń
2019-12-31  9:41               ` Artur Świgoń
2019-12-31 10:02               ` Krzysztof Kozlowski
2019-12-31 10:02                 ` Krzysztof Kozlowski
2019-12-31 10:02                 ` Krzysztof Kozlowski
2019-12-31 10:23                 ` Artur Świgoń
2019-12-31 10:23                   ` Artur Świgoń
2019-12-31 10:23                   ` Artur Świgoń
2019-12-31 10:38                   ` Krzysztof Kozlowski
2019-12-31 10:38                     ` Krzysztof Kozlowski
2019-12-31 10:38                     ` Krzysztof Kozlowski
2019-12-31 11:03                     ` Artur Świgoń
2019-12-31 11:03                       ` Artur Świgoń
2019-12-31 11:03                       ` Artur Świgoń
2020-01-22 16:54       ` Georgi Djakov
2020-01-22 16:54         ` Georgi Djakov
2020-01-22 16:54         ` Georgi Djakov
2020-01-24 11:22         ` Artur Świgoń
2020-01-24 11:22           ` Artur Świgoń
2020-01-24 11:22           ` Artur Świgoń
     [not found]   ` <CGME20191220120145eucas1p295af63eed7b23982d8c49fcf875cec8c@eucas1p2.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 5/7] devfreq: exynos-bus: Add interconnect functionality to exynos-bus Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-21 19:53       ` Chanwoo Choi
2019-12-21 19:53         ` Chanwoo Choi
2019-12-21 19:53         ` Chanwoo Choi
2019-12-21 19:55         ` Chanwoo Choi
2019-12-21 19:55           ` Chanwoo Choi
2019-12-21 19:55           ` Chanwoo Choi
2020-01-22 17:02       ` Georgi Djakov
2020-01-22 17:02         ` Georgi Djakov
2020-01-22 17:02         ` Georgi Djakov
2020-01-24 11:22         ` Artur Świgoń
2020-01-24 11:22           ` Artur Świgoń
2020-01-24 11:22           ` Artur Świgoń
2020-01-24 12:32           ` Georgi Djakov
2020-01-24 12:32             ` Georgi Djakov
2020-01-24 12:32             ` Georgi Djakov
     [not found]   ` <CGME20191220120146eucas1p25dada01c315215d18bb8a15e3173b52c@eucas1p2.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 6/7] arm: dts: exynos: Add interconnects to Exynos4412 mixer Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-21 20:08       ` Chanwoo Choi
2019-12-21 20:08         ` Chanwoo Choi
2019-12-21 20:08         ` Chanwoo Choi
     [not found]   ` <CGME20191220120146eucas1p22a7b0457be4f378b113f67dc25f2eba7@eucas1p2.samsung.com>
2019-12-20 11:56     ` [RFC PATCH v3 7/7] drm: exynos: mixer: Add interconnect support Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-20 11:56       ` Artur Świgoń
2019-12-21 20:15       ` Chanwoo Choi
2019-12-21 20:15         ` Chanwoo Choi
2019-12-21 20:15         ` Chanwoo Choi
2019-12-24  4:56       ` Inki Dae
2019-12-24  4:56         ` Inki Dae
2019-12-24  4:56         ` Inki Dae
2019-12-30  9:35         ` Artur Świgoń
2019-12-30  9:35           ` Artur Świgoń
2019-12-30  9:35           ` Artur Świgoń
2019-12-21 19:58   ` [RFC PATCH v3 0/7] PM / devfreq: Simple QoS for exynos-bus using interconnect Chanwoo Choi
2019-12-21 19:58     ` Chanwoo Choi
2019-12-21 19:58     ` Chanwoo Choi

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=CAGTfZH0zfvPYtTv6v+5nq99Gd2PVtg+O20dwf2nbV2j1U0nxCQ@mail.gmail.com \
    --to=chanwoo@kernel.org \
    --cc=a.swigon@samsung.com \
    --cc=b.zolnierkie@samsung.com \
    --cc=cw00.choi@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=georgi.djakov@linaro.org \
    --cc=inki.dae@samsung.com \
    --cc=krzk@kernel.org \
    --cc=leonard.crestez@nxp.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-samsung-soc@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=sw0312.kim@samsung.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.