block: get rid of elv_insert() interface
[linux-2.6.git] / include / linux / ti_wilink_st.h
index 010cda7..7071ec5 100644 (file)
 #define TI_WILINK_ST_H
 
 /**
- * enum kim_gpio_state - Few protocols such as FM have ACTIVE LOW
- *     gpio states for their chip/core enable gpios
- */
-enum kim_gpio_state {
-       KIM_GPIO_INACTIVE,
-       KIM_GPIO_ACTIVE,
-};
-
-/**
  * enum proto-type - The protocol on WiLink chips which share a
  *     common physical interface like UART.
  */
@@ -166,6 +157,11 @@ struct st_data_s {
        void *kim_data;
 };
 
+/*
+ * wrapper around tty->ops->write_room to check
+ * availability during firmware download
+ */
+int st_get_uart_wr_room(struct st_data_s *st_gdata);
 /**
  * st_int_write -
  * point this to tty->driver->write or tty->ops->write
@@ -208,6 +204,7 @@ void gps_chrdrv_stub_init(void);
  */
 #define LDISC_TIME     1000
 #define CMD_RESP_TIME  800
+#define CMD_WR_TIME    5000
 #define MAKEWORD(a, b)  ((unsigned short)(((unsigned char)(a)) \
        | ((unsigned short)((unsigned char)(b))) << 8))
 
@@ -246,14 +243,11 @@ struct chip_version {
  *     the ldisc was properly installed.
  * @resp_buffer: data buffer for the .bts fw file name.
  * @fw_entry: firmware class struct to request/release the fw.
- * @gpios: the list of core/chip enable gpios for BT, FM and GPS cores.
  * @rx_state: the rx state for kim's receive func during fw download.
  * @rx_count: the rx count for the kim's receive func during fw download.
  * @rx_skb: all of fw data might not come at once, and hence data storage for
  *     whole of the fw response, only HCI_EVENTs and hence diff from ST's
  *     response.
- * @rfkill: rfkill data for each of the cores to be registered with rfkill.
- * @rf_protos: proto types of the data registered with rfkill sub-system.
  * @core_data: ST core's data, which mainly is the tty's disc_data
  * @version: chip version available via a sysfs entry.
  *
@@ -264,12 +258,10 @@ struct kim_data_s {
        struct completion kim_rcvd, ldisc_installed;
        char resp_buffer[30];
        const struct firmware *fw_entry;
-       long gpios[ST_MAX_CHANNELS];
+       long nshutdown;
        unsigned long rx_state;
        unsigned long rx_count;
        struct sk_buff *rx_skb;
-       struct rfkill *rfkill[ST_MAX_CHANNELS];
-       enum proto_type rf_protos[ST_MAX_CHANNELS];
        struct st_data_s *core_data;
        struct chip_version version;
        unsigned char ldisc_install;
@@ -287,7 +279,6 @@ long st_kim_start(void *);
 long st_kim_stop(void *);
 
 void st_kim_recv(void *, const unsigned char *, long count);
-void st_kim_chip_toggle(enum proto_type, enum kim_gpio_state);
 void st_kim_complete(void *);
 void kim_st_list_protocols(struct st_data_s *, void *);
 
@@ -420,7 +411,7 @@ struct gps_event_hdr {
 
 /* platform data */
 struct ti_st_plat_data {
-       long gpios[ST_MAX_CHANNELS]; /* BT, FM and GPS */
+       long nshutdown_gpio;
        unsigned char dev_name[UART_DEV_NAME_LEN]; /* uart name */
        unsigned char flow_cntrl; /* flow control flag */
        unsigned long baud_rate;