|
@@ -39,7 +39,6 @@
|
|
#include <linux/major.h>
|
|
#include <linux/major.h>
|
|
#include <linux/module.h>
|
|
#include <linux/module.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/mm.h>
|
|
-#include <linux/notifier.h>
|
|
|
|
#include <linux/of.h>
|
|
#include <linux/of.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/platform_device.h>
|
|
#include <linux/pm_runtime.h>
|
|
#include <linux/pm_runtime.h>
|
|
@@ -124,8 +123,6 @@ struct sci_port {
|
|
struct timer_list rx_timer;
|
|
struct timer_list rx_timer;
|
|
unsigned int rx_timeout;
|
|
unsigned int rx_timeout;
|
|
#endif
|
|
#endif
|
|
-
|
|
|
|
- struct notifier_block freq_transition;
|
|
|
|
};
|
|
};
|
|
|
|
|
|
#define SCI_NPORTS CONFIG_SERIAL_SH_SCI_NR_UARTS
|
|
#define SCI_NPORTS CONFIG_SERIAL_SH_SCI_NR_UARTS
|
|
@@ -1666,32 +1663,6 @@ static irqreturn_t sci_mpxed_interrupt(int irq, void *ptr)
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-/*
|
|
|
|
- * Here we define a transition notifier so that we can update all of our
|
|
|
|
- * ports' baud rate when the peripheral clock changes.
|
|
|
|
- */
|
|
|
|
-static int sci_notifier(struct notifier_block *self,
|
|
|
|
- unsigned long phase, void *p)
|
|
|
|
-{
|
|
|
|
- struct sci_port *sci_port;
|
|
|
|
- unsigned long flags;
|
|
|
|
- unsigned int i;
|
|
|
|
-
|
|
|
|
- sci_port = container_of(self, struct sci_port, freq_transition);
|
|
|
|
-
|
|
|
|
- if (phase == CPUFREQ_POSTCHANGE) {
|
|
|
|
- struct uart_port *port = &sci_port->port;
|
|
|
|
-
|
|
|
|
- spin_lock_irqsave(&port->lock, flags);
|
|
|
|
- for (i = 0; i < SCI_NUM_CLKS; i++)
|
|
|
|
- sci_port->clk_rates[i] =
|
|
|
|
- clk_get_rate(sci_port->clks[i]);
|
|
|
|
- spin_unlock_irqrestore(&port->lock, flags);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return NOTIFY_OK;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static const struct sci_irq_desc {
|
|
static const struct sci_irq_desc {
|
|
const char *desc;
|
|
const char *desc;
|
|
irq_handler_t handler;
|
|
irq_handler_t handler;
|
|
@@ -2811,9 +2782,6 @@ static int sci_remove(struct platform_device *dev)
|
|
{
|
|
{
|
|
struct sci_port *port = platform_get_drvdata(dev);
|
|
struct sci_port *port = platform_get_drvdata(dev);
|
|
|
|
|
|
- cpufreq_unregister_notifier(&port->freq_transition,
|
|
|
|
- CPUFREQ_TRANSITION_NOTIFIER);
|
|
|
|
-
|
|
|
|
uart_remove_one_port(&sci_uart_driver, &port->port);
|
|
uart_remove_one_port(&sci_uart_driver, &port->port);
|
|
|
|
|
|
sci_cleanup_single(port);
|
|
sci_cleanup_single(port);
|
|
@@ -2965,16 +2933,6 @@ static int sci_probe(struct platform_device *dev)
|
|
if (ret)
|
|
if (ret)
|
|
return ret;
|
|
return ret;
|
|
|
|
|
|
- sp->freq_transition.notifier_call = sci_notifier;
|
|
|
|
-
|
|
|
|
- ret = cpufreq_register_notifier(&sp->freq_transition,
|
|
|
|
- CPUFREQ_TRANSITION_NOTIFIER);
|
|
|
|
- if (unlikely(ret < 0)) {
|
|
|
|
- uart_remove_one_port(&sci_uart_driver, &sp->port);
|
|
|
|
- sci_cleanup_single(sp);
|
|
|
|
- return ret;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
#ifdef CONFIG_SH_STANDARD_BIOS
|
|
#ifdef CONFIG_SH_STANDARD_BIOS
|
|
sh_bios_gdb_detach();
|
|
sh_bios_gdb_detach();
|
|
#endif
|
|
#endif
|