[PATCH 7/7] ASoC: tegra: constify snd_soc_ops structures

2016-10-15 Thread Julia Lawall
Check for snd_soc_ops structures that are only stored in the ops field of a
snd_soc_dai_link structure.  This field is declared const, so snd_soc_ops
structures that have this property can be declared as const also.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// 
@r disable optional_qualifier@
identifier i;
position p;
@@
static struct snd_soc_ops i@p = { ... };

@ok1@
identifier r.i;
struct snd_soc_dai_link e;
position p;
@@
e.ops = @p;

@ok2@
identifier r.i, e;
position p;
@@
struct snd_soc_dai_link e[] = { ..., { .ops = @p, }, ..., };

@bad@
position p != {r.p,ok1.p,ok2.p};
identifier r.i;
struct snd_soc_ops e;
@@
e@i@p

@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
 struct snd_soc_ops i = { ... };
// 

The effect on the layout of the .o files is shown by the following output of
the size command, first before then after the transformation:

  textdata bss dec hex filename
   31431888 38454151527 sound/soc/tegra/tegra_alc5632.o
   31911840 38454151527 sound/soc/tegra/tegra_alc5632.o

   textdata bss dec hex filename
   36722176 768661619d8 sound/soc/tegra/tegra_max98090.o
   37202128 768661619d8 sound/soc/tegra/tegra_max98090.o

   textdata bss dec hex filename
   27701856 38450101392 sound/soc/tegra/tegra_rt5640.o
   28181808 38450101392 sound/soc/tegra/tegra_rt5640.o

   textdata bss dec hex filename
   44122176 76873561cbc sound/soc/tegra/tegra_rt5677.o
   44602128 76873561cbc sound/soc/tegra/tegra_rt5677.o

   textdata bss dec hex filename
   24421536   03978 f8a sound/soc/tegra/tegra_sgtl5000.o
   24901480   03970 f82 sound/soc/tegra/tegra_sgtl5000.o

   textdata bss dec hex filename
   21051536   03641 e39 sound/soc/tegra/tegra_wm8753.o
   21531480   03633 e31 sound/soc/tegra/tegra_wm8753.o

   textdata bss dec hex filename
   37551888 7686411190b sound/soc/tegra/tegra_wm8903.o
   38031840 7686411190b sound/soc/tegra/tegra_wm8903.o

   textdata bss dec hex filename
   21211536   03657 e49 sound/soc/tegra/trimslice.o
   21691480   03649 e41 sound/soc/tegra/trimslice.o

Signed-off-by: Julia Lawall 

---
 sound/soc/tegra/tegra_alc5632.c  |2 +-
 sound/soc/tegra/tegra_max98090.c |2 +-
 sound/soc/tegra/tegra_rt5640.c   |2 +-
 sound/soc/tegra/tegra_rt5677.c   |2 +-
 sound/soc/tegra/tegra_sgtl5000.c |2 +-
 sound/soc/tegra/tegra_wm8753.c   |2 +-
 sound/soc/tegra/tegra_wm8903.c   |2 +-
 sound/soc/tegra/trimslice.c  |2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff -u -p a/sound/soc/tegra/tegra_alc5632.c b/sound/soc/tegra/tegra_alc5632.c
--- a/sound/soc/tegra/tegra_alc5632.c
+++ b/sound/soc/tegra/tegra_alc5632.c
@@ -65,7 +65,7 @@ static int tegra_alc5632_asoc_hw_params(
return 0;
 }
 
