* Re: [PATCH v2] drm: dw-hdmi-i2s: enable audio clock in audio_startup
From: Neil Armstrong @ 2019-09-02 9:42 UTC (permalink / raw)
To: Cheng-Yi Chiang, linux-kernel
Cc: alsa-devel, tzungbi, zhengxing, kuninori.morimoto.gx,
linux-rockchip, airlied, jeffy.chen, dianders, dri-devel,
cain.cai, a.hajda, Jonas Karlman, eddie.cai, Laurent.pinchart,
daniel, enric.balletbo, dgreid, sam, linux-arm-kernel
In-Reply-To: <20190902035435.44463-1-cychiang@chromium.org>
Hi,
On 02/09/2019 05:54, Cheng-Yi Chiang wrote:
> In the designware databook, the sequence of enabling audio clock and
> setting format is not clearly specified.
> Currently, audio clock is enabled in the end of hw_param ops after
> setting format.
>
> On some monitors, there is a possibility that audio does not come out.
> Fix this by enabling audio clock in audio_startup ops
> before hw_param ops setting format.
>
> Signed-off-by: Cheng-Yi Chiang <cychiang@chromium.org>
> Reviewed-by: Douglas Anderson <dianders@chromium.org>
> Reviewed-by: Jonas Karlman <jonas@kwiboo.se>
> Tested-by: Douglas Anderson <dianders@chromium.org>
> ---
> Changes from v1:
> 1. Move audio_startup to the front of audio_shutdown.
> 2. Fix the indentation of audio_startup equal sign using tab.
> 3. Rebase the patch on linux-next/master.
> 4. Add Reviewed-by and Tested-by fields from dianders@chromium.org.
> 5. Add Reviewed-by field from jonas@kwiboo.se.
>
> drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
> index 1d15cf9b6821..34d8e837555f 100644
> --- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
> +++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi-i2s-audio.c
> @@ -109,6 +109,14 @@ static int dw_hdmi_i2s_hw_params(struct device *dev, void *data,
> hdmi_write(audio, conf0, HDMI_AUD_CONF0);
> hdmi_write(audio, conf1, HDMI_AUD_CONF1);
>
> + return 0;
> +}
> +
> +static int dw_hdmi_i2s_audio_startup(struct device *dev, void *data)
> +{
> + struct dw_hdmi_i2s_audio_data *audio = data;
> + struct dw_hdmi *hdmi = audio->hdmi;
> +
> dw_hdmi_audio_enable(hdmi);
>
> return 0;
> @@ -153,6 +161,7 @@ static int dw_hdmi_i2s_get_dai_id(struct snd_soc_component *component,
>
> static struct hdmi_codec_ops dw_hdmi_i2s_ops = {
> .hw_params = dw_hdmi_i2s_hw_params,
> + .audio_startup = dw_hdmi_i2s_audio_startup,
> .audio_shutdown = dw_hdmi_i2s_audio_shutdown,
> .get_eld = dw_hdmi_i2s_get_eld,
> .get_dai_id = dw_hdmi_i2s_get_dai_id,
>
Looks sane, Jonas should I apply it now it's rebased ?
Neil
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] media: stm32-dcmi: Delete an unnecessary of_node_put() call in dcmi_probe()
From: Hugues FRUCHET @ 2019-09-02 9:41 UTC (permalink / raw)
To: Markus Elfring, linux-media@vger.kernel.org,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, Alexandre TORGUE,
Mauro Carvalho Chehab, Maxime Coquelin
Cc: kernel-janitors@vger.kernel.org, LKML
In-Reply-To: <129a4933-2171-7ed9-c84c-8e56b6d05270@web.de>
Acked-by: Hugues Fruchet <hugues.fruchet@st.com>
On 8/27/19 4:09 PM, Markus Elfring wrote:
> From: Markus Elfring <elfring@users.sourceforge.net>
> Date: Tue, 27 Aug 2019 16:00:13 +0200
>
> A null pointer would be passed to a call of the function “of_node_put”
> immediately after a call of the function “of_graph_get_next_endpoint”
> failed at one place.
> Remove this superfluous function call.
>
> This issue was detected by using the Coccinelle software.
>
> Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
> ---
> drivers/media/platform/stm32/stm32-dcmi.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c
> index cb1daf8217ff..9392e3409fba 100644
> --- a/drivers/media/platform/stm32/stm32-dcmi.c
> +++ b/drivers/media/platform/stm32/stm32-dcmi.c
> @@ -1861,7 +1861,6 @@ static int dcmi_probe(struct platform_device *pdev)
> np = of_graph_get_next_endpoint(np, NULL);
> if (!np) {
> dev_err(&pdev->dev, "Could not find the endpoint\n");
> - of_node_put(np);
> return -ENODEV;
> }
>
> --
> 2.23.0
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 15/22] media: imx7-media-csi: Create media links in bound notifier
From: Rui Miguel Silva @ 2019-09-02 9:38 UTC (permalink / raw)
To: Steve Longerbeam
Cc: open list:STAGING SUBSYSTEM, Fabio Estevam,
Pengutronix Kernel Team, Greg Kroah-Hartman, Sascha Hauer,
open list, NXP Linux Team, Philipp Zabel, Mauro Carvalho Chehab,
Shawn Guo,
moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
linux-media
In-Reply-To: <20190805233505.21167-16-slongerbeam@gmail.com>
Hi Steve,
On Tue 06 Aug 2019 at 00:34, Steve Longerbeam wrote:
> Implement a notifier bound op to register media links from the remote
> sub-device's source pad(s) to the CSI sink pad.
>
> Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
> ---
> drivers/staging/media/imx/imx7-media-csi.c | 24 ++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/drivers/staging/media/imx/imx7-media-csi.c b/drivers/staging/media/imx/imx7-media-csi.c
> index a1c96c52a606..f71ac485f780 100644
> --- a/drivers/staging/media/imx/imx7-media-csi.c
> +++ b/drivers/staging/media/imx/imx7-media-csi.c
> @@ -196,6 +196,11 @@ struct imx7_csi {
> struct completion last_eof_completion;
> };
>
> +static inline struct imx7_csi *notifier_to_dev(struct v4l2_async_notifier *n)
>
As the other one add the namespace for the function name:
imx7_csi_notifier_to_dev
other than this, looks good to me.
Cheers,
Rui
> +{
> + return container_of(n, struct imx7_csi, notifier);
> +}
> +
> static u32 imx7_csi_reg_read(struct imx7_csi *csi, unsigned int offset)
> {
> return readl(csi->regbase + offset);
> @@ -1173,6 +1178,23 @@ static int imx7_csi_parse_endpoint(struct device *dev,
> return fwnode_device_is_available(asd->match.fwnode) ? 0 : -EINVAL;
> }
>
> +static int imx7_csi_notify_bound(struct v4l2_async_notifier *notifier,
> + struct v4l2_subdev *sd,
> + struct v4l2_async_subdev *asd)
> +{
> + struct imx7_csi *csi = notifier_to_dev(notifier);
> + struct media_pad *sink = &csi->sd.entity.pads[IMX7_CSI_PAD_SINK];
> +
> + return media_create_fwnode_pad_links(sink,
> + dev_fwnode(csi->sd.dev),
> + &sd->entity,
> + dev_fwnode(sd->dev), 0);
> +}
> +
> +static const struct v4l2_async_notifier_operations imx7_csi_notify_ops = {
> + .bound = imx7_csi_notify_bound,
> +};
> +
> static int imx7_csi_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> @@ -1253,6 +1275,8 @@ static int imx7_csi_probe(struct platform_device *pdev)
>
> v4l2_async_notifier_init(&csi->notifier);
>
> + csi->notifier.ops = &imx7_csi_notify_ops;
> +
> ret = v4l2_async_register_fwnode_subdev(&csi->sd, &csi->notifier,
> sizeof(struct v4l2_async_subdev),
> NULL, 0,
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH 14/22] media: imx7-mipi-csis: Create media links in bound notifier
From: Rui Miguel Silva @ 2019-09-02 9:36 UTC (permalink / raw)
To: Steve Longerbeam
Cc: open list:STAGING SUBSYSTEM, Fabio Estevam,
Pengutronix Kernel Team, Greg Kroah-Hartman, Sascha Hauer,
open list, NXP Linux Team, Philipp Zabel, Mauro Carvalho Chehab,
Shawn Guo,
moderated list:ARM/FREESCALE IMX / MXC ARM ARCHITECTURE,
linux-media
In-Reply-To: <20190805233505.21167-15-slongerbeam@gmail.com>
Hi Steve,
Just to let you know that this series no longer apply clean after
your other series:
media: imx: Fix subdev unregister/register issues
And since you will need to send a new one, some notes...
On Tue 06 Aug 2019 at 00:34, Steve Longerbeam wrote:
> Implement a notifier bound op to register media links from the remote
> sub-device's source pad(s) to the mipi csi-2 receiver sink pad.
>
> Signed-off-by: Steve Longerbeam <slongerbeam@gmail.com>
> ---
> drivers/staging/media/imx/imx7-mipi-csis.c | 25 ++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/drivers/staging/media/imx/imx7-mipi-csis.c b/drivers/staging/media/imx/imx7-mipi-csis.c
> index f71d9183cad2..e03b2317a1ac 100644
> --- a/drivers/staging/media/imx/imx7-mipi-csis.c
> +++ b/drivers/staging/media/imx/imx7-mipi-csis.c
> @@ -259,6 +259,12 @@ struct csi_state {
> bool sink_linked;
> };
>
> +static inline struct csi_state *
> +notifier_to_csis_state(struct v4l2_async_notifier *n)
>
instead of adding this between structs declaration can you move it
down near the similar converter:
static struct csi_state *mipi_sd_to_csis_state(struct v4l2_subdev *sdev)
and remove the inline since the compiler should do this and add
namespacing function name like the other functions, something like:
static struct csi_state * mipi_notifier_to_csis_state(struct v4l2_async_notifier *n)
Just to coherency.
Other than this, looks good to me.
Cheers,
Rui
> +{
> + return container_of(n, struct csi_state, notifier);
> +}
> +
> struct csis_pix_format {
> unsigned int pix_width_alignment;
> u32 code;
> @@ -863,6 +869,23 @@ static int mipi_csis_parse_endpoint(struct device *dev,
> return 0;
> }
>
> +static int mipi_csis_notify_bound(struct v4l2_async_notifier *notifier,
> + struct v4l2_subdev *sd,
> + struct v4l2_async_subdev *asd)
> +{
> + struct csi_state *state = notifier_to_csis_state(notifier);
> + struct media_pad *sink = &state->mipi_sd.entity.pads[CSIS_PAD_SINK];
> +
> + return media_create_fwnode_pad_links(sink,
> + dev_fwnode(state->mipi_sd.dev),
> + &sd->entity,
> + dev_fwnode(sd->dev), 0);
> +}
> +
> +static const struct v4l2_async_notifier_operations mipi_csis_notify_ops = {
> + .bound = mipi_csis_notify_bound,
> +};
> +
> static int mipi_csis_subdev_init(struct v4l2_subdev *mipi_sd,
> struct platform_device *pdev,
> const struct v4l2_subdev_ops *ops)
> @@ -895,6 +918,8 @@ static int mipi_csis_subdev_init(struct v4l2_subdev *mipi_sd,
>
> v4l2_async_notifier_init(&state->notifier);
>
> + state->notifier.ops = &mipi_csis_notify_ops;
> +
> ret = v4l2_async_register_fwnode_subdev(mipi_sd, &state->notifier,
> sizeof(struct v4l2_async_subdev),
> &sink_port, 1,
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] ARM: dts: stm32: move ltdc pinctrl on stm32mp157a dk1 board
From: Benjamin Gaignard @ 2019-09-02 9:35 UTC (permalink / raw)
To: Philippe CORNU
Cc: Mark Rutland, devicetree@vger.kernel.org, Alexandre TORGUE,
linux-kernel@vger.kernel.org, Yannick FERTRE, Rob Herring,
Maxime Coquelin, Fabrice GASNIER,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, Benjamin GAIGNARD
In-Reply-To: <50695b37-df51-08d6-a11e-99f9349aa481@st.com>
+ dri-devel mailing list
Le lun. 2 sept. 2019 à 10:45, Philippe CORNU <philippe.cornu@st.com> a écrit :
>
> Hi Yannick,
>
> On 8/2/19 4:08 PM, Yannick Fertré wrote:
> > The ltdc pinctrl must be in the display controller node and
> > not in the peripheral node (hdmi bridge).
> >
> > Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
> > ---
> > arch/arm/boot/dts/stm32mp157a-dk1.dts | 6 +++---
> > 1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm/boot/dts/stm32mp157a-dk1.dts b/arch/arm/boot/dts/stm32mp157a-dk1.dts
> > index f3f0e37..1285cfc 100644
> > --- a/arch/arm/boot/dts/stm32mp157a-dk1.dts
> > +++ b/arch/arm/boot/dts/stm32mp157a-dk1.dts
> > @@ -99,9 +99,6 @@
> > reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
> > interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
> > interrupt-parent = <&gpiog>;
> > - pinctrl-names = "default", "sleep";
> > - pinctrl-0 = <<dc_pins_a>;
> > - pinctrl-1 = <<dc_pins_sleep_a>;
> > status = "okay";
> >
> > ports {
> > @@ -276,6 +273,9 @@
> > };
> >
> > <dc {
> > + pinctrl-names = "default", "sleep";
> > + pinctrl-0 = <<dc_pins_a>;
> > + pinctrl-1 = <<dc_pins_sleep_a>;
>
> Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
>
> Thanks
> Philippe :)
>
> > status = "okay";
> >
> > port {
> >
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] drm/stm: ltdc: add pinctrl for DPI encoder mode
From: Benjamin Gaignard @ 2019-09-02 9:35 UTC (permalink / raw)
To: Philippe CORNU
Cc: Mark Rutland, devicetree@vger.kernel.org, Alexandre TORGUE,
linux-kernel@vger.kernel.org, ML dri-devel, Yannick FERTRE,
Rob Herring, Maxime Coquelin, Fabrice GASNIER,
linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, Benjamin GAIGNARD
In-Reply-To: <ada48bc2-ac6a-8732-9aa6-03ef1c104abf@st.com>
+dri-devel mailing list
Le lun. 2 sept. 2019 à 10:47, Philippe CORNU <philippe.cornu@st.com> a écrit :
>
> Hi Yannick,
>
> On 8/2/19 4:47 PM, Yannick Fertré wrote:
> > The implementation of functions encoder_enable and encoder_disable
> > make possible to control the pinctrl according to the encoder type.
> > The pinctrl must be activated only if the encoder type is DPI.
> > This helps to move the DPI-related pinctrl configuration from
> > all the panel or bridge to the LTDC dt node.
> >
> > Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
> > ---
> > drivers/gpu/drm/stm/ltdc.c | 35 +++++++++++++++++++++++++++++++++++
> > 1 file changed, 35 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> > index 3ab4fbf..1c4fde0 100644
> > --- a/drivers/gpu/drm/stm/ltdc.c
> > +++ b/drivers/gpu/drm/stm/ltdc.c
> > @@ -15,6 +15,7 @@
> > #include <linux/module.h>
> > #include <linux/of_address.h>
> > #include <linux/of_graph.h>
> > +#include <linux/pinctrl/consumer.h>
> > #include <linux/platform_device.h>
> > #include <linux/pm_runtime.h>
> > #include <linux/reset.h>
> > @@ -1040,6 +1041,36 @@ static const struct drm_encoder_funcs ltdc_encoder_funcs = {
> > .destroy = drm_encoder_cleanup,
> > };
> >
> > +static void ltdc_encoder_disable(struct drm_encoder *encoder)
> > +{
> > + struct drm_device *ddev = encoder->dev;
> > +
> > + DRM_DEBUG_DRIVER("\n");
> > +
> > + /* Set to sleep state the pinctrl whatever type of encoder */
> > + pinctrl_pm_select_sleep_state(ddev->dev);
> > +}
> > +
> > +static void ltdc_encoder_enable(struct drm_encoder *encoder)
> > +{
> > + struct drm_device *ddev = encoder->dev;
> > +
> > + DRM_DEBUG_DRIVER("\n");
> > +
> > + /*
> > + * Set to default state the pinctrl only with DPI type.
> > + * Others types like DSI, don't need pinctrl due to
> > + * internal bridge (the signals do not come out of the chipset).
> > + */
> > + if (encoder->encoder_type == DRM_MODE_ENCODER_DPI)
> > + pinctrl_pm_select_default_state(ddev->dev);
> > +}
> > +
> > +static const struct drm_encoder_helper_funcs ltdc_encoder_helper_funcs = {
> > + .disable = ltdc_encoder_disable,
> > + .enable = ltdc_encoder_enable,
> > +};
> > +
> > static int ltdc_encoder_init(struct drm_device *ddev, struct drm_bridge *bridge)
> > {
> > struct drm_encoder *encoder;
> > @@ -1055,6 +1086,8 @@ static int ltdc_encoder_init(struct drm_device *ddev, struct drm_bridge *bridge)
> > drm_encoder_init(ddev, encoder, <dc_encoder_funcs,
> > DRM_MODE_ENCODER_DPI, NULL);
> >
> > + drm_encoder_helper_add(encoder, <dc_encoder_helper_funcs);
> > +
> > ret = drm_bridge_attach(encoder, bridge, NULL);
> > if (ret) {
> > drm_encoder_cleanup(encoder);
> > @@ -1280,6 +1313,8 @@ int ltdc_load(struct drm_device *ddev)
> >
> > clk_disable_unprepare(ldev->pixel_clk);
> >
> > + pinctrl_pm_select_sleep_state(ddev->dev);
> > +
>
> Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
>
> Thanks
> Philippe :)
>
> > pm_runtime_enable(ddev->dev);
> >
> > return 0;
> >
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 3/7] usb: mtu3: support ip-sleep wakeup for MT8183
From: kbuild test robot @ 2019-09-02 9:23 UTC (permalink / raw)
To: Chunfeng Yun
Cc: Mark Rutland, devicetree, Mathias Nyman, Greg Kroah-Hartman,
linux-usb, linux-kernel, Chunfeng Yun, Rob Herring,
linux-mediatek, kbuild-all, Matthias Brugger, linux-arm-kernel
In-Reply-To: <1567150854-30033-4-git-send-email-chunfeng.yun@mediatek.com>
[-- Attachment #1: Type: text/plain, Size: 4512 bytes --]
Hi Chunfeng,
I love your patch! Perhaps something to improve:
[auto build test WARNING on linus/master]
[cannot apply to v5.3-rc6 next-20190830]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Chunfeng-Yun/add-support-USB-for-MT8183/20190901-163637
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 7.4.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=ia64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/bitops.h:5:0,
from include/linux/kernel.h:12,
from include/linux/clk.h:13,
from drivers//usb/mtu3/mtu3_host.c:10:
drivers//usb/mtu3/mtu3_host.c: In function 'ssusb_wakeup_ip_sleep_set':
>> include/linux/bits.h:8:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
#define BIT(nr) (UL(1) << (nr))
^
>> drivers//usb/mtu3/mtu3_host.c:25:19: note: in expansion of macro 'BIT'
#define WC0_IS_EN BIT(6)
^~~
>> drivers//usb/mtu3/mtu3_host.c:55:9: note: in expansion of macro 'WC0_IS_EN'
msk = WC0_IS_EN | WC0_IS_C(0xf) | WC0_IS_P;
^~~~~~~~~
--
In file included from include/linux/bitops.h:5:0,
from include/linux/kernel.h:12,
from include/linux/clk.h:13,
from drivers/usb/mtu3/mtu3_host.c:10:
drivers/usb/mtu3/mtu3_host.c: In function 'ssusb_wakeup_ip_sleep_set':
>> include/linux/bits.h:8:19: warning: large integer implicitly truncated to unsigned type [-Woverflow]
#define BIT(nr) (UL(1) << (nr))
^
drivers/usb/mtu3/mtu3_host.c:25:19: note: in expansion of macro 'BIT'
#define WC0_IS_EN BIT(6)
^~~
drivers/usb/mtu3/mtu3_host.c:55:9: note: in expansion of macro 'WC0_IS_EN'
msk = WC0_IS_EN | WC0_IS_C(0xf) | WC0_IS_P;
^~~~~~~~~
vim +/WC0_IS_EN +55 drivers//usb/mtu3/mtu3_host.c
> 10 #include <linux/clk.h>
11 #include <linux/iopoll.h>
12 #include <linux/irq.h>
13 #include <linux/kernel.h>
14 #include <linux/mfd/syscon.h>
15 #include <linux/of_device.h>
16 #include <linux/regmap.h>
17
18 #include "mtu3.h"
19 #include "mtu3_dr.h"
20
21 /* mt8183 etc */
22 #define PERI_WK_CTRL0 0x20
23 #define WC0_IS_C(x) (((x) & 0xf) << 28) /* cycle debounce */
24 #define WC0_IS_P BIT(12) /* polarity */
> 25 #define WC0_IS_EN BIT(6)
26
27 /* mt8173 etc */
28 #define PERI_WK_CTRL1 0x4
29 #define WC1_IS_C(x) (((x) & 0xf) << 26) /* cycle debounce */
30 #define WC1_IS_EN BIT(25)
31 #define WC1_IS_P BIT(6) /* polarity for ip sleep */
32
33 /* mt2712 etc */
34 #define PERI_SSUSB_SPM_CTRL 0x0
35 #define SSC_IP_SLEEP_EN BIT(4)
36 #define SSC_SPM_INT_EN BIT(1)
37
38 enum ssusb_uwk_vers {
39 SSUSB_UWK_V0 = 0,
40 SSUSB_UWK_V1,
41 SSUSB_UWK_V2,
42 };
43
44 /*
45 * ip-sleep wakeup mode:
46 * all clocks can be turn off, but power domain should be kept on
47 */
48 static void ssusb_wakeup_ip_sleep_set(struct ssusb_mtk *ssusb, bool enable)
49 {
50 u32 reg, msk, val;
51
52 switch (ssusb->uwk_vers) {
53 case SSUSB_UWK_V0:
54 reg = ssusb->uwk_reg_base + PERI_WK_CTRL0;
> 55 msk = WC0_IS_EN | WC0_IS_C(0xf) | WC0_IS_P;
56 val = enable ? (WC0_IS_EN | WC0_IS_C(0x8)) : 0;
57 break;
58 case SSUSB_UWK_V1:
59 reg = ssusb->uwk_reg_base + PERI_WK_CTRL1;
60 msk = WC1_IS_EN | WC1_IS_C(0xf) | WC1_IS_P;
61 val = enable ? (WC1_IS_EN | WC1_IS_C(0x8)) : 0;
62 break;
63 case SSUSB_UWK_V2:
64 reg = ssusb->uwk_reg_base + PERI_SSUSB_SPM_CTRL;
65 msk = SSC_IP_SLEEP_EN | SSC_SPM_INT_EN;
66 val = enable ? msk : 0;
67 break;
68 default:
69 return;
70 }
71 regmap_update_bits(ssusb->uwk, reg, msk, val);
72 }
73
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 54621 bytes --]
[-- Attachment #3: Type: text/plain, Size: 176 bytes --]
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] ASoC: sun4i-i2s: incorrect regmap for A83t
From: Code Kipper @ 2019-09-02 9:18 UTC (permalink / raw)
To: Mark Brown
Cc: Linux-ALSA, linux-sunxi, linux-kernel, Maxime Ripard,
Liam Girdwood, Andrea Venturi (pers), Chen-Yu Tsai,
linux-arm-kernel
In-Reply-To: <20190830114457.GB5182@sirena.co.uk>
On Fri, 30 Aug 2019 at 13:45, Mark Brown <broonie@kernel.org> wrote:
>
> On Wed, Aug 21, 2019 at 06:23:20PM +0200, codekipper@gmail.com wrote:
> > From: Marcus Cooper <codekipper@gmail.com>
> >
> > Fixes: 21faaea1343f ("ASoC: sun4i-i2s: Add support for A83T")
> > Signed-off-by: Marcus Cooper <codekipper@gmail.com>
> > ---
>
> This doesn't apply against current code, please check and resend.
This patch is no longer valid and the fix has been done through the reverts,
BR,
CK
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [RESEND PATCH v1 2/3] clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
From: Weiyi Lu @ 2019-09-02 9:00 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567414859-3244-1-git-send-email-weiyi.lu@mediatek.com>
Enable the runtime PM support and forward the struct device pointer for
registration of MT8183 mcucfg clocks.
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
index 99a6b02..37b4162 100644
--- a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
+++ b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
@@ -5,6 +5,7 @@
#include <linux/clk-provider.h>
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include "clk-mtk.h"
#include "clk-gate.h"
@@ -30,10 +31,12 @@ static int clk_mt8183_mfg_probe(struct platform_device *pdev)
struct clk_onecell_data *clk_data;
struct device_node *node = pdev->dev.of_node;
+ pm_runtime_enable(&pdev->dev);
+
clk_data = mtk_alloc_clk_data(CLK_MFG_NR_CLK);
- mtk_clk_register_gates(node, mfg_clks, ARRAY_SIZE(mfg_clks),
- clk_data);
+ mtk_clk_register_gates_with_dev(node, mfg_clks, ARRAY_SIZE(mfg_clks),
+ clk_data, &pdev->dev);
return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
}
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [RESEND PATCH v1 0/3] Runtime PM support for MT8183 mcucfg clock provider
From: Weiyi Lu @ 2019-09-02 9:00 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
This series is based on v5.3-rc1 and Mediatek MT8183 scpsys support v7[1].
Since Runtime PM is supported in Common Clock Framework which keeps clock
controller's power domain enabled to ensure clock status accessing correctly.
[1] https://patchwork.kernel.org/cover/11118371/
---
Weiyi Lu (3):
clk: mediatek: Register clock gate with device
clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
arm64: dts: Add power-domains properity to mfgcfg
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 1 +
drivers/clk/mediatek/clk-gate.c | 5 +++--
drivers/clk/mediatek/clk-gate.h | 3 ++-
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 7 +++++--
drivers/clk/mediatek/clk-mtk.c | 16 +++++++++++++---
drivers/clk/mediatek/clk-mtk.h | 5 +++++
6 files changed, 29 insertions(+), 8 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [RESEND PATCH v1 1/3] clk: mediatek: Register clock gate with device
From: Weiyi Lu @ 2019-09-02 9:00 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567414859-3244-1-git-send-email-weiyi.lu@mediatek.com>
Allow those clocks under a power domain to do the runtime pm operation
by forwarding the struct device pointer from clock provider.
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
drivers/clk/mediatek/clk-gate.c | 5 +++--
drivers/clk/mediatek/clk-gate.h | 3 ++-
drivers/clk/mediatek/clk-mtk.c | 16 +++++++++++++---
drivers/clk/mediatek/clk-mtk.h | 5 +++++
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/mediatek/clk-gate.c b/drivers/clk/mediatek/clk-gate.c
index 803bf0a..a35cf0b 100644
--- a/drivers/clk/mediatek/clk-gate.c
+++ b/drivers/clk/mediatek/clk-gate.c
@@ -150,7 +150,8 @@ struct clk *mtk_clk_register_gate(
int sta_ofs,
u8 bit,
const struct clk_ops *ops,
- unsigned long flags)
+ unsigned long flags,
+ struct device *dev)
{
struct mtk_clk_gate *cg;
struct clk *clk;
@@ -174,7 +175,7 @@ struct clk *mtk_clk_register_gate(
cg->hw.init = &init;
- clk = clk_register(NULL, &cg->hw);
+ clk = clk_register(dev, &cg->hw);
if (IS_ERR(clk))
kfree(cg);
diff --git a/drivers/clk/mediatek/clk-gate.h b/drivers/clk/mediatek/clk-gate.h
index e05c736..3c3329e 100644
--- a/drivers/clk/mediatek/clk-gate.h
+++ b/drivers/clk/mediatek/clk-gate.h
@@ -40,7 +40,8 @@ struct clk *mtk_clk_register_gate(
int sta_ofs,
u8 bit,
const struct clk_ops *ops,
- unsigned long flags);
+ unsigned long flags,
+ struct device *dev);
#define GATE_MTK_FLAGS(_id, _name, _parent, _regs, _shift, \
_ops, _flags) { \
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index d28790c..cec1c8a 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -12,6 +12,7 @@
#include <linux/delay.h>
#include <linux/clkdev.h>
#include <linux/mfd/syscon.h>
+#include <linux/device.h>
#include "clk-mtk.h"
#include "clk-gate.h"
@@ -93,9 +94,10 @@ void mtk_clk_register_factors(const struct mtk_fixed_factor *clks,
}
}
-int mtk_clk_register_gates(struct device_node *node,
+int mtk_clk_register_gates_with_dev(struct device_node *node,
const struct mtk_gate *clks,
- int num, struct clk_onecell_data *clk_data)
+ int num, struct clk_onecell_data *clk_data,
+ struct device *dev)
{
int i;
struct clk *clk;
@@ -122,7 +124,7 @@ int mtk_clk_register_gates(struct device_node *node,
gate->regs->set_ofs,
gate->regs->clr_ofs,
gate->regs->sta_ofs,
- gate->shift, gate->ops, gate->flags);
+ gate->shift, gate->ops, gate->flags, dev);
if (IS_ERR(clk)) {
pr_err("Failed to register clk %s: %ld\n",
@@ -136,6 +138,14 @@ int mtk_clk_register_gates(struct device_node *node,
return 0;
}
+int mtk_clk_register_gates(struct device_node *node,
+ const struct mtk_gate *clks,
+ int num, struct clk_onecell_data *clk_data)
+{
+ return mtk_clk_register_gates_with_dev(node,
+ clks, num, clk_data, NULL);
+}
+
struct clk *mtk_clk_register_composite(const struct mtk_composite *mc,
void __iomem *base, spinlock_t *lock)
{
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 733a11d..0f8ada7 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -169,6 +169,11 @@ int mtk_clk_register_gates(struct device_node *node,
const struct mtk_gate *clks, int num,
struct clk_onecell_data *clk_data);
+int mtk_clk_register_gates_with_dev(struct device_node *node,
+ const struct mtk_gate *clks,
+ int num, struct clk_onecell_data *clk_data,
+ struct device *dev);
+
struct mtk_clk_divider {
int id;
const char *name;
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [RESEND PATCH v1 3/3] arm64: dts: Add power-domains properity to mfgcfg
From: Weiyi Lu @ 2019-09-02 9:00 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567414859-3244-1-git-send-email-weiyi.lu@mediatek.com>
mfgcfg clock is under MFG_ASYNC power domain
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
index c2749c4..3f948e9 100644
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
@@ -388,6 +388,7 @@
compatible = "mediatek,mt8183-mfgcfg", "syscon";
reg = <0 0x13000000 0 0x1000>;
#clock-cells = <1>;
+ power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_ASYNC>;
};
mmsys: syscon@14000000 {
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCHv2-next 3/3] arm64: dts: meson: odroid-c2: Add missing regulator linked to HDMI supply
From: Anand Moon @ 2019-09-02 8:58 UTC (permalink / raw)
To: Rob Herring, Martin Blumenstingl, Jerome Brunet, Neil Armstrong,
Kevin Hilman
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic
In-Reply-To: <20190902085821.1263-1-linux.amoon@gmail.com>
As per schematics HDMI_P5V0 is supplied by P5V0 so add missing link.
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
As per Martin's suggestion added the HDMI_P5V0 fix regulator node.
---
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index ef2c3b74415b..a520ec0d73ff 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -66,6 +66,15 @@
regulator-always-on;
};
+ hdmi_p5v0: regulator-hdmi_p5v0 {
+ compatible = "regulator-fixed";
+ regulator-name = "HDMI_P5V0";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ /* AP2331SA-7 */
+ vin-supply = <&p5v0>;
+ };
+
tflash_vdd: regulator-tflash_vdd {
compatible = "regulator-fixed";
@@ -220,6 +229,7 @@
status = "okay";
pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
pinctrl-names = "default";
+ hdmi-supply = <&hdmi_p5v0>;
};
&hdmi_tx_tmds_port {
--
2.23.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCHv2-next 2/3] arm64: dts: meson: odroid-c2: Add missing regulator linked to VDDIO_AO3V3 regulator
From: Anand Moon @ 2019-09-02 8:58 UTC (permalink / raw)
To: Rob Herring, Martin Blumenstingl, Jerome Brunet, Neil Armstrong,
Kevin Hilman
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic
In-Reply-To: <20190902085821.1263-1-linux.amoon@gmail.com>
As per schematics TFLASH_VDD, TF_IO, VCC3V3 fixed regulator output which
is supplied by VDDIO_AO3V3.
While here, move the comment name with the signal name in the
schematics above the gpio property to make it consistent with other
regulators.
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
changes from previous.
- Fix the typo.
- Add the comment as per Martin's suggestion.
- Added Martin's review tags
---
arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index b763b76820ba..ef2c3b74415b 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -67,17 +67,19 @@
};
tflash_vdd: regulator-tflash_vdd {
- /*
- * signal name from schematics: TFLASH_VDD_EN
- */
compatible = "regulator-fixed";
regulator-name = "TFLASH_VDD";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
+ /*
+ * signal name from schematics: TFLASH_VDD_EN
+ */
gpio = <&gpio GPIOY_12 GPIO_ACTIVE_HIGH>;
enable-active-high;
+ /* U16 RT9179GB */
+ vin-supply = <&vddio_ao3v3>;
};
tf_io: gpio-regulator-tf_io {
@@ -95,6 +97,8 @@
states = <3300000 0>,
<1800000 1>;
+ /* U12/U13 RT9179GB */
+ vin-supply = <&vddio_ao3v3>;
};
vcc1v8: regulator-vcc1v8 {
@@ -102,6 +106,9 @@
regulator-name = "VCC1V8";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ /* U18 RT9179GB */
+ vin-supply = <&vddio_ao3v3>;
};
vcc3v3: regulator-vcc3v3 {
--
2.23.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCHv2-next 1/3] arm64: dts: meson: odroid-c2: Add missing regulator linked to P5V0 regulator
From: Anand Moon @ 2019-09-02 8:58 UTC (permalink / raw)
To: Rob Herring, Martin Blumenstingl, Jerome Brunet, Neil Armstrong,
Kevin Hilman
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic
In-Reply-To: <20190902085821.1263-1-linux.amoon@gmail.com>
As per schematics VDDIO_AO18, VDDIO_AO3V3/VDD3V3 DDR3_1V5/DDR_VDDC:
fixed regulator output which is supplied by P5V0.
Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Cc: Jerome Brunet <jbrunet@baylibre.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Anand Moon <linux.amoon@gmail.com>
---
Changes from previous.
- drop the rename and linking vcc3v3 regulator node.
- fix the typo spelling.
---
.../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 30 +++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
index 3e51f0835c8d..b763b76820ba 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts
@@ -111,6 +111,36 @@
regulator-max-microvolt = <3300000>;
};
+ vddio_ao1v8: regulator-vddio-ao1v8 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDDIO_AO1V8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-always-on;
+ /* U17 RT9179GB */
+ vin-supply = <&p5v0>;
+ };
+
+ vddio_ao3v3: regulator-vddio-ao3v3 {
+ compatible = "regulator-fixed";
+ regulator-name = "VDDIO_AO3V3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-always-on;
+ /* U11 MP2161GJ-C499 */
+ vin-supply = <&p5v0>;
+ };
+
+ vddc_ddr: regulator-vddc-ddr {
+ compatible = "regulator-fixed";
+ regulator-name = "DDR3_1V5";
+ regulator-min-microvolt = <1500000>;
+ regulator-max-microvolt = <1500000>;
+ regulator-always-on;
+ /* U15 MP2161GJ-C499 */
+ vin-supply = <&p5v0>;
+ };
+
emmc_pwrseq: emmc-pwrseq {
compatible = "mmc-pwrseq-emmc";
reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
--
2.23.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCHv2-next 0/3] Odroid c2 missing regulator linking
From: Anand Moon @ 2019-09-02 8:58 UTC (permalink / raw)
To: Rob Herring, Martin Blumenstingl, Jerome Brunet, Neil Armstrong,
Kevin Hilman
Cc: devicetree, linux-kernel, linux-arm-kernel, linux-amlogic
Below small changes help re-configure or fix missing inter linking
of regulator node.
Rebased on linux-next-20190830
Changes based top on my prevoius series.
[0] https://patchwork.kernel.org/cover/11125987/
Changes for prevoius changes.
Fix some typo.
Updated few patches as per Martin's suggetion.
Best Regards
-Anand
Anand Moon (3):
arm64: dts: meson: odroid-c2: Add missing regulator linked to P5V0
regulator
arm64: dts: meson: odroid-c2: Add missing regulator linked to
VDDIO_AO3V3 regulator
arm64: dts: meson: odroid-c2: Add missing regulator linked to HDMI
supply
.../boot/dts/amlogic/meson-gxbb-odroidc2.dts | 53 +++++++++++++++++--
1 file changed, 50 insertions(+), 3 deletions(-)
--
2.23.0
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH v3 5/9] i2c: at91: add support for digital filtering
From: Eugen.Hristev @ 2019-09-02 8:54 UTC (permalink / raw)
To: wsa
Cc: mark.rutland, devicetree, alexandre.belloni, linux-kernel,
pierre-yves.mordret, Ludovic.Desroches, robh+dt, linux-i2c, peda,
linux-arm-kernel
In-Reply-To: <20190831121751.GC1032@ninjato>
On 31.08.2019 15:17, Wolfram Sang wrote:
>
>>> + dev->enable_dig_filt = of_property_read_bool(pdev->dev.of_node,
>>> + "i2c-dig-filter");
>>> +
>>
>> What do you think of the idea to introduce 'flags' to struct i2c_timings
>> and parse the bindings in the core, too? Then you'd have sth like:
>>
>> if (t->flags & I2C_TIMINGS_ANALOG_FILTER)
>>
>> Would that be useful for you?
>
> Forgot to say, we can also implement this incrementally to make sure
> your patches land in 5.4 in case you are currently busy with sth else.
>
Hi Wolfram,
Your idea looks good but I would prefer to have it as a separate
enhancement patch, after this series gets in.
As things are now, this series/patches do just the filtering part. We
can then move all the optional 'flags' as another change.
So yes, we can do this incrementally.
Thanks !
Eugen
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Re: [PATCH] drm/stm: ltdc: add pinctrl for DPI encoder mode
From: Philippe CORNU @ 2019-09-02 8:47 UTC (permalink / raw)
To: Yannick FERTRE, Maxime Coquelin, Alexandre TORGUE, Rob Herring,
Mark Rutland, linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, Benjamin GAIGNARD, Fabrice GASNIER
In-Reply-To: <1564757262-6166-1-git-send-email-yannick.fertre@st.com>
Hi Yannick,
On 8/2/19 4:47 PM, Yannick Fertré wrote:
> The implementation of functions encoder_enable and encoder_disable
> make possible to control the pinctrl according to the encoder type.
> The pinctrl must be activated only if the encoder type is DPI.
> This helps to move the DPI-related pinctrl configuration from
> all the panel or bridge to the LTDC dt node.
>
> Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
> ---
> drivers/gpu/drm/stm/ltdc.c | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/drivers/gpu/drm/stm/ltdc.c b/drivers/gpu/drm/stm/ltdc.c
> index 3ab4fbf..1c4fde0 100644
> --- a/drivers/gpu/drm/stm/ltdc.c
> +++ b/drivers/gpu/drm/stm/ltdc.c
> @@ -15,6 +15,7 @@
> #include <linux/module.h>
> #include <linux/of_address.h>
> #include <linux/of_graph.h>
> +#include <linux/pinctrl/consumer.h>
> #include <linux/platform_device.h>
> #include <linux/pm_runtime.h>
> #include <linux/reset.h>
> @@ -1040,6 +1041,36 @@ static const struct drm_encoder_funcs ltdc_encoder_funcs = {
> .destroy = drm_encoder_cleanup,
> };
>
> +static void ltdc_encoder_disable(struct drm_encoder *encoder)
> +{
> + struct drm_device *ddev = encoder->dev;
> +
> + DRM_DEBUG_DRIVER("\n");
> +
> + /* Set to sleep state the pinctrl whatever type of encoder */
> + pinctrl_pm_select_sleep_state(ddev->dev);
> +}
> +
> +static void ltdc_encoder_enable(struct drm_encoder *encoder)
> +{
> + struct drm_device *ddev = encoder->dev;
> +
> + DRM_DEBUG_DRIVER("\n");
> +
> + /*
> + * Set to default state the pinctrl only with DPI type.
> + * Others types like DSI, don't need pinctrl due to
> + * internal bridge (the signals do not come out of the chipset).
> + */
> + if (encoder->encoder_type == DRM_MODE_ENCODER_DPI)
> + pinctrl_pm_select_default_state(ddev->dev);
> +}
> +
> +static const struct drm_encoder_helper_funcs ltdc_encoder_helper_funcs = {
> + .disable = ltdc_encoder_disable,
> + .enable = ltdc_encoder_enable,
> +};
> +
> static int ltdc_encoder_init(struct drm_device *ddev, struct drm_bridge *bridge)
> {
> struct drm_encoder *encoder;
> @@ -1055,6 +1086,8 @@ static int ltdc_encoder_init(struct drm_device *ddev, struct drm_bridge *bridge)
> drm_encoder_init(ddev, encoder, <dc_encoder_funcs,
> DRM_MODE_ENCODER_DPI, NULL);
>
> + drm_encoder_helper_add(encoder, <dc_encoder_helper_funcs);
> +
> ret = drm_bridge_attach(encoder, bridge, NULL);
> if (ret) {
> drm_encoder_cleanup(encoder);
> @@ -1280,6 +1313,8 @@ int ltdc_load(struct drm_device *ddev)
>
> clk_disable_unprepare(ldev->pixel_clk);
>
> + pinctrl_pm_select_sleep_state(ddev->dev);
> +
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
Thanks
Philippe :)
> pm_runtime_enable(ddev->dev);
>
> return 0;
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH] arm64: dts: imx8mn-ddr4-evk: Enable GPIO LED
From: Anson Huang @ 2019-09-02 20:45 UTC (permalink / raw)
To: robh+dt, mark.rutland, shawnguo, s.hauer, kernel, festevam,
devicetree, linux-arm-kernel, linux-kernel
Cc: Linux-imx
i.MX8MN DDR4 EVK board has a GPIO LED to indicate status,
add support for it.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
---
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
index b698061..9349bad 100644
--- a/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
@@ -15,6 +15,18 @@
stdout-path = &uart2;
};
+ leds {
+ compatible = "gpio-leds";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pinctrl_gpio_led>;
+
+ status {
+ label = "status";
+ gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
+ default-state = "on";
+ };
+ };
+
reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
pinctrl-names = "default";
@@ -54,6 +66,12 @@
>;
};
+ pinctrl_gpio_led: gpioledgrp {
+ fsl,pins = <
+ MX8MN_IOMUXC_NAND_READY_B_GPIO3_IO16 0x19
+ >;
+ };
+
pinctrl_i2c1: i2c1grp {
fsl,pins = <
MX8MN_IOMUXC_I2C1_SCL_I2C1_SCL 0x400001c3
--
2.7.4
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* Re: [PATCH] ARM: dts: stm32: move ltdc pinctrl on stm32mp157a dk1 board
From: Philippe CORNU @ 2019-09-02 8:45 UTC (permalink / raw)
To: Yannick FERTRE, Maxime Coquelin, Alexandre TORGUE, Rob Herring,
Mark Rutland, linux-stm32@st-md-mailman.stormreply.com,
linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, Benjamin GAIGNARD, Fabrice GASNIER
In-Reply-To: <1564754931-13861-1-git-send-email-yannick.fertre@st.com>
Hi Yannick,
On 8/2/19 4:08 PM, Yannick Fertré wrote:
> The ltdc pinctrl must be in the display controller node and
> not in the peripheral node (hdmi bridge).
>
> Signed-off-by: Yannick Fertré <yannick.fertre@st.com>
> ---
> arch/arm/boot/dts/stm32mp157a-dk1.dts | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm/boot/dts/stm32mp157a-dk1.dts b/arch/arm/boot/dts/stm32mp157a-dk1.dts
> index f3f0e37..1285cfc 100644
> --- a/arch/arm/boot/dts/stm32mp157a-dk1.dts
> +++ b/arch/arm/boot/dts/stm32mp157a-dk1.dts
> @@ -99,9 +99,6 @@
> reset-gpios = <&gpioa 10 GPIO_ACTIVE_LOW>;
> interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
> interrupt-parent = <&gpiog>;
> - pinctrl-names = "default", "sleep";
> - pinctrl-0 = <<dc_pins_a>;
> - pinctrl-1 = <<dc_pins_sleep_a>;
> status = "okay";
>
> ports {
> @@ -276,6 +273,9 @@
> };
>
> <dc {
> + pinctrl-names = "default", "sleep";
> + pinctrl-0 = <<dc_pins_a>;
> + pinctrl-1 = <<dc_pins_sleep_a>;
Reviewed-by: Philippe Cornu <philippe.cornu@st.com>
Thanks
Philippe :)
> status = "okay";
>
> port {
>
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* Dolgozói juttatások
From: Kapolcs Mátyás @ 2019-09-02 8:33 UTC (permalink / raw)
To: linux-arm-kernel
Üdvözlöm,
A cégét a konkurenciától megkülönböztető olyan különleges eszközök keresése során, amelyek a munkavállalók és a munkáltató számára egyaránt előnyösek, érdemes megfontolni a juttatásként adható kártyák alkalmazását.
A kártyán szereplő összeget az Ön alkalmazottai tetszőleges célra használhatják fel, és értékelni fogják munkáltatójuk elkötelezettségét.
Fizetésemelés helyett is kiváló alternatíva, hiszen alacsonyabb költségekkel jár, és a munkáltató szabályozhatja a kártyára töltendő összeget pl. a munkavállaló eredményei, szolgálati ideje, részvétele stb. alapján. A kártya bármikor lemondható.
Mikor alkalmas Önnek, hogy beszéljünk a kártyák alkalmazási lehetőségeiről az Önök cégénél?
Kapolcs Mátyás
Hungary Team Leader
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH v1 1/3] clk: mediatek: Register clock gate with device
From: Weiyi Lu @ 2019-09-02 8:35 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567413310-2589-1-git-send-email-weiyi.lu@mediatek.com>
Allow those clocks under a power domain to do the runtime pm operation
by forwarding the struct device pointer from clock provider.
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
drivers/clk/mediatek/clk-gate.c | 5 +++--
drivers/clk/mediatek/clk-gate.h | 3 ++-
drivers/clk/mediatek/clk-mtk.c | 16 +++++++++++++---
drivers/clk/mediatek/clk-mtk.h | 5 +++++
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/drivers/clk/mediatek/clk-gate.c b/drivers/clk/mediatek/clk-gate.c
index 803bf0a..a35cf0b 100644
--- a/drivers/clk/mediatek/clk-gate.c
+++ b/drivers/clk/mediatek/clk-gate.c
@@ -150,7 +150,8 @@ struct clk *mtk_clk_register_gate(
int sta_ofs,
u8 bit,
const struct clk_ops *ops,
- unsigned long flags)
+ unsigned long flags,
+ struct device *dev)
{
struct mtk_clk_gate *cg;
struct clk *clk;
@@ -174,7 +175,7 @@ struct clk *mtk_clk_register_gate(
cg->hw.init = &init;
- clk = clk_register(NULL, &cg->hw);
+ clk = clk_register(dev, &cg->hw);
if (IS_ERR(clk))
kfree(cg);
diff --git a/drivers/clk/mediatek/clk-gate.h b/drivers/clk/mediatek/clk-gate.h
index e05c736..3c3329e 100644
--- a/drivers/clk/mediatek/clk-gate.h
+++ b/drivers/clk/mediatek/clk-gate.h
@@ -40,7 +40,8 @@ struct clk *mtk_clk_register_gate(
int sta_ofs,
u8 bit,
const struct clk_ops *ops,
- unsigned long flags);
+ unsigned long flags,
+ struct device *dev);
#define GATE_MTK_FLAGS(_id, _name, _parent, _regs, _shift, \
_ops, _flags) { \
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index d28790c..cec1c8a 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -12,6 +12,7 @@
#include <linux/delay.h>
#include <linux/clkdev.h>
#include <linux/mfd/syscon.h>
+#include <linux/device.h>
#include "clk-mtk.h"
#include "clk-gate.h"
@@ -93,9 +94,10 @@ void mtk_clk_register_factors(const struct mtk_fixed_factor *clks,
}
}
-int mtk_clk_register_gates(struct device_node *node,
+int mtk_clk_register_gates_with_dev(struct device_node *node,
const struct mtk_gate *clks,
- int num, struct clk_onecell_data *clk_data)
+ int num, struct clk_onecell_data *clk_data,
+ struct device *dev)
{
int i;
struct clk *clk;
@@ -122,7 +124,7 @@ int mtk_clk_register_gates(struct device_node *node,
gate->regs->set_ofs,
gate->regs->clr_ofs,
gate->regs->sta_ofs,
- gate->shift, gate->ops, gate->flags);
+ gate->shift, gate->ops, gate->flags, dev);
if (IS_ERR(clk)) {
pr_err("Failed to register clk %s: %ld\n",
@@ -136,6 +138,14 @@ int mtk_clk_register_gates(struct device_node *node,
return 0;
}
+int mtk_clk_register_gates(struct device_node *node,
+ const struct mtk_gate *clks,
+ int num, struct clk_onecell_data *clk_data)
+{
+ return mtk_clk_register_gates_with_dev(node,
+ clks, num, clk_data, NULL);
+}
+
struct clk *mtk_clk_register_composite(const struct mtk_composite *mc,
void __iomem *base, spinlock_t *lock)
{
diff --git a/drivers/clk/mediatek/clk-mtk.h b/drivers/clk/mediatek/clk-mtk.h
index 733a11d..0f8ada7 100644
--- a/drivers/clk/mediatek/clk-mtk.h
+++ b/drivers/clk/mediatek/clk-mtk.h
@@ -169,6 +169,11 @@ int mtk_clk_register_gates(struct device_node *node,
const struct mtk_gate *clks, int num,
struct clk_onecell_data *clk_data);
+int mtk_clk_register_gates_with_dev(struct device_node *node,
+ const struct mtk_gate *clks,
+ int num, struct clk_onecell_data *clk_data,
+ struct device *dev);
+
struct mtk_clk_divider {
int id;
const char *name;
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v1 0/3] Runtime PM support for MT8183 mcucfg clock provider
From: Weiyi Lu @ 2019-09-02 8:35 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
This series is based on v5.3-rc1 and Mediatek MT8183 scpsys support v7[1].
Since Runtime PM is supported in Common Clock Framework which keeps
clock controller's power domain enabled to ensure clock status accessing correctly.
[1] https://patchwork.kernel.org/cover/11118371/
---
Weiyi Lu (3):
clk: mediatek: Register clock gate with device
clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
arm64: dts: Add power-domains properity to mfgcfg
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 1 +
drivers/clk/mediatek/clk-gate.c | 5 +++--
drivers/clk/mediatek/clk-gate.h | 3 ++-
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 7 +++++--
drivers/clk/mediatek/clk-mtk.c | 16 +++++++++++++---
drivers/clk/mediatek/clk-mtk.h | 5 +++++
6 files changed, 29 insertions(+), 8 deletions(-)
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply
* [PATCH v1 2/3] clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
From: Weiyi Lu @ 2019-09-02 8:35 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567413310-2589-1-git-send-email-weiyi.lu@mediatek.com>
Enable the runtime PM support and forward the struct device pointer for
registration of MT8183 mcucfg clocks.
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
drivers/clk/mediatek/clk-mt8183-mfgcfg.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
index 99a6b02..37b4162 100644
--- a/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
+++ b/drivers/clk/mediatek/clk-mt8183-mfgcfg.c
@@ -5,6 +5,7 @@
#include <linux/clk-provider.h>
#include <linux/platform_device.h>
+#include <linux/pm_runtime.h>
#include "clk-mtk.h"
#include "clk-gate.h"
@@ -30,10 +31,12 @@ static int clk_mt8183_mfg_probe(struct platform_device *pdev)
struct clk_onecell_data *clk_data;
struct device_node *node = pdev->dev.of_node;
+ pm_runtime_enable(&pdev->dev);
+
clk_data = mtk_alloc_clk_data(CLK_MFG_NR_CLK);
- mtk_clk_register_gates(node, mfg_clks, ARRAY_SIZE(mfg_clks),
- clk_data);
+ mtk_clk_register_gates_with_dev(node, mfg_clks, ARRAY_SIZE(mfg_clks),
+ clk_data, &pdev->dev);
return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data);
}
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
* [PATCH v1 3/3] arm64: dts: Add power-domains properity to mfgcfg
From: Weiyi Lu @ 2019-09-02 8:35 UTC (permalink / raw)
To: Nicolas Boichat, Matthias Brugger, Stephen Boyd, Rob Herring
Cc: James Liao, Weiyi Lu, srv_heupstream, linux-kernel, Fan Chen,
linux-mediatek, CK Hu, linux-clk, linux-arm-kernel
In-Reply-To: <1567413310-2589-1-git-send-email-weiyi.lu@mediatek.com>
mfgcfg clock is under MFG_ASYNC power domain
Signed-off-by: Weiyi Lu <weiyi.lu@mediatek.com>
---
arch/arm64/boot/dts/mediatek/mt8183.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm64/boot/dts/mediatek/mt8183.dtsi b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
index c2749c4..3f948e9 100644
--- a/arch/arm64/boot/dts/mediatek/mt8183.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8183.dtsi
@@ -388,6 +388,7 @@
compatible = "mediatek,mt8183-mfgcfg", "syscon";
reg = <0 0x13000000 0 0x1000>;
#clock-cells = <1>;
+ power-domains = <&scpsys MT8183_POWER_DOMAIN_MFG_ASYNC>;
};
mmsys: syscon@14000000 {
--
1.8.1.1.dirty
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox