Update sunxi-next patches to 4.6.1
This commit is contained in:
parent
34770652d4
commit
c788fc379d
@ -1,16 +1,16 @@
|
||||
diff --git a/drivers/mfd/axp20x.c b/drivers/mfd/axp20x.c
|
||||
index 9842199..c313710 100644
|
||||
index a57d6e9..51b34f6 100644
|
||||
--- a/drivers/mfd/axp20x.c
|
||||
+++ b/drivers/mfd/axp20x.c
|
||||
@@ -26,6 +26,7 @@
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <linux/mfd/core.h>
|
||||
#include <linux/of_device.h>
|
||||
#include <linux/of_irq.h>
|
||||
#include <linux/acpi.h>
|
||||
+#include <linux/delay.h>
|
||||
|
||||
#define AXP20X_OFF 0x80
|
||||
|
||||
@@ -70,6 +71,7 @@ static const struct regmap_range axp20x_volatile_ranges[] = {
|
||||
@@ -72,6 +73,7 @@ static const struct regmap_range axp20x_volatile_ranges[] = {
|
||||
regmap_reg_range(AXP20X_IRQ1_EN, AXP20X_IRQ5_STATE),
|
||||
regmap_reg_range(AXP20X_ACIN_V_ADC_H, AXP20X_IPSOUT_V_HIGH_L),
|
||||
regmap_reg_range(AXP20X_GPIO20_SS, AXP20X_GPIO3_CTRL),
|
||||
@ -18,7 +18,7 @@ index 9842199..c313710 100644
|
||||
regmap_reg_range(AXP20X_FG_RES, AXP20X_RDC_L),
|
||||
};
|
||||
|
||||
@@ -606,6 +608,611 @@ static void axp20x_power_off(void)
|
||||
@@ -582,6 +584,611 @@ static void axp20x_power_off(void)
|
||||
AXP20X_OFF);
|
||||
}
|
||||
|
||||
@ -627,10 +627,10 @@ index 9842199..c313710 100644
|
||||
+ axp20x_sysfs_remove_subgroup(subsystems.ac, &axp20x_group_ac);
|
||||
+}
|
||||
+
|
||||
static int axp20x_match_device(struct axp20x_dev *axp20x, struct device *dev)
|
||||
int axp20x_match_device(struct axp20x_dev *axp20x)
|
||||
{
|
||||
const struct acpi_device_id *acpi_id;
|
||||
@@ -711,6 +1318,10 @@ static int axp20x_i2c_probe(struct i2c_client *i2c,
|
||||
struct device *dev = axp20x->dev;
|
||||
@@ -669,6 +1276,10 @@ int axp20x_device_probe(struct axp20x_dev *axp20x)
|
||||
pm_power_off = axp20x_power_off;
|
||||
}
|
||||
|
||||
@ -638,17 +638,17 @@ index 9842199..c313710 100644
|
||||
+ axp20x_sysfs_init(axp20x);
|
||||
+ }
|
||||
+
|
||||
dev_info(&i2c->dev, "AXP20X driver loaded\n");
|
||||
dev_info(axp20x->dev, "AXP20X driver loaded\n");
|
||||
|
||||
return 0;
|
||||
@@ -720,6 +1331,10 @@ static int axp20x_i2c_remove(struct i2c_client *i2c)
|
||||
{
|
||||
struct axp20x_dev *axp20x = i2c_get_clientdata(i2c);
|
||||
@@ -682,6 +1293,10 @@ int axp20x_device_remove(struct axp20x_dev *axp20x)
|
||||
pm_power_off = NULL;
|
||||
}
|
||||
|
||||
+ if (axp20x->variant == AXP209_ID || axp20x->variant == AXP202_ID) {
|
||||
+ axp20x_sysfs_exit(axp20x);
|
||||
+ }
|
||||
+
|
||||
if (axp20x == axp20x_pm_power_off) {
|
||||
axp20x_pm_power_off = NULL;
|
||||
pm_power_off = NULL;
|
||||
mfd_remove_devices(axp20x->dev);
|
||||
regmap_del_irq_chip(axp20x->irq, axp20x->regmap_irqc);
|
||||
|
||||
|
||||
@ -1,60 +0,0 @@
|
||||
diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
|
||||
index 7be3fbc..3830d7c 100644
|
||||
--- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
|
||||
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
|
||||
@@ -35,6 +35,7 @@ static int sun4i_ss_opti_poll(struct ablkcipher_request *areq)
|
||||
unsigned int todo;
|
||||
struct sg_mapping_iter mi, mo;
|
||||
unsigned int oi, oo; /* offset for in and out */
|
||||
+ unsigned long flags;
|
||||
|
||||
if (areq->nbytes == 0)
|
||||
return 0;
|
||||
@@ -49,7 +50,7 @@ static int sun4i_ss_opti_poll(struct ablkcipher_request *areq)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
- spin_lock_bh(&ss->slock);
|
||||
+ spin_lock_irqsave(&ss->slock, flags);
|
||||
|
||||
for (i = 0; i < op->keylen; i += 4)
|
||||
writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
|
||||
@@ -117,7 +118,7 @@ release_ss:
|
||||
sg_miter_stop(&mi);
|
||||
sg_miter_stop(&mo);
|
||||
writel(0, ss->base + SS_CTL);
|
||||
- spin_unlock_bh(&ss->slock);
|
||||
+ spin_unlock_irqrestore(&ss->slock, flags);
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -149,6 +150,7 @@ static int sun4i_ss_cipher_poll(struct ablkcipher_request *areq)
|
||||
unsigned int ob = 0; /* offset in buf */
|
||||
unsigned int obo = 0; /* offset in bufo*/
|
||||
unsigned int obl = 0; /* length of data in bufo */
|
||||
+ unsigned long flags;
|
||||
|
||||
if (areq->nbytes == 0)
|
||||
return 0;
|
||||
@@ -181,7 +183,7 @@ static int sun4i_ss_cipher_poll(struct ablkcipher_request *areq)
|
||||
if (no_chunk == 1)
|
||||
return sun4i_ss_opti_poll(areq);
|
||||
|
||||
- spin_lock_bh(&ss->slock);
|
||||
+ spin_lock_irqsave(&ss->slock, flags);
|
||||
|
||||
for (i = 0; i < op->keylen; i += 4)
|
||||
writel(*(op->key + i / 4), ss->base + SS_KEY0 + i);
|
||||
@@ -307,7 +309,7 @@ release_ss:
|
||||
sg_miter_stop(&mi);
|
||||
sg_miter_stop(&mo);
|
||||
writel(0, ss->base + SS_CTL);
|
||||
- spin_unlock_bh(&ss->slock);
|
||||
+ spin_unlock_irqrestore(&ss->slock, flags);
|
||||
|
||||
return err;
|
||||
}
|
||||
--
|
||||
2.7.3
|
||||
|
||||
|
||||
@ -1,91 +0,0 @@
|
||||
commit d7e944c8ddc0983640a9a32868fb217485d12ca2
|
||||
Author: Giuseppe CAVALLARO <peppe.cavallaro@st.com>
|
||||
Date: Fri Apr 1 09:07:15 2016 +0200
|
||||
|
||||
Revert "stmmac: Fix 'eth0: No PHY found' regression"
|
||||
|
||||
This reverts commit 88f8b1bb41c6208f81b6a480244533ded7b59493.
|
||||
due to problems on GeekBox and Banana Pi M1 board when
|
||||
connected to a real transceiver instead of a switch via
|
||||
fixed-link.
|
||||
|
||||
Signed-off-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
|
||||
Cc: Gabriel Fernandez <gabriel.fernandez@linaro.org>
|
||||
Cc: Andreas Färber <afaerber@suse.de>
|
||||
Cc: Frank Schäfer <fschaefer.oss@googlemail.com>
|
||||
Cc: Dinh Nguyen <dinh.linux@gmail.com>
|
||||
Cc: David S. Miller <davem@davemloft.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
index ea76129..af09ced 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c
|
||||
@@ -199,12 +199,21 @@ int stmmac_mdio_register(struct net_device *ndev)
|
||||
struct stmmac_priv *priv = netdev_priv(ndev);
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data = priv->plat->mdio_bus_data;
|
||||
int addr, found;
|
||||
- struct device_node *mdio_node = priv->plat->mdio_node;
|
||||
+ struct device_node *mdio_node = NULL;
|
||||
+ struct device_node *child_node = NULL;
|
||||
|
||||
if (!mdio_bus_data)
|
||||
return 0;
|
||||
|
||||
if (IS_ENABLED(CONFIG_OF)) {
|
||||
+ for_each_child_of_node(priv->device->of_node, child_node) {
|
||||
+ if (of_device_is_compatible(child_node,
|
||||
+ "snps,dwmac-mdio")) {
|
||||
+ mdio_node = child_node;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if (mdio_node) {
|
||||
netdev_dbg(ndev, "FOUND MDIO subnode\n");
|
||||
} else {
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
index dcbd2a1..9cf181f 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
|
||||
@@ -146,7 +146,6 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
|
||||
struct device_node *np = pdev->dev.of_node;
|
||||
struct plat_stmmacenet_data *plat;
|
||||
struct stmmac_dma_cfg *dma_cfg;
|
||||
- struct device_node *child_node = NULL;
|
||||
|
||||
plat = devm_kzalloc(&pdev->dev, sizeof(*plat), GFP_KERNEL);
|
||||
if (!plat)
|
||||
@@ -177,19 +176,13 @@ stmmac_probe_config_dt(struct platform_device *pdev, const char **mac)
|
||||
plat->phy_node = of_node_get(np);
|
||||
}
|
||||
|
||||
- for_each_child_of_node(np, child_node)
|
||||
- if (of_device_is_compatible(child_node, "snps,dwmac-mdio")) {
|
||||
- plat->mdio_node = child_node;
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
/* "snps,phy-addr" is not a standard property. Mark it as deprecated
|
||||
* and warn of its use. Remove this when phy node support is added.
|
||||
*/
|
||||
if (of_property_read_u32(np, "snps,phy-addr", &plat->phy_addr) == 0)
|
||||
dev_warn(&pdev->dev, "snps,phy-addr property is deprecated\n");
|
||||
|
||||
- if ((plat->phy_node && !of_phy_is_fixed_link(np)) || !plat->mdio_node)
|
||||
+ if ((plat->phy_node && !of_phy_is_fixed_link(np)) || plat->phy_bus_name)
|
||||
plat->mdio_bus_data = NULL;
|
||||
else
|
||||
plat->mdio_bus_data =
|
||||
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
|
||||
index 4bcf5a6..6e53fa8 100644
|
||||
--- a/include/linux/stmmac.h
|
||||
+++ b/include/linux/stmmac.h
|
||||
@@ -114,7 +114,6 @@ struct plat_stmmacenet_data {
|
||||
int interface;
|
||||
struct stmmac_mdio_bus_data *mdio_bus_data;
|
||||
struct device_node *phy_node;
|
||||
- struct device_node *mdio_node;
|
||||
struct stmmac_dma_cfg *dma_cfg;
|
||||
int clk_csr;
|
||||
int has_gmac;
|
||||
Loading…
Reference in New Issue
Block a user