diff options
Diffstat (limited to 'target/linux/kirkwood/patches-5.10/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch')
-rw-r--r-- | target/linux/kirkwood/patches-5.10/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/target/linux/kirkwood/patches-5.10/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch b/target/linux/kirkwood/patches-5.10/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch deleted file mode 100644 index 4b4d03839a..0000000000 --- a/target/linux/kirkwood/patches-5.10/800-power-reset-linkstation-poweroff-prepare-for-new-dev.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 11cab9f5cd9390cd83747e579957c8f5b807c09c Mon Sep 17 00:00:00 2001 -From: Pawel Dembicki <paweldembicki@gmail.com> -Date: Fri, 18 Jun 2021 12:37:27 +0200 -Subject: [PATCH 1/2] power: reset: linkstation-poweroff: prepare for new - devices - -This commit prepare driver for another device support. - -New power_off_cfg structure describes two most important things: name of -mdio bus and pointer to register setting function. It allow to add new -device with different mdio bus node and other phy register config. - -Signed-off-by: Pawel Dembicki <paweldembicki@gmail.com> ---- - drivers/power/reset/linkstation-poweroff.c | 35 ++++++++++++++++++---- - 1 file changed, 29 insertions(+), 6 deletions(-) - ---- a/drivers/power/reset/linkstation-poweroff.c -+++ b/drivers/power/reset/linkstation-poweroff.c -@@ -29,11 +29,21 @@ - #define LED2_FORCE_ON (0x8 << 8) - #define LEDMASK GENMASK(11,8) - -+struct power_off_cfg { -+ char *mdio_node_name; -+ void (*phy_set_reg)(bool restart); -+}; -+ - static struct phy_device *phydev; -+static const struct power_off_cfg *cfg; - --static void mvphy_reg_intn(u16 data) -+static void linkstation_mvphy_reg_intn(bool restart) - { - int rc = 0, saved_page; -+ u16 data = 0; -+ -+ if(restart) -+ data = MII_88E1318S_PHY_LED_TCR_FORCE_INT; - - saved_page = phy_select_page(phydev, MII_MARVELL_LED_PAGE); - if (saved_page < 0) -@@ -66,11 +76,16 @@ err: - dev_err(&phydev->mdio.dev, "Write register failed, %d\n", rc); - } - -+static const struct power_off_cfg linkstation_power_off_cfg = { -+ .mdio_node_name = "mdio", -+ .phy_set_reg = linkstation_mvphy_reg_intn, -+}; -+ - static int linkstation_reboot_notifier(struct notifier_block *nb, - unsigned long action, void *unused) - { - if (action == SYS_RESTART) -- mvphy_reg_intn(MII_88E1318S_PHY_LED_TCR_FORCE_INT); -+ cfg->phy_set_reg(true); - - return NOTIFY_DONE; - } -@@ -82,14 +97,18 @@ static struct notifier_block linkstation - static void linkstation_poweroff(void) - { - unregister_reboot_notifier(&linkstation_reboot_nb); -- mvphy_reg_intn(0); -+ cfg->phy_set_reg(false); - - kernel_restart("Power off"); - } - - static const struct of_device_id ls_poweroff_of_match[] = { -- { .compatible = "buffalo,ls421d" }, -- { .compatible = "buffalo,ls421de" }, -+ { .compatible = "buffalo,ls421d", -+ .data = &linkstation_power_off_cfg, -+ }, -+ { .compatible = "buffalo,ls421de", -+ .data = &linkstation_power_off_cfg, -+ }, - { }, - }; - -@@ -97,13 +116,17 @@ static int __init linkstation_poweroff_i - { - struct mii_bus *bus; - struct device_node *dn; -+ const struct of_device_id *match; - - dn = of_find_matching_node(NULL, ls_poweroff_of_match); - if (!dn) - return -ENODEV; - of_node_put(dn); - -- dn = of_find_node_by_name(NULL, "mdio"); -+ match = of_match_node(ls_poweroff_of_match, dn); -+ cfg = match->data; -+ -+ dn = of_find_node_by_name(NULL, cfg->mdio_node_name); - if (!dn) - return -ENODEV; - |