generic: 6.6: add immortalwrt hacks
Signed-off-by: Tianling Shen <cnsztl@gmail.com>
This commit is contained in:
parent
d04f8cf11f
commit
6daee84602
@ -0,0 +1,38 @@
|
||||
From: Sumit Gupta <sumitg@nvidia.com>
|
||||
To: <catalin.marinas@arm.com>, <linux-arm-kernel@lists.infradead.org>,
|
||||
<linux-kernel@vger.kernel.org>
|
||||
Cc: <will.deacon@arm.com>, <suzuki.poulose@arm.com>,
|
||||
<james.morse@arm.com>, <mark.rutland@arm.com>,
|
||||
<yang.shi@linaro.org>, <julien.grall@arm.com>,
|
||||
<steve.capper@linaro.org>, <bbasu@nvidia.com>,
|
||||
<linux-tegra@vger.kernel.org>, Sumit Gupta <sumitg@nvidia.com>
|
||||
Subject: [PATCH] arm64: cpuinfo: Add "model name" in /proc/cpuinfo for 64bit tasks also
|
||||
Date: Mon, 29 Aug 2016 14:32:25 +0530
|
||||
Message-ID: <1472461345-28219-1-git-send-email-sumitg@nvidia.com> (raw)
|
||||
|
||||
Removed restriction of displaying model name for 32 bit tasks only.
|
||||
Because of this Processor details were not displayed in
|
||||
"System setting -> Details" in Ubuntu model name display is generic
|
||||
and can be printed for 64 bit also.
|
||||
|
||||
model name : ARMv8 Processor rev X (v8l)
|
||||
|
||||
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
|
||||
---
|
||||
arch/arm64/kernel/cpuinfo.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
--- a/arch/arm64/kernel/cpuinfo.c
|
||||
+++ b/arch/arm64/kernel/cpuinfo.c
|
||||
@@ -189,9 +189,8 @@ static int c_show(struct seq_file *m, vo
|
||||
* "processor". Give glibc what it expects.
|
||||
*/
|
||||
seq_printf(m, "processor\t: %d\n", i);
|
||||
- if (compat)
|
||||
- seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
|
||||
- MIDR_REVISION(midr), COMPAT_ELF_PLATFORM);
|
||||
+ seq_printf(m, "model name\t: ARMv8 Processor rev %d (%s)\n",
|
||||
+ MIDR_REVISION(midr), COMPAT_ELF_PLATFORM);
|
||||
|
||||
seq_printf(m, "BogoMIPS\t: %lu.%02lu\n",
|
||||
loops_per_jiffy / (500000UL/HZ),
|
||||
@ -0,0 +1,63 @@
|
||||
--- a/drivers/net/phy/motorcomm.c
|
||||
+++ b/drivers/net/phy/motorcomm.c
|
||||
@@ -228,6 +228,12 @@
|
||||
#define YTPHY_WCR_INTR_SEL BIT(6)
|
||||
#define YTPHY_WCR_ENABLE BIT(3)
|
||||
|
||||
+#define YTPHY_LED_NUM_CONFIG 5
|
||||
+/* LED_GENERAL_CFG: 0xA00B, LED0_CFG: 0xA00C, LED1_CFG: 0xA00D
|
||||
+ * LED2_CFG: 0xA00E, LED_BLINK_CFG: 0xA00F
|
||||
+ */
|
||||
+#define YTPHY_LED_CONFIG_REG(x) (0xA00B + x)
|
||||
+
|
||||
/* 2b00 84ms
|
||||
* 2b01 168ms *default*
|
||||
* 2b10 336ms
|
||||
@@ -1564,6 +1570,27 @@ static int yt8521_resume(struct phy_devi
|
||||
return yt8521_modify_utp_fiber_bmcr(phydev, BMCR_PDOWN, 0);
|
||||
}
|
||||
|
||||
+static int ytphy_config_led(struct phy_device *phydev)
|
||||
+{
|
||||
+ struct device_node *node = phydev->mdio.dev.of_node;
|
||||
+ u32 led_data[YTPHY_LED_NUM_CONFIG];
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = of_property_read_u32_array(node, "motorcomm,led-data",
|
||||
+ led_data, YTPHY_LED_NUM_CONFIG);
|
||||
+ if (ret)
|
||||
+ return 0;
|
||||
+
|
||||
+ for (int i = 0; i < YTPHY_LED_NUM_CONFIG; i++) {
|
||||
+ ret = ytphy_write_ext(phydev, YTPHY_LED_CONFIG_REG(i),
|
||||
+ led_data[i]);
|
||||
+ if (ret < 0)
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/**
|
||||
* yt8521_config_init() - called to initialize the PHY
|
||||
* @phydev: a pointer to a &struct phy_device
|
||||
@@ -1602,6 +1629,10 @@ static int yt8521_config_init(struct phy
|
||||
if (ret < 0)
|
||||
goto err_restore_page;
|
||||
}
|
||||
+
|
||||
+ ret = ytphy_config_led(phydev);
|
||||
+ if (ret < 0)
|
||||
+ goto err_restore_page;
|
||||
err_restore_page:
|
||||
return phy_restore_page(phydev, old_page, ret);
|
||||
}
|
||||
@@ -1637,7 +1668,7 @@ static int yt8531_config_init(struct phy
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
- return 0;
|
||||
+ return ytphy_config_led(phydev);
|
||||
}
|
||||
|
||||
/**
|
||||
Loading…
Reference in New Issue
Block a user