Skip to content

Commit

Permalink
Revert "Input: olpc_apsp - enable the SP clock"
Browse files Browse the repository at this point in the history
Turns out this is not such a great idea. Once the SP clock is disabled,
it's not sufficient to just enable in order to bring the SP core back up.

It seems that the kernel has no business managing this clock. Just let
the firmware keep it enabled.

This reverts commit ed22cee.

Link: https://lore.kernel.org/lkml/154783267051.169631.3197836544646625747@swboyd.mtv.corp.google.com/
Signed-off-by: Lubomir Rintel <lkundrak@v3.sk>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
  • Loading branch information
Lubomir Rintel authored and Stephen Boyd committed Jan 24, 2019
1 parent b488517 commit 0113613
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 18 deletions.
4 changes: 0 additions & 4 deletions Documentation/devicetree/bindings/serio/olpc,ap-sp.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,10 @@ Required properties:
- compatible : "olpc,ap-sp"
- reg : base address and length of SoC's WTM registers
- interrupts : SP-AP interrupt
- clocks : phandle + clock-specifier for the clock that drives the WTM
- clock-names: should be "sp"

Example:
ap-sp@d4290000 {
compatible = "olpc,ap-sp";
reg = <0xd4290000 0x1000>;
interrupts = <40>;
clocks = <&soc_clocks MMP2_CLK_SP>;
clock-names = "sp";
}
14 changes: 0 additions & 14 deletions drivers/input/serio/olpc_apsp.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@
#include <linux/of.h>
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/clk.h>

/*
* The OLPC XO-1.75 and XO-4 laptops do not have a hardware PS/2 controller.
Expand Down Expand Up @@ -75,7 +74,6 @@ struct olpc_apsp {
struct serio *kbio;
struct serio *padio;
void __iomem *base;
struct clk *clk;
int open_count;
int irq;
};
Expand Down Expand Up @@ -148,17 +146,11 @@ static int olpc_apsp_open(struct serio *port)
struct olpc_apsp *priv = port->port_data;
unsigned int tmp;
unsigned long l;
int error;

if (priv->open_count++ == 0) {
error = clk_prepare_enable(priv->clk);
if (error)
return error;

l = readl(priv->base + COMMAND_FIFO_STATUS);
if (!(l & CMD_STS_MASK)) {
dev_err(priv->dev, "SP cannot accept commands.\n");
clk_disable_unprepare(priv->clk);
return -EIO;
}

Expand All @@ -179,8 +171,6 @@ static void olpc_apsp_close(struct serio *port)
/* Disable interrupt 0 */
tmp = readl(priv->base + PJ_INTERRUPT_MASK);
writel(tmp | INT_0, priv->base + PJ_INTERRUPT_MASK);

clk_disable_unprepare(priv->clk);
}
}

Expand All @@ -206,10 +196,6 @@ static int olpc_apsp_probe(struct platform_device *pdev)
if (priv->irq < 0)
return priv->irq;

priv->clk = devm_clk_get(&pdev->dev, "sp");
if (IS_ERR(priv->clk))
return PTR_ERR(priv->clk);

/* KEYBOARD */
kb_serio = kzalloc(sizeof(struct serio), GFP_KERNEL);
if (!kb_serio)
Expand Down

0 comments on commit 0113613

Please sign in to comment.