-static struct snd_soc_ops tegra_alc5632_asoc_ops = {
+static const struct snd_soc_ops tegra_alc5632_asoc_ops = {
.hw_params = tegra_alc5632_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_max98090.c b/sound/soc/tegra/tegra_max98090.c
--- a/sound/soc/tegra/tegra_max98090.c
+++ b/sound/soc/tegra/tegra_max98090.c
@@ -93,7 +93,7 @@ static int tegra_max98090_asoc_hw_params
return 0;
 }
 
-static struct snd_soc_ops tegra_max98090_ops = {
+static const struct snd_soc_ops tegra_max98090_ops = {
.hw_params = tegra_max98090_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_rt5640.c b/sound/soc/tegra/tegra_rt5640.c
--- a/sound/soc/tegra/tegra_rt5640.c
+++ b/sound/soc/tegra/tegra_rt5640.c
@@ -76,7 +76,7 @@ static int tegra_rt5640_asoc_hw_params(s
return 0;
 }
 
-static struct snd_soc_ops tegra_rt5640_ops = {
+static const struct snd_soc_ops tegra_rt5640_ops = {
.hw_params = tegra_rt5640_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_rt5677.c b/sound/soc/tegra/tegra_rt5677.c
--- a/sound/soc/tegra/tegra_rt5677.c
+++ b/sound/soc/tegra/tegra_rt5677.c
@@ -93,7 +93,7 @@ static int tegra_rt5677_event_hp(struct
return 0;
 }
 
-static struct snd_soc_ops tegra_rt5677_ops = {
+static const struct snd_soc_ops tegra_rt5677_ops = {
.hw_params = tegra_rt5677_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_sgtl5000.c b/sound/soc/tegra/tegra_sgtl5000.c
--- a/sound/soc/tegra/tegra_sgtl5000.c
+++ b/sound/soc/tegra/tegra_sgtl5000.c
@@ -82,7 +82,7 @@ static int tegra_sgtl5000_hw_params(stru
return 0;
 }
 
-static struct snd_soc_ops tegra_sgtl5000_ops = {
+static const struct snd_soc_ops tegra_sgtl5000_ops = {
.hw_params = tegra_sgtl5000_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_wm8753.c 

[PATCH 7/7] ASoC: tegra: constify snd_soc_ops structures

2016-10-15 Thread Julia Lawall
Check for snd_soc_ops structures that are only stored in the ops field of a
snd_soc_dai_link structure.  This field is declared const, so snd_soc_ops
structures that have this property can be declared as const also.

The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)

// 
@r disable optional_qualifier@
identifier i;
position p;
@@
static struct snd_soc_ops i@p = { ... };

@ok1@
identifier r.i;
struct snd_soc_dai_link e;
position p;
@@
e.ops = @p;

@ok2@
identifier r.i, e;
position p;
@@
struct snd_soc_dai_link e[] = { ..., { .ops = @p, }, ..., };

@bad@
position p != {r.p,ok1.p,ok2.p};
identifier r.i;
struct snd_soc_ops e;
@@
e@i@p

@depends on !bad disable optional_qualifier@
identifier r.i;
@@
static
+const
 struct snd_soc_ops i = { ... };
// 

The effect on the layout of the .o files is shown by the following output of
the size command, first before then after the transformation:

  textdata bss dec hex filename
   31431888 38454151527 sound/soc/tegra/tegra_alc5632.o
   31911840 38454151527 sound/soc/tegra/tegra_alc5632.o

   textdata bss dec hex filename
   36722176 768661619d8 sound/soc/tegra/tegra_max98090.o
   37202128 768661619d8 sound/soc/tegra/tegra_max98090.o

   textdata bss dec hex filename
   27701856 38450101392 sound/soc/tegra/tegra_rt5640.o
   28181808 38450101392 sound/soc/tegra/tegra_rt5640.o

   textdata bss dec hex filename
   44122176 76873561cbc sound/soc/tegra/tegra_rt5677.o
   44602128 76873561cbc sound/soc/tegra/tegra_rt5677.o

   textdata bss dec hex filename
   24421536   03978 f8a sound/soc/tegra/tegra_sgtl5000.o
   24901480   03970 f82 sound/soc/tegra/tegra_sgtl5000.o

   textdata bss dec hex filename
   21051536   03641 e39 sound/soc/tegra/tegra_wm8753.o
   21531480   03633 e31 sound/soc/tegra/tegra_wm8753.o

   textdata bss dec hex filename
   37551888 7686411190b sound/soc/tegra/tegra_wm8903.o
   38031840 7686411190b sound/soc/tegra/tegra_wm8903.o

   textdata bss dec hex filename
   21211536   03657 e49 sound/soc/tegra/trimslice.o
   21691480   03649 e41 sound/soc/tegra/trimslice.o

Signed-off-by: Julia Lawall 

---
 sound/soc/tegra/tegra_alc5632.c  |2 +-
 sound/soc/tegra/tegra_max98090.c |2 +-
 sound/soc/tegra/tegra_rt5640.c   |2 +-
 sound/soc/tegra/tegra_rt5677.c   |2 +-
 sound/soc/tegra/tegra_sgtl5000.c |2 +-
 sound/soc/tegra/tegra_wm8753.c   |2 +-
 sound/soc/tegra/tegra_wm8903.c   |2 +-
 sound/soc/tegra/trimslice.c  |2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff -u -p a/sound/soc/tegra/tegra_alc5632.c b/sound/soc/tegra/tegra_alc5632.c
--- a/sound/soc/tegra/tegra_alc5632.c
+++ b/sound/soc/tegra/tegra_alc5632.c
@@ -65,7 +65,7 @@ static int tegra_alc5632_asoc_hw_params(
return 0;
 }
 
-static struct snd_soc_ops tegra_alc5632_asoc_ops = {
+static const struct snd_soc_ops tegra_alc5632_asoc_ops = {
.hw_params = tegra_alc5632_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_max98090.c b/sound/soc/tegra/tegra_max98090.c
--- a/sound/soc/tegra/tegra_max98090.c
+++ b/sound/soc/tegra/tegra_max98090.c
@@ -93,7 +93,7 @@ static int tegra_max98090_asoc_hw_params
return 0;
 }
 
-static struct snd_soc_ops tegra_max98090_ops = {
+static const struct snd_soc_ops tegra_max98090_ops = {
.hw_params = tegra_max98090_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_rt5640.c b/sound/soc/tegra/tegra_rt5640.c
--- a/sound/soc/tegra/tegra_rt5640.c
+++ b/sound/soc/tegra/tegra_rt5640.c
@@ -76,7 +76,7 @@ static int tegra_rt5640_asoc_hw_params(s
return 0;
 }
 
-static struct snd_soc_ops tegra_rt5640_ops = {
+static const struct snd_soc_ops tegra_rt5640_ops = {
.hw_params = tegra_rt5640_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_rt5677.c b/sound/soc/tegra/tegra_rt5677.c
--- a/sound/soc/tegra/tegra_rt5677.c
+++ b/sound/soc/tegra/tegra_rt5677.c
@@ -93,7 +93,7 @@ static int tegra_rt5677_event_hp(struct
return 0;
 }
 
-static struct snd_soc_ops tegra_rt5677_ops = {
+static const struct snd_soc_ops tegra_rt5677_ops = {
.hw_params = tegra_rt5677_asoc_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_sgtl5000.c b/sound/soc/tegra/tegra_sgtl5000.c
--- a/sound/soc/tegra/tegra_sgtl5000.c
+++ b/sound/soc/tegra/tegra_sgtl5000.c
@@ -82,7 +82,7 @@ static int tegra_sgtl5000_hw_params(stru
return 0;
 }
 
-static struct snd_soc_ops tegra_sgtl5000_ops = {
+static const struct snd_soc_ops tegra_sgtl5000_ops = {
.hw_params = tegra_sgtl5000_hw_params,
 };
 
diff -u -p a/sound/soc/tegra/tegra_wm8753.c b/sound/soc/tegra/tegra_wm8753.c
---