Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: samsung: make audio interface/controller explicitly
From: Krzysztof Kozlowski @ 2016-09-18 14:42 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474207751-9804-2-git-send-email-ayaka@soulik.info>

On Sun, Sep 18, 2016 at 10:09:11PM +0800, Randy Li wrote:
> It is simple sound card time, we could assign different codec
> to a interface without making a specific driver for it.

The description does not convince me and I do not see an example using
this. Could you provide one?

Best regards,
Krzysztof


> 
> Signed-off-by: Randy Li <ayaka@soulik.info>
> ---
>  sound/soc/samsung/Kconfig | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
> index 7b722b0..b7b3a38 100644
> --- a/sound/soc/samsung/Kconfig
> +++ b/sound/soc/samsung/Kconfig
> @@ -18,18 +18,18 @@ config SND_S3C2412_SOC_I2S
>  	select SND_S3C_I2SV2_SOC
>  
>  config SND_SAMSUNG_PCM
> -	tristate
> +	tristate "Samsung PCM interface support"
>  
>  config SND_SAMSUNG_AC97
> -	tristate
> +	tristate "Samsung AC97 controller support"
>  	select SND_SOC_AC97_BUS
>  
>  config SND_SAMSUNG_SPDIF
> -	tristate
> +	tristate "Samsung SPDIF transmitter support"
>  	select SND_SOC_SPDIF
>  
>  config SND_SAMSUNG_I2S
> -	tristate
> +	tristate "Samsung I2S interface support"
>  
>  config SND_SOC_SAMSUNG_NEO1973_WM8753
>  	tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)"
> -- 
> 2.7.4
> 

^ permalink raw reply

* [PATCH 1/2] net: ethernet: broadcom: bcm63xx: use phydev from struct net_device
From: Philippe Reynes @ 2016-09-18 14:59 UTC (permalink / raw)
  To: linux-arm-kernel

The private structure contain a pointer to phydev, but the structure
net_device already contain such pointer. So we can remove the pointer
phydev in the private structure, and update the driver to use the
one contained in struct net_device.

Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
 drivers/net/ethernet/broadcom/bcm63xx_enet.c |   31 +++++++++++--------------
 drivers/net/ethernet/broadcom/bcm63xx_enet.h |    1 -
 2 files changed, 14 insertions(+), 18 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index 6c8bc5f..082f3f0 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -791,7 +791,7 @@ static void bcm_enet_adjust_phy_link(struct net_device *dev)
 	int status_changed;
 
 	priv = netdev_priv(dev);
-	phydev = priv->phydev;
+	phydev = dev->phydev;
 	status_changed = 0;
 
 	if (priv->old_link != phydev->link) {
@@ -913,7 +913,6 @@ static int bcm_enet_open(struct net_device *dev)
 		priv->old_link = 0;
 		priv->old_duplex = -1;
 		priv->old_pause = -1;
-		priv->phydev = phydev;
 	}
 
 	/* mask all interrupts and request them */
@@ -1085,7 +1084,7 @@ static int bcm_enet_open(struct net_device *dev)
 			 ENETDMAC_IRMASK, priv->tx_chan);
 
 	if (priv->has_phy)
-		phy_start(priv->phydev);
+		phy_start(phydev);
 	else
 		bcm_enet_adjust_link(dev);
 
@@ -1127,7 +1126,7 @@ out_freeirq:
 	free_irq(dev->irq, dev);
 
 out_phy_disconnect:
-	phy_disconnect(priv->phydev);
+	phy_disconnect(phydev);
 
 	return ret;
 }
@@ -1190,7 +1189,7 @@ static int bcm_enet_stop(struct net_device *dev)
 	netif_stop_queue(dev);
 	napi_disable(&priv->napi);
 	if (priv->has_phy)
-		phy_stop(priv->phydev);
+		phy_stop(dev->phydev);
 	del_timer_sync(&priv->rx_timeout);
 
 	/* mask all interrupts */
@@ -1234,10 +1233,8 @@ static int bcm_enet_stop(struct net_device *dev)
 	free_irq(dev->irq, dev);
 
 	/* release phy */
-	if (priv->has_phy) {
-		phy_disconnect(priv->phydev);
-		priv->phydev = NULL;
-	}
+	if (priv->has_phy)
+		phy_disconnect(dev->phydev);
 
 	return 0;
 }
@@ -1437,9 +1434,9 @@ static int bcm_enet_nway_reset(struct net_device *dev)
 
 	priv = netdev_priv(dev);
 	if (priv->has_phy) {
-		if (!priv->phydev)
+		if (!dev->phydev)
 			return -ENODEV;
-		return genphy_restart_aneg(priv->phydev);
+		return genphy_restart_aneg(dev->phydev);
 	}
 
 	return -EOPNOTSUPP;
