diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 22:07:53 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 22:07:53 +0000 |
commit | 4fbe7358c7747a9165f776eb19addbb9baf7def2 (patch) | |
tree | bc7076b4f6d10c2cc2942539bb666e50f0b66954 /libdde_linux26/contrib/include/pcmcia/ss.h | |
parent | 21adb5284111190057db245cfc2b54091920c373 (diff) |
rename libdde_linux26 into libdde-linux26 to make dpkg-source happy
Diffstat (limited to 'libdde_linux26/contrib/include/pcmcia/ss.h')
-rw-r--r-- | libdde_linux26/contrib/include/pcmcia/ss.h | 294 |
1 files changed, 0 insertions, 294 deletions
diff --git a/libdde_linux26/contrib/include/pcmcia/ss.h b/libdde_linux26/contrib/include/pcmcia/ss.h deleted file mode 100644 index 9b4ac938..00000000 --- a/libdde_linux26/contrib/include/pcmcia/ss.h +++ /dev/null @@ -1,294 +0,0 @@ -/* - * ss.h - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * The initial developer of the original code is David A. Hinds - * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds - * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. - * - * (C) 1999 David A. Hinds - */ - -#ifndef _LINUX_SS_H -#define _LINUX_SS_H - -#include <linux/device.h> -#include <linux/sched.h> /* task_struct, completion */ -#include <linux/mutex.h> - -#include <pcmcia/cs_types.h> -#include <pcmcia/cs.h> -#ifdef CONFIG_CARDBUS -#include <linux/pci.h> -#endif - -/* Definitions for card status flags for GetStatus */ -#define SS_WRPROT 0x0001 -#define SS_CARDLOCK 0x0002 -#define SS_EJECTION 0x0004 -#define SS_INSERTION 0x0008 -#define SS_BATDEAD 0x0010 -#define SS_BATWARN 0x0020 -#define SS_READY 0x0040 -#define SS_DETECT 0x0080 -#define SS_POWERON 0x0100 -#define SS_GPI 0x0200 -#define SS_STSCHG 0x0400 -#define SS_CARDBUS 0x0800 -#define SS_3VCARD 0x1000 -#define SS_XVCARD 0x2000 -#define SS_PENDING 0x4000 -#define SS_ZVCARD 0x8000 - -/* InquireSocket capabilities */ -#define SS_CAP_PAGE_REGS 0x0001 -#define SS_CAP_VIRTUAL_BUS 0x0002 -#define SS_CAP_MEM_ALIGN 0x0004 -#define SS_CAP_STATIC_MAP 0x0008 -#define SS_CAP_PCCARD 0x4000 -#define SS_CAP_CARDBUS 0x8000 - -/* for GetSocket, SetSocket */ -typedef struct socket_state_t { - u_int flags; - u_int csc_mask; - u_char Vcc, Vpp; - u_char io_irq; -} socket_state_t; - -extern socket_state_t dead_socket; - -/* Socket configuration flags */ -#define SS_PWR_AUTO 0x0010 -#define SS_IOCARD 0x0020 -#define SS_RESET 0x0040 -#define SS_DMA_MODE 0x0080 -#define SS_SPKR_ENA 0x0100 -#define SS_OUTPUT_ENA 0x0200 - -/* Flags for I/O port and memory windows */ -#define MAP_ACTIVE 0x01 -#define MAP_16BIT 0x02 -#define MAP_AUTOSZ 0x04 -#define MAP_0WS 0x08 -#define MAP_WRPROT 0x10 -#define MAP_ATTRIB 0x20 -#define MAP_USE_WAIT 0x40 -#define MAP_PREFETCH 0x80 - -/* Use this just for bridge windows */ -#define MAP_IOSPACE 0x20 - -/* power hook operations */ -#define HOOK_POWER_PRE 0x01 -#define HOOK_POWER_POST 0x02 - -typedef struct pccard_io_map { - u_char map; - u_char flags; - u_short speed; - u_int start, stop; -} pccard_io_map; - -typedef struct pccard_mem_map { - u_char map; - u_char flags; - u_short speed; - u_long static_start; - u_int card_start; - struct resource *res; -} pccard_mem_map; - -typedef struct io_window_t { - u_int InUse, Config; - struct resource *res; -} io_window_t; - -#define WINDOW_MAGIC 0xB35C -typedef struct window_t { - u_short magic; - u_short index; - struct pcmcia_device *handle; - struct pcmcia_socket *sock; - pccard_mem_map ctl; -} window_t; - -/* Maximum number of IO windows per socket */ -#define MAX_IO_WIN 2 - -/* Maximum number of memory windows per socket */ -#define MAX_WIN 4 - - -/* - * Socket operations. - */ -struct pcmcia_socket; -struct pccard_resource_ops; -struct config_t; -struct pcmcia_callback; -struct user_info_t; - -struct pccard_operations { - int (*init)(struct pcmcia_socket *s); - int (*suspend)(struct pcmcia_socket *s); - int (*get_status)(struct pcmcia_socket *s, u_int *value); - int (*set_socket)(struct pcmcia_socket *s, socket_state_t *state); - int (*set_io_map)(struct pcmcia_socket *s, struct pccard_io_map *io); - int (*set_mem_map)(struct pcmcia_socket *s, struct pccard_mem_map *mem); -}; - -struct pcmcia_socket { - struct module *owner; - spinlock_t lock; - socket_state_t socket; - u_int state; - u_short functions; - u_short lock_count; - pccard_mem_map cis_mem; - void __iomem *cis_virt; - struct { - u_int AssignedIRQ; - u_int Config; - } irq; - io_window_t io[MAX_IO_WIN]; - window_t win[MAX_WIN]; - struct list_head cis_cache; - size_t fake_cis_len; - u8 *fake_cis; - - struct list_head socket_list; - struct completion socket_released; - - /* deprecated */ - unsigned int sock; /* socket number */ - - - /* socket capabilities */ - u_int features; - u_int irq_mask; - u_int map_size; - u_int io_offset; - u_char pci_irq; - struct pci_dev * cb_dev; - - - /* socket setup is done so resources should be able to be allocated. - * Only if set to 1, calls to find_{io,mem}_region are handled, and - * insertio events are actually managed by the PCMCIA layer.*/ - u8 resource_setup_done:1; - - /* It's old if resource setup is done using adjust_resource_info() */ - u8 resource_setup_old:1; - u8 resource_setup_new:1; - - u8 reserved:5; - - /* socket operations */ - struct pccard_operations * ops; - struct pccard_resource_ops * resource_ops; - void * resource_data; - - /* Zoom video behaviour is so chip specific its not worth adding - this to _ops */ - void (*zoom_video)(struct pcmcia_socket *, - int); - - /* so is power hook */ - int (*power_hook)(struct pcmcia_socket *sock, int operation); - - /* allows tuning the CB bridge before loading driver for the CB card */ -#ifdef CONFIG_CARDBUS - void (*tune_bridge)(struct pcmcia_socket *sock, struct pci_bus *bus); -#endif - - /* state thread */ - struct task_struct *thread; - struct completion thread_done; - unsigned int thread_events; - /* protects socket h/w state */ - struct mutex skt_mutex; - /* protects thread_events */ - spinlock_t thread_lock; - - /* pcmcia (16-bit) */ - struct pcmcia_callback *callback; - -#if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE) - /* The following elements refer to 16-bit PCMCIA devices inserted - * into the socket */ - struct list_head devices_list; - - /* the number of devices, used only internally and subject to - * incorrectness and change */ - u8 device_count; - - /* 16-bit state: */ - struct { - /* PCMCIA card is present in socket */ - u8 present:1; - /* "master" ioctl is used */ - u8 busy:1; - /* pcmcia module is being unloaded */ - u8 dead:1; - /* a multifunction-device add event is pending */ - u8 device_add_pending:1; - /* the pending event adds a mfc (1) or pfc (0) */ - u8 mfc_pfc:1; - - u8 reserved:3; - } pcmcia_state; - - - /* for adding further pseudo-multifunction devices */ - struct work_struct device_add; - -#ifdef CONFIG_PCMCIA_IOCTL - struct user_info_t *user; - wait_queue_head_t queue; -#endif /* CONFIG_PCMCIA_IOCTL */ -#endif /* CONFIG_PCMCIA */ - - /* cardbus (32-bit) */ -#ifdef CONFIG_CARDBUS - struct resource * cb_cis_res; - void __iomem *cb_cis_virt; -#endif /* CONFIG_CARDBUS */ - - /* socket device */ - struct device dev; - /* data internal to the socket driver */ - void *driver_data; -}; - - -/* socket drivers must define the resource operations type they use. There - * are three options: - * - pccard_static_ops iomem and ioport areas are assigned statically - * - pccard_iodyn_ops iomem areas is assigned statically, ioport - * areas dynamically - * - pccard_nonstatic_ops iomem and ioport areas are assigned dynamically. - * If this option is selected, use - * "select PCCARD_NONSTATIC" in Kconfig. - */ -extern struct pccard_resource_ops pccard_static_ops; -extern struct pccard_resource_ops pccard_iodyn_ops; -extern struct pccard_resource_ops pccard_nonstatic_ops; - -/* socket drivers are expected to use these callbacks in their .drv struct */ -extern int pcmcia_socket_dev_suspend(struct device *dev, pm_message_t state); -extern int pcmcia_socket_dev_resume(struct device *dev); - -/* socket drivers use this callback in their IRQ handler */ -extern void pcmcia_parse_events(struct pcmcia_socket *socket, - unsigned int events); - -/* to register and unregister a socket */ -extern int pcmcia_register_socket(struct pcmcia_socket *socket); -extern void pcmcia_unregister_socket(struct pcmcia_socket *socket); - - -#endif /* _LINUX_SS_H */ |