From: Hans de Goede <hdegoede@redhat.com>
To: "David S . Miller" <davem@davemloft.net>,
Heiner Kallweit <hkallweit1@gmail.com>,
Michael Turquette <mturquette@baylibre.com>,
Stephen Boyd <sboyd@kernel.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Irina Tirdea <irina.tirdea@intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>,
netdev@vger.kernel.org, Johannes Stezenbach <js@sig21.net>,
Carlo Caione <carlo@endlessm.com>,
linux-clk@vger.kernel.org
Subject: [PATCH 1/4] clk: x86: add "ether_clk" alias for Bay Trail / Cherry Trail
Date: Mon, 27 Aug 2018 16:31:57 +0200 [thread overview]
Message-ID: <20180827143200.8597-2-hdegoede@redhat.com> (raw)
In-Reply-To: <20180827143200.8597-1-hdegoede@redhat.com>
Commit d31fd43c0f9a ("clk: x86: Do not gate clocks enabled by the
firmware") causes all unclaimed PMC clocks on Cherry Trail devices to be on
all the time, resulting on the device not being able to reach S0i2 or S0i3
when suspended.
The reason for this commit is that on some Bay Trail / Cherry Trail devices
the ethernet controller uses pmc_plt_clk_4. This commit adds an "ether_clk"
alias, so that the relevant ethernet drivers can try to (optionally) use
this, without needing X86 specific code / hacks, thus fixing ethernet on
these devices without breaking S0i3 support.
This commit uses clkdev_hw_create() to create the alias, mirroring the code
for the already existing "mclk" alias for pmc_plt_clk_3.
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=193891#c102
Cc: Johannes Stezenbach <js@sig21.net>
Cc: Carlo Caione <carlo@endlessm.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
drivers/clk/x86/clk-pmc-atom.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/clk/x86/clk-pmc-atom.c b/drivers/clk/x86/clk-pmc-atom.c
index 08ef69945ffb..75151901ff7d 100644
--- a/drivers/clk/x86/clk-pmc-atom.c
+++ b/drivers/clk/x86/clk-pmc-atom.c
@@ -55,6 +55,7 @@ struct clk_plt_data {
u8 nparents;
struct clk_plt *clks[PMC_CLK_NUM];
struct clk_lookup *mclk_lookup;
+ struct clk_lookup *ether_clk_lookup;
};
/* Return an index in parent table */
@@ -351,11 +352,20 @@ static int plt_clk_probe(struct platform_device *pdev)
goto err_unreg_clk_plt;
}
+ data->ether_clk_lookup = clkdev_hw_create(&data->clks[4]->hw,
+ "ether_clk", NULL);
+ if (!data->ether_clk_lookup) {
+ err = -ENOMEM;
+ goto err_drop_mclk;
+ }
+
plt_clk_free_parent_names_loop(parent_names, data->nparents);
platform_set_drvdata(pdev, data);
return 0;
+err_drop_mclk:
+ clkdev_drop(data->mclk_lookup);
err_unreg_clk_plt:
plt_clk_unregister_loop(data, i);
plt_clk_unregister_parents(data);
@@ -369,6 +379,7 @@ static int plt_clk_remove(struct platform_device *pdev)
data = platform_get_drvdata(pdev);
+ clkdev_drop(data->ether_clk_lookup);
clkdev_drop(data->mclk_lookup);
plt_clk_unregister_loop(data, PMC_CLK_NUM);
plt_clk_unregister_parents(data);
--
2.18.0
next prev parent reply other threads:[~2018-08-27 18:18 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-27 14:31 [PATCH 0/4] clk-pmc-atom + r8169: Add ether_clk handling to fix suspend issues Hans de Goede
2018-08-27 14:31 ` Hans de Goede [this message]
2018-08-27 18:43 ` [PATCH 1/4] clk: x86: add "ether_clk" alias for Bay Trail / Cherry Trail Stephen Boyd
2018-08-27 14:31 ` [PATCH 2/4] r8169: Get and enable optional ether_clk clock Hans de Goede
2018-08-27 18:47 ` Stephen Boyd
2018-08-27 18:53 ` Hans de Goede
2018-08-27 19:14 ` Stephen Boyd
2018-08-29 17:09 ` Hans de Goede
2018-08-30 16:48 ` Stephen Boyd
2018-08-27 14:31 ` [PATCH 3/4] clk: x86: Stop marking clocks as CLK_IS_CRITICAL Hans de Goede
2018-08-30 3:46 ` Stephen Boyd
2018-08-27 14:32 ` [PATCH 4/4] RFC: r8169: Disable clk during suspend / resume Hans de Goede
2018-08-29 16:31 ` [PATCH 0/4] clk-pmc-atom + r8169: Add ether_clk handling to fix suspend issues Andy Shevchenko
2018-08-29 17:06 ` Hans de Goede
2018-08-30 8:43 ` Andy Shevchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180827143200.8597-2-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=andriy.shevchenko@linux.intel.com \
--cc=carlo@endlessm.com \
--cc=davem@davemloft.net \
--cc=hkallweit1@gmail.com \
--cc=irina.tirdea@intel.com \
--cc=js@sig21.net \
--cc=linux-clk@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=netdev@vger.kernel.org \
--cc=sboyd@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).