/* * Apple Onboard Audio GPIO definitions * * Copyright 2006 Johannes Berg * * GPL v2, can be found in COPYING. */ #ifndef __AOA_GPIO_H #define __AOA_GPIO_H #include #include #include typedef void (*notify_func_t)(void *data); enum notify_type { AOA_NOTIFY_HEADPHONE, AOA_NOTIFY_LINE_IN, AOA_NOTIFY_LINE_OUT, }; struct gpio_runtime; struct gpio_methods { /* for initialisation/de-initialisation of the GPIO layer */ void (*init)(struct gpio_runtime *rt); void (*exit)(struct gpio_runtime *rt); /* turn off headphone, speakers, lineout */ void (*all_amps_off)(struct gpio_runtime *rt); /* turn headphone, speakers, lineout back to previous setting */ void (*all_amps_restore)(struct gpio_runtime *rt); void (*set_headphone)(struct gpio_runtime *rt, int on); void (*set_speakers)(struct gpio_runtime *rt, int on); void (*set_lineout)(struct gpio_runtime *rt, int on); void (*set_master)(struct gpio_runtime *rt, int on); int (*get_headphone)(struct gpio_runtime *rt); int (*get_speakers)(struct gpio_runtime *rt); int (*get_lineout)(struct gpio_runtime *rt); int (*get_master)(struct gpio_runtime *rt); void (*set_hw_reset)(struct gpio_runtime *rt, int on); /* use this to be notified of any events. The notification * function is passed the data, and is called in process * context by the use of schedule_work. * The interface for it is that setting a function to NULL * removes it, and they return 0 if the operation succeeded, * and -EBUSY if the notification is already assigned by * someone else. */ int (*set_notify)(struct gpio_runtime *rt, enum notify_type type, notify_func_t notify, void *data); /* returns 0 if not plugged in, 1 if plugged in * or a negative error code */ int (*get_detect)(struct gpio_runtime *rt, enum notify_type type); }; struct gpio_notification { struct delayed_work work; notify_func_t notify; void *data; void *gpio_private; struct mutex mutex; }; struct gpio_runtime { /* to be assigned by fabric */ struct device_node *node; /* since everyone needs this pointer anyway... */ struct gpio_methods *methods; /* to be used by the gpio implementation */ int implementation_private; struct gpio_notification headphone_notify; struct gpio_notification line_in_notify; struct gpio_notification line_out_notify; }; #endif /* __AOA_GPIO_H */ put type='hidden' name='id' value='10eeb5e645b5332b24986a554046f6c9cc2c22d4'/>
diff options
context:
space:
mode:
authorBhumika Goyal <bhumirks@gmail.com>2017-01-21 12:28:58 +0530
committerDavid S. Miller <davem@davemloft.net>2017-01-23 15:58:49 -0500
commit10eeb5e645b5332b24986a554046f6c9cc2c22d4 (patch)
treeb40cfad424001399db8abf46ba4a0958df054a89 /sound/soc/codecs
parent30bd2f52e56ea35028cf1d13c21484918b6ff22d (diff)
net: xilinx: constify net_device_ops structure
Declare net_device_ops structure as const as it is only stored in the netdev_ops field of a net_device structure. This field is of type const, so net_device_ops structures having same properties can be made const too. Done using Coccinelle: @r1 disable optional_qualifier@ identifier i; position p; @@ static struct net_device_ops i@p={...}; @ok1@ identifier r1.i; position p; struct net_device ndev; @@ ndev.netdev_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 net_device_ops i; File size before: text data bss dec hex filename 6201 744 0 6945 1b21 ethernet/xilinx/xilinx_emaclite.o File size after: text data bss dec hex filename 6745 192 0 6937 1b19 ethernet/xilinx/xilinx_emaclite.o Signed-off-by: Bhumika Goyal <bhumirks@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'sound/soc/codecs')