You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.6 KiB
92 lines
2.6 KiB
--- a/tn7dsl.c
|
|
+++ b/tn7dsl.c
|
|
@@ -209,7 +209,7 @@ led_reg_t ledreg[2];
|
|
static struct led_funcs ledreg[2];
|
|
#endif
|
|
|
|
-#define DEV_DSLMOD CTL_UNNUMBERED
|
|
+#define DEV_DSLMOD 0
|
|
#define MAX_STR_SIZE 256
|
|
#define DSL_MOD_SIZE 256
|
|
|
|
@@ -350,8 +350,8 @@ static void tn7dsl_chng_modulation(void*
|
|
static unsigned int tn7dsl_set_modulation(void* data, int flag);
|
|
static void tn7dsl_ctrl_fineGain(int value);
|
|
static void tn7dsl_set_fineGainValue(int value);
|
|
-static int dslmod_sysctl (ctl_table * ctl, int write, struct file *filp,
|
|
- void *buffer, size_t * lenp);
|
|
+static int dslmod_sysctl (ctl_table * ctl, int write, void *buffer,
|
|
+ size_t * lenp, loff_t *ppos);
|
|
static void tn7dsl_register_dslss_led(void);
|
|
void tn7dsl_dslmod_sysctl_register(void);
|
|
void tn7dsl_dslmod_sysctl_unregister(void);
|
|
@@ -3582,8 +3582,8 @@ unsigned int tn7dsl_get_memory(unsigned
|
|
|
|
|
|
|
|
-static int dslmod_sysctl(ctl_table *ctl, int write, struct file * filp,
|
|
- void *buffer, size_t *lenp)
|
|
+static int dslmod_sysctl(ctl_table *ctl, int write, void *buffer,
|
|
+ size_t *lenp, loff_t *ppos)
|
|
{
|
|
char *ptr;
|
|
int ret, len = 0;
|
|
@@ -3595,7 +3595,7 @@ static int dslmod_sysctl(ctl_table *ctl,
|
|
char mod_req[16] = { '\t' };
|
|
char fst_byt;
|
|
|
|
- if (!*lenp || (filp->f_pos && !write))
|
|
+ if (!*lenp || (*ppos && !write))
|
|
{
|
|
*lenp = 0;
|
|
return 0;
|
|
@@ -3605,9 +3605,9 @@ static int dslmod_sysctl(ctl_table *ctl,
|
|
*/
|
|
if(write)
|
|
{
|
|
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
|
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
|
|
|
|
- switch (ctl->ctl_name)
|
|
+ switch ((long)ctl->extra2)
|
|
{
|
|
case DEV_DSLMOD:
|
|
ptr = strpbrk(info, " \t");
|
|
@@ -3691,14 +3691,21 @@ static int dslmod_sysctl(ctl_table *ctl,
|
|
else
|
|
{
|
|
len += sprintf(info+len, mod_req);
|
|
- ret = proc_dostring(ctl, write, filp, buffer, lenp, 0);
|
|
+ ret = proc_dostring(ctl, write, buffer, lenp, ppos);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
|
|
ctl_table dslmod_table[] = {
|
|
- {DEV_DSLMOD, "dslmod", info, DSL_MOD_SIZE, 0644, NULL, NULL, &dslmod_sysctl, &sysctl_string}
|
|
+ {
|
|
+ .procname = "dslmod",
|
|
+ .data = info,
|
|
+ .maxlen = DSL_MOD_SIZE,
|
|
+ .mode = 0644,
|
|
+ .proc_handler = &dslmod_sysctl,
|
|
+ .extra2 = (void *)DEV_DSLMOD,
|
|
+ }
|
|
,
|
|
{0}
|
|
};
|
|
@@ -3706,7 +3713,12 @@ ctl_table dslmod_table[] = {
|
|
/* Make sure that /proc/sys/dev is there */
|
|
ctl_table dslmod_root_table[] = {
|
|
#ifdef CONFIG_PROC_FS
|
|
- {CTL_DEV, "dev", NULL, 0, 0555, dslmod_table}
|
|
+ {
|
|
+ .procname = "dev",
|
|
+ .maxlen = 0,
|
|
+ .mode = 0555,
|
|
+ .child = dslmod_table,
|
|
+ }
|
|
,
|
|
#endif /* CONFIG_PROC_FS */
|
|
{0}
|
|
|