Skip to content
  • Bhumika Goyal's avatar
    pwm: constify pwm_ops structures · b2ec9efc
    Bhumika Goyal authored and Thierry Reding's avatar Thierry Reding committed
    
    
    Declare pwm_ops structures as const as they are only stored in the ops
    field of a pwm_chip structure. This field is of type const struct pwm_ops
    *, so pwm_ops structures having this property can be declared as const.
    Done using Coccinelle:
    
    @r1 disable optional_qualifier@
    identifier i;
    position p;
    @@
    static struct pwm_ops i@p={...};
    
    @ok1@
    identifier r1.i;
    position p;
    struct pxa_pwm_chip pwm;
    struct bfin_pwm_chip bwm;
    struct vt8500_chip vp;
    struct imx_chip icp;
    @@
    (
    pwm.chip.ops=&i@p
    |
    bwm.chip.ops=&i@p
    |
    vp.chip.ops=&i@p
    |
    icp.chip.ops=&i@p
    )
    
    @bad@
    position p!={r1.p,ok1.p};
    identifier r1.i;
    @@
    i@p
    
    @depends on !bad disable optional_qualifier@
    identifier r1.i;
    @@
    +const
    struct pwm_ops i;
    
    File size details:
    
       text	   data	    bss	    dec	    hex	filename
       1646	    328	      0	   1974	    7b6	drivers/pwm/pwm-imx.o
       1742	    224	      0	   1966	    7ae	drivers/pwm/pwm-imx.o
    
       1941	    296	      0	   2237	    8bd	drivers/pwm/pwm-pxa.o
       2037	    192	      0	   2229	    8b5	drivers/pwm/pwm-pxa.o
    
       1946	    296	      0	   2242	    8c2	drivers/pwm/pwm-vt8500.o
       2050	    192	      0	   2242	    8c2	drivers/pwm/pwm-vt8500.o
    
    The drivers/pwm/pwm-bfin.o file did not compile.
    
    Signed-off-by: default avatarBhumika Goyal <bhumirks@gmail.com>
    Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
    b2ec9efc