@@ -1456,9 +1453,9 @@ static int bcm_enet_get_settings(struct net_device *dev,
 	cmd->maxtxpkt = 0;
 
 	if (priv->has_phy) {
-		if (!priv->phydev)
+		if (!dev->phydev)
 			return -ENODEV;
-		return phy_ethtool_gset(priv->phydev, cmd);
+		return phy_ethtool_gset(dev->phydev, cmd);
 	} else {
 		cmd->autoneg = 0;
 		ethtool_cmd_speed_set(cmd, ((priv->force_speed_100)
@@ -1483,9 +1480,9 @@ static int bcm_enet_set_settings(struct net_device *dev,
 
 	priv = netdev_priv(dev);
 	if (priv->has_phy) {
-		if (!priv->phydev)
+		if (!dev->phydev)
 			return -ENODEV;
-		return phy_ethtool_sset(priv->phydev, cmd);
+		return phy_ethtool_sset(dev->phydev, cmd);
 	} else {
 
 		if (cmd->autoneg ||
@@ -1604,9 +1601,9 @@ static int bcm_enet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
 
 	priv = netdev_priv(dev);
 	if (priv->has_phy) {
-		if (!priv->phydev)
+		if (!dev->phydev)
 			return -ENODEV;
-		return phy_mii_ioctl(priv->phydev, rq, cmd);
+		return phy_mii_ioctl(dev->phydev, rq, cmd);
 	} else {
 		struct mii_if_info mii;
 
diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.h b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
index f55af43..0a1b7b2 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.h
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.h
@@ -290,7 +290,6 @@ struct bcm_enet_priv {
 
 	/* used when a phy is connected (phylib used) */
 	struct mii_bus *mii_bus;
-	struct phy_device *phydev;
 	int old_link;
 	int old_duplex;
 	int old_pause;
-- 
1.7.4.4

^ permalink raw reply related

* [PATCH 2/2] net: ethernet: broadcom: bcm63xx: use new api ethtool_{get|set}_link_ksettings
From: Philippe Reynes @ 2016-09-18 14:59 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474210747-19627-1-git-send-email-tremyfr@gmail.com>

The ethtool api {get|set}_settings is deprecated.
We move this driver to new api {get|set}_link_ksettings.

Signed-off-by: Philippe Reynes <tremyfr@gmail.com>
---
 drivers/net/ethernet/broadcom/bcm63xx_enet.c |   52 ++++++++++++++------------
 1 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bcm63xx_enet.c b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
index 082f3f0..ae364c7 100644
--- a/drivers/net/ethernet/broadcom/bcm63xx_enet.c
+++ b/drivers/net/ethernet/broadcom/bcm63xx_enet.c
@@ -1442,39 +1442,40 @@ static int bcm_enet_nway_reset(struct net_device *dev)
 	return -EOPNOTSUPP;
 }
 
-static int bcm_enet_get_settings(struct net_device *dev,
-				 struct ethtool_cmd *cmd)
+static int bcm_enet_get_link_ksettings(struct net_device *dev,
+				       struct ethtool_link_ksettings *cmd)
 {
 	struct bcm_enet_priv *priv;
+	u32 supported, advertising;
 
 	priv = netdev_priv(dev);
 
-	cmd->maxrxpkt = 0;
-	cmd->maxtxpkt = 0;
-
 	if (priv->has_phy) {
 		if (!dev->phydev)
 			return -ENODEV;
-		return phy_ethtool_gset(dev->phydev, cmd);
+		return phy_ethtool_ksettings_get(dev->phydev, cmd);
 	} else {
-		cmd->autoneg = 0;
-		ethtool_cmd_speed_set(cmd, ((priv->force_speed_100)
-					    ? SPEED_100 : SPEED_10));
-		cmd->duplex = (priv->force_duplex_full) ?
+		cmd->base.autoneg = 0;
+		cmd->base.speed = (priv->force_speed_100) ?
+			SPEED_100 : SPEED_10;
+		cmd->base.duplex = (priv->force_duplex_full) ?
 			DUPLEX_FULL : DUPLEX_HALF;
-		cmd->supported = ADVERTISED_10baseT_Half  |
+		supported = ADVERTISED_10baseT_Half |
 			ADVERTISED_10baseT_Full |
 			ADVERTISED_100baseT_Half |
 			ADVERTISED_100baseT_Full;
-		cmd->advertising = 0;
-		cmd->port = PORT_MII;
-		cmd->transceiver = XCVR_EXTERNAL;
+		advertising = 0;
+		ethtool_convert_legacy_u32_to_link_mode(
+			cmd->link_modes.supported, supported);
+		ethtool_convert_legacy_u32_to_link_mode(
+			cmd->link_modes.advertising, advertising);
+		cmd->base.port = PORT_MII;
 	}
 	return 0;
 }
 
-static int bcm_enet_set_settings(struct net_device *dev,
-				 struct ethtool_cmd *cmd)
+static int bcm_enet_set_link_ksettings(struct net_device *dev,
+				       const struct ethtool_link_ksettings *cmd)
 {
 	struct bcm_enet_priv *priv;
 
@@ -1482,16 +1483,19 @@ static int bcm_enet_set_settings(struct net_device *dev,
 	if (priv->has_phy) {
 		if (!dev->phydev)
 			return -ENODEV;
-		return phy_ethtool_sset(dev->phydev, cmd);
+		return phy_ethtool_ksettings_set(dev->phydev, cmd);
 	} else {
 
-		if (cmd->autoneg ||
-		    (cmd->speed != SPEED_100 && cmd->speed != SPEED_10) ||
-		    cmd->port != PORT_MII)
+		if (cmd->base.autoneg ||
+		    (cmd->base.speed != SPEED_100 &&
+		     cmd->base.speed != SPEED_10) ||
+		    cmd->base.port != PORT_MII)
 			return -EINVAL;
 
-		priv->force_speed_100 = (cmd->speed == SPEED_100) ? 1 : 0;
-		priv->force_duplex_full = (cmd->duplex == DUPLEX_FULL) ? 1 : 0;
+		priv->force_speed_100 =
+			(cmd->base.speed == SPEED_100) ? 1 : 0;
+		priv->force_duplex_full =
+			(cmd->base.duplex == DUPLEX_FULL) ? 1 : 0;
 
 		if (netif_running(dev))
 			bcm_enet_adjust_link(dev);
@@ -1585,14 +1589,14 @@ static const struct ethtool_ops bcm_enet_ethtool_ops = {
 	.get_sset_count		= bcm_enet_get_sset_count,
 	.get_ethtool_stats      = bcm_enet_get_ethtool_stats,
 	.nway_reset		= bcm_enet_nway_reset,
-	.get_settings		= bcm_enet_get_settings,
-	.set_settings		= bcm_enet_set_settings,
 	.get_drvinfo		= bcm_enet_get_drvinfo,
 	.get_link		= ethtool_op_get_link,
 	.get_ringparam		= bcm_enet_get_ringparam,
 	.set_ringparam		= bcm_enet_set_ringparam,
 	.get_pauseparam		= bcm_enet_get_pauseparam,
 	.set_pauseparam		= bcm_enet_set_pauseparam,
+	.get_link_ksettings	= bcm_enet_get_link_ksettings,
+	.set_link_ksettings	= bcm_enet_set_link_ksettings,
 };
 
 static int bcm_enet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
-- 
1.7.4.4

^ permalink raw reply related

* [PATCH] ASoC: samsung: make audio interface/controller explicitly
From: ayaka @ 2016-09-18 15:12 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20160918144247.GA11009@kozik-book>



On 09/18/2016 10:42 PM, Krzysztof Kozlowski wrote:
> On Sun, Sep 18, 2016 at 10:09:11PM +0800, Randy Li wrote:
>> It is simple sound card time, we could assign different codec
>> to a interface without making a specific driver for it.
> The description does not convince me and I do not see an example using
> this. Could you provide one?
Sorry, the board TOPEET iTop 4412 for exynos 4412 I posted supported 
codec with I2S interface using the simple sound card. Anyway, it is no 
harm to make them explicitly right? Or I have to enabled those codec 
support for SMDK, which is not needed for the other board.
>
> Best regards,
> Krzysztof
>
>
>> Signed-off-by: Randy Li <ayaka@soulik.info>
>> ---
>>   sound/soc/samsung/Kconfig | 8 ++++----
>>   1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
>> index 7b722b0..b7b3a38 100644
>> --- a/sound/soc/samsung/Kconfig
>> +++ b/sound/soc/samsung/Kconfig
>> @@ -18,18 +18,18 @@ config SND_S3C2412_SOC_I2S
>>   	select SND_S3C_I2SV2_SOC
>>   
>>   config SND_SAMSUNG_PCM
>> -	tristate
>> +	tristate "Samsung PCM interface support"
>>   
>>   config SND_SAMSUNG_AC97
>> -	tristate
>> +	tristate "Samsung AC97 controller support"
>>   	select SND_SOC_AC97_BUS
>>   
>>   config SND_SAMSUNG_SPDIF
>> -	tristate
>> +	tristate "Samsung SPDIF transmitter support"
>>   	select SND_SOC_SPDIF
>>   
>>   config SND_SAMSUNG_I2S
>> -	tristate
>> +	tristate "Samsung I2S interface support"
>>   
>>   config SND_SOC_SAMSUNG_NEO1973_WM8753
>>   	tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)"
>> -- 
>> 2.7.4
>>

^ permalink raw reply

* [PATCH 06/10] ARM: dts: exynos: Fix invalid GIC interrupt flags in exynos5
From: Javier Martinez Canillas @ 2016-09-18 15:17 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474054971-16831-7-git-send-email-krzk@kernel.org>

Hello Krzysztof,

On 09/16/2016 03:42 PM, Krzysztof Kozlowski wrote:
> Interrupt of type IRQ_TYPE_NONE is not allowed for GIC interrupts and
> generates an error:
> 	genirq: Setting trigger mode 0 for irq 16 failed (gic_set_type+0x0/0x68)
> 
> The GIC requires shared interrupts to be edge rising or level high.
> Platform declares support for both.  Choose level high everywhere.
> 
> Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Reported-by: Alban Browaeys <alban.browaeys@gmail.com>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---

I tested this patch on an Exynos5800 Peach Pi Chromebook and
an Exynos5422 Odroid XU4 board and no regressions were found.

Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply

* [PATCH 08/10] ARM: dts: exynos: Fix invalid GIC interrupt flags in exynos5410/exynos542x
From: Javier Martinez Canillas @ 2016-09-18 15:18 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474054971-16831-9-git-send-email-krzk@kernel.org>

Hello Krzysztof,

On 09/16/2016 03:42 PM, Krzysztof Kozlowski wrote:
> Interrupt of type IRQ_TYPE_NONE is not allowed for GIC interrupts and
> generates an error:
> 	genirq: Setting trigger mode 0 for irq 16 failed (gic_set_type+0x0/0x68)
> 
> The GIC requires shared interrupts to be edge rising or level high.
> Platform declares support for both.  Choose level high everywhere.
> 
> Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
> Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
> Reported-by: Alban Browaeys <alban.browaeys@gmail.com>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---

Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply

* [PATCH 4/7] ARM: dts: exynos: Use human-friendly symbols for interrupt properties in exynos5
From: Javier Martinez Canillas @ 2016-09-18 15:20 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474062122-22720-5-git-send-email-krzk@kernel.org>

Hello Krzysztof,

On 09/16/2016 05:41 PM, Krzysztof Kozlowski wrote:
> Replace hard-coded values of type of GIC interrupt and its flags with
> respective macros from header to increase code readability
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> ---

On an Exynos5800 Peach Pi Chromebook and an Exynos5422 Odroid XU4 board:

Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>

Best regards,
-- 
Javier Martinez Canillas
Open Source Group
Samsung Research America

^ permalink raw reply

* [PATCH V5 2/6] thermal: bcm2835: add thermal driver for bcm2835 soc
From: kernel at martin.sperl.org @ 2016-09-18 16:05 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1999564031.209213.6508fbdb-00c5-486b-a34e-3d60ae68fe88.open-xchange@email.1und1.de>

Hi Stefan!

> On 18.09.2016, at 13:31, Stefan Wahren <stefan.wahren@i2se.com> wrote:
> 
>> +	rate = clk_get_rate(data->clk);
>> +	if ((rate < 1920000) || (rate > 5000000)) {
>> +		dev_warn(&pdev->dev,
>> +			 "Clock %pCn is running at %pCr Hz, which is outside the recommended range
>> of 1.9 to 5.0 MHz\n",
>> +			 data->clk, data->clk);
> 
> Instead of printing the clock name twice your intension would be to print the
> actual clock rate?
%pCn (and %pC) prints the clock name
%pCr prints the clock rate - I guess I could use ?%lu? and rate instead

So I do not see an issue here - I will reword the text to shorten it.

Everything else I will fix as mentioned.

Martin

^ permalink raw reply

* [GIT PULL 0/3] ARM: exynos: Second round of stuff for v4.9
From: Krzysztof Kozlowski @ 2016-09-18 16:39 UTC (permalink / raw)
  To: linux-arm-kernel

From: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Hi,

I know it is late but it is not a big pull request. Mostly DT cleanup.
One change touching clocksource was acked by Daniel Lezcano (he
mentioned it can go through arm-soc).

Some stuff moved into topic branch. No conflicts expected, no specific
order of pulling.

Best regards,
Krzysztof

^ permalink raw reply

* [GIT PULL 1/3] ARM: soc: exynos: Drivers for v4.9
From: Krzysztof Kozlowski @ 2016-09-18 16:39 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474216788-17282-1-git-send-email-krzk@kernel.org>

From: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Hi,

Drivers related changes.


Best regards,
Krzysztof


The following changes since commit 29b4817d4018df78086157ea3a55c1d9424a7cfc:

  Linux 4.8-rc1 (2016-08-07 18:18:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git tags/samsung-drivers-4.9-2

for you to fetch changes up to 8bc6bf178b671eb9b9fa806804f3990cb4c332aa:

  dt-bindings: EXYNOS: Add Exynos5433 PMU compatible (2016-09-16 13:21:04 +0200)

----------------------------------------------------------------
Samsung drivers/soc update for v4.9:
1. Allow compile testing of exynos-mct clocksource driver on ARM64.
2. Document Exynos5433 PMU compatible (already used by clkout driver and more
   will be coming soon).

----------------------------------------------------------------
Chanwoo Choi (2):
      clocksource: exynos_mct: Add the support for ARM64
      dt-bindings: EXYNOS: Add Exynos5433 PMU compatible

 Documentation/devicetree/bindings/arm/samsung/pmu.txt | 1 +
 drivers/clocksource/Kconfig                           | 2 +-
 drivers/clocksource/exynos_mct.c                      | 4 ++++
 3 files changed, 6 insertions(+), 1 deletion(-)

^ permalink raw reply

* [GIT PULL 2/3] ARM: dts: exynos: DT for v4.9, second round
From: Krzysztof Kozlowski @ 2016-09-18 16:39 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474216788-17282-1-git-send-email-krzk@kernel.org>

From: Krzysztof Kozlowski <k.kozlowski@samsung.com>


The following changes since commit 05b01dd936b46f2c3cfbb10bc89c0ec79c745e5d:

  ARM: dts: exynos: Use 'hpd-gpios' instead of 'hpd-gpio' (2016-08-24 21:09:24 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git tags/samsung-dt-4.9-2

for you to fetch changes up to 5271d002709e8ca27232ab031f35e0df1d0fe4ed:

  ARM: dts: s5p: Add missing unit name to memory nodes for S5PV210 boards (2016-09-16 09:17:00 +0200)

----------------------------------------------------------------
Samsung DeviceTree update for v4.9, second round:
1. Enable HDMI on Arndale Octa board.
2. Update list of clocks for FIMC-IS block on Exynos4x12.
3. Remove skeleton.dtsi thus fixing DT compiler warning:
	"Node /memory has a reg or ranges property, but no unit name"
   This is a tree-wide effort by various people. Javier Martinez Canillas did
   it for Exynos and S5PV210.

----------------------------------------------------------------
Javier Martinez Canillas (9):
      ARM: dts: exynos: Add missing memory node for Exynos5440 boards
      ARM: dts: exynos: Remove skeleton.dtsi usage for Exynos3
      ARM: dts: exynos: Remove skeleton.dtsi usage for Exynos4
      ARM: dts: exynos: Remove skeleton.dtsi usage for Exynos5
      ARM: dts: exynos: Add missing unit name to memory nodes in Exynos3 DTS
      ARM: dts: exynos: Add missing unit name to memory nodes in Exynos4 DTS
      ARM: dts: exynos: Add missing unit name to memory nodes in Exynos5 DTS
      ARM: dts: s5p: Remove skeleton.dtsi inclusion for S5PV210
      ARM: dts: s5p: Add missing unit name to memory nodes for S5PV210 boards

Marek Szyprowski (1):
      ARM: dts: exynos: Add all required FIMC-IS clocks to exynos4x12

Milo Kim (1):
      ARM: dts: exynos: Enable HDMI for Arndale Octa board

 arch/arm/boot/dts/exynos3250-artik5.dtsi           |  3 ++-
 arch/arm/boot/dts/exynos3250-monk.dts              |  3 ++-
 arch/arm/boot/dts/exynos3250-rinato.dts            |  3 ++-
 arch/arm/boot/dts/exynos3250.dtsi                  |  3 ++-
 arch/arm/boot/dts/exynos4.dtsi                     |  3 ++-
 arch/arm/boot/dts/exynos4210-origen.dts            |  3 ++-
 arch/arm/boot/dts/exynos4210-smdkv310.dts          |  3 ++-
 arch/arm/boot/dts/exynos4210-trats.dts             |  3 ++-
 arch/arm/boot/dts/exynos4210-universal_c210.dts    |  3 ++-
 arch/arm/boot/dts/exynos4412-odroidu3.dts          |  3 ++-
 arch/arm/boot/dts/exynos4412-odroidx.dts           |  3 ++-
 arch/arm/boot/dts/exynos4412-odroidx2.dts          |  3 ++-
 arch/arm/boot/dts/exynos4412-origen.dts            |  3 ++-
 arch/arm/boot/dts/exynos4412-smdk4412.dts          |  3 ++-
 arch/arm/boot/dts/exynos4412-tiny4412.dts          |  3 ++-
 arch/arm/boot/dts/exynos4412-trats2.dts            |  3 ++-
 arch/arm/boot/dts/exynos4415.dtsi                  |  3 ++-
 arch/arm/boot/dts/exynos4x12.dtsi                  |  5 ++++-
 arch/arm/boot/dts/exynos5.dtsi                     |  3 ++-
 arch/arm/boot/dts/exynos5250-arndale.dts           |  3 ++-
 arch/arm/boot/dts/exynos5250-smdk5250.dts          |  3 ++-
 arch/arm/boot/dts/exynos5250-snow-common.dtsi      |  3 ++-
 arch/arm/boot/dts/exynos5250-spring.dts            |  3 ++-
 arch/arm/boot/dts/exynos5260-xyref5260.dts         |  3 ++-
 arch/arm/boot/dts/exynos5260.dtsi                  |  4 ++--
 arch/arm/boot/dts/exynos5410-odroidxu.dts          |  3 ++-
 arch/arm/boot/dts/exynos5410-smdk5410.dts          |  3 ++-
 arch/arm/boot/dts/exynos5420-arndale-octa.dts      | 16 +++++++++++++++-
 arch/arm/boot/dts/exynos5420-peach-pit.dts         |  3 ++-
 arch/arm/boot/dts/exynos5420-smdk5420.dts          |  3 ++-
 arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  3 ++-
 arch/arm/boot/dts/exynos5440-sd5v1.dts             |  6 ++++++
 arch/arm/boot/dts/exynos5440-ssdk5440.dts          |  6 ++++++
 arch/arm/boot/dts/exynos5440.dtsi                  |  3 ++-
 arch/arm/boot/dts/exynos54xx.dtsi                  |  1 -
 arch/arm/boot/dts/exynos5800-peach-pi.dts          |  3 ++-
 arch/arm/boot/dts/s5pv210-aquila.dts               |  2 +-
 arch/arm/boot/dts/s5pv210-goni.dts                 |  2 +-
 arch/arm/boot/dts/s5pv210-smdkc110.dts             |  2 +-
 arch/arm/boot/dts/s5pv210-smdkv210.dts             |  2 +-
 arch/arm/boot/dts/s5pv210-torbreck.dts             |  2 +-
 arch/arm/boot/dts/s5pv210.dtsi                     |  4 +++-
 42 files changed, 101 insertions(+), 41 deletions(-)

^ permalink raw reply

* [GIT PULL 3/3] ARM: dts: exynos: pinctrl cleanup for v4.9
From: Krzysztof Kozlowski @ 2016-09-18 16:39 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474216788-17282-1-git-send-email-krzk@kernel.org>

From: Krzysztof Kozlowski <k.kozlowski@samsung.com>

Hi,

A separate topic branch with DT cleanup.


Best regards,
Krzysztof


The following changes since commit 29b4817d4018df78086157ea3a55c1d9424a7cfc:

  Linux 4.8-rc1 (2016-08-07 18:18:00 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux.git tags/samsung-dt-pinctrl-4.9

for you to fetch changes up to d13799237dee34e1b9cd377f0ced7bee24ac810f:

  ARM: dts: s3c64xx: Use macros for pinctrl configuration (2016-09-16 13:32:27 +0200)

----------------------------------------------------------------
Topic branch for Samsung DeviceTree cleanup for 4.9.

Replace in DT sources hard-coded values for pinctrl configuration like pull
up/down, drive strength and function. This makes the DTS easier to read,
especially that some drive strengths values are quite non-obvious.

----------------------------------------------------------------
Krzysztof Kozlowski (17):
      pinctrl: dt-bindings: samsung: Add header with values used for configuration
      pinctrl: dt-bindings: samsung: Update documentation with new macros
      ARM: dts: exynos: Use common macros for pinctrl configuration
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos3250
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos4210
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos4x12
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos4415
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos5250
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos5260
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos5410
      ARM: dts: exynos: Use macros for pinctrl configuration on exynos542x/exynos5800
      ARM: dts: exynos: Fix mismatched value for SD4 pull up/down configuration on exynos4210
      ARM: dts: exynos: Fix mismatched values of SD drive strengh configuration on exynos4415
      ARM: dts: s3c64xx: Use common macros for pinctrl configuration
      ARM: dts: s5pv210: Use macros for pinctrl configuration
      ARM: dts: s3c2416: Use macros for pinctrl configuration
      ARM: dts: s3c64xx: Use macros for pinctrl configuration

 .../bindings/pinctrl/samsung-pinctrl.txt           |  44 +-
 MAINTAINERS                                        |   2 +
 arch/arm/boot/dts/exynos3250-pinctrl.dtsi          | 346 +++++++-------
 arch/arm/boot/dts/exynos4210-pinctrl.dtsi          | 458 +++++++++---------
 arch/arm/boot/dts/exynos4210-smdkv310.dts          |  12 +-
 arch/arm/boot/dts/exynos4210-universal_c210.dts    |   8 +-
 arch/arm/boot/dts/exynos4412-odroid-common.dtsi    |  14 +-
 arch/arm/boot/dts/exynos4412-odroidx.dts           |   2 +-
 arch/arm/boot/dts/exynos4412-origen.dts            |  12 +-
 arch/arm/boot/dts/exynos4412-smdk4412.dts          |  12 +-
 arch/arm/boot/dts/exynos4415-pinctrl.dtsi          | 296 ++++++------
 arch/arm/boot/dts/exynos4x12-pinctrl.dtsi          | 525 ++++++++++-----------
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi          | 404 ++++++++--------
 arch/arm/boot/dts/exynos5250-smdk5250.dts          |   6 +-
 arch/arm/boot/dts/exynos5250-snow-common.dtsi      |  76 +--
 arch/arm/boot/dts/exynos5250-snow-rev5.dts         |   6 +-
 arch/arm/boot/dts/exynos5250-snow.dts              |   6 +-
 arch/arm/boot/dts/exynos5250-spring.dts            |  72 +--
 arch/arm/boot/dts/exynos5260-pinctrl.dtsi          | 280 ++++++-----
 arch/arm/boot/dts/exynos5260-xyref5260.dts         |   6 +-
 arch/arm/boot/dts/exynos5410-odroidxu.dts          |  30 +-
 arch/arm/boot/dts/exynos5410-pinctrl.dtsi          | 182 +++----
 arch/arm/boot/dts/exynos5410-smdk5410.dts          |  10 +-
 arch/arm/boot/dts/exynos5420-arndale-octa.dts      |   6 +-
 arch/arm/boot/dts/exynos5420-peach-pit.dts         | 126 ++---
 arch/arm/boot/dts/exynos5420-pinctrl.dtsi          | 356 +++++++-------
 arch/arm/boot/dts/exynos5420-smdk5420.dts          |  18 +-
 arch/arm/boot/dts/exynos5422-odroidxu3-common.dtsi |  18 +-
 arch/arm/boot/dts/exynos5800-peach-pi.dts          | 126 ++---
 arch/arm/boot/dts/s3c2416-pinctrl.dtsi             |  38 +-
 arch/arm/boot/dts/s3c6410-mini6410.dts             |   4 +-
 arch/arm/boot/dts/s3c64xx-pinctrl.dtsi             | 356 +++++++-------
 arch/arm/boot/dts/s5pv210-aquila.dts               |   4 +-
 arch/arm/boot/dts/s5pv210-pinctrl.dtsi             | 476 +++++++++----------
 include/dt-bindings/pinctrl/samsung.h              |  57 +++
 35 files changed, 2223 insertions(+), 2171 deletions(-)
 create mode 100644 include/dt-bindings/pinctrl/samsung.h

^ permalink raw reply

* [PATCH 1/2] phy-sun4i-usb: Add sun4i_usb_phy_force_session_end() function
From: Hans de Goede @ 2016-09-18 16:50 UTC (permalink / raw)
  To: linux-arm-kernel

The sunxi musb has a bug where sometimes it will generate a babble
error on device disconnect instead of a disconnect irq. When this
happens the musb-controller switches from host mode to device mode
(it clears MUSB_DEVCTL_SESSION and sets MUSB_DEVCTL_BDEVICE) and
gets stuck in this state.

Clearing this requires reporting Vbus low for 200 or more ms, but
on some devices Vbus is simply always high (host-only mode, no Vbus
control). The phy-sun4i-usb code already has code to force a session
end for devices without Vbus control.

This commit adds a sun4i_usb_phy_force_session_end() function exporting
this functionality to the sunxi-musb glue, so that it can force a session
end to fixup the stuck state after a babble error.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/phy/phy-sun4i-usb.c       | 11 +++++++++++
 include/linux/phy/phy-sun4i-usb.h |  7 +++++++
 2 files changed, 18 insertions(+)

diff --git a/drivers/phy/phy-sun4i-usb.c b/drivers/phy/phy-sun4i-usb.c
index 43c0d98..06f4e11a 100644
--- a/drivers/phy/phy-sun4i-usb.c
+++ b/drivers/phy/phy-sun4i-usb.c
@@ -470,6 +470,17 @@ void sun4i_usb_phy_set_squelch_detect(struct phy *_phy, bool enabled)
 }
 EXPORT_SYMBOL_GPL(sun4i_usb_phy_set_squelch_detect);
 
+void sun4i_usb_phy_force_session_end(struct phy *_phy)
+{
+	struct sun4i_usb_phy *phy = phy_get_drvdata(_phy);
+	struct sun4i_usb_phy_data *data = to_sun4i_usb_phy_data(phy);
+
+	data->id_det = -1;
+	data->force_session_end = true;
+	queue_delayed_work(system_wq, &data->detect, 0);
+}
+EXPORT_SYMBOL_GPL(sun4i_usb_phy_force_session_end);
+
 static const struct phy_ops sun4i_usb_phy_ops = {
 	.init		= sun4i_usb_phy_init,
 	.exit		= sun4i_usb_phy_exit,
diff --git a/include/linux/phy/phy-sun4i-usb.h b/include/linux/phy/phy-sun4i-usb.h
index 50aed92..3bb773f 100644
--- a/include/linux/phy/phy-sun4i-usb.h
+++ b/include/linux/phy/phy-sun4i-usb.h
@@ -23,4 +23,11 @@
  */
 void sun4i_usb_phy_set_squelch_detect(struct phy *phy, bool enabled);
 
+/**
+ * sun4i_usb_force_session_end() - Force the current session to end
+ *				   by reporting VBus low for 200+ ms
+ * @phy: reference to a sun4i usb phy
+ */
+void sun4i_usb_phy_force_session_end(struct phy *phy);
+
 #endif
-- 
2.9.3

^ permalink raw reply related

* [PATCH 2/2] musb: sunxi: Force session end on babble errors in host-mode
From: Hans de Goede @ 2016-09-18 16:50 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20160918165018.24547-1-hdegoede@redhat.com>

The sunxi musb has a bug where sometimes it will generate a babble
error on device disconnect instead of a disconnect irq. When this
happens the musb-controller switches from host mode to device mode
(it clears MUSB_DEVCTL_SESSION and sets MUSB_DEVCTL_BDEVICE) and
gets stuck in this state.

Clearing this requires reporting Vbus low for 200 or more ms, but
on some devices Vbus is simply always high (host-only mode, no Vbus
control).

This commit calls sun4i_usb_phy_force_session_end() on babble errors
in host-mode, fixing the musb controller being stuck in this state
on systems without Vbus control; and also fixes the need to unplug
the usb-b -> usb-a cable to get out of this state on systems with
Vbus control.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 drivers/usb/musb/sunxi.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/drivers/usb/musb/sunxi.c b/drivers/usb/musb/sunxi.c
index 1408245..5079d90 100644
--- a/drivers/usb/musb/sunxi.c
+++ b/drivers/usb/musb/sunxi.c
@@ -192,8 +192,18 @@ static irqreturn_t sunxi_musb_interrupt(int irq, void *__hci)
 	 * normally babble never happens treat it as disconnect.
 	 */
 	if ((musb->int_usb & MUSB_INTR_BABBLE) && is_host_active(musb)) {
+		struct sunxi_glue *glue =
+				dev_get_drvdata(musb->controller->parent);
+
+		dev_warn(musb->controller->parent, "babble, treating as disconnect\n");
+
 		musb->int_usb &= ~MUSB_INTR_BABBLE;
 		musb->int_usb |= MUSB_INTR_DISCONNECT;
+		/*
+		 * Fix the musb controller sometimes getting stuck in
+		 * bdevice state after a babble error.
+		 */
+		sun4i_usb_phy_force_session_end(glue->phy);
 	}
 
 	if ((musb->int_usb & MUSB_INTR_RESET) && !is_host_active(musb)) {
-- 
2.9.3

^ permalink raw reply related

* [PATCH] ARM: dts: sun8i: Enable pull-ups for bananapi-m2-plus SD slot
From: Mark Kettenis @ 2016-09-18 17:25 UTC (permalink / raw)
  To: linux-arm-kernel

Board doesn't seem to have external pull-ups and some (but not all) SD cards
don't work without pull-ups.

Signed-off-by: Mark Kettenis <kettenis@openbsd.org>
---

Tested with an OpenBSD kernel where enabling the pull-ups makes an older 2G
SanDisk card work.  A newer Samsung 32G microSD card doesn't seem to need
this.  Note that u-boot always enables the pull-ups and boots just fine off
said 2G SanDisk card.

 arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
index f3b1d5f..3737556 100644
--- a/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
+++ b/arch/arm/boot/dts/sun8i-h3-bananapi-m2-plus.dts
@@ -117,6 +117,10 @@
 	status = "okay";
 };
 
+&mmc0_pins_a {
+	allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
+};
+
 &mmc1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&mmc1_pins_a>;
-- 
2.9.3

^ permalink raw reply related

* [PATCH] ASoC: samsung: make audio interface/controller explicitly
From: kbuild test robot @ 2016-09-18 17:27 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474207751-9804-2-git-send-email-ayaka@soulik.info>

Hi Randy,

[auto build test ERROR on asoc/for-next]
[also build test ERROR on v4.8-rc6 next-20160916]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    https://github.com/0day-ci/linux/commits/Randy-Li/ASoC-samsung-make-audio-interface-controller-explicitly/20160918-222618
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next
config: parisc-allmodconfig (attached as .config)
compiler: hppa-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=parisc 

All error/warnings (new ones prefixed by >>):

>> sound/soc/samsung/i2s.c:106:26: error: field 'clk_data' has incomplete type
     struct clk_onecell_data clk_data;
                             ^~~~~~~~
   sound/soc/samsung/i2s.c: In function 'i2s_unregister_clocks':
>> sound/soc/samsung/i2s.c:1141:4: error: implicit declaration of function 'clk_unregister' [-Werror=implicit-function-declaration]
       clk_unregister(i2s->clk_table[i]);
       ^~~~~~~~~~~~~~
   sound/soc/samsung/i2s.c: In function 'i2s_unregister_clock_provider':
>> sound/soc/samsung/i2s.c:1149:2: error: implicit declaration of function 'of_clk_del_provider' [-Werror=implicit-function-declaration]
     of_clk_del_provider(pdev->dev.of_node);
     ^~~~~~~~~~~~~~~~~~~
   sound/soc/samsung/i2s.c: In function 'i2s_register_clock_provider':
>> sound/soc/samsung/i2s.c:1172:16: error: implicit declaration of function '__clk_get_name' [-Werror=implicit-function-declaration]
      p_names[i] = __clk_get_name(rclksrc);
                   ^~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1172:14: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
      p_names[i] = __clk_get_name(rclksrc);
                 ^
>> sound/soc/samsung/i2s.c:1181:38: error: implicit declaration of function 'clk_register_mux' [-Werror=implicit-function-declaration]
      i2s->clk_table[CLK_I2S_RCLK_SRC] = clk_register_mux(NULL,
                                         ^~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1183:5: error: 'CLK_SET_RATE_NO_REPARENT' undeclared (first use in this function)
        CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
        ^~~~~~~~~~~~~~~~~~~~~~~~
   sound/soc/samsung/i2s.c:1183:5: note: each undeclared identifier is reported only once for each function it appears in
>> sound/soc/samsung/i2s.c:1183:32: error: 'CLK_SET_RATE_PARENT' undeclared (first use in this function)
        CLK_SET_RATE_NO_REPARENT | CLK_SET_RATE_PARENT,
                                   ^~~~~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1187:38: error: implicit declaration of function 'clk_register_divider' [-Werror=implicit-function-declaration]
      i2s->clk_table[CLK_I2S_RCLK_PSR] = clk_register_divider(NULL,
                                         ^~~~~~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1198:34: error: implicit declaration of function 'clk_register_gate' [-Werror=implicit-function-declaration]
     i2s->clk_table[CLK_I2S_CDCLK] = clk_register_gate(NULL, clk_name[0],
                                     ^~~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1201:5: error: 'CLK_GATE_SET_TO_DISABLE' undeclared (first use in this function)
        CLK_GATE_SET_TO_DISABLE, i2s->lock);
        ^~~~~~~~~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1206:8: error: implicit declaration of function 'of_clk_add_provider' [-Werror=implicit-function-declaration]
     ret = of_clk_add_provider(dev->of_node, of_clk_src_onecell_get,
           ^~~~~~~~~~~~~~~~~~~
>> sound/soc/samsung/i2s.c:1206:42: error: 'of_clk_src_onecell_get' undeclared (first use in this function)
     ret = of_clk_add_provider(dev->of_node, of_clk_src_onecell_get,
                                             ^~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors

vim +/clk_data +106 sound/soc/samsung/i2s.c

69e7a69a2 sound/soc/samsung/i2s.c Sylwester Nawrocki 2016-08-04   90  	struct snd_dmaengine_dai_dma_data dma_playback;
69e7a69a2 sound/soc/samsung/i2s.c Sylwester Nawrocki 2016-08-04   91  	struct snd_dmaengine_dai_dma_data dma_capture;
69e7a69a2 sound/soc/samsung/i2s.c Sylwester Nawrocki 2016-08-04   92  	struct snd_dmaengine_dai_dma_data idma_playback;
9bdca822c sound/soc/samsung/i2s.c Arnd Bergmann      2015-11-18   93  	dma_filter_fn filter;
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22   94  	u32	quirks;
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22   95  	u32	suspend_i2smod;
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22   96  	u32	suspend_i2scon;
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22   97  	u32	suspend_i2spsr;
a5a56871f sound/soc/samsung/i2s.c Padmavathi Venna   2014-11-07   98  	const struct samsung_i2s_variant_regs *variant_regs;
f36705366 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14   99  
f36705366 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  100  	/* Spinlock protecting access to the device's registers */
f36705366 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  101  	spinlock_t spinlock;
f36705366 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  102  	spinlock_t *lock;
074b89bb5 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  103  
074b89bb5 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  104  	/* Below fields are only valid if this is the primary FIFO */
074b89bb5 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14  105  	struct clk *clk_table[3];
074b89bb5 sound/soc/samsung/i2s.c Sylwester Nawrocki 2015-01-14 @106  	struct clk_onecell_data clk_data;
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  107  };
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  108  
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  109  /* Lock for cross i/f checks */
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  110  static DEFINE_SPINLOCK(lock);
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  111  
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  112  /* If this is the 'overlay' stereo DAI */
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  113  static inline bool is_secondary(struct i2s_dai *i2s)
1c7ac0180 sound/soc/s3c24xx/i2s.c Jassi Brar         2010-11-22  114  {

:::::: The code at line 106 was first introduced by commit
:::::: 074b89bb5fb7e80e0f98f1b45f276b0386269e3d ASoC: samsung: i2s: Add clock provider for the I2S internal clocks

:::::: TO: Sylwester Nawrocki <s.nawrocki@samsung.com>
:::::: CC: Mark Brown <broonie@kernel.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 46238 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160919/baaa6098/attachment-0001.gz>

^ permalink raw reply

* [PATCH v4] ARM: mmp: let clk_disable() return immediately if clk is NULL
From: Masahiro Yamada @ 2016-09-18 17:58 UTC (permalink / raw)
  To: linux-arm-kernel

In many of clk_disable() implementations, it is a no-op for a NULL
pointer input, but this is one of the exceptions.

Making it treewide consistent will allow clock consumers to call
clk_disable() without NULL pointer check.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v4:
  - Split into per-arch patches

Changes in v3:
  - Return only when clk is NULL.  Do not take care of error pointer.

Changes in v2:
  - Rebase on Linux 4.6-rc1

 arch/arm/mach-mmp/clock.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-mmp/clock.c b/arch/arm/mach-mmp/clock.c
index ac6633d..28fe64c 100644
--- a/arch/arm/mach-mmp/clock.c
+++ b/arch/arm/mach-mmp/clock.c
@@ -67,6 +67,9 @@ void clk_disable(struct clk *clk)
 {
 	unsigned long flags;
 
+	if (!clk)
+		return;
+
 	WARN_ON(clk->enabled == 0);
 
 	spin_lock_irqsave(&clocks_lock, flags);
-- 
1.9.1

^ permalink raw reply related

* [PATCH v4] ARM: w90x900: let clk_disable() return immediately if clk is NULL
From: Masahiro Yamada @ 2016-09-18 17:59 UTC (permalink / raw)
  To: linux-arm-kernel

In many of clk_disable() implementations, it is a no-op for a NULL
pointer input, but this is one of the exceptions.

Making it treewide consistent will allow clock consumers to call
clk_disable() without NULL pointer check.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Acked-by: Wan Zongshun <mcuos.com@gmail.com>
---

Changes in v4:
  - Split into per-arch patches

Changes in v3:
  - Return only when clk is NULL.  Do not take care of error pointer.

Changes in v2:
  - Rebase on Linux 4.6-rc1

 arch/arm/mach-w90x900/clock.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-w90x900/clock.c b/arch/arm/mach-w90x900/clock.c
index 2c371ff..ac6fd1a 100644
--- a/arch/arm/mach-w90x900/clock.c
+++ b/arch/arm/mach-w90x900/clock.c
@@ -46,6 +46,9 @@ void clk_disable(struct clk *clk)
 {
 	unsigned long flags;
 
+	if (!clk)
+		return;
+
 	WARN_ON(clk->enabled == 0);
 
 	spin_lock_irqsave(&clocks_lock, flags);
-- 
1.9.1

^ permalink raw reply related

* [PATCH v4] MIPS: bcm63xx: let clk_disable() return immediately if clk is NULL
From: Masahiro Yamada @ 2016-09-18 18:04 UTC (permalink / raw)
  To: linux-arm-kernel

In many of clk_disable() implementations, it is a no-op for a NULL
pointer input, but this is one of the exceptions.

Making it treewide consistent will allow clock consumers to call
clk_disable() without NULL pointer check.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

Changes in v4:
  - Split into per-arch patches

Changes in v3:
  - Return only when clk is NULL.  Do not take care of error pointer.

Changes in v2:
  - Rebase on Linux 4.6-rc1

 arch/mips/bcm63xx/clk.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/mips/bcm63xx/clk.c b/arch/mips/bcm63xx/clk.c
index 6375652..b49fc9c 100644
--- a/arch/mips/bcm63xx/clk.c
+++ b/arch/mips/bcm63xx/clk.c
@@ -326,6 +326,9 @@ EXPORT_SYMBOL(clk_enable);
 
 void clk_disable(struct clk *clk)
 {
+	if (!clk)
+		return;
+
 	mutex_lock(&clocks_mutex);
 	clk_disable_unlocked(clk);
 	mutex_unlock(&clocks_mutex);
-- 
1.9.1

^ permalink raw reply related

* [PATCH] ASoC: samsung: make audio interface/controller explicitly
From: Krzysztof Kozlowski @ 2016-09-18 18:09 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1bc1a3db-8120-a2ae-0f55-a5c1bb154dc6@soulik.info>

On Sun, Sep 18, 2016 at 11:12:34PM +0800, ayaka wrote:
> 
> 
> On 09/18/2016 10:42 PM, Krzysztof Kozlowski wrote:
> >On Sun, Sep 18, 2016 at 10:09:11PM +0800, Randy Li wrote:
> >>It is simple sound card time, we could assign different codec
> >>to a interface without making a specific driver for it.
> >The description does not convince me and I do not see an example using
> >this. Could you provide one?
> Sorry, the board TOPEET iTop 4412 for exynos 4412 I posted supported codec
> with I2S interface using the simple sound card. Anyway, it is no harm to
> make them explicitly right? 

kbuild gave you the answer...

> Or I have to enabled those codec support for
> SMDK, which is not needed for the other board.

If I understand correctly, the i2s/pcm etc are still needed but not
built in config choosing only simple-audio-card? I tried now such
configuration on Odroid XU and indeed the audio is missing.

The patch looks like needed but:
1. You need to describe the rationale in commit message, why it is
needed.
2. You need to fix it... kbuild pointed build issues.

Other solution would be to add a user-selectable option for generic
sound on Samsung using simple audio card. The option would then select
appropriate SND_SAMSUNG* options, just like specific drivers do. I see
that sh does like this. Personally this approach seems simpler to me -
the defconfig could just choose this generic sound instead of many
SND_SAMSUNG_* sub-options.

Best regards,
Krzysztof

> >
> >Best regards,
> >Krzysztof
> >
> >
> >>Signed-off-by: Randy Li <ayaka@soulik.info>
> >>---
> >>  sound/soc/samsung/Kconfig | 8 ++++----
> >>  1 file changed, 4 insertions(+), 4 deletions(-)
> >>
> >>diff --git a/sound/soc/samsung/Kconfig b/sound/soc/samsung/Kconfig
> >>index 7b722b0..b7b3a38 100644
> >>--- a/sound/soc/samsung/Kconfig
> >>+++ b/sound/soc/samsung/Kconfig
> >>@@ -18,18 +18,18 @@ config SND_S3C2412_SOC_I2S
> >>  	select SND_S3C_I2SV2_SOC
> >>  config SND_SAMSUNG_PCM
> >>-	tristate
> >>+	tristate "Samsung PCM interface support"
> >>  config SND_SAMSUNG_AC97
> >>-	tristate
> >>+	tristate "Samsung AC97 controller support"
> >>  	select SND_SOC_AC97_BUS
> >>  config SND_SAMSUNG_SPDIF
> >>-	tristate
> >>+	tristate "Samsung SPDIF transmitter support"
> >>  	select SND_SOC_SPDIF
> >>  config SND_SAMSUNG_I2S
> >>-	tristate
> >>+	tristate "Samsung I2S interface support"
> >>  config SND_SOC_SAMSUNG_NEO1973_WM8753
> >>  	tristate "Audio support for Openmoko Neo1973 Smartphones (GTA02)"
> >>-- 
> >>2.7.4
> >>
> 

^ permalink raw reply

* [PATCH] ARM: mediatek: clean up mach-mediatek/Makefile
From: Masahiro Yamada @ 2016-09-18 18:11 UTC (permalink / raw)
  To: linux-arm-kernel

Kbuild descends into arch/arm/mach-mediatek/Makefile only when
CONFIG_ARCH_MEDIATEK is enabled.  So, obj-$(CONFIG_ARCH_MEDIATEK)
is always equivalent to obj-y in this Makefile.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
---

 arch/arm/mach-mediatek/Makefile | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/arch/arm/mach-mediatek/Makefile b/arch/arm/mach-mediatek/Makefile
index 2116460..dadae67 100644
--- a/arch/arm/mach-mediatek/Makefile
+++ b/arch/arm/mach-mediatek/Makefile
@@ -1,4 +1,2 @@
-ifeq ($(CONFIG_SMP),y)
-obj-$(CONFIG_ARCH_MEDIATEK) += platsmp.o
-endif
-obj-$(CONFIG_ARCH_MEDIATEK) += mediatek.o
+obj-$(CONFIG_SMP)	+= platsmp.o
+obj-y			+= mediatek.o
-- 
1.9.1

^ permalink raw reply related

* [PATCH v2] dmaengine: s3c24xx: Add dma_slave_map for s3c2440 devices
From: Sam Van Den Berge @ 2016-09-18 18:18 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <b8d6e8a9-4807-0dc0-95c8-a4aca89f18e7@samsung.com>

On Fri, Sep 16, 2016 at 01:00:12PM +0200, Sylwester Nawrocki wrote:
> On 09/15/2016 09:41 PM, Sam Van Den Berge wrote:
> > @@ -445,10 +446,44 @@ static struct s3c24xx_dma_channel s3c2440_dma_channels[DMACH_MAX] = {
> >  	[DMACH_USB_EP4] = { S3C24XX_DMA_APB, true, S3C24XX_DMA_CHANREQ(4, 3), },
> >  };
> >  
> > +static const struct dma_slave_map s3c2440_dma_slave_map[] = {
> > +	/* TODO: DMACH_XD0 */
> > +	/* TODO: DMACH_XD1 */
> > +	{ "3c2440-sdi", "rx-tx", (void *)DMACH_SDI },
> 
> Thanks for the patch, still device name needs to be changed here
> to "s3c2440-sdi".

Thanks for spotting this! I guess I was too focused on the "rx-tx" part
that I totally missed the missing leading "s". I will fix this in v3.

Sam.

^ permalink raw reply

* [RFC PATCH v2 1/2] ARM: dts: samsung: add rga-lvds panel in itop elite
From: Krzysztof Kozlowski @ 2016-09-18 19:03 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1474208859-10045-2-git-send-email-ayaka@soulik.info>

On Sun, Sep 18, 2016 at 10:27:38PM +0800, Randy Li wrote:
> It is actually a lvds panel connected through a rga-lvds bridge.
> The touchscreen is communicated with i2c bus but the driver is not
> support now.
> 
> Signed-off-by: Randy Li <ayaka@soulik.info>

Subject: ARM: dts: exynos

> ---
>  arch/arm/boot/dts/exynos4412-itop-elite.dts | 54 +++++++++++++++++++++++++++--
>  1 file changed, 52 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/boot/dts/exynos4412-itop-elite.dts b/arch/arm/boot/dts/exynos4412-itop-elite.dts
> index b08705e..9ef0505 100644
> --- a/arch/arm/boot/dts/exynos4412-itop-elite.dts
> +++ b/arch/arm/boot/dts/exynos4412-itop-elite.dts
> @@ -138,6 +138,36 @@
>  		assigned-clocks = <&clock CLK_MOUT_CAM0>;
>  		assigned-clock-parents = <&clock CLK_XUSBXTI>;
>  	};
> +
> +	vcc_sys_lcd: sys-lcd {

No underscores, use hyphens.

> +		compatible = "regulator-fixed";
> +		regulator-name = "vcc_5v";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;

Isn't this one of S5M8767 PMIC regulators? If so, then it should be
defined there... On the other hand, the PMIC supports GPIO enable
control only for buck9...

> +	};
> +
> +	panel: panel at 0 {
> +		compatible = "chunghwa,claa070wp03xg";
> +
> +		power-supply = <&vcc_sys_lcd>;
> +		enable-gpios = <&gpl0 2 GPIO_ACTIVE_HIGH>;
> +		backlight = <&bl>;
> +
> +		port {
> +			lcd_ep: endpoint {

lcd-ep

> +				remote-endpoint = <&rga_lvds>;
> +			};
> +		};
> +	};
> +
> +	bl: backlight {
> +		compatible = "pwm-backlight";
> +		pwms = <&pwm 1 5000000 PWM_POLARITY_INVERTED>;
> +		brightness-levels = <0 5 12 16 32 64 128 255>;
> +		default-brightness-level = <5>;
> +		power-supply = <&vcc_sys_lcd>;
> +	};
>  };
>  
>  &adc {
> @@ -215,9 +245,9 @@
>  
>  &pwm {
>  	status = "okay";
> -	pinctrl-0 = <&pwm0_out>;
> +	pinctrl-0 = <&pwm0_out &pwm1_out>;
>  	pinctrl-names = "default";
> -	samsung,pwm-outputs = <0>;
> +	samsung,pwm-outputs = <0>, <1>;
>  };
>  
>  &sdhci_2 {
> @@ -238,3 +268,23 @@
>  &serial_2 {
>  	status = "okay";
>  };
> +
> +&i2c_3 {
> +	status = "okay";
> +};
> +
> +&fimd {

Please put these nodes in alphabetical order. I asked about it for
initial DTS and it applies still.

> +	pinctrl-0 = <&lcd_clk &lcd_data24>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +	ports {
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		port at 3 {
> +			reg = <3>;
> +			rga_lvds: endpoint {

rga-lvds

Best regards,
Krzysztof

> +				remote-endpoint = <&lcd_ep>;
> +			};
> +		};
> +	};
> +};
> -- 
> 2.7.4
> 

^ permalink raw reply

* [PATCH -next] drm/sun4i: backend: remove redundant dev_err call in sun4i_backend_bind()
From: Maxime Ripard @ 2016-09-18 19:04 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <1473909958-30216-1-git-send-email-weiyj.lk@gmail.com>

On Thu, Sep 15, 2016 at 03:25:58AM +0000, Wei Yongjun wrote:
> From: Wei Yongjun <weiyongjun1@huawei.com>
> 
> There is a error message within devm_ioremap_resource
> already, so remove the dev_err call to avoid redundant
> error message.
> 
> Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>

Queued, thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160918/257caa2c/attachment.sig>

^ permalink raw reply

* [RFC PATCH v2 1/2] ARM: dts: samsung: add rga-lvds panel in itop elite
From: Krzysztof Kozlowski @ 2016-09-18 19:09 UTC (permalink / raw)
  To: linux-arm-kernel
In-Reply-To: <20160918190348.GA5556@kozik-book>

On Sun, Sep 18, 2016 at 09:03:48PM +0200, Krzysztof Kozlowski wrote:
> On Sun, Sep 18, 2016 at 10:27:38PM +0800, Randy Li wrote:
> > It is actually a lvds panel connected through a rga-lvds bridge.
> > The touchscreen is communicated with i2c bus but the driver is not
> > support now.
> > 
> > Signed-off-by: Randy Li <ayaka@soulik.info>
> 
> Subject: ARM: dts: exynos
> 
> > ---
> >  arch/arm/boot/dts/exynos4412-itop-elite.dts | 54 +++++++++++++++++++++++++++--
> >  1 file changed, 52 insertions(+), 2 deletions(-)
> > 
> > diff --git a/arch/arm/boot/dts/exynos4412-itop-elite.dts b/arch/arm/boot/dts/exynos4412-itop-elite.dts
> > index b08705e..9ef0505 100644
> > --- a/arch/arm/boot/dts/exynos4412-itop-elite.dts
> > +++ b/arch/arm/boot/dts/exynos4412-itop-elite.dts
> > @@ -138,6 +138,36 @@
> >  		assigned-clocks = <&clock CLK_MOUT_CAM0>;
> >  		assigned-clock-parents = <&clock CLK_XUSBXTI>;
> >  	};
> > +
> > +	vcc_sys_lcd: sys-lcd {
> 
> No underscores, use hyphens.

Ah wait, it's a label, so underscore seems ok. My mistake.

> 
> > +		compatible = "regulator-fixed";
> > +		regulator-name = "vcc_5v";
> > +		regulator-min-microvolt = <5000000>;
> > +		regulator-max-microvolt = <5000000>;
> > +		gpio = <&gpl0 4 GPIO_ACTIVE_HIGH>;
> 
> Isn't this one of S5M8767 PMIC regulators? If so, then it should be
> defined there... On the other hand, the PMIC supports GPIO enable
> control only for buck9...
> 
> > +	};
> > +
> > +	panel: panel at 0 {
> > +		compatible = "chunghwa,claa070wp03xg";
> > +
> > +		power-supply = <&vcc_sys_lcd>;
> > +		enable-gpios = <&gpl0 2 GPIO_ACTIVE_HIGH>;
> > +		backlight = <&bl>;
> > +
> > +		port {
> > +			lcd_ep: endpoint {
> 
> lcd-ep

No need, the same.

Best regards,
Krzysztof

> 
> > +				remote-endpoint = <&rga_lvds>;
> > +			};
> > +		};
> > +	};
> > +
> > +	bl: backlight {
> > +		compatible = "pwm-backlight";
> > +		pwms = <&pwm 1 5000000 PWM_POLARITY_INVERTED>;
> > +		brightness-levels = <0 5 12 16 32 64 128 255>;
> > +		default-brightness-level = <5>;
> > +		power-supply = <&vcc_sys_lcd>;
> > +	};
> >  };
> >  
> >  &adc {
> > @@ -215,9 +245,9 @@
> >  
> >  &pwm {
> >  	status = "okay";
> > -	pinctrl-0 = <&pwm0_out>;
> > +	pinctrl-0 = <&pwm0_out &pwm1_out>;
> >  	pinctrl-names = "default";
> > -	samsung,pwm-outputs = <0>;
> > +	samsung,pwm-outputs = <0>, <1>;
> >  };
> >  
> >  &sdhci_2 {
> > @@ -238,3 +268,23 @@
> >  &serial_2 {
> >  	status = "okay";
> >  };
> > +
> > +&i2c_3 {
> > +	status = "okay";
> > +};
> > +
> > +&fimd {
> 
> Please put these nodes in alphabetical order. I asked about it for
> initial DTS and it applies still.
> 
> > +	pinctrl-0 = <&lcd_clk &lcd_data24>;
> > +	pinctrl-names = "default";
> > +	status = "okay";
> > +	ports {
> > +		#address-cells = <1>;
> > +		#size-cells = <0>;
> > +		port at 3 {
> > +			reg = <3>;
> > +			rga_lvds: endpoint {
> 
> rga-lvds
> 
> Best regards,
> Krzysztof
> 
> > +				remote-endpoint = <&lcd_ep>;
> > +			};
> > +		};
> > +	};
> > +};
> > -- 
> > 2.7.4
> > 

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox