summaryrefslogtreecommitdiffstats
path: root/target/linux/omap24xx/patches-2.6.38/534-cbus-retu-wdt-remove-unused-interfaces.patch
blob: 7ce813093a93123c7f93163f6cfff5d3d0732512 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
--- a/drivers/cbus/retu-wdt.c
+++ b/drivers/cbus/retu-wdt.c
@@ -52,7 +52,6 @@ static DEFINE_MUTEX(retu_wdt_mutex);
 
 /* Current period of watchdog */
 static unsigned int period_val = RETU_WDT_DEFAULT_TIMER;
-static int counter_param = RETU_WDT_MAX_TIMER;
 
 struct retu_wdt_dev {
 	struct device		*dev;
@@ -109,56 +108,6 @@ static void retu_wdt_ping_work(struct wo
 	retu_wdt_ping_enable(wdev);
 }
 
-static ssize_t retu_wdt_period_show(struct device *dev,
-				struct device_attribute *attr, char *buf)
-{
-	/* Show current max counter */
-	return sprintf(buf, "%u\n", (u16)period_val);
-}
-
-/*
- * Note: This inteface is non-standard and likely to disappear!
- * Use /dev/watchdog instead, that's the standard.
- */
-static ssize_t retu_wdt_period_store(struct device *dev,
-				struct device_attribute *attr,
-				const char *buf, size_t count)
-{
-	unsigned int new_period;
-	int ret;
-
-#ifdef CONFIG_WATCHDOG_NOWAYOUT
-	retu_wdt_ping_disable(retu_wdt);
-#endif
-
-	if (sscanf(buf, "%u", &new_period) != 1) {
-		printk(KERN_ALERT "retu_wdt_period_store: Invalid input\n");
-		return -EINVAL;
-	}
-
-	ret = retu_modify_counter(new_period);
-	if (ret < 0)
-		return ret;
-
-	return strnlen(buf, count);
-}
-
-static ssize_t retu_wdt_counter_show(struct device *dev,
-				struct device_attribute *attr, char *buf)
-{
-	u16 counter;
-
-	/* Show current value in watchdog counter */
-	counter = retu_read_reg(dev, RETU_REG_WATCHDOG);
-
-	/* Only the 5 LSB are important */
-	return snprintf(buf, PAGE_SIZE, "%u\n", (counter & 0x3F));
-}
-
-static DEVICE_ATTR(period, S_IRUGO | S_IWUSR, retu_wdt_period_show, \
-			retu_wdt_period_store);
-static DEVICE_ATTR(counter, S_IRUGO, retu_wdt_counter_show, NULL);
-
 static int retu_wdt_open(struct inode *inode, struct file *file)
 {
 	if (test_and_set_bit(0, &retu_wdt->users))
@@ -232,18 +181,6 @@ static long retu_wdt_ioctl(struct file *
 	return 0;
 }
 
-/* Start kicking retu watchdog until user space starts doing the kicking */
-static int __devinit retu_wdt_ping(void)
-{
-#ifdef CONFIG_WATCHDOG_NOWAYOUT
-	retu_modify_counter(RETU_WDT_MAX_TIMER);
-#else
-	retu_wdt_ping_enable(retu_wdt);
-#endif
-
-	return 0;
-}
-
 static const struct file_operations retu_wdt_fops = {
 	.owner		= THIS_MODULE,
 	.write		= retu_wdt_write,
@@ -252,8 +189,6 @@ static const struct file_operations retu
 	.release	= retu_wdt_release,
 };
 
-/*----------------------------------------------------------------------------*/
-
 static int __init retu_wdt_probe(struct platform_device *pdev)
 {
 	struct retu_wdt_dev *wdev;
@@ -265,18 +200,6 @@ static int __init retu_wdt_probe(struct
 
 	wdev->dev = &pdev->dev;
 
-	ret = device_create_file(&pdev->dev, &dev_attr_period);
-	if (ret) {
-		dev_err(&pdev->dev, "Error creating sysfs period\n");
-		goto free1;
-	}
-
-	ret = device_create_file(&pdev->dev, &dev_attr_counter);
-	if (ret) {
-		dev_err(&pdev->dev, "Error creating sysfs counter\n");
-		goto free2;
-	}
-
 	platform_set_drvdata(pdev, wdev);
 	retu_wdt = wdev;
 	wdev->retu_wdt_miscdev.parent = &pdev->dev;
@@ -286,38 +209,21 @@ static int __init retu_wdt_probe(struct
 
 	ret = misc_register(&(wdev->retu_wdt_miscdev));
 	if (ret)
-		goto free3;
+		goto err_free_wdev;
 
 	INIT_DELAYED_WORK(&wdev->ping_work, retu_wdt_ping_work);
 
-	/* passed as module parameter? */
-	ret = retu_modify_counter(counter_param);
-	if (ret == -EINVAL) {
-		ret = retu_modify_counter(RETU_WDT_DEFAULT_TIMER);
-		dev_dbg(&pdev->dev, "Initializing to default value\n");
-	}
-
-	/* Kick the watchdog for kernel booting to finish */
+	/* Kick the watchdog for kernel booting to finish.
+	 * If nowayout is not set, we start the ping work. */
+#ifdef CONFIG_WATCHDOG_NOWAYOUT
 	retu_modify_counter(RETU_WDT_MAX_TIMER);
-
-	ret = retu_wdt_ping();
-	if (ret < 0) {
-		dev_err(&pdev->dev, "Failed to ping\n");
-		goto free4;
-	}
+#else
+	retu_wdt_ping_enable(retu_wdt);
+#endif
 
 	return 0;
 
-free4:
-	misc_deregister(&wdev->retu_wdt_miscdev);
-
-free3:
-	device_remove_file(&pdev->dev, &dev_attr_counter);
-
-free2:
-	device_remove_file(&pdev->dev, &dev_attr_period);
-
-free1:
+err_free_wdev:
 	kfree(wdev);
 
 	return ret;
@@ -329,8 +235,6 @@ static int __devexit retu_wdt_remove(str
 
 	wdev = platform_get_drvdata(pdev);
 	misc_deregister(&wdev->retu_wdt_miscdev);
-	device_remove_file(&pdev->dev, &dev_attr_period);
-	device_remove_file(&pdev->dev, &dev_attr_counter);
 	cancel_delayed_work_sync(&wdev->ping_work);
 	kfree(wdev);
 
@@ -356,9 +260,7 @@ static void __exit retu_wdt_exit(void)
 
 module_init(retu_wdt_init);
 module_exit(retu_wdt_exit);
-module_param(counter_param, int, 0);
 
 MODULE_DESCRIPTION("Retu WatchDog");
 MODULE_AUTHOR("Amit Kucheria");
 MODULE_LICENSE("GPL");
-