Merge remote branch 'origin' into secretlab/next-spi
This commit is contained in:
commit
b1e50ebcf2
6890 changed files with 470517 additions and 215344 deletions
|
|
@ -94,6 +94,7 @@ header-y += if_ppp.h
|
|||
header-y += if_slip.h
|
||||
header-y += if_strip.h
|
||||
header-y += if_tun.h
|
||||
header-y += if_x25.h
|
||||
header-y += in_route.h
|
||||
header-y += ioctl.h
|
||||
header-y += ip6_tunnel.h
|
||||
|
|
|
|||
|
|
@ -116,11 +116,12 @@ extern unsigned long acpi_realmode_flags;
|
|||
|
||||
int acpi_register_gsi (struct device *dev, u32 gsi, int triggering, int polarity);
|
||||
int acpi_gsi_to_irq (u32 gsi, unsigned int *irq);
|
||||
int acpi_isa_irq_to_gsi (unsigned isa_irq, u32 *gsi);
|
||||
|
||||
#ifdef CONFIG_X86_IO_APIC
|
||||
extern int acpi_get_override_irq(int bus_irq, int *trigger, int *polarity);
|
||||
extern int acpi_get_override_irq(u32 gsi, int *trigger, int *polarity);
|
||||
#else
|
||||
#define acpi_get_override_irq(bus, trigger, polarity) (-1)
|
||||
#define acpi_get_override_irq(gsi, trigger, polarity) (-1)
|
||||
#endif
|
||||
/*
|
||||
* This function undoes the effect of one call to acpi_register_gsi().
|
||||
|
|
|
|||
29
include/linux/ahci_platform.h
Normal file
29
include/linux/ahci_platform.h
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* AHCI SATA platform driver
|
||||
*
|
||||
* Copyright 2004-2005 Red Hat, Inc.
|
||||
* Jeff Garzik <jgarzik@pobox.com>
|
||||
* Copyright 2010 MontaVista Software, LLC.
|
||||
* Anton Vorontsov <avorontsov@ru.mvista.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2, or (at your option)
|
||||
* any later version.
|
||||
*/
|
||||
|
||||
#ifndef _AHCI_PLATFORM_H
|
||||
#define _AHCI_PLATFORM_H
|
||||
|
||||
struct device;
|
||||
struct ata_port_info;
|
||||
|
||||
struct ahci_platform_data {
|
||||
int (*init)(struct device *dev);
|
||||
void (*exit)(struct device *dev);
|
||||
const struct ata_port_info *ata_port_info;
|
||||
unsigned int force_port_map;
|
||||
unsigned int mask_port_map;
|
||||
};
|
||||
|
||||
#endif /* _AHCI_PLATFORM_H */
|
||||
16
include/linux/altera_jtaguart.h
Normal file
16
include/linux/altera_jtaguart.h
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
/*
|
||||
* altera_jtaguart.h -- Altera JTAG UART driver defines.
|
||||
*/
|
||||
|
||||
#ifndef __ALTJUART_H
|
||||
#define __ALTJUART_H
|
||||
|
||||
#define ALTERA_JTAGUART_MAJOR 204
|
||||
#define ALTERA_JTAGUART_MINOR 186
|
||||
|
||||
struct altera_jtaguart_platform_uart {
|
||||
unsigned long mapbase; /* Physical address base */
|
||||
unsigned int irq; /* Interrupt vector */
|
||||
};
|
||||
|
||||
#endif /* __ALTJUART_H */
|
||||
14
include/linux/altera_uart.h
Normal file
14
include/linux/altera_uart.h
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
/*
|
||||
* altera_uart.h -- Altera UART driver defines.
|
||||
*/
|
||||
|
||||
#ifndef __ALTUART_H
|
||||
#define __ALTUART_H
|
||||
|
||||
struct altera_uart_platform_uart {
|
||||
unsigned long mapbase; /* Physical address base */
|
||||
unsigned int irq; /* Interrupt vector */
|
||||
unsigned int uartclk; /* UART clock rate */
|
||||
};
|
||||
|
||||
#endif /* __ALTUART_H */
|
||||
|
|
@ -6,8 +6,29 @@
|
|||
|
||||
#include <linux/mmc/host.h>
|
||||
|
||||
/**
|
||||
* struct mmci_platform_data - platform configuration for the MMCI
|
||||
* (also known as PL180) block.
|
||||
* @f_max: the maximum operational frequency for this host in this
|
||||
* platform configuration. When this is specified it takes precedence
|
||||
* over the module parameter for the same frequency.
|
||||
* @ocr_mask: available voltages on the 4 pins from the block, this
|
||||
* is ignored if a regulator is used, see the MMC_VDD_* masks in
|
||||
* mmc/host.h
|
||||
* @translate_vdd: a callback function to translate a MMC_VDD_*
|
||||
* mask into a value to be binary or:ed and written into the
|
||||
* MMCIPWR register of the block
|
||||
* @status: if no GPIO read function was given to the block in
|
||||
* gpio_wp (below) this function will be called to determine
|
||||
* whether a card is present in the MMC slot or not
|
||||
* @gpio_wp: read this GPIO pin to see if the card is write protected
|
||||
* @gpio_cd: read this GPIO pin to detect card insertion
|
||||
* @capabilities: the capabilities of the block as implemented in
|
||||
* this platform, signify anything MMC_CAP_* from mmc/host.h
|
||||
*/
|
||||
struct mmci_platform_data {
|
||||
unsigned int ocr_mask; /* available voltages */
|
||||
unsigned int f_max;
|
||||
unsigned int ocr_mask;
|
||||
u32 (*translate_vdd)(struct device *, unsigned int);
|
||||
unsigned int (*status)(struct device *);
|
||||
int gpio_wp;
|
||||
|
|
|
|||
|
|
@ -467,7 +467,7 @@ enum ata_ioctls {
|
|||
|
||||
/* core structures */
|
||||
|
||||
struct ata_prd {
|
||||
struct ata_bmdma_prd {
|
||||
__le32 addr;
|
||||
__le32 flags_len;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <linux/kernel.h>
|
||||
#include <linux/fs.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/timer.h>
|
||||
#include <linux/writeback.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
|
|
@ -88,6 +89,8 @@ struct backing_dev_info {
|
|||
|
||||
struct device *dev;
|
||||
|
||||
struct timer_list laptop_mode_wb_timer;
|
||||
|
||||
#ifdef CONFIG_DEBUG_FS
|
||||
struct dentry *debug_dir;
|
||||
struct dentry *debug_stats;
|
||||
|
|
@ -103,9 +106,10 @@ int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev);
|
|||
void bdi_unregister(struct backing_dev_info *bdi);
|
||||
int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int);
|
||||
void bdi_start_writeback(struct backing_dev_info *bdi, struct super_block *sb,
|
||||
long nr_pages);
|
||||
long nr_pages, int sb_locked);
|
||||
int bdi_writeback_task(struct bdi_writeback *wb);
|
||||
int bdi_has_dirty_io(struct backing_dev_info *bdi);
|
||||
void bdi_arm_supers_timer(void);
|
||||
|
||||
extern spinlock_t bdi_lock;
|
||||
extern struct list_head bdi_list;
|
||||
|
|
|
|||
|
|
@ -10,6 +10,11 @@
|
|||
#define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long))
|
||||
#endif
|
||||
|
||||
extern unsigned int __sw_hweight8(unsigned int w);
|
||||
extern unsigned int __sw_hweight16(unsigned int w);
|
||||
extern unsigned int __sw_hweight32(unsigned int w);
|
||||
extern unsigned long __sw_hweight64(__u64 w);
|
||||
|
||||
/*
|
||||
* Include this here because some architectures need generic_ffs/fls in
|
||||
* scope
|
||||
|
|
@ -44,31 +49,6 @@ static inline unsigned long hweight_long(unsigned long w)
|
|||
return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clearly slow versions of the hweightN() functions, their benefit is
|
||||
* of course compile time evaluation of constant arguments.
|
||||
*/
|
||||
#define HWEIGHT8(w) \
|
||||
( BUILD_BUG_ON_ZERO(!__builtin_constant_p(w)) + \
|
||||
(!!((w) & (1ULL << 0))) + \
|
||||
(!!((w) & (1ULL << 1))) + \
|
||||
(!!((w) & (1ULL << 2))) + \
|
||||
(!!((w) & (1ULL << 3))) + \
|
||||
(!!((w) & (1ULL << 4))) + \
|
||||
(!!((w) & (1ULL << 5))) + \
|
||||
(!!((w) & (1ULL << 6))) + \
|
||||
(!!((w) & (1ULL << 7))) )
|
||||
|
||||
#define HWEIGHT16(w) (HWEIGHT8(w) + HWEIGHT8((w) >> 8))
|
||||
#define HWEIGHT32(w) (HWEIGHT16(w) + HWEIGHT16((w) >> 16))
|
||||
#define HWEIGHT64(w) (HWEIGHT32(w) + HWEIGHT32((w) >> 32))
|
||||
|
||||
/*
|
||||
* Type invariant version that simply casts things to the
|
||||
* largest type.
|
||||
*/
|
||||
#define HWEIGHT(w) HWEIGHT64((u64)(w))
|
||||
|
||||
/**
|
||||
* rol32 - rotate a 32-bit value left
|
||||
* @word: value to rotate
|
||||
|
|
|
|||
|
|
@ -186,15 +186,19 @@ struct request {
|
|||
};
|
||||
|
||||
/*
|
||||
* two pointers are available for the IO schedulers, if they need
|
||||
* Three pointers are available for the IO schedulers, if they need
|
||||
* more they have to dynamically allocate it.
|
||||
*/
|
||||
void *elevator_private;
|
||||
void *elevator_private2;
|
||||
void *elevator_private3;
|
||||
|
||||
struct gendisk *rq_disk;
|
||||
unsigned long start_time;
|
||||
|
||||
#ifdef CONFIG_BLK_CGROUP
|
||||
unsigned long long start_time_ns;
|
||||
unsigned long long io_start_time_ns; /* when passed to hardware */
|
||||
#endif
|
||||
/* Number of scatter-gather DMA addr+len pairs after
|
||||
* physical address coalescing is performed.
|
||||
*/
|
||||
|
|
@ -917,7 +921,12 @@ extern void blk_abort_queue(struct request_queue *);
|
|||
*/
|
||||
extern struct request_queue *blk_init_queue_node(request_fn_proc *rfn,
|
||||
spinlock_t *lock, int node_id);
|
||||
extern struct request_queue *blk_init_allocated_queue_node(struct request_queue *,
|
||||
request_fn_proc *,
|
||||
spinlock_t *, int node_id);
|
||||
extern struct request_queue *blk_init_queue(request_fn_proc *, spinlock_t *);
|
||||
extern struct request_queue *blk_init_allocated_queue(struct request_queue *,
|
||||
request_fn_proc *, spinlock_t *);
|
||||
extern void blk_cleanup_queue(struct request_queue *);
|
||||
extern void blk_queue_make_request(struct request_queue *, make_request_fn *);
|
||||
extern void blk_queue_bounce_limit(struct request_queue *, u64);
|
||||
|
|
@ -994,20 +1003,25 @@ static inline struct request *blk_map_queue_find_tag(struct blk_queue_tag *bqt,
|
|||
return NULL;
|
||||
return bqt->tag_index[tag];
|
||||
}
|
||||
|
||||
extern int blkdev_issue_flush(struct block_device *, sector_t *);
|
||||
#define DISCARD_FL_WAIT 0x01 /* wait for completion */
|
||||
#define DISCARD_FL_BARRIER 0x02 /* issue DISCARD_BARRIER request */
|
||||
extern int blkdev_issue_discard(struct block_device *, sector_t sector,
|
||||
sector_t nr_sects, gfp_t, int flags);
|
||||
|
||||
enum{
|
||||
BLKDEV_WAIT, /* wait for completion */
|
||||
BLKDEV_BARRIER, /*issue request with barrier */
|
||||
};
|
||||
#define BLKDEV_IFL_WAIT (1 << BLKDEV_WAIT)
|
||||
#define BLKDEV_IFL_BARRIER (1 << BLKDEV_BARRIER)
|
||||
extern int blkdev_issue_flush(struct block_device *, gfp_t, sector_t *,
|
||||
unsigned long);
|
||||
extern int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
|
||||
sector_t nr_sects, gfp_t gfp_mask, unsigned long flags);
|
||||
extern int blkdev_issue_zeroout(struct block_device *bdev, sector_t sector,
|
||||
sector_t nr_sects, gfp_t gfp_mask, unsigned long flags);
|
||||
static inline int sb_issue_discard(struct super_block *sb,
|
||||
sector_t block, sector_t nr_blocks)
|
||||
{
|
||||
block <<= (sb->s_blocksize_bits - 9);
|
||||
nr_blocks <<= (sb->s_blocksize_bits - 9);
|
||||
return blkdev_issue_discard(sb->s_bdev, block, nr_blocks, GFP_KERNEL,
|
||||
DISCARD_FL_BARRIER);
|
||||
BLKDEV_IFL_WAIT | BLKDEV_IFL_BARRIER);
|
||||
}
|
||||
|
||||
extern int blk_verify_command(unsigned char *cmd, fmode_t has_write_perm);
|
||||
|
|
@ -1196,6 +1210,39 @@ static inline void put_dev_sector(Sector p)
|
|||
struct work_struct;
|
||||
int kblockd_schedule_work(struct request_queue *q, struct work_struct *work);
|
||||
|
||||
#ifdef CONFIG_BLK_CGROUP
|
||||
static inline void set_start_time_ns(struct request *req)
|
||||
{
|
||||
req->start_time_ns = sched_clock();
|
||||
}
|
||||
|
||||
static inline void set_io_start_time_ns(struct request *req)
|
||||
{
|
||||
req->io_start_time_ns = sched_clock();
|
||||
}
|
||||
|
||||
static inline uint64_t rq_start_time_ns(struct request *req)
|
||||
{
|
||||
return req->start_time_ns;
|
||||
}
|
||||
|
||||
static inline uint64_t rq_io_start_time_ns(struct request *req)
|
||||
{
|
||||
return req->io_start_time_ns;
|
||||
}
|
||||
#else
|
||||
static inline void set_start_time_ns(struct request *req) {}
|
||||
static inline void set_io_start_time_ns(struct request *req) {}
|
||||
static inline uint64_t rq_start_time_ns(struct request *req)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
static inline uint64_t rq_io_start_time_ns(struct request *req)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#define MODULE_ALIAS_BLOCKDEV(major,minor) \
|
||||
MODULE_ALIAS("block-major-" __stringify(major) "-" __stringify(minor))
|
||||
#define MODULE_ALIAS_BLOCKDEV_MAJOR(major) \
|
||||
|
|
@ -1283,10 +1330,11 @@ struct block_device_operations {
|
|||
int (*direct_access) (struct block_device *, sector_t,
|
||||
void **, unsigned long *);
|
||||
int (*media_changed) (struct gendisk *);
|
||||
unsigned long long (*set_capacity) (struct gendisk *,
|
||||
unsigned long long);
|
||||
void (*unlock_native_capacity) (struct gendisk *);
|
||||
int (*revalidate_disk) (struct gendisk *);
|
||||
int (*getgeo)(struct block_device *, struct hd_geometry *);
|
||||
/* this callback is with swap_lock and sometimes page table lock held */
|
||||
void (*swap_slot_free_notify) (struct block_device *, unsigned long);
|
||||
struct module *owner;
|
||||
};
|
||||
|
||||
|
|
|
|||
165
include/linux/caif/caif_socket.h
Normal file
165
include/linux/caif/caif_socket.h
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
/* linux/caif_socket.h
|
||||
* CAIF Definitions for CAIF socket and network layer
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_CAIF_SOCKET_H
|
||||
#define _LINUX_CAIF_SOCKET_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/socket.h>
|
||||
#else
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
/**
|
||||
* enum caif_link_selector - Physical Link Selection.
|
||||
* @CAIF_LINK_HIGH_BANDW: Physical interface for high-bandwidth
|
||||
* traffic.
|
||||
* @CAIF_LINK_LOW_LATENCY: Physical interface for low-latency
|
||||
* traffic.
|
||||
*
|
||||
* CAIF Link Layers can register their link properties.
|
||||
* This enum is used for choosing between CAIF Link Layers when
|
||||
* setting up CAIF Channels when multiple CAIF Link Layers exists.
|
||||
*/
|
||||
enum caif_link_selector {
|
||||
CAIF_LINK_HIGH_BANDW,
|
||||
CAIF_LINK_LOW_LATENCY
|
||||
};
|
||||
|
||||
/**
|
||||
* enum caif_channel_priority - CAIF channel priorities.
|
||||
*
|
||||
* @CAIF_PRIO_MIN: Min priority for a channel.
|
||||
* @CAIF_PRIO_LOW: Low-priority channel.
|
||||
* @CAIF_PRIO_NORMAL: Normal/default priority level.
|
||||
* @CAIF_PRIO_HIGH: High priority level
|
||||
* @CAIF_PRIO_MAX: Max priority for channel
|
||||
*
|
||||
* Priority can be set on CAIF Channels in order to
|
||||
* prioritize between traffic on different CAIF Channels.
|
||||
* These priority levels are recommended, but the priority value
|
||||
* is not restricted to the values defined in this enum, any value
|
||||
* between CAIF_PRIO_MIN and CAIF_PRIO_MAX could be used.
|
||||
*/
|
||||
enum caif_channel_priority {
|
||||
CAIF_PRIO_MIN = 0x01,
|
||||
CAIF_PRIO_LOW = 0x04,
|
||||
CAIF_PRIO_NORMAL = 0x0f,
|
||||
CAIF_PRIO_HIGH = 0x14,
|
||||
CAIF_PRIO_MAX = 0x1F
|
||||
};
|
||||
|
||||
/**
|
||||
* enum caif_protocol_type - CAIF Channel type.
|
||||
* @CAIFPROTO_AT: Classic AT channel.
|
||||
* @CAIFPROTO_DATAGRAM: Datagram channel.
|
||||
* @CAIFPROTO_DATAGRAM_LOOP: Datagram loopback channel, used for testing.
|
||||
* @CAIFPROTO_UTIL: Utility (Psock) channel.
|
||||
* @CAIFPROTO_RFM: Remote File Manager
|
||||
*
|
||||
* This enum defines the CAIF Channel type to be used. This defines
|
||||
* the service to connect to on the modem.
|
||||
*/
|
||||
enum caif_protocol_type {
|
||||
CAIFPROTO_AT,
|
||||
CAIFPROTO_DATAGRAM,
|
||||
CAIFPROTO_DATAGRAM_LOOP,
|
||||
CAIFPROTO_UTIL,
|
||||
CAIFPROTO_RFM,
|
||||
_CAIFPROTO_MAX
|
||||
};
|
||||
#define CAIFPROTO_MAX _CAIFPROTO_MAX
|
||||
|
||||
/**
|
||||
* enum caif_at_type - AT Service Endpoint
|
||||
* @CAIF_ATTYPE_PLAIN: Connects to a plain vanilla AT channel.
|
||||
*/
|
||||
enum caif_at_type {
|
||||
CAIF_ATTYPE_PLAIN = 2
|
||||
};
|
||||
|
||||
/**
|
||||
* struct sockaddr_caif - the sockaddr structure for CAIF sockets.
|
||||
* @family: Address family number, must be AF_CAIF.
|
||||
* @u: Union of address data 'switched' by family.
|
||||
* :
|
||||
* @u.at: Applies when family = CAIFPROTO_AT.
|
||||
*
|
||||
* @u.at.type: Type of AT link to set up (enum caif_at_type).
|
||||
*
|
||||
* @u.util: Applies when family = CAIFPROTO_UTIL
|
||||
*
|
||||
* @u.util.service: Utility service name.
|
||||
*
|
||||
* @u.dgm: Applies when family = CAIFPROTO_DATAGRAM
|
||||
*
|
||||
* @u.dgm.connection_id: Datagram connection id.
|
||||
*
|
||||
* @u.dgm.nsapi: NSAPI of the PDP-Context.
|
||||
*
|
||||
* @u.rfm: Applies when family = CAIFPROTO_RFM
|
||||
*
|
||||
* @u.rfm.connection_id: Connection ID for RFM.
|
||||
*
|
||||
* @u.rfm.volume: Volume to mount.
|
||||
*
|
||||
* Description:
|
||||
* This structure holds the connect parameters used for setting up a
|
||||
* CAIF Channel. It defines the service to connect to on the modem.
|
||||
*/
|
||||
struct sockaddr_caif {
|
||||
sa_family_t family;
|
||||
union {
|
||||
struct {
|
||||
__u8 type; /* type: enum caif_at_type */
|
||||
} at; /* CAIFPROTO_AT */
|
||||
struct {
|
||||
char service[16];
|
||||
} util; /* CAIFPROTO_UTIL */
|
||||
union {
|
||||
__u32 connection_id;
|
||||
__u8 nsapi;
|
||||
} dgm; /* CAIFPROTO_DATAGRAM(_LOOP)*/
|
||||
struct {
|
||||
__u32 connection_id;
|
||||
char volume[16];
|
||||
} rfm; /* CAIFPROTO_RFM */
|
||||
} u;
|
||||
};
|
||||
|
||||
/**
|
||||
* enum caif_socket_opts - CAIF option values for getsockopt and setsockopt.
|
||||
*
|
||||
* @CAIFSO_LINK_SELECT: Selector used if multiple CAIF Link layers are
|
||||
* available. Either a high bandwidth
|
||||
* link can be selected (CAIF_LINK_HIGH_BANDW) or
|
||||
* or a low latency link (CAIF_LINK_LOW_LATENCY).
|
||||
* This option is of type __u32.
|
||||
* Alternatively SO_BINDTODEVICE can be used.
|
||||
*
|
||||
* @CAIFSO_REQ_PARAM: Used to set the request parameters for a
|
||||
* utility channel. (maximum 256 bytes). This
|
||||
* option must be set before connecting.
|
||||
*
|
||||
* @CAIFSO_RSP_PARAM: Gets the response parameters for a utility
|
||||
* channel. (maximum 256 bytes). This option
|
||||
* is valid after a successful connect.
|
||||
*
|
||||
*
|
||||
* This enum defines the CAIF Socket options to be used on a socket
|
||||
* of type PF_CAIF.
|
||||
*
|
||||
*/
|
||||
enum caif_socket_opts {
|
||||
CAIFSO_LINK_SELECT = 127,
|
||||
CAIFSO_REQ_PARAM = 128,
|
||||
CAIFSO_RSP_PARAM = 129,
|
||||
};
|
||||
|
||||
#endif /* _LINUX_CAIF_SOCKET_H */
|
||||
34
include/linux/caif/if_caif.h
Normal file
34
include/linux/caif/if_caif.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* Copyright (C) ST-Ericsson AB 2010
|
||||
* Author: Sjur Brendeland/ sjur.brandeland@stericsson.com
|
||||
* License terms: GNU General Public License (GPL) version 2
|
||||
*/
|
||||
|
||||
#ifndef IF_CAIF_H_
|
||||
#define IF_CAIF_H_
|
||||
#include <linux/sockios.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/socket.h>
|
||||
|
||||
/**
|
||||
* enum ifla_caif - CAIF NetlinkRT parameters.
|
||||
* @IFLA_CAIF_IPV4_CONNID: Connection ID for IPv4 PDP Context.
|
||||
* The type of attribute is NLA_U32.
|
||||
* @IFLA_CAIF_IPV6_CONNID: Connection ID for IPv6 PDP Context.
|
||||
* The type of attribute is NLA_U32.
|
||||
* @IFLA_CAIF_LOOPBACK: If different from zero, device is doing loopback
|
||||
* The type of attribute is NLA_U8.
|
||||
*
|
||||
* When using RT Netlink to create, destroy or configure a CAIF IP interface,
|
||||
* enum ifla_caif is used to specify the configuration attributes.
|
||||
*/
|
||||
enum ifla_caif {
|
||||
__IFLA_CAIF_UNSPEC,
|
||||
IFLA_CAIF_IPV4_CONNID,
|
||||
IFLA_CAIF_IPV6_CONNID,
|
||||
IFLA_CAIF_LOOPBACK,
|
||||
__IFLA_CAIF_MAX
|
||||
};
|
||||
#define IFLA_CAIF_MAX (__IFLA_CAIF_MAX-1)
|
||||
|
||||
#endif /*IF_CAIF_H_*/
|
||||
|
|
@ -14,6 +14,7 @@
|
|||
#ifndef CAN_DEV_H
|
||||
#define CAN_DEV_H
|
||||
|
||||
#include <linux/can.h>
|
||||
#include <linux/can/netlink.h>
|
||||
#include <linux/can/error.h>
|
||||
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@
|
|||
struct mcp251x_platform_data {
|
||||
unsigned long oscillator_frequency;
|
||||
int model;
|
||||
#define CAN_MCP251X_MCP2510 0
|
||||
#define CAN_MCP251X_MCP2515 1
|
||||
#define CAN_MCP251X_MCP2510 0x2510
|
||||
#define CAN_MCP251X_MCP2515 0x2515
|
||||
int (*board_specific_setup)(struct spi_device *spi);
|
||||
int (*transceiver_enable)(int enable);
|
||||
int (*power_enable) (int enable);
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
#define OCR_TX_SHIFT 2
|
||||
|
||||
struct sja1000_platform_data {
|
||||
u32 clock; /* CAN bus oscillator frequency in Hz */
|
||||
u32 osc_freq; /* CAN bus oscillator frequency in Hz */
|
||||
|
||||
u8 ocr; /* output control register */
|
||||
u8 cdr; /* clock divider register */
|
||||
|
|
|
|||
|
|
@ -273,7 +273,6 @@ static inline s64 clocksource_cyc2ns(cycle_t cycles, u32 mult, u32 shift)
|
|||
}
|
||||
|
||||
|
||||
/* used to install a new clocksource */
|
||||
extern int clocksource_register(struct clocksource*);
|
||||
extern void clocksource_unregister(struct clocksource*);
|
||||
extern void clocksource_touch_watchdog(void);
|
||||
|
|
@ -287,6 +286,24 @@ extern void clocksource_mark_unstable(struct clocksource *cs);
|
|||
extern void
|
||||
clocks_calc_mult_shift(u32 *mult, u32 *shift, u32 from, u32 to, u32 minsec);
|
||||
|
||||
/*
|
||||
* Don't call __clocksource_register_scale directly, use
|
||||
* clocksource_register_hz/khz
|
||||
*/
|
||||
extern int
|
||||
__clocksource_register_scale(struct clocksource *cs, u32 scale, u32 freq);
|
||||
|
||||
static inline int clocksource_register_hz(struct clocksource *cs, u32 hz)
|
||||
{
|
||||
return __clocksource_register_scale(cs, 1, hz);
|
||||
}
|
||||
|
||||
static inline int clocksource_register_khz(struct clocksource *cs, u32 khz)
|
||||
{
|
||||
return __clocksource_register_scale(cs, 1000, khz);
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
clocksource_calc_mult_shift(struct clocksource *cs, u32 freq, u32 minsec)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -278,6 +278,27 @@ struct freq_attr {
|
|||
ssize_t (*store)(struct cpufreq_policy *, const char *, size_t count);
|
||||
};
|
||||
|
||||
#define cpufreq_freq_attr_ro(_name) \
|
||||
static struct freq_attr _name = \
|
||||
__ATTR(_name, 0444, show_##_name, NULL)
|
||||
|
||||
#define cpufreq_freq_attr_ro_perm(_name, _perm) \
|
||||
static struct freq_attr _name = \
|
||||
__ATTR(_name, _perm, show_##_name, NULL)
|
||||
|
||||
#define cpufreq_freq_attr_ro_old(_name) \
|
||||
static struct freq_attr _name##_old = \
|
||||
__ATTR(_name, 0444, show_##_name##_old, NULL)
|
||||
|
||||
#define cpufreq_freq_attr_rw(_name) \
|
||||
static struct freq_attr _name = \
|
||||
__ATTR(_name, 0644, show_##_name, store_##_name)
|
||||
|
||||
#define cpufreq_freq_attr_rw_old(_name) \
|
||||
static struct freq_attr _name##_old = \
|
||||
__ATTR(_name, 0644, show_##_name##_old, store_##_name##_old)
|
||||
|
||||
|
||||
struct global_attr {
|
||||
struct attribute attr;
|
||||
ssize_t (*show)(struct kobject *kobj,
|
||||
|
|
@ -286,6 +307,15 @@ struct global_attr {
|
|||
const char *c, size_t count);
|
||||
};
|
||||
|
||||
#define define_one_global_ro(_name) \
|
||||
static struct global_attr _name = \
|
||||
__ATTR(_name, 0444, show_##_name, NULL)
|
||||
|
||||
#define define_one_global_rw(_name) \
|
||||
static struct global_attr _name = \
|
||||
__ATTR(_name, 0644, show_##_name, store_##_name)
|
||||
|
||||
|
||||
/*********************************************************************
|
||||
* CPUFREQ 2.6. INTERFACE *
|
||||
*********************************************************************/
|
||||
|
|
|
|||
|
|
@ -21,8 +21,7 @@ extern int number_of_cpusets; /* How many cpusets are defined in system? */
|
|||
extern int cpuset_init(void);
|
||||
extern void cpuset_init_smp(void);
|
||||
extern void cpuset_cpus_allowed(struct task_struct *p, struct cpumask *mask);
|
||||
extern void cpuset_cpus_allowed_locked(struct task_struct *p,
|
||||
struct cpumask *mask);
|
||||
extern int cpuset_cpus_allowed_fallback(struct task_struct *p);
|
||||
extern nodemask_t cpuset_mems_allowed(struct task_struct *p);
|
||||
#define cpuset_current_mems_allowed (current->mems_allowed)
|
||||
void cpuset_init_current_mems_allowed(void);
|
||||
|
|
@ -69,9 +68,6 @@ struct seq_file;
|
|||
extern void cpuset_task_status_allowed(struct seq_file *m,
|
||||
struct task_struct *task);
|
||||
|
||||
extern void cpuset_lock(void);
|
||||
extern void cpuset_unlock(void);
|
||||
|
||||
extern int cpuset_mem_spread_node(void);
|
||||
|
||||
static inline int cpuset_do_page_mem_spread(void)
|
||||
|
|
@ -105,10 +101,11 @@ static inline void cpuset_cpus_allowed(struct task_struct *p,
|
|||
{
|
||||
cpumask_copy(mask, cpu_possible_mask);
|
||||
}
|
||||
static inline void cpuset_cpus_allowed_locked(struct task_struct *p,
|
||||
struct cpumask *mask)
|
||||
|
||||
static inline int cpuset_cpus_allowed_fallback(struct task_struct *p)
|
||||
{
|
||||
cpumask_copy(mask, cpu_possible_mask);
|
||||
cpumask_copy(&p->cpus_allowed, cpu_possible_mask);
|
||||
return cpumask_any(cpu_active_mask);
|
||||
}
|
||||
|
||||
static inline nodemask_t cpuset_mems_allowed(struct task_struct *p)
|
||||
|
|
@ -157,9 +154,6 @@ static inline void cpuset_task_status_allowed(struct seq_file *m,
|
|||
{
|
||||
}
|
||||
|
||||
static inline void cpuset_lock(void) {}
|
||||
static inline void cpuset_unlock(void) {}
|
||||
|
||||
static inline int cpuset_mem_spread_node(void)
|
||||
{
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -99,13 +99,7 @@
|
|||
* as arm where pointers are 32-bit aligned but there are data types such as
|
||||
* u64 which require 64-bit alignment.
|
||||
*/
|
||||
#if defined(ARCH_KMALLOC_MINALIGN)
|
||||
#define CRYPTO_MINALIGN ARCH_KMALLOC_MINALIGN
|
||||
#elif defined(ARCH_SLAB_MINALIGN)
|
||||
#define CRYPTO_MINALIGN ARCH_SLAB_MINALIGN
|
||||
#else
|
||||
#define CRYPTO_MINALIGN __alignof__(unsigned long long)
|
||||
#endif
|
||||
|
||||
#define CRYPTO_MINALIGN_ATTR __attribute__ ((__aligned__(CRYPTO_MINALIGN)))
|
||||
|
||||
|
|
|
|||
|
|
@ -22,8 +22,6 @@
|
|||
|
||||
#include <linux/types.h>
|
||||
|
||||
#define DCB_PROTO_VERSION 1
|
||||
|
||||
struct dcbmsg {
|
||||
__u8 dcb_family;
|
||||
__u8 cmd;
|
||||
|
|
|
|||
|
|
@ -20,12 +20,14 @@ struct debug_obj_descr;
|
|||
* struct debug_obj - representaion of an tracked object
|
||||
* @node: hlist node to link the object into the tracker list
|
||||
* @state: tracked object state
|
||||
* @astate: current active state
|
||||
* @object: pointer to the real object
|
||||
* @descr: pointer to an object type specific debug description structure
|
||||
*/
|
||||
struct debug_obj {
|
||||
struct hlist_node node;
|
||||
enum debug_obj_state state;
|
||||
unsigned int astate;
|
||||
void *object;
|
||||
struct debug_obj_descr *descr;
|
||||
};
|
||||
|
|
@ -60,6 +62,15 @@ extern void debug_object_deactivate(void *addr, struct debug_obj_descr *descr);
|
|||
extern void debug_object_destroy (void *addr, struct debug_obj_descr *descr);
|
||||
extern void debug_object_free (void *addr, struct debug_obj_descr *descr);
|
||||
|
||||
/*
|
||||
* Active state:
|
||||
* - Set at 0 upon initialization.
|
||||
* - Must return to 0 before deactivation.
|
||||
*/
|
||||
extern void
|
||||
debug_object_active_state(void *addr, struct debug_obj_descr *descr,
|
||||
unsigned int expect, unsigned int next);
|
||||
|
||||
extern void debug_objects_early_init(void);
|
||||
extern void debug_objects_mem_init(void);
|
||||
#else
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@
|
|||
#include <linux/types.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/pm.h>
|
||||
#include <linux/semaphore.h>
|
||||
#include <asm/atomic.h>
|
||||
#include <asm/device.h>
|
||||
|
||||
|
|
@ -34,6 +33,7 @@ struct class;
|
|||
struct class_private;
|
||||
struct bus_type;
|
||||
struct bus_type_private;
|
||||
struct device_node;
|
||||
|
||||
struct bus_attribute {
|
||||
struct attribute attr;
|
||||
|
|
@ -128,6 +128,10 @@ struct device_driver {
|
|||
|
||||
bool suppress_bind_attrs; /* disables bind/unbind via sysfs */
|
||||
|
||||
#if defined(CONFIG_OF)
|
||||
const struct of_device_id *of_match_table;
|
||||
#endif
|
||||
|
||||
int (*probe) (struct device *dev);
|
||||
int (*remove) (struct device *dev);
|
||||
void (*shutdown) (struct device *dev);
|
||||
|
|
@ -203,6 +207,9 @@ struct class {
|
|||
int (*suspend)(struct device *dev, pm_message_t state);
|
||||
int (*resume)(struct device *dev);
|
||||
|
||||
const struct kobj_ns_type_operations *ns_type;
|
||||
const void *(*namespace)(struct device *dev);
|
||||
|
||||
const struct dev_pm_ops *pm;
|
||||
|
||||
struct class_private *p;
|
||||
|
|
@ -404,7 +411,7 @@ struct device {
|
|||
const char *init_name; /* initial name of the device */
|
||||
struct device_type *type;
|
||||
|
||||
struct semaphore sem; /* semaphore to synchronize calls to
|
||||
struct mutex mutex; /* mutex to synchronize calls to
|
||||
* its driver.
|
||||
*/
|
||||
|
||||
|
|
@ -433,6 +440,9 @@ struct device {
|
|||
override */
|
||||
/* arch specific additions */
|
||||
struct dev_archdata archdata;
|
||||
#ifdef CONFIG_OF
|
||||
struct device_node *of_node;
|
||||
#endif
|
||||
|
||||
dev_t devt; /* dev_t, creates the sysfs "dev" */
|
||||
|
||||
|
|
@ -451,6 +461,10 @@ struct device {
|
|||
|
||||
static inline const char *dev_name(const struct device *dev)
|
||||
{
|
||||
/* Use the init name until the kobject becomes available */
|
||||
if (dev->init_name)
|
||||
return dev->init_name;
|
||||
|
||||
return kobject_name(&dev->kobj);
|
||||
}
|
||||
|
||||
|
|
@ -510,17 +524,17 @@ static inline bool device_async_suspend_enabled(struct device *dev)
|
|||
|
||||
static inline void device_lock(struct device *dev)
|
||||
{
|
||||
down(&dev->sem);
|
||||
mutex_lock(&dev->mutex);
|
||||
}
|
||||
|
||||
static inline int device_trylock(struct device *dev)
|
||||
{
|
||||
return down_trylock(&dev->sem);
|
||||
return mutex_trylock(&dev->mutex);
|
||||
}
|
||||
|
||||
static inline void device_unlock(struct device *dev)
|
||||
{
|
||||
up(&dev->sem);
|
||||
mutex_unlock(&dev->mutex);
|
||||
}
|
||||
|
||||
void driver_init(void);
|
||||
|
|
|
|||
|
|
@ -40,11 +40,13 @@ typedef s32 dma_cookie_t;
|
|||
* enum dma_status - DMA transaction status
|
||||
* @DMA_SUCCESS: transaction completed successfully
|
||||
* @DMA_IN_PROGRESS: transaction not yet processed
|
||||
* @DMA_PAUSED: transaction is paused
|
||||
* @DMA_ERROR: transaction failed
|
||||
*/
|
||||
enum dma_status {
|
||||
DMA_SUCCESS,
|
||||
DMA_IN_PROGRESS,
|
||||
DMA_PAUSED,
|
||||
DMA_ERROR,
|
||||
};
|
||||
|
||||
|
|
@ -106,6 +108,19 @@ enum dma_ctrl_flags {
|
|||
DMA_PREP_FENCE = (1 << 9),
|
||||
};
|
||||
|
||||
/**
|
||||
* enum dma_ctrl_cmd - DMA operations that can optionally be exercised
|
||||
* on a running channel.
|
||||
* @DMA_TERMINATE_ALL: terminate all ongoing transfers
|
||||
* @DMA_PAUSE: pause ongoing transfers
|
||||
* @DMA_RESUME: resume paused transfer
|
||||
*/
|
||||
enum dma_ctrl_cmd {
|
||||
DMA_TERMINATE_ALL,
|
||||
DMA_PAUSE,
|
||||
DMA_RESUME,
|
||||
};
|
||||
|
||||
/**
|
||||
* enum sum_check_bits - bit position of pq_check_flags
|
||||
*/
|
||||
|
|
@ -230,9 +245,84 @@ struct dma_async_tx_descriptor {
|
|||
dma_cookie_t (*tx_submit)(struct dma_async_tx_descriptor *tx);
|
||||
dma_async_tx_callback callback;
|
||||
void *callback_param;
|
||||
#ifndef CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH
|
||||
struct dma_async_tx_descriptor *next;
|
||||
struct dma_async_tx_descriptor *parent;
|
||||
spinlock_t lock;
|
||||
#endif
|
||||
};
|
||||
|
||||
#ifdef CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH
|
||||
static inline void txd_lock(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
}
|
||||
static inline void txd_unlock(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
}
|
||||
static inline void txd_chain(struct dma_async_tx_descriptor *txd, struct dma_async_tx_descriptor *next)
|
||||
{
|
||||
BUG();
|
||||
}
|
||||
static inline void txd_clear_parent(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
}
|
||||
static inline void txd_clear_next(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
}
|
||||
static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
static inline struct dma_async_tx_descriptor *txd_parent(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#else
|
||||
static inline void txd_lock(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
spin_lock_bh(&txd->lock);
|
||||
}
|
||||
static inline void txd_unlock(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
spin_unlock_bh(&txd->lock);
|
||||
}
|
||||
static inline void txd_chain(struct dma_async_tx_descriptor *txd, struct dma_async_tx_descriptor *next)
|
||||
{
|
||||
txd->next = next;
|
||||
next->parent = txd;
|
||||
}
|
||||
static inline void txd_clear_parent(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
txd->parent = NULL;
|
||||
}
|
||||
static inline void txd_clear_next(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
txd->next = NULL;
|
||||
}
|
||||
static inline struct dma_async_tx_descriptor *txd_parent(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
return txd->parent;
|
||||
}
|
||||
static inline struct dma_async_tx_descriptor *txd_next(struct dma_async_tx_descriptor *txd)
|
||||
{
|
||||
return txd->next;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* struct dma_tx_state - filled in to report the status of
|
||||
* a transfer.
|
||||
* @last: last completed DMA cookie
|
||||
* @used: last issued DMA cookie (i.e. the one in progress)
|
||||
* @residue: the remaining number of bytes left to transmit
|
||||
* on the selected transfer for states DMA_IN_PROGRESS and
|
||||
* DMA_PAUSED if this is implemented in the driver, else 0
|
||||
*/
|
||||
struct dma_tx_state {
|
||||
dma_cookie_t last;
|
||||
dma_cookie_t used;
|
||||
u32 residue;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
@ -261,8 +351,12 @@ struct dma_async_tx_descriptor {
|
|||
* @device_prep_dma_memset: prepares a memset operation
|
||||
* @device_prep_dma_interrupt: prepares an end of chain interrupt operation
|
||||
* @device_prep_slave_sg: prepares a slave dma operation
|
||||
* @device_terminate_all: terminate all pending operations
|
||||
* @device_is_tx_complete: poll for transaction completion
|
||||
* @device_control: manipulate all pending operations on a channel, returns
|
||||
* zero or error code
|
||||
* @device_tx_status: poll for transaction completion, the optional
|
||||
* txstate parameter can be supplied with a pointer to get a
|
||||
* struct with auxilary transfer status information, otherwise the call
|
||||
* will just return a simple status code
|
||||
* @device_issue_pending: push pending transactions to hardware
|
||||
*/
|
||||
struct dma_device {
|
||||
|
|
@ -313,11 +407,12 @@ struct dma_device {
|
|||
struct dma_chan *chan, struct scatterlist *sgl,
|
||||
unsigned int sg_len, enum dma_data_direction direction,
|
||||
unsigned long flags);
|
||||
void (*device_terminate_all)(struct dma_chan *chan);
|
||||
int (*device_control)(struct dma_chan *chan, enum dma_ctrl_cmd cmd,
|
||||
unsigned long arg);
|
||||
|
||||
enum dma_status (*device_is_tx_complete)(struct dma_chan *chan,
|
||||
dma_cookie_t cookie, dma_cookie_t *last,
|
||||
dma_cookie_t *used);
|
||||
enum dma_status (*device_tx_status)(struct dma_chan *chan,
|
||||
dma_cookie_t cookie,
|
||||
struct dma_tx_state *txstate);
|
||||
void (*device_issue_pending)(struct dma_chan *chan);
|
||||
};
|
||||
|
||||
|
|
@ -558,7 +653,15 @@ static inline void dma_async_issue_pending(struct dma_chan *chan)
|
|||
static inline enum dma_status dma_async_is_tx_complete(struct dma_chan *chan,
|
||||
dma_cookie_t cookie, dma_cookie_t *last, dma_cookie_t *used)
|
||||
{
|
||||
return chan->device->device_is_tx_complete(chan, cookie, last, used);
|
||||
struct dma_tx_state state;
|
||||
enum dma_status status;
|
||||
|
||||
status = chan->device->device_tx_status(chan, cookie, &state);
|
||||
if (last)
|
||||
*last = state.last;
|
||||
if (used)
|
||||
*used = state.used;
|
||||
return status;
|
||||
}
|
||||
|
||||
#define dma_async_memcpy_complete(chan, cookie, last, used)\
|
||||
|
|
@ -586,6 +689,16 @@ static inline enum dma_status dma_async_is_complete(dma_cookie_t cookie,
|
|||
return DMA_IN_PROGRESS;
|
||||
}
|
||||
|
||||
static inline void
|
||||
dma_set_tx_state(struct dma_tx_state *st, dma_cookie_t last, dma_cookie_t used, u32 residue)
|
||||
{
|
||||
if (st) {
|
||||
st->last = last;
|
||||
st->used = used;
|
||||
st->residue = residue;
|
||||
}
|
||||
}
|
||||
|
||||
enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie);
|
||||
#ifdef CONFIG_DMA_ENGINE
|
||||
enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx);
|
||||
|
|
|
|||
|
|
@ -109,6 +109,15 @@ typedef struct fs_disk_quota {
|
|||
#define FS_DQ_RTBWARNS (1<<11)
|
||||
#define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS)
|
||||
|
||||
/*
|
||||
* Accounting values. These can only be set for filesystem with
|
||||
* non-transactional quotas that require quotacheck(8) in userspace.
|
||||
*/
|
||||
#define FS_DQ_BCOUNT (1<<12)
|
||||
#define FS_DQ_ICOUNT (1<<13)
|
||||
#define FS_DQ_RTBCOUNT (1<<14)
|
||||
#define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT)
|
||||
|
||||
/*
|
||||
* Various flags related to quotactl(2). Only relevant to XFS filesystems.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@
|
|||
|
||||
|
||||
extern const char *drbd_buildtag(void);
|
||||
#define REL_VERSION "8.3.7"
|
||||
#define REL_VERSION "8.3.8rc1"
|
||||
#define API_VERSION 88
|
||||
#define PRO_VERSION_MIN 86
|
||||
#define PRO_VERSION_MAX 92
|
||||
#define PRO_VERSION_MAX 94
|
||||
|
||||
|
||||
enum drbd_io_error_p {
|
||||
|
|
@ -139,6 +139,7 @@ enum drbd_ret_codes {
|
|||
ERR_DATA_NOT_CURRENT = 150,
|
||||
ERR_CONNECTED = 151, /* DRBD 8.3 only */
|
||||
ERR_PERM = 152,
|
||||
ERR_NEED_APV_93 = 153,
|
||||
|
||||
/* insert new ones above this line */
|
||||
AFTER_LAST_ERR_CODE
|
||||
|
|
|
|||
|
|
@ -133,5 +133,21 @@
|
|||
#define DRBD_MAX_BIO_BVECS_MAX 128
|
||||
#define DRBD_MAX_BIO_BVECS_DEF 0
|
||||
|
||||
#define DRBD_DP_VOLUME_MIN 4
|
||||
#define DRBD_DP_VOLUME_MAX 1048576
|
||||
#define DRBD_DP_VOLUME_DEF 16384
|
||||
|
||||
#define DRBD_DP_INTERVAL_MIN 1
|
||||
#define DRBD_DP_INTERVAL_MAX 600
|
||||
#define DRBD_DP_INTERVAL_DEF 5
|
||||
|
||||
#define DRBD_RS_THROTTLE_TH_MIN 1
|
||||
#define DRBD_RS_THROTTLE_TH_MAX 600
|
||||
#define DRBD_RS_THROTTLE_TH_DEF 20
|
||||
|
||||
#define DRBD_RS_HOLD_OFF_TH_MIN 1
|
||||
#define DRBD_RS_HOLD_OFF_TH_MAX 6000
|
||||
#define DRBD_RS_HOLD_OFF_TH_DEF 100
|
||||
|
||||
#undef RANGE
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -71,12 +71,17 @@ NL_PACKET(disconnect, 6, )
|
|||
NL_PACKET(resize, 7,
|
||||
NL_INT64( 29, T_MAY_IGNORE, resize_size)
|
||||
NL_BIT( 68, T_MAY_IGNORE, resize_force)
|
||||
NL_BIT( 69, T_MANDATORY, no_resync)
|
||||
)
|
||||
|
||||
NL_PACKET(syncer_conf, 8,
|
||||
NL_INTEGER( 30, T_MAY_IGNORE, rate)
|
||||
NL_INTEGER( 31, T_MAY_IGNORE, after)
|
||||
NL_INTEGER( 32, T_MAY_IGNORE, al_extents)
|
||||
NL_INTEGER( 71, T_MAY_IGNORE, dp_volume)
|
||||
NL_INTEGER( 72, T_MAY_IGNORE, dp_interval)
|
||||
NL_INTEGER( 73, T_MAY_IGNORE, throttle_th)
|
||||
NL_INTEGER( 74, T_MAY_IGNORE, hold_off_th)
|
||||
NL_STRING( 52, T_MAY_IGNORE, verify_alg, SHARED_SECRET_MAX)
|
||||
NL_STRING( 51, T_MAY_IGNORE, cpu_mask, 32)
|
||||
NL_STRING( 64, T_MAY_IGNORE, csums_alg, SHARED_SECRET_MAX)
|
||||
|
|
|
|||
8
include/linux/ds2782_battery.h
Normal file
8
include/linux/ds2782_battery.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef __LINUX_DS2782_BATTERY_H
|
||||
#define __LINUX_DS2782_BATTERY_H
|
||||
|
||||
struct ds278x_platform_data {
|
||||
int rsns;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -14,6 +14,9 @@ typedef void (elevator_merged_fn) (struct request_queue *, struct request *, int
|
|||
|
||||
typedef int (elevator_allow_merge_fn) (struct request_queue *, struct request *, struct bio *);
|
||||
|
||||
typedef void (elevator_bio_merged_fn) (struct request_queue *,
|
||||
struct request *, struct bio *);
|
||||
|
||||
typedef int (elevator_dispatch_fn) (struct request_queue *, int);
|
||||
|
||||
typedef void (elevator_add_req_fn) (struct request_queue *, struct request *);
|
||||
|
|
@ -36,6 +39,7 @@ struct elevator_ops
|
|||
elevator_merged_fn *elevator_merged_fn;
|
||||
elevator_merge_req_fn *elevator_merge_req_fn;
|
||||
elevator_allow_merge_fn *elevator_allow_merge_fn;
|
||||
elevator_bio_merged_fn *elevator_bio_merged_fn;
|
||||
|
||||
elevator_dispatch_fn *elevator_dispatch_fn;
|
||||
elevator_add_req_fn *elevator_add_req_fn;
|
||||
|
|
@ -103,6 +107,8 @@ extern int elv_merge(struct request_queue *, struct request **, struct bio *);
|
|||
extern void elv_merge_requests(struct request_queue *, struct request *,
|
||||
struct request *);
|
||||
extern void elv_merged_request(struct request_queue *, struct request *, int);
|
||||
extern void elv_bio_merged(struct request_queue *q, struct request *,
|
||||
struct bio *);
|
||||
extern void elv_requeue_request(struct request_queue *, struct request *);
|
||||
extern int elv_queue_empty(struct request_queue *);
|
||||
extern struct request *elv_former_request(struct request_queue *, struct request *);
|
||||
|
|
|
|||
|
|
@ -394,6 +394,7 @@ typedef struct elf64_shdr {
|
|||
#define NT_S390_TODPREG 0x303 /* s390 TOD programmable register */
|
||||
#define NT_S390_CTRS 0x304 /* s390 control registers */
|
||||
#define NT_S390_PREFIX 0x305 /* s390 prefix register */
|
||||
#define NT_S390_LAST_BREAK 0x306 /* s390 breaking event address */
|
||||
|
||||
|
||||
/* Note header in a PT_NOTE section */
|
||||
|
|
|
|||
|
|
@ -150,8 +150,6 @@ static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregse
|
|||
}
|
||||
#endif
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
/*
|
||||
* These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
|
||||
* extra segments containing the gate DSO contents. Dumping its
|
||||
|
|
@ -168,4 +166,6 @@ extern int
|
|||
elf_core_write_extra_data(struct file *file, size_t *size, unsigned long limit);
|
||||
extern size_t elf_core_extra_data_size(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* _LINUX_ELFCORE_H */
|
||||
|
|
|
|||
|
|
@ -310,6 +310,7 @@ struct ethtool_perm_addr {
|
|||
enum ethtool_flags {
|
||||
ETH_FLAG_LRO = (1 << 15), /* LRO is enabled */
|
||||
ETH_FLAG_NTUPLE = (1 << 27), /* N-tuple filters enabled */
|
||||
ETH_FLAG_RXHASH = (1 << 28),
|
||||
};
|
||||
|
||||
/* The following structures are for supporting RX network flow
|
||||
|
|
@ -490,12 +491,12 @@ void ethtool_ntuple_flush(struct net_device *dev);
|
|||
* get_ufo: Report whether UDP fragmentation offload is enabled
|
||||
* set_ufo: Turn UDP fragmentation offload on or off
|
||||
* self_test: Run specified self-tests
|
||||
* get_strings: Return a set of strings that describe the requested objects
|
||||
* get_strings: Return a set of strings that describe the requested objects
|
||||
* phys_id: Identify the device
|
||||
* get_stats: Return statistics about the device
|
||||
* get_flags: get 32-bit flags bitmap
|
||||
* set_flags: set 32-bit flags bitmap
|
||||
*
|
||||
*
|
||||
* Description:
|
||||
*
|
||||
* get_settings:
|
||||
|
|
@ -531,14 +532,20 @@ struct ethtool_ops {
|
|||
int (*nway_reset)(struct net_device *);
|
||||
u32 (*get_link)(struct net_device *);
|
||||
int (*get_eeprom_len)(struct net_device *);
|
||||
int (*get_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
|
||||
int (*set_eeprom)(struct net_device *, struct ethtool_eeprom *, u8 *);
|
||||
int (*get_eeprom)(struct net_device *,
|
||||
struct ethtool_eeprom *, u8 *);
|
||||
int (*set_eeprom)(struct net_device *,
|
||||
struct ethtool_eeprom *, u8 *);
|
||||
int (*get_coalesce)(struct net_device *, struct ethtool_coalesce *);
|
||||
int (*set_coalesce)(struct net_device *, struct ethtool_coalesce *);
|
||||
void (*get_ringparam)(struct net_device *, struct ethtool_ringparam *);
|
||||
int (*set_ringparam)(struct net_device *, struct ethtool_ringparam *);
|
||||
void (*get_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
|
||||
int (*set_pauseparam)(struct net_device *, struct ethtool_pauseparam*);
|
||||
void (*get_ringparam)(struct net_device *,
|
||||
struct ethtool_ringparam *);
|
||||
int (*set_ringparam)(struct net_device *,
|
||||
struct ethtool_ringparam *);
|
||||
void (*get_pauseparam)(struct net_device *,
|
||||
struct ethtool_pauseparam*);
|
||||
int (*set_pauseparam)(struct net_device *,
|
||||
struct ethtool_pauseparam*);
|
||||
u32 (*get_rx_csum)(struct net_device *);
|
||||
int (*set_rx_csum)(struct net_device *, u32);
|
||||
u32 (*get_tx_csum)(struct net_device *);
|
||||
|
|
@ -550,21 +557,24 @@ struct ethtool_ops {
|
|||
void (*self_test)(struct net_device *, struct ethtool_test *, u64 *);
|
||||
void (*get_strings)(struct net_device *, u32 stringset, u8 *);
|
||||
int (*phys_id)(struct net_device *, u32);
|
||||
void (*get_ethtool_stats)(struct net_device *, struct ethtool_stats *, u64 *);
|
||||
void (*get_ethtool_stats)(struct net_device *,
|
||||
struct ethtool_stats *, u64 *);
|
||||
int (*begin)(struct net_device *);
|
||||
void (*complete)(struct net_device *);
|
||||
u32 (*get_ufo)(struct net_device *);
|
||||
int (*set_ufo)(struct net_device *, u32);
|
||||
u32 (*get_flags)(struct net_device *);
|
||||
int (*set_flags)(struct net_device *, u32);
|
||||
u32 (*get_priv_flags)(struct net_device *);
|
||||
int (*set_priv_flags)(struct net_device *, u32);
|
||||
u32 (*get_ufo)(struct net_device *);
|
||||
int (*set_ufo)(struct net_device *, u32);
|
||||
u32 (*get_flags)(struct net_device *);
|
||||
int (*set_flags)(struct net_device *, u32);
|
||||
u32 (*get_priv_flags)(struct net_device *);
|
||||
int (*set_priv_flags)(struct net_device *, u32);
|
||||
int (*get_sset_count)(struct net_device *, int);
|
||||
int (*get_rxnfc)(struct net_device *, struct ethtool_rxnfc *, void *);
|
||||
int (*get_rxnfc)(struct net_device *,
|
||||
struct ethtool_rxnfc *, void *);
|
||||
int (*set_rxnfc)(struct net_device *, struct ethtool_rxnfc *);
|
||||
int (*flash_device)(struct net_device *, struct ethtool_flash *);
|
||||
int (*flash_device)(struct net_device *, struct ethtool_flash *);
|
||||
int (*reset)(struct net_device *, u32 *);
|
||||
int (*set_rx_ntuple)(struct net_device *, struct ethtool_rx_ntuple *);
|
||||
int (*set_rx_ntuple)(struct net_device *,
|
||||
struct ethtool_rx_ntuple *);
|
||||
int (*get_rx_ntuple)(struct net_device *, u32 stringset, void *);
|
||||
};
|
||||
#endif /* __KERNEL__ */
|
||||
|
|
@ -576,29 +586,29 @@ struct ethtool_ops {
|
|||
#define ETHTOOL_GREGS 0x00000004 /* Get NIC registers. */
|
||||
#define ETHTOOL_GWOL 0x00000005 /* Get wake-on-lan options. */
|
||||
#define ETHTOOL_SWOL 0x00000006 /* Set wake-on-lan options. */
|
||||
#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */
|
||||
#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level. */
|
||||
#define ETHTOOL_GMSGLVL 0x00000007 /* Get driver message level */
|
||||
#define ETHTOOL_SMSGLVL 0x00000008 /* Set driver msg level. */
|
||||
#define ETHTOOL_NWAY_RST 0x00000009 /* Restart autonegotiation. */
|
||||
#define ETHTOOL_GLINK 0x0000000a /* Get link status (ethtool_value) */
|
||||
#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */
|
||||
#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data. */
|
||||
#define ETHTOOL_GEEPROM 0x0000000b /* Get EEPROM data */
|
||||
#define ETHTOOL_SEEPROM 0x0000000c /* Set EEPROM data. */
|
||||
#define ETHTOOL_GCOALESCE 0x0000000e /* Get coalesce config */
|
||||
#define ETHTOOL_SCOALESCE 0x0000000f /* Set coalesce config. */
|
||||
#define ETHTOOL_GRINGPARAM 0x00000010 /* Get ring parameters */
|
||||
#define ETHTOOL_SRINGPARAM 0x00000011 /* Set ring parameters. */
|
||||
#define ETHTOOL_GPAUSEPARAM 0x00000012 /* Get pause parameters */
|
||||
#define ETHTOOL_SPAUSEPARAM 0x00000013 /* Set pause parameters. */
|
||||
#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_GRXCSUM 0x00000014 /* Get RX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_SRXCSUM 0x00000015 /* Set RX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_GTXCSUM 0x00000016 /* Get TX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_STXCSUM 0x00000017 /* Set TX hw csum enable (ethtool_value) */
|
||||
#define ETHTOOL_GSG 0x00000018 /* Get scatter-gather enable
|
||||
* (ethtool_value) */
|
||||
#define ETHTOOL_SSG 0x00000019 /* Set scatter-gather enable
|
||||
* (ethtool_value). */
|
||||
#define ETHTOOL_TEST 0x0000001a /* execute NIC self-test. */
|
||||
#define ETHTOOL_GSTRINGS 0x0000001b /* get specified string set */
|
||||
#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */
|
||||
#define ETHTOOL_PHYS_ID 0x0000001c /* identify the NIC */
|
||||
#define ETHTOOL_GSTATS 0x0000001d /* get NIC-specific statistics */
|
||||
#define ETHTOOL_GTSO 0x0000001e /* Get TSO enable (ethtool_value) */
|
||||
#define ETHTOOL_STSO 0x0000001f /* Set TSO enable (ethtool_value) */
|
||||
|
|
@ -609,24 +619,24 @@ struct ethtool_ops {
|
|||
#define ETHTOOL_SGSO 0x00000024 /* Set GSO enable (ethtool_value) */
|
||||
#define ETHTOOL_GFLAGS 0x00000025 /* Get flags bitmap(ethtool_value) */
|
||||
#define ETHTOOL_SFLAGS 0x00000026 /* Set flags bitmap(ethtool_value) */
|
||||
#define ETHTOOL_GPFLAGS 0x00000027 /* Get driver-private flags bitmap */
|
||||
#define ETHTOOL_SPFLAGS 0x00000028 /* Set driver-private flags bitmap */
|
||||
#define ETHTOOL_GPFLAGS 0x00000027 /* Get driver-private flags bitmap */
|
||||
#define ETHTOOL_SPFLAGS 0x00000028 /* Set driver-private flags bitmap */
|
||||
|
||||
#define ETHTOOL_GRXFH 0x00000029 /* Get RX flow hash configuration */
|
||||
#define ETHTOOL_SRXFH 0x0000002a /* Set RX flow hash configuration */
|
||||
#define ETHTOOL_GRXFH 0x00000029 /* Get RX flow hash configuration */
|
||||
#define ETHTOOL_SRXFH 0x0000002a /* Set RX flow hash configuration */
|
||||
#define ETHTOOL_GGRO 0x0000002b /* Get GRO enable (ethtool_value) */
|
||||
#define ETHTOOL_SGRO 0x0000002c /* Set GRO enable (ethtool_value) */
|
||||
#define ETHTOOL_GRXRINGS 0x0000002d /* Get RX rings available for LB */
|
||||
#define ETHTOOL_GRXCLSRLCNT 0x0000002e /* Get RX class rule count */
|
||||
#define ETHTOOL_GRXCLSRULE 0x0000002f /* Get RX classification rule */
|
||||
#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */
|
||||
#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
|
||||
#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
|
||||
#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
|
||||
#define ETHTOOL_RESET 0x00000034 /* Reset hardware */
|
||||
#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */
|
||||
#define ETHTOOL_GRXNTUPLE 0x00000036 /* Get n-tuple filters from device */
|
||||
#define ETHTOOL_GSSET_INFO 0x00000037 /* Get string set info */
|
||||
#define ETHTOOL_GRXRINGS 0x0000002d /* Get RX rings available for LB */
|
||||
#define ETHTOOL_GRXCLSRLCNT 0x0000002e /* Get RX class rule count */
|
||||
#define ETHTOOL_GRXCLSRULE 0x0000002f /* Get RX classification rule */
|
||||
#define ETHTOOL_GRXCLSRLALL 0x00000030 /* Get all RX classification rule */
|
||||
#define ETHTOOL_SRXCLSRLDEL 0x00000031 /* Delete RX classification rule */
|
||||
#define ETHTOOL_SRXCLSRLINS 0x00000032 /* Insert RX classification rule */
|
||||
#define ETHTOOL_FLASHDEV 0x00000033 /* Flash firmware to device */
|
||||
#define ETHTOOL_RESET 0x00000034 /* Reset hardware */
|
||||
#define ETHTOOL_SRXNTUPLE 0x00000035 /* Add an n-tuple filter to device */
|
||||
#define ETHTOOL_GRXNTUPLE 0x00000036 /* Get n-tuple filters from device */
|
||||
#define ETHTOOL_GSSET_INFO 0x00000037 /* Get string set info */
|
||||
|
||||
/* compatibility with older code */
|
||||
#define SPARC_ETH_GSET ETHTOOL_GSET
|
||||
|
|
@ -635,18 +645,18 @@ struct ethtool_ops {
|
|||
/* Indicates what features are supported by the interface. */
|
||||
#define SUPPORTED_10baseT_Half (1 << 0)
|
||||
#define SUPPORTED_10baseT_Full (1 << 1)
|
||||
#define SUPPORTED_100baseT_Half (1 << 2)
|
||||
#define SUPPORTED_100baseT_Full (1 << 3)
|
||||
#define SUPPORTED_100baseT_Half (1 << 2)
|
||||
#define SUPPORTED_100baseT_Full (1 << 3)
|
||||
#define SUPPORTED_1000baseT_Half (1 << 4)
|
||||
#define SUPPORTED_1000baseT_Full (1 << 5)
|
||||
#define SUPPORTED_Autoneg (1 << 6)
|
||||
#define SUPPORTED_TP (1 << 7)
|
||||
#define SUPPORTED_AUI (1 << 8)
|
||||
#define SUPPORTED_MII (1 << 9)
|
||||
#define SUPPORTED_FIBRE (1 << 10)
|
||||
#define SUPPORTED_FIBRE (1 << 10)
|
||||
#define SUPPORTED_BNC (1 << 11)
|
||||
#define SUPPORTED_10000baseT_Full (1 << 12)
|
||||
#define SUPPORTED_Pause (1 << 13)
|
||||
#define SUPPORTED_Pause (1 << 13)
|
||||
#define SUPPORTED_Asym_Pause (1 << 14)
|
||||
#define SUPPORTED_2500baseX_Full (1 << 15)
|
||||
#define SUPPORTED_Backplane (1 << 16)
|
||||
|
|
@ -656,8 +666,8 @@ struct ethtool_ops {
|
|||
#define SUPPORTED_10000baseR_FEC (1 << 20)
|
||||
|
||||
/* Indicates what features are advertised by the interface. */
|
||||
#define ADVERTISED_10baseT_Half (1 << 0)
|
||||
#define ADVERTISED_10baseT_Full (1 << 1)
|
||||
#define ADVERTISED_10baseT_Half (1 << 0)
|
||||
#define ADVERTISED_10baseT_Full (1 << 1)
|
||||
#define ADVERTISED_100baseT_Half (1 << 2)
|
||||
#define ADVERTISED_100baseT_Full (1 << 3)
|
||||
#define ADVERTISED_1000baseT_Half (1 << 4)
|
||||
|
|
@ -696,12 +706,12 @@ struct ethtool_ops {
|
|||
#define DUPLEX_FULL 0x01
|
||||
|
||||
/* Which connector port. */
|
||||
#define PORT_TP 0x00
|
||||
#define PORT_TP 0x00
|
||||
#define PORT_AUI 0x01
|
||||
#define PORT_MII 0x02
|
||||
#define PORT_FIBRE 0x03
|
||||
#define PORT_BNC 0x04
|
||||
#define PORT_DA 0x05
|
||||
#define PORT_DA 0x05
|
||||
#define PORT_NONE 0xef
|
||||
#define PORT_OTHER 0xff
|
||||
|
||||
|
|
@ -715,7 +725,7 @@ struct ethtool_ops {
|
|||
/* Enable or disable autonegotiation. If this is set to enable,
|
||||
* the forced link modes above are completely ignored.
|
||||
*/
|
||||
#define AUTONEG_DISABLE 0x00
|
||||
#define AUTONEG_DISABLE 0x00
|
||||
#define AUTONEG_ENABLE 0x01
|
||||
|
||||
/* Mode MDI or MDI-X */
|
||||
|
|
@ -746,8 +756,8 @@ struct ethtool_ops {
|
|||
#define AH_V6_FLOW 0x0b
|
||||
#define ESP_V6_FLOW 0x0c
|
||||
#define IP_USER_FLOW 0x0d
|
||||
#define IPV4_FLOW 0x10
|
||||
#define IPV6_FLOW 0x11
|
||||
#define IPV4_FLOW 0x10
|
||||
#define IPV6_FLOW 0x11
|
||||
|
||||
/* L3-L4 network traffic flow hash options */
|
||||
#define RXH_L2DA (1 << 1)
|
||||
|
|
|
|||
|
|
@ -106,6 +106,15 @@ struct ext2_sb_info {
|
|||
spinlock_t s_rsv_window_lock;
|
||||
struct rb_root s_rsv_window_root;
|
||||
struct ext2_reserve_window_node s_rsv_window_head;
|
||||
/*
|
||||
* s_lock protects against concurrent modifications of s_mount_state,
|
||||
* s_blocks_last, s_overhead_last and the content of superblock's
|
||||
* buffer pointed to by sbi->s_es.
|
||||
*
|
||||
* Note: It is used in ext2_show_options() to provide a consistent view
|
||||
* of the mount options.
|
||||
*/
|
||||
spinlock_t s_lock;
|
||||
};
|
||||
|
||||
static inline spinlock_t *
|
||||
|
|
|
|||
|
|
@ -403,6 +403,7 @@ struct fb_cursor {
|
|||
#include <linux/notifier.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/backlight.h>
|
||||
#include <linux/slab.h>
|
||||
#include <asm/io.h>
|
||||
|
||||
struct vm_area_struct;
|
||||
|
|
@ -862,10 +863,22 @@ struct fb_info {
|
|||
/* we need the PCI or similiar aperture base/size not
|
||||
smem_start/size as smem_start may just be an object
|
||||
allocated inside the aperture so may not actually overlap */
|
||||
resource_size_t aperture_base;
|
||||
resource_size_t aperture_size;
|
||||
struct apertures_struct {
|
||||
unsigned int count;
|
||||
struct aperture {
|
||||
resource_size_t base;
|
||||
resource_size_t size;
|
||||
} ranges[0];
|
||||
} *apertures;
|
||||
};
|
||||
|
||||
static inline struct apertures_struct *alloc_apertures(unsigned int max_num) {
|
||||
struct apertures_struct *a = kzalloc(sizeof(struct apertures_struct)
|
||||
+ max_num * sizeof(struct aperture), GFP_KERNEL);
|
||||
a->count = max_num;
|
||||
return a;
|
||||
}
|
||||
|
||||
#ifdef MODULE
|
||||
#define FBINFO_DEFAULT FBINFO_MODULE
|
||||
#else
|
||||
|
|
@ -958,6 +971,8 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
|
|||
/* drivers/video/fbmem.c */
|
||||
extern int register_framebuffer(struct fb_info *fb_info);
|
||||
extern int unregister_framebuffer(struct fb_info *fb_info);
|
||||
extern void remove_conflicting_framebuffers(struct apertures_struct *a,
|
||||
const char *name, bool primary);
|
||||
extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);
|
||||
extern int fb_show_logo(struct fb_info *fb_info, int rotate);
|
||||
extern char* fb_get_buffer_offset(struct fb_info *info, struct fb_pixmap *buf, u32 size);
|
||||
|
|
|
|||
|
|
@ -21,6 +21,12 @@
|
|||
*/
|
||||
#define F_NOTIFY (F_LINUX_SPECIFIC_BASE+2)
|
||||
|
||||
/*
|
||||
* Set and get of pipe page size array
|
||||
*/
|
||||
#define F_SETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 7)
|
||||
#define F_GETPIPE_SZ (F_LINUX_SPECIFIC_BASE + 8)
|
||||
|
||||
/*
|
||||
* Types of directory notifications that may be requested.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -123,7 +123,8 @@ struct sock_fprog { /* Required for SO_ATTACH_FILTER. */
|
|||
#define SKF_AD_NLATTR_NEST 16
|
||||
#define SKF_AD_MARK 20
|
||||
#define SKF_AD_QUEUE 24
|
||||
#define SKF_AD_MAX 28
|
||||
#define SKF_AD_HATYPE 28
|
||||
#define SKF_AD_MAX 32
|
||||
#define SKF_NET_OFF (-0x100000)
|
||||
#define SKF_LL_OFF (-0x200000)
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@
|
|||
struct firmware {
|
||||
size_t size;
|
||||
const u8 *data;
|
||||
struct page **pages;
|
||||
};
|
||||
|
||||
struct device;
|
||||
|
|
|
|||
|
|
@ -651,6 +651,7 @@ struct block_device {
|
|||
int bd_openers;
|
||||
struct mutex bd_mutex; /* open/close mutex */
|
||||
struct list_head bd_inodes;
|
||||
void * bd_claiming;
|
||||
void * bd_holder;
|
||||
int bd_holders;
|
||||
#ifdef CONFIG_SYSFS
|
||||
|
|
@ -1280,10 +1281,12 @@ static inline int lock_may_write(struct inode *inode, loff_t start,
|
|||
|
||||
|
||||
struct fasync_struct {
|
||||
int magic;
|
||||
int fa_fd;
|
||||
struct fasync_struct *fa_next; /* singly linked list */
|
||||
struct file *fa_file;
|
||||
spinlock_t fa_lock;
|
||||
int magic;
|
||||
int fa_fd;
|
||||
struct fasync_struct *fa_next; /* singly linked list */
|
||||
struct file *fa_file;
|
||||
struct rcu_head fa_rcu;
|
||||
};
|
||||
|
||||
#define FASYNC_MAGIC 0x4601
|
||||
|
|
@ -1292,8 +1295,6 @@ struct fasync_struct {
|
|||
extern int fasync_helper(int, struct file *, int, struct fasync_struct **);
|
||||
/* can be called from interrupts */
|
||||
extern void kill_fasync(struct fasync_struct **, int, int);
|
||||
/* only for net: no internal synchronization */
|
||||
extern void __kill_fasync(struct fasync_struct *, int, int);
|
||||
|
||||
extern int __f_setown(struct file *filp, struct pid *, enum pid_type, int force);
|
||||
extern int f_setown(struct file *filp, unsigned long arg, int force);
|
||||
|
|
@ -1314,8 +1315,6 @@ extern int send_sigurg(struct fown_struct *fown);
|
|||
extern struct list_head super_blocks;
|
||||
extern spinlock_t sb_lock;
|
||||
|
||||
#define sb_entry(list) list_entry((list), struct super_block, s_list)
|
||||
#define S_BIAS (1<<30)
|
||||
struct super_block {
|
||||
struct list_head s_list; /* Keep this first */
|
||||
dev_t s_dev; /* search index; _not_ kdev_t */
|
||||
|
|
@ -1334,12 +1333,11 @@ struct super_block {
|
|||
struct rw_semaphore s_umount;
|
||||
struct mutex s_lock;
|
||||
int s_count;
|
||||
int s_need_sync;
|
||||
atomic_t s_active;
|
||||
#ifdef CONFIG_SECURITY
|
||||
void *s_security;
|
||||
#endif
|
||||
struct xattr_handler **s_xattr;
|
||||
const struct xattr_handler **s_xattr;
|
||||
|
||||
struct list_head s_inodes; /* all inodes */
|
||||
struct hlist_head s_anon; /* anonymous dentries for (nfs) exporting */
|
||||
|
|
@ -1431,7 +1429,8 @@ extern void dentry_unhash(struct dentry *dentry);
|
|||
* VFS file helper functions.
|
||||
*/
|
||||
extern int file_permission(struct file *, int);
|
||||
|
||||
extern void inode_init_owner(struct inode *inode, const struct inode *dir,
|
||||
mode_t mode);
|
||||
/*
|
||||
* VFS FS_IOC_FIEMAP helper definitions.
|
||||
*/
|
||||
|
|
@ -1744,6 +1743,7 @@ struct file_system_type {
|
|||
|
||||
struct lock_class_key s_lock_key;
|
||||
struct lock_class_key s_umount_key;
|
||||
struct lock_class_key s_vfs_rename_key;
|
||||
|
||||
struct lock_class_key i_lock_key;
|
||||
struct lock_class_key i_mutex_key;
|
||||
|
|
@ -1781,8 +1781,6 @@ extern int get_sb_pseudo(struct file_system_type *, char *,
|
|||
const struct super_operations *ops, unsigned long,
|
||||
struct vfsmount *mnt);
|
||||
extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb);
|
||||
int __put_super_and_need_restart(struct super_block *sb);
|
||||
void put_super(struct super_block *sb);
|
||||
|
||||
/* Alas, no aliases. Too much hassle with bringing module.h everywhere */
|
||||
#define fops_get(fops) \
|
||||
|
|
@ -1802,6 +1800,8 @@ extern void drop_collected_mounts(struct vfsmount *);
|
|||
extern int iterate_mounts(int (*)(struct vfsmount *, void *), void *,
|
||||
struct vfsmount *);
|
||||
extern int vfs_statfs(struct dentry *, struct kstatfs *);
|
||||
extern int freeze_super(struct super_block *super);
|
||||
extern int thaw_super(struct super_block *super);
|
||||
|
||||
extern int current_umask(void);
|
||||
|
||||
|
|
@ -2087,9 +2087,9 @@ extern int __filemap_fdatawrite_range(struct address_space *mapping,
|
|||
extern int filemap_fdatawrite_range(struct address_space *mapping,
|
||||
loff_t start, loff_t end);
|
||||
|
||||
extern int vfs_fsync_range(struct file *file, struct dentry *dentry,
|
||||
loff_t start, loff_t end, int datasync);
|
||||
extern int vfs_fsync(struct file *file, struct dentry *dentry, int datasync);
|
||||
extern int vfs_fsync_range(struct file *file, loff_t start, loff_t end,
|
||||
int datasync);
|
||||
extern int vfs_fsync(struct file *file, int datasync);
|
||||
extern int generic_write_sync(struct file *file, loff_t pos, loff_t count);
|
||||
extern void sync_supers(void);
|
||||
extern void emergency_sync(void);
|
||||
|
|
@ -2329,6 +2329,7 @@ extern struct super_block *get_super(struct block_device *);
|
|||
extern struct super_block *get_active_super(struct block_device *bdev);
|
||||
extern struct super_block *user_get_super(dev_t);
|
||||
extern void drop_super(struct super_block *sb);
|
||||
extern void iterate_supers(void (*)(struct super_block *, void *), void *);
|
||||
|
||||
extern int dcache_dir_open(struct inode *, struct file *);
|
||||
extern int dcache_dir_close(struct inode *, struct file *);
|
||||
|
|
@ -2362,6 +2363,8 @@ extern void simple_release_fs(struct vfsmount **mount, int *count);
|
|||
|
||||
extern ssize_t simple_read_from_buffer(void __user *to, size_t count,
|
||||
loff_t *ppos, const void *from, size_t available);
|
||||
extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos,
|
||||
const void __user *from, size_t count);
|
||||
|
||||
extern int simple_fsync(struct file *, struct dentry *, int);
|
||||
|
||||
|
|
|
|||
|
|
@ -82,9 +82,13 @@ void clear_ftrace_function(void);
|
|||
extern void ftrace_stub(unsigned long a0, unsigned long a1);
|
||||
|
||||
#else /* !CONFIG_FUNCTION_TRACER */
|
||||
# define register_ftrace_function(ops) do { } while (0)
|
||||
# define unregister_ftrace_function(ops) do { } while (0)
|
||||
# define clear_ftrace_function(ops) do { } while (0)
|
||||
/*
|
||||
* (un)register_ftrace_function must be a macro since the ops parameter
|
||||
* must not be evaluated.
|
||||
*/
|
||||
#define register_ftrace_function(ops) ({ 0; })
|
||||
#define unregister_ftrace_function(ops) ({ 0; })
|
||||
static inline void clear_ftrace_function(void) { }
|
||||
static inline void ftrace_kill(void) { }
|
||||
static inline void ftrace_stop(void) { }
|
||||
static inline void ftrace_start(void) { }
|
||||
|
|
@ -237,11 +241,13 @@ extern int skip_trace(unsigned long ip);
|
|||
extern void ftrace_disable_daemon(void);
|
||||
extern void ftrace_enable_daemon(void);
|
||||
#else
|
||||
# define skip_trace(ip) ({ 0; })
|
||||
# define ftrace_force_update() ({ 0; })
|
||||
# define ftrace_set_filter(buf, len, reset) do { } while (0)
|
||||
# define ftrace_disable_daemon() do { } while (0)
|
||||
# define ftrace_enable_daemon() do { } while (0)
|
||||
static inline int skip_trace(unsigned long ip) { return 0; }
|
||||
static inline int ftrace_force_update(void) { return 0; }
|
||||
static inline void ftrace_set_filter(unsigned char *buf, int len, int reset)
|
||||
{
|
||||
}
|
||||
static inline void ftrace_disable_daemon(void) { }
|
||||
static inline void ftrace_enable_daemon(void) { }
|
||||
static inline void ftrace_release_mod(struct module *mod) {}
|
||||
static inline int register_ftrace_command(struct ftrace_func_command *cmd)
|
||||
{
|
||||
|
|
@ -314,16 +320,16 @@ static inline void __ftrace_enabled_restore(int enabled)
|
|||
extern void time_hardirqs_on(unsigned long a0, unsigned long a1);
|
||||
extern void time_hardirqs_off(unsigned long a0, unsigned long a1);
|
||||
#else
|
||||
# define time_hardirqs_on(a0, a1) do { } while (0)
|
||||
# define time_hardirqs_off(a0, a1) do { } while (0)
|
||||
static inline void time_hardirqs_on(unsigned long a0, unsigned long a1) { }
|
||||
static inline void time_hardirqs_off(unsigned long a0, unsigned long a1) { }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PREEMPT_TRACER
|
||||
extern void trace_preempt_on(unsigned long a0, unsigned long a1);
|
||||
extern void trace_preempt_off(unsigned long a0, unsigned long a1);
|
||||
#else
|
||||
# define trace_preempt_on(a0, a1) do { } while (0)
|
||||
# define trace_preempt_off(a0, a1) do { } while (0)
|
||||
static inline void trace_preempt_on(unsigned long a0, unsigned long a1) { }
|
||||
static inline void trace_preempt_off(unsigned long a0, unsigned long a1) { }
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FTRACE_MCOUNT_RECORD
|
||||
|
|
@ -352,6 +358,10 @@ struct ftrace_graph_ret {
|
|||
int depth;
|
||||
};
|
||||
|
||||
/* Type of the callback handlers for tracing function graph*/
|
||||
typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); /* return */
|
||||
typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); /* entry */
|
||||
|
||||
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
|
||||
|
||||
/* for init task */
|
||||
|
|
@ -400,10 +410,6 @@ extern char __irqentry_text_end[];
|
|||
|
||||
#define FTRACE_RETFUNC_DEPTH 50
|
||||
#define FTRACE_RETSTACK_ALLOC_SIZE 32
|
||||
/* Type of the callback handlers for tracing function graph*/
|
||||
typedef void (*trace_func_graph_ret_t)(struct ftrace_graph_ret *); /* return */
|
||||
typedef int (*trace_func_graph_ent_t)(struct ftrace_graph_ent *); /* entry */
|
||||
|
||||
extern int register_ftrace_graph(trace_func_graph_ret_t retfunc,
|
||||
trace_func_graph_ent_t entryfunc);
|
||||
|
||||
|
|
@ -441,6 +447,13 @@ static inline void unpause_graph_tracing(void)
|
|||
static inline void ftrace_graph_init_task(struct task_struct *t) { }
|
||||
static inline void ftrace_graph_exit_task(struct task_struct *t) { }
|
||||
|
||||
static inline int register_ftrace_graph(trace_func_graph_ret_t retfunc,
|
||||
trace_func_graph_ent_t entryfunc)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
static inline void unregister_ftrace_graph(void) { }
|
||||
|
||||
static inline int task_curr_ret_stack(struct task_struct *tsk)
|
||||
{
|
||||
return -1;
|
||||
|
|
@ -492,7 +505,9 @@ static inline int test_tsk_trace_graph(struct task_struct *tsk)
|
|||
return tsk->trace & TSK_TRACE_FL_GRAPH;
|
||||
}
|
||||
|
||||
extern int ftrace_dump_on_oops;
|
||||
enum ftrace_dump_mode;
|
||||
|
||||
extern enum ftrace_dump_mode ftrace_dump_on_oops;
|
||||
|
||||
#ifdef CONFIG_PREEMPT
|
||||
#define INIT_TRACE_RECURSION .trace_recursion = 0,
|
||||
|
|
@ -504,18 +519,6 @@ extern int ftrace_dump_on_oops;
|
|||
#define INIT_TRACE_RECURSION
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_HW_BRANCH_TRACER
|
||||
|
||||
void trace_hw_branch(u64 from, u64 to);
|
||||
void trace_hw_branch_oops(void);
|
||||
|
||||
#else /* CONFIG_HW_BRANCH_TRACER */
|
||||
|
||||
static inline void trace_hw_branch(u64 from, u64 to) {}
|
||||
static inline void trace_hw_branch_oops(void) {}
|
||||
|
||||
#endif /* CONFIG_HW_BRANCH_TRACER */
|
||||
|
||||
#ifdef CONFIG_FTRACE_SYSCALLS
|
||||
|
||||
unsigned long arch_syscall_addr(int nr);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ const char *ftrace_print_flags_seq(struct trace_seq *p, const char *delim,
|
|||
const char *ftrace_print_symbols_seq(struct trace_seq *p, unsigned long val,
|
||||
const struct trace_print_flags *symbol_array);
|
||||
|
||||
const char *ftrace_print_hex_seq(struct trace_seq *p,
|
||||
const unsigned char *buf, int len);
|
||||
|
||||
/*
|
||||
* The trace entry - the most basic unit of tracing. This is what
|
||||
* is printed in the end as a single line in the trace output, such as:
|
||||
|
|
@ -58,6 +61,7 @@ struct trace_iterator {
|
|||
/* The below is zeroed out in pipe_read */
|
||||
struct trace_seq seq;
|
||||
struct trace_entry *ent;
|
||||
unsigned long lost_events;
|
||||
int leftover;
|
||||
int cpu;
|
||||
u64 ts;
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@
|
|||
|
||||
struct inode;
|
||||
|
||||
extern struct xattr_handler generic_acl_access_handler;
|
||||
extern struct xattr_handler generic_acl_default_handler;
|
||||
extern const struct xattr_handler generic_acl_access_handler;
|
||||
extern const struct xattr_handler generic_acl_default_handler;
|
||||
|
||||
int generic_acl_init(struct inode *, struct inode *);
|
||||
int generic_acl_chmod(struct inode *);
|
||||
|
|
|
|||
|
|
@ -80,4 +80,12 @@ enum {
|
|||
|
||||
#define CTRL_ATTR_MCAST_GRP_MAX (__CTRL_ATTR_MCAST_GRP_MAX - 1)
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/* All generic netlink requests are serialized by a global lock. */
|
||||
extern void genl_lock(void);
|
||||
extern void genl_unlock(void);
|
||||
|
||||
#endif /* __KERNEL__ */
|
||||
|
||||
#endif /* __LINUX_GENERIC_NETLINK_H */
|
||||
|
|
|
|||
25
include/linux/gsmmux.h
Normal file
25
include/linux/gsmmux.h
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
#ifndef _LINUX_GSMMUX_H
|
||||
#define _LINUX_GSMMUX_H
|
||||
|
||||
struct gsm_config
|
||||
{
|
||||
unsigned int adaption;
|
||||
unsigned int encapsulation;
|
||||
unsigned int initiator;
|
||||
unsigned int t1;
|
||||
unsigned int t2;
|
||||
unsigned int t3;
|
||||
unsigned int n2;
|
||||
unsigned int mru;
|
||||
unsigned int mtu;
|
||||
unsigned int k;
|
||||
unsigned int i;
|
||||
unsigned int unused[8]; /* Padding for expansion without
|
||||
breaking stuff */
|
||||
};
|
||||
|
||||
#define GSMIOC_GETCONF _IOR('G', 0, struct gsm_config)
|
||||
#define GSMIOC_SETCONF _IOW('G', 1, struct gsm_config)
|
||||
|
||||
|
||||
#endif
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
#include <linux/spinlock.h>
|
||||
|
||||
struct cpustate_t {
|
||||
spinlock_t lock;
|
||||
int excl;
|
||||
int open_count;
|
||||
unsigned char cached_val;
|
||||
int inited;
|
||||
unsigned long *set_addr;
|
||||
unsigned long *clr_addr;
|
||||
};
|
||||
|
||||
|
||||
#define HDPU_CPUSTATE_NAME "hdpu cpustate"
|
||||
#define HDPU_NEXUS_NAME "hdpu nexus"
|
||||
|
||||
#define CPUSTATE_KERNEL_MAJOR 0x10
|
||||
|
||||
#define CPUSTATE_KERNEL_INIT_DRV 0 /* CPU State Driver Initialized */
|
||||
#define CPUSTATE_KERNEL_INIT_PCI 1 /* 64360 PCI Busses Init */
|
||||
#define CPUSTATE_KERNEL_INIT_REG 2 /* 64360 Bridge Init */
|
||||
#define CPUSTATE_KERNEL_CPU1_KICK 3 /* Boot cpu 1 */
|
||||
#define CPUSTATE_KERNEL_CPU1_OK 4 /* Cpu 1 has checked in */
|
||||
#define CPUSTATE_KERNEL_OK 5 /* Terminal state */
|
||||
#define CPUSTATE_KERNEL_RESET 14 /* Board reset via SW*/
|
||||
#define CPUSTATE_KERNEL_HALT 15 /* Board halted via SW*/
|
||||
|
|
@ -308,11 +308,13 @@ struct hid_item {
|
|||
#define HID_QUIRK_NOTOUCH 0x00000002
|
||||
#define HID_QUIRK_IGNORE 0x00000004
|
||||
#define HID_QUIRK_NOGET 0x00000008
|
||||
#define HID_QUIRK_HIDDEV_FORCE 0x00000010
|
||||
#define HID_QUIRK_BADPAD 0x00000020
|
||||
#define HID_QUIRK_MULTI_INPUT 0x00000040
|
||||
#define HID_QUIRK_SKIP_OUTPUT_REPORTS 0x00010000
|
||||
#define HID_QUIRK_FULLSPEED_INTERVAL 0x10000000
|
||||
#define HID_QUIRK_NO_INIT_REPORTS 0x20000000
|
||||
#define HID_QUIRK_NO_IGNORE 0x40000000
|
||||
|
||||
/*
|
||||
* This is the global environment of the parser. This information is
|
||||
|
|
@ -589,6 +591,9 @@ struct hid_usage_id {
|
|||
* @report_fixup: called before report descriptor parsing (NULL means nop)
|
||||
* @input_mapping: invoked on input registering before mapping an usage
|
||||
* @input_mapped: invoked on input registering after mapping an usage
|
||||
* @suspend: invoked on suspend (NULL means nop)
|
||||
* @resume: invoked on resume if device was not reset (NULL means nop)
|
||||
* @reset_resume: invoked on resume if device was reset (NULL means nop)
|
||||
*
|
||||
* raw_event and event should return 0 on no action performed, 1 when no
|
||||
* further processing should be done and negative on error
|
||||
|
|
@ -629,6 +634,11 @@ struct hid_driver {
|
|||
int (*input_mapped)(struct hid_device *hdev,
|
||||
struct hid_input *hidinput, struct hid_field *field,
|
||||
struct hid_usage *usage, unsigned long **bit, int *max);
|
||||
#ifdef CONFIG_PM
|
||||
int (*suspend)(struct hid_device *hdev, pm_message_t message);
|
||||
int (*resume)(struct hid_device *hdev);
|
||||
int (*reset_resume)(struct hid_device *hdev);
|
||||
#endif
|
||||
/* private: */
|
||||
struct device_driver driver;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -422,6 +422,8 @@ extern void hrtimer_init_sleeper(struct hrtimer_sleeper *sl,
|
|||
|
||||
extern int schedule_hrtimeout_range(ktime_t *expires, unsigned long delta,
|
||||
const enum hrtimer_mode mode);
|
||||
extern int schedule_hrtimeout_range_clock(ktime_t *expires,
|
||||
unsigned long delta, const enum hrtimer_mode mode, int clock);
|
||||
extern int schedule_hrtimeout(ktime_t *expires, const enum hrtimer_mode mode);
|
||||
|
||||
/* Soft interrupt function to run the hrtimer queues: */
|
||||
|
|
|
|||
|
|
@ -9,9 +9,22 @@ enum {
|
|||
};
|
||||
|
||||
enum {
|
||||
HW_BREAKPOINT_R = 1,
|
||||
HW_BREAKPOINT_W = 2,
|
||||
HW_BREAKPOINT_X = 4,
|
||||
HW_BREAKPOINT_EMPTY = 0,
|
||||
HW_BREAKPOINT_R = 1,
|
||||
HW_BREAKPOINT_W = 2,
|
||||
HW_BREAKPOINT_RW = HW_BREAKPOINT_R | HW_BREAKPOINT_W,
|
||||
HW_BREAKPOINT_X = 4,
|
||||
HW_BREAKPOINT_INVALID = HW_BREAKPOINT_RW | HW_BREAKPOINT_X,
|
||||
};
|
||||
|
||||
enum bp_type_idx {
|
||||
TYPE_INST = 0,
|
||||
#ifdef CONFIG_HAVE_MIXED_BREAKPOINTS_REGS
|
||||
TYPE_DATA = 0,
|
||||
#else
|
||||
TYPE_DATA = 1,
|
||||
#endif
|
||||
TYPE_MAX
|
||||
};
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
|
@ -34,6 +47,12 @@ static inline void hw_breakpoint_init(struct perf_event_attr *attr)
|
|||
attr->sample_period = 1;
|
||||
}
|
||||
|
||||
static inline void ptrace_breakpoint_init(struct perf_event_attr *attr)
|
||||
{
|
||||
hw_breakpoint_init(attr);
|
||||
attr->exclude_kernel = 1;
|
||||
}
|
||||
|
||||
static inline unsigned long hw_breakpoint_addr(struct perf_event *bp)
|
||||
{
|
||||
return bp->attr.bp_addr;
|
||||
|
|
|
|||
9
include/linux/i2c-omap.h
Normal file
9
include/linux/i2c-omap.h
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
#ifndef __I2C_OMAP_H__
|
||||
#define __I2C_OMAP_H__
|
||||
|
||||
struct omap_i2c_bus_platform_data {
|
||||
u32 clkrate;
|
||||
void (*set_mpu_wkup_lat)(struct device *dev, long set);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -34,6 +34,7 @@
|
|||
#include <linux/device.h> /* for struct device */
|
||||
#include <linux/sched.h> /* for completion */
|
||||
#include <linux/mutex.h>
|
||||
#include <linux/of.h> /* for struct device_node */
|
||||
|
||||
extern struct bus_type i2c_bus_type;
|
||||
|
||||
|
|
@ -251,6 +252,9 @@ struct i2c_board_info {
|
|||
unsigned short addr;
|
||||
void *platform_data;
|
||||
struct dev_archdata *archdata;
|
||||
#ifdef CONFIG_OF
|
||||
struct device_node *of_node;
|
||||
#endif
|
||||
int irq;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -496,7 +496,7 @@ struct twl4030_madc_platform_data {
|
|||
int irq_line;
|
||||
};
|
||||
|
||||
/* Boards have uniqe mappings of {row, col} --> keycode.
|
||||
/* Boards have unique mappings of {row, col} --> keycode.
|
||||
* Column and row are 8 bits each, but range only from 0..7.
|
||||
* a PERSISTENT_KEY is "always on" and never reported.
|
||||
*/
|
||||
|
|
@ -569,9 +569,9 @@ struct twl4030_codec_data {
|
|||
struct twl4030_codec_audio_data *audio;
|
||||
struct twl4030_codec_vibra_data *vibra;
|
||||
|
||||
/* twl6030 */
|
||||
int audpwron_gpio; /* audio power-on gpio */
|
||||
int naudint_irq; /* audio interrupt */
|
||||
/* twl6040 */
|
||||
int audpwron_gpio; /* audio power-on gpio */
|
||||
int naudint_irq; /* audio interrupt */
|
||||
};
|
||||
|
||||
struct twl4030_platform_data {
|
||||
|
|
@ -664,15 +664,15 @@ static inline int twl4030charger_usb_en(int enable) { return 0; }
|
|||
#define TWL4030_REG_VUSB3V1 19
|
||||
|
||||
/* TWL6030 SMPS/LDO's */
|
||||
/* EXTERNAL dc-to-dc buck convertor contollable via SR */
|
||||
/* EXTERNAL dc-to-dc buck convertor controllable via SR */
|
||||
#define TWL6030_REG_VDD1 30
|
||||
#define TWL6030_REG_VDD2 31
|
||||
#define TWL6030_REG_VDD3 32
|
||||
|
||||
/* Non SR compliant dc-to-dc buck convertors */
|
||||
#define TWL6030_REG_VMEM 33
|
||||
#define TWL6030_REG_VMEM 33
|
||||
#define TWL6030_REG_V2V1 34
|
||||
#define TWL6030_REG_V1V29 35
|
||||
#define TWL6030_REG_V1V29 35
|
||||
#define TWL6030_REG_V1V8 36
|
||||
|
||||
/* EXTERNAL LDOs */
|
||||
|
|
|
|||
|
|
@ -362,7 +362,7 @@ struct ide_drive_s;
|
|||
struct ide_disk_ops {
|
||||
int (*check)(struct ide_drive_s *, const char *);
|
||||
int (*get_capacity)(struct ide_drive_s *);
|
||||
u64 (*set_capacity)(struct ide_drive_s *, u64);
|
||||
void (*unlock_native_capacity)(struct ide_drive_s *);
|
||||
void (*setup)(struct ide_drive_s *);
|
||||
void (*flush)(struct ide_drive_s *);
|
||||
int (*init_media)(struct ide_drive_s *, struct gendisk *);
|
||||
|
|
@ -516,8 +516,8 @@ struct ide_drive_s {
|
|||
u8 current_speed; /* current transfer rate set */
|
||||
u8 desired_speed; /* desired transfer rate set */
|
||||
u8 pio_mode; /* for ->set_pio_mode _only_ */
|
||||
u8 dma_mode; /* for ->dma_pio_mode _only_ */
|
||||
u8 dn; /* now wide spread use */
|
||||
u8 dma_mode; /* for ->set_dma_mode _only_ */
|
||||
u8 dn; /* now wide spread use */
|
||||
u8 acoustic; /* acoustic management */
|
||||
u8 media; /* disk, cdrom, tape, floppy, ... */
|
||||
u8 ready_stat; /* min status value for drive ready */
|
||||
|
|
|
|||
|
|
@ -876,6 +876,7 @@ struct ieee80211_ht_cap {
|
|||
#define IEEE80211_HT_CAP_SGI_40 0x0040
|
||||
#define IEEE80211_HT_CAP_TX_STBC 0x0080
|
||||
#define IEEE80211_HT_CAP_RX_STBC 0x0300
|
||||
#define IEEE80211_HT_CAP_RX_STBC_SHIFT 8
|
||||
#define IEEE80211_HT_CAP_DELAY_BA 0x0400
|
||||
#define IEEE80211_HT_CAP_MAX_AMSDU 0x0800
|
||||
#define IEEE80211_HT_CAP_DSSSCCK40 0x1000
|
||||
|
|
@ -1211,6 +1212,8 @@ enum ieee80211_category {
|
|||
WLAN_CATEGORY_SA_QUERY = 8,
|
||||
WLAN_CATEGORY_PROTECTED_DUAL_OF_ACTION = 9,
|
||||
WLAN_CATEGORY_WMM = 17,
|
||||
WLAN_CATEGORY_MESH_PLINK = 30, /* Pending ANA approval */
|
||||
WLAN_CATEGORY_MESH_PATH_SEL = 32, /* Pending ANA approval */
|
||||
WLAN_CATEGORY_VENDOR_SPECIFIC_PROTECTED = 126,
|
||||
WLAN_CATEGORY_VENDOR_SPECIFIC = 127,
|
||||
};
|
||||
|
|
@ -1324,7 +1327,6 @@ enum ieee80211_back_actioncode {
|
|||
enum ieee80211_back_parties {
|
||||
WLAN_BACK_RECIPIENT = 0,
|
||||
WLAN_BACK_INITIATOR = 1,
|
||||
WLAN_BACK_TIMER = 2,
|
||||
};
|
||||
|
||||
/* SA Query action */
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@
|
|||
* release skb->dst
|
||||
*/
|
||||
#define IFF_DONT_BRIDGE 0x800 /* disallow bridging this ether dev */
|
||||
#define IFF_IN_NETPOLL 0x1000 /* whether we are processing netpoll */
|
||||
#define IFF_DISABLE_NETPOLL 0x2000 /* disable netpoll at run-time */
|
||||
|
||||
#define IF_GET_IFACE 0x0001 /* for querying only */
|
||||
#define IF_GET_PROTO 0x0002
|
||||
|
|
|
|||
|
|
@ -90,6 +90,7 @@
|
|||
|
||||
#define ARPHRD_PHONET 820 /* PhoNet media type */
|
||||
#define ARPHRD_PHONET_PIPE 821 /* PhoNet pipe header */
|
||||
#define ARPHRD_CAIF 822 /* CAIF media type */
|
||||
|
||||
#define ARPHRD_VOID 0xFFFF /* Void type, nothing is known */
|
||||
#define ARPHRD_NONE 0xFFFE /* zero header length */
|
||||
|
|
|
|||
|
|
@ -109,6 +109,7 @@
|
|||
#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */
|
||||
#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */
|
||||
#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
|
||||
#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
|
||||
|
||||
/*
|
||||
* This is an Ethernet frame header.
|
||||
|
|
|
|||
|
|
@ -37,6 +37,38 @@ struct rtnl_link_stats {
|
|||
__u32 tx_compressed;
|
||||
};
|
||||
|
||||
struct rtnl_link_stats64 {
|
||||
__u64 rx_packets; /* total packets received */
|
||||
__u64 tx_packets; /* total packets transmitted */
|
||||
__u64 rx_bytes; /* total bytes received */
|
||||
__u64 tx_bytes; /* total bytes transmitted */
|
||||
__u64 rx_errors; /* bad packets received */
|
||||
__u64 tx_errors; /* packet transmit problems */
|
||||
__u64 rx_dropped; /* no space in linux buffers */
|
||||
__u64 tx_dropped; /* no space available in linux */
|
||||
__u64 multicast; /* multicast packets received */
|
||||
__u64 collisions;
|
||||
|
||||
/* detailed rx_errors: */
|
||||
__u64 rx_length_errors;
|
||||
__u64 rx_over_errors; /* receiver ring buff overflow */
|
||||
__u64 rx_crc_errors; /* recved pkt with crc error */
|
||||
__u64 rx_frame_errors; /* recv'd frame alignment error */
|
||||
__u64 rx_fifo_errors; /* recv'r fifo overrun */
|
||||
__u64 rx_missed_errors; /* receiver missed packet */
|
||||
|
||||
/* detailed tx_errors */
|
||||
__u64 tx_aborted_errors;
|
||||
__u64 tx_carrier_errors;
|
||||
__u64 tx_fifo_errors;
|
||||
__u64 tx_heartbeat_errors;
|
||||
__u64 tx_window_errors;
|
||||
|
||||
/* for cslip etc */
|
||||
__u64 rx_compressed;
|
||||
__u64 tx_compressed;
|
||||
};
|
||||
|
||||
/* The struct should be in sync with struct ifmap */
|
||||
struct rtnl_link_ifmap {
|
||||
__u64 mem_start;
|
||||
|
|
@ -80,6 +112,9 @@ enum {
|
|||
IFLA_IFALIAS,
|
||||
IFLA_NUM_VF, /* Number of VFs if device is SR-IOV PF */
|
||||
IFLA_VFINFO_LIST,
|
||||
IFLA_STATS64,
|
||||
IFLA_VF_PORTS,
|
||||
IFLA_PORT_SELF,
|
||||
__IFLA_MAX
|
||||
};
|
||||
|
||||
|
|
@ -241,4 +276,77 @@ struct ifla_vf_info {
|
|||
__u32 qos;
|
||||
__u32 tx_rate;
|
||||
};
|
||||
|
||||
/* VF ports management section
|
||||
*
|
||||
* Nested layout of set/get msg is:
|
||||
*
|
||||
* [IFLA_NUM_VF]
|
||||
* [IFLA_VF_PORTS]
|
||||
* [IFLA_VF_PORT]
|
||||
* [IFLA_PORT_*], ...
|
||||
* [IFLA_VF_PORT]
|
||||
* [IFLA_PORT_*], ...
|
||||
* ...
|
||||
* [IFLA_PORT_SELF]
|
||||
* [IFLA_PORT_*], ...
|
||||
*/
|
||||
|
||||
enum {
|
||||
IFLA_VF_PORT_UNSPEC,
|
||||
IFLA_VF_PORT, /* nest */
|
||||
__IFLA_VF_PORT_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_VF_PORT_MAX (__IFLA_VF_PORT_MAX - 1)
|
||||
|
||||
enum {
|
||||
IFLA_PORT_UNSPEC,
|
||||
IFLA_PORT_VF, /* __u32 */
|
||||
IFLA_PORT_PROFILE, /* string */
|
||||
IFLA_PORT_VSI_TYPE, /* 802.1Qbg (pre-)standard VDP */
|
||||
IFLA_PORT_INSTANCE_UUID, /* binary UUID */
|
||||
IFLA_PORT_HOST_UUID, /* binary UUID */
|
||||
IFLA_PORT_REQUEST, /* __u8 */
|
||||
IFLA_PORT_RESPONSE, /* __u16, output only */
|
||||
__IFLA_PORT_MAX,
|
||||
};
|
||||
|
||||
#define IFLA_PORT_MAX (__IFLA_PORT_MAX - 1)
|
||||
|
||||
#define PORT_PROFILE_MAX 40
|
||||
#define PORT_UUID_MAX 16
|
||||
#define PORT_SELF_VF -1
|
||||
|
||||
enum {
|
||||
PORT_REQUEST_PREASSOCIATE = 0,
|
||||
PORT_REQUEST_PREASSOCIATE_RR,
|
||||
PORT_REQUEST_ASSOCIATE,
|
||||
PORT_REQUEST_DISASSOCIATE,
|
||||
};
|
||||
|
||||
enum {
|
||||
PORT_VDP_RESPONSE_SUCCESS = 0,
|
||||
PORT_VDP_RESPONSE_INVALID_FORMAT,
|
||||
PORT_VDP_RESPONSE_INSUFFICIENT_RESOURCES,
|
||||
PORT_VDP_RESPONSE_UNUSED_VTID,
|
||||
PORT_VDP_RESPONSE_VTID_VIOLATION,
|
||||
PORT_VDP_RESPONSE_VTID_VERSION_VIOALTION,
|
||||
PORT_VDP_RESPONSE_OUT_OF_SYNC,
|
||||
/* 0x08-0xFF reserved for future VDP use */
|
||||
PORT_PROFILE_RESPONSE_SUCCESS = 0x100,
|
||||
PORT_PROFILE_RESPONSE_INPROGRESS,
|
||||
PORT_PROFILE_RESPONSE_INVALID,
|
||||
PORT_PROFILE_RESPONSE_BADSTATE,
|
||||
PORT_PROFILE_RESPONSE_INSUFFICIENT_RESOURCES,
|
||||
PORT_PROFILE_RESPONSE_ERROR,
|
||||
};
|
||||
|
||||
struct ifla_port_vsi {
|
||||
__u8 vsi_mgr_id;
|
||||
__u8 vsi_type_id[3];
|
||||
__u8 vsi_type_version;
|
||||
__u8 pad[3];
|
||||
};
|
||||
|
||||
#endif /* _LINUX_IF_LINK_H */
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ extern netdev_tx_t macvlan_start_xmit(struct sk_buff *skb,
|
|||
struct net_device *dev);
|
||||
|
||||
|
||||
extern struct sk_buff *(*macvlan_handle_frame_hook)(struct sk_buff *);
|
||||
extern struct sk_buff *(*macvlan_handle_frame_hook)(struct macvlan_port *,
|
||||
struct sk_buff *);
|
||||
|
||||
#endif /* _LINUX_IF_MACVLAN_H */
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@ struct sockaddr_ll {
|
|||
#define PACKET_TX_RING 13
|
||||
#define PACKET_LOSS 14
|
||||
#define PACKET_VNET_HDR 15
|
||||
#define PACKET_TX_TIMESTAMP 16
|
||||
|
||||
struct tpacket_stats {
|
||||
unsigned int tp_packets;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
* Linux PPP over L2TP (PPPoL2TP) Socket Implementation (RFC 2661)
|
||||
*
|
||||
* This file supplies definitions required by the PPP over L2TP driver
|
||||
* (pppol2tp.c). All version information wrt this file is located in pppol2tp.c
|
||||
* (l2tp_ppp.c). All version information wrt this file is located in l2tp_ppp.c
|
||||
*
|
||||
* License:
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
|
@ -35,6 +35,20 @@ struct pppol2tp_addr {
|
|||
__u16 d_tunnel, d_session; /* For sending outgoing packets */
|
||||
};
|
||||
|
||||
/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
|
||||
* bits. So we need a different sockaddr structure.
|
||||
*/
|
||||
struct pppol2tpv3_addr {
|
||||
pid_t pid; /* pid that owns the fd.
|
||||
* 0 => current */
|
||||
int fd; /* FD of UDP or IP socket to use */
|
||||
|
||||
struct sockaddr_in addr; /* IP address and port to send to */
|
||||
|
||||
__u32 s_tunnel, s_session; /* For matching incoming packets */
|
||||
__u32 d_tunnel, d_session; /* For sending outgoing packets */
|
||||
};
|
||||
|
||||
/* Socket options:
|
||||
* DEBUG - bitmask of debug message categories
|
||||
* SENDSEQ - 0 => don't send packets with sequence numbers
|
||||
|
|
|
|||
|
|
@ -72,6 +72,15 @@ struct sockaddr_pppol2tp {
|
|||
struct pppol2tp_addr pppol2tp;
|
||||
}__attribute__ ((packed));
|
||||
|
||||
/* The L2TPv3 protocol changes tunnel and session ids from 16 to 32
|
||||
* bits. So we need a different sockaddr structure.
|
||||
*/
|
||||
struct sockaddr_pppol2tpv3 {
|
||||
sa_family_t sa_family; /* address family, AF_PPPOX */
|
||||
unsigned int sa_protocol; /* protocol identifier */
|
||||
struct pppol2tpv3_addr pppol2tp;
|
||||
} __attribute__ ((packed));
|
||||
|
||||
/*********************************************************************
|
||||
*
|
||||
* ioctl interface for defining forwarding of connections
|
||||
|
|
|
|||
|
|
@ -51,6 +51,8 @@
|
|||
#define TUNSETSNDBUF _IOW('T', 212, int)
|
||||
#define TUNATTACHFILTER _IOW('T', 213, struct sock_fprog)
|
||||
#define TUNDETACHFILTER _IOW('T', 214, struct sock_fprog)
|
||||
#define TUNGETVNETHDRSZ _IOR('T', 215, int)
|
||||
#define TUNSETVNETHDRSZ _IOW('T', 216, int)
|
||||
|
||||
/* TUNSETIFF ifr flags */
|
||||
#define IFF_TUN 0x0001
|
||||
|
|
|
|||
26
include/linux/if_x25.h
Normal file
26
include/linux/if_x25.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Linux X.25 packet to device interface
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*/
|
||||
|
||||
#ifndef _IF_X25_H
|
||||
#define _IF_X25_H
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
/* Documentation/networking/x25-iface.txt */
|
||||
#define X25_IFACE_DATA 0x00
|
||||
#define X25_IFACE_CONNECT 0x01
|
||||
#define X25_IFACE_DISCONNECT 0x02
|
||||
#define X25_IFACE_PARAMS 0x03
|
||||
|
||||
#endif /* _IF_X25_H */
|
||||
|
|
@ -221,10 +221,10 @@ struct in6_flowlabel_req {
|
|||
#define IPV6_RTHDR 57
|
||||
#define IPV6_RECVDSTOPTS 58
|
||||
#define IPV6_DSTOPTS 59
|
||||
#if 0 /* not yet */
|
||||
#define IPV6_RECVPATHMTU 60
|
||||
#define IPV6_PATHMTU 61
|
||||
#define IPV6_DONTFRAG 62
|
||||
#if 0 /* not yet */
|
||||
#define IPV6_USE_MIN_MTU 63
|
||||
#endif
|
||||
|
||||
|
|
@ -265,6 +265,9 @@ struct in6_flowlabel_req {
|
|||
#define IPV6_PREFER_SRC_CGA 0x0008
|
||||
#define IPV6_PREFER_SRC_NONCGA 0x0800
|
||||
|
||||
/* RFC5082: Generalized Ttl Security Mechanism */
|
||||
#define IPV6_MINHOPCOUNT 73
|
||||
|
||||
/*
|
||||
* Multicast Routing:
|
||||
* see include/linux/mroute6.h.
|
||||
|
|
|
|||
|
|
@ -49,7 +49,6 @@ extern struct group_info init_groups;
|
|||
{ .first = &init_task.pids[PIDTYPE_PGID].node }, \
|
||||
{ .first = &init_task.pids[PIDTYPE_SID].node }, \
|
||||
}, \
|
||||
.rcu = RCU_HEAD_INIT, \
|
||||
.level = 0, \
|
||||
.numbers = { { \
|
||||
.nr = 0, \
|
||||
|
|
|
|||
|
|
@ -806,6 +806,7 @@ struct input_absinfo {
|
|||
#define BUS_HOST 0x19
|
||||
#define BUS_GSC 0x1A
|
||||
#define BUS_ATARI 0x1B
|
||||
#define BUS_SPI 0x1C
|
||||
|
||||
/*
|
||||
* MT_TOOL types
|
||||
|
|
|
|||
63
include/linux/input/ad714x.h
Normal file
63
include/linux/input/ad714x.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
/*
|
||||
* include/linux/input/ad714x.h
|
||||
*
|
||||
* AD714x is very flexible, it can be used as buttons, scrollwheel,
|
||||
* slider, touchpad at the same time. That depends on the boards.
|
||||
* The platform_data for the device's "struct device" holds this
|
||||
* information.
|
||||
*
|
||||
* Copyright 2009 Analog Devices Inc.
|
||||
*
|
||||
* Licensed under the GPL-2 or later.
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_INPUT_AD714X_H__
|
||||
#define __LINUX_INPUT_AD714X_H__
|
||||
|
||||
#define STAGE_NUM 12
|
||||
#define STAGE_CFGREG_NUM 8
|
||||
#define SYS_CFGREG_NUM 8
|
||||
|
||||
/* board information which need be initialized in arch/mach... */
|
||||
struct ad714x_slider_plat {
|
||||
int start_stage;
|
||||
int end_stage;
|
||||
int max_coord;
|
||||
};
|
||||
|
||||
struct ad714x_wheel_plat {
|
||||
int start_stage;
|
||||
int end_stage;
|
||||
int max_coord;
|
||||
};
|
||||
|
||||
struct ad714x_touchpad_plat {
|
||||
int x_start_stage;
|
||||
int x_end_stage;
|
||||
int x_max_coord;
|
||||
|
||||
int y_start_stage;
|
||||
int y_end_stage;
|
||||
int y_max_coord;
|
||||
};
|
||||
|
||||
struct ad714x_button_plat {
|
||||
int keycode;
|
||||
unsigned short l_mask;
|
||||
unsigned short h_mask;
|
||||
};
|
||||
|
||||
struct ad714x_platform_data {
|
||||
int slider_num;
|
||||
int wheel_num;
|
||||
int touchpad_num;
|
||||
int button_num;
|
||||
struct ad714x_slider_plat *slider;
|
||||
struct ad714x_wheel_plat *wheel;
|
||||
struct ad714x_touchpad_plat *touchpad;
|
||||
struct ad714x_button_plat *button;
|
||||
unsigned short stage_cfg_reg[STAGE_NUM][STAGE_CFGREG_NUM];
|
||||
unsigned short sys_cfg_reg[SYS_CFGREG_NUM];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -39,7 +39,8 @@
|
|||
* These flags used only by the kernel as part of the
|
||||
* irq handling routines.
|
||||
*
|
||||
* IRQF_DISABLED - keep irqs disabled when calling the action handler
|
||||
* IRQF_DISABLED - keep irqs disabled when calling the action handler.
|
||||
* DEPRECATED. This flag is a NOOP and scheduled to be removed
|
||||
* IRQF_SAMPLE_RANDOM - irq is used to feed the random generator
|
||||
* IRQF_SHARED - allow sharing the irq among several devices
|
||||
* IRQF_PROBE_SHARED - set by callers when they expect sharing mismatches to occur
|
||||
|
|
@ -77,6 +78,18 @@ enum {
|
|||
IRQTF_AFFINITY,
|
||||
};
|
||||
|
||||
/*
|
||||
* These values can be returned by request_any_context_irq() and
|
||||
* describe the context the interrupt will be run in.
|
||||
*
|
||||
* IRQC_IS_HARDIRQ - interrupt runs in hardirq context
|
||||
* IRQC_IS_NESTED - interrupt runs in a nested threaded context
|
||||
*/
|
||||
enum {
|
||||
IRQC_IS_HARDIRQ = 0,
|
||||
IRQC_IS_NESTED,
|
||||
};
|
||||
|
||||
typedef irqreturn_t (*irq_handler_t)(int, void *);
|
||||
|
||||
/**
|
||||
|
|
@ -120,6 +133,10 @@ request_irq(unsigned int irq, irq_handler_t handler, unsigned long flags,
|
|||
return request_threaded_irq(irq, handler, NULL, flags, name, dev);
|
||||
}
|
||||
|
||||
extern int __must_check
|
||||
request_any_context_irq(unsigned int irq, irq_handler_t handler,
|
||||
unsigned long flags, const char *name, void *dev_id);
|
||||
|
||||
extern void exit_irq_thread(void);
|
||||
#else
|
||||
|
||||
|
|
@ -141,6 +158,13 @@ request_threaded_irq(unsigned int irq, irq_handler_t handler,
|
|||
return request_irq(irq, handler, flags, name, dev);
|
||||
}
|
||||
|
||||
static inline int __must_check
|
||||
request_any_context_irq(unsigned int irq, irq_handler_t handler,
|
||||
unsigned long flags, const char *name, void *dev_id)
|
||||
{
|
||||
return request_irq(irq, handler, flags, name, dev_id);
|
||||
}
|
||||
|
||||
static inline void exit_irq_thread(void) { }
|
||||
#endif
|
||||
|
||||
|
|
@ -209,6 +233,7 @@ extern int irq_set_affinity(unsigned int irq, const struct cpumask *cpumask);
|
|||
extern int irq_can_set_affinity(unsigned int irq);
|
||||
extern int irq_select_affinity(unsigned int irq);
|
||||
|
||||
extern int irq_set_affinity_hint(unsigned int irq, const struct cpumask *m);
|
||||
#else /* CONFIG_SMP */
|
||||
|
||||
static inline int irq_set_affinity(unsigned int irq, const struct cpumask *m)
|
||||
|
|
@ -223,6 +248,11 @@ static inline int irq_can_set_affinity(unsigned int irq)
|
|||
|
||||
static inline int irq_select_affinity(unsigned int irq) { return 0; }
|
||||
|
||||
static inline int irq_set_affinity_hint(unsigned int irq,
|
||||
const struct cpumask *m)
|
||||
{
|
||||
return -EINVAL;
|
||||
}
|
||||
#endif /* CONFIG_SMP && CONFIG_GENERIC_HARDIRQS */
|
||||
|
||||
#ifdef CONFIG_GENERIC_HARDIRQS
|
||||
|
|
|
|||
|
|
@ -37,9 +37,9 @@ struct iommu_ops {
|
|||
int (*attach_dev)(struct iommu_domain *domain, struct device *dev);
|
||||
void (*detach_dev)(struct iommu_domain *domain, struct device *dev);
|
||||
int (*map)(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, size_t size, int prot);
|
||||
void (*unmap)(struct iommu_domain *domain, unsigned long iova,
|
||||
size_t size);
|
||||
phys_addr_t paddr, int gfp_order, int prot);
|
||||
int (*unmap)(struct iommu_domain *domain, unsigned long iova,
|
||||
int gfp_order);
|
||||
phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
|
||||
unsigned long iova);
|
||||
int (*domain_has_cap)(struct iommu_domain *domain,
|
||||
|
|
@ -56,10 +56,10 @@ extern int iommu_attach_device(struct iommu_domain *domain,
|
|||
struct device *dev);
|
||||
extern void iommu_detach_device(struct iommu_domain *domain,
|
||||
struct device *dev);
|
||||
extern int iommu_map_range(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, size_t size, int prot);
|
||||
extern void iommu_unmap_range(struct iommu_domain *domain, unsigned long iova,
|
||||
size_t size);
|
||||
extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, int gfp_order, int prot);
|
||||
extern int iommu_unmap(struct iommu_domain *domain, unsigned long iova,
|
||||
int gfp_order);
|
||||
extern phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
|
||||
unsigned long iova);
|
||||
extern int iommu_domain_has_cap(struct iommu_domain *domain,
|
||||
|
|
@ -96,16 +96,16 @@ static inline void iommu_detach_device(struct iommu_domain *domain,
|
|||
{
|
||||
}
|
||||
|
||||
static inline int iommu_map_range(struct iommu_domain *domain,
|
||||
unsigned long iova, phys_addr_t paddr,
|
||||
size_t size, int prot)
|
||||
static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
|
||||
phys_addr_t paddr, int gfp_order, int prot)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline void iommu_unmap_range(struct iommu_domain *domain,
|
||||
unsigned long iova, size_t size)
|
||||
static inline int iommu_unmap(struct iommu_domain *domain, unsigned long iova,
|
||||
int gfp_order)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
|
||||
|
|
|
|||
|
|
@ -52,6 +52,7 @@ struct resource_list {
|
|||
|
||||
#define IORESOURCE_MEM_64 0x00100000
|
||||
#define IORESOURCE_WINDOW 0x00200000 /* forwarded by bridge */
|
||||
#define IORESOURCE_MUXED 0x00400000 /* Resource is software muxed */
|
||||
|
||||
#define IORESOURCE_EXCLUSIVE 0x08000000 /* Userland may not map this resource */
|
||||
#define IORESOURCE_DISABLED 0x10000000
|
||||
|
|
@ -143,7 +144,8 @@ static inline unsigned long resource_type(const struct resource *res)
|
|||
}
|
||||
|
||||
/* Convenience shorthand with allocation */
|
||||
#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), 0)
|
||||
#define request_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), 0)
|
||||
#define request_muxed_region(start,n,name) __request_region(&ioport_resource, (start), (n), (name), IORESOURCE_MUXED)
|
||||
#define __request_mem_region(start,n,name, excl) __request_region(&iomem_resource, (start), (n), (name), excl)
|
||||
#define request_mem_region(start,n,name) __request_region(&iomem_resource, (start), (n), (name), 0)
|
||||
#define request_mem_region_exclusive(start,n,name) \
|
||||
|
|
|
|||
|
|
@ -21,6 +21,10 @@ struct in6_pktinfo {
|
|||
int ipi6_ifindex;
|
||||
};
|
||||
|
||||
struct ip6_mtuinfo {
|
||||
struct sockaddr_in6 ip6m_addr;
|
||||
__u32 ip6m_mtu;
|
||||
};
|
||||
|
||||
struct in6_ifreq {
|
||||
struct in6_addr ifr6_addr;
|
||||
|
|
@ -250,9 +254,11 @@ struct inet6_skb_parm {
|
|||
|
||||
#define IP6SKB_XFRM_TRANSFORMED 1
|
||||
#define IP6SKB_FORWARDED 2
|
||||
#define IP6SKB_REROUTED 4
|
||||
};
|
||||
|
||||
#define IP6CB(skb) ((struct inet6_skb_parm*)((skb)->cb))
|
||||
#define IP6CBMTU(skb) ((struct ip6_mtuinfo *)((skb)->cb))
|
||||
|
||||
static inline int inet6_iif(const struct sk_buff *skb)
|
||||
{
|
||||
|
|
@ -334,21 +340,25 @@ struct ipv6_pinfo {
|
|||
dstopts:1,
|
||||
odstopts:1,
|
||||
rxflow:1,
|
||||
rxtclass:1;
|
||||
rxtclass:1,
|
||||
rxpmtu:1;
|
||||
} bits;
|
||||
__u16 all;
|
||||
} rxopt;
|
||||
|
||||
/* sockopt flags */
|
||||
__u8 recverr:1,
|
||||
__u16 recverr:1,
|
||||
sndflow:1,
|
||||
pmtudisc:2,
|
||||
ipv6only:1,
|
||||
srcprefs:3; /* 001: prefer temporary address
|
||||
srcprefs:3, /* 001: prefer temporary address
|
||||
* 010: prefer public address
|
||||
* 100: prefer care-of address
|
||||
*/
|
||||
dontfrag:1;
|
||||
__u8 min_hopcount;
|
||||
__u8 tclass;
|
||||
__u8 padding;
|
||||
|
||||
__u32 dst_cookie;
|
||||
|
||||
|
|
@ -358,6 +368,7 @@ struct ipv6_pinfo {
|
|||
|
||||
struct ipv6_txoptions *opt;
|
||||
struct sk_buff *pktoptions;
|
||||
struct sk_buff *rxpmtu;
|
||||
struct {
|
||||
struct ipv6_txoptions *opt;
|
||||
u8 hop_limit;
|
||||
|
|
@ -372,6 +383,7 @@ struct raw6_sock {
|
|||
__u32 checksum; /* perform checksum */
|
||||
__u32 offset; /* checksum offset */
|
||||
struct icmp6_filter filter;
|
||||
__u32 ip6mr_table;
|
||||
/* ipv6_pinfo has to be the last member of raw6_sock, see inet6_sk_generic */
|
||||
struct ipv6_pinfo inet6;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -195,6 +195,7 @@ struct irq_desc {
|
|||
raw_spinlock_t lock;
|
||||
#ifdef CONFIG_SMP
|
||||
cpumask_var_t affinity;
|
||||
const struct cpumask *affinity_hint;
|
||||
unsigned int node;
|
||||
#ifdef CONFIG_GENERIC_PENDING_IRQ
|
||||
cpumask_var_t pending_mask;
|
||||
|
|
|
|||
|
|
@ -43,10 +43,10 @@
|
|||
*/
|
||||
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/mod_devicetable.h>
|
||||
|
||||
#define DEVICE_COUNT_COMPATIBLE 4
|
||||
|
||||
#define ISAPNP_ANY_ID 0xffff
|
||||
#define ISAPNP_CARD_DEVS 8
|
||||
|
||||
#define ISAPNP_CARD_ID(_va, _vb, _vc, _device) \
|
||||
|
|
@ -74,12 +74,6 @@ struct isapnp_card_id {
|
|||
#define ISAPNP_DEVICE_SINGLE_END \
|
||||
.card_vendor = 0, .card_device = 0
|
||||
|
||||
struct isapnp_device_id {
|
||||
unsigned short card_vendor, card_device;
|
||||
unsigned short vendor, function;
|
||||
unsigned long driver_data; /* data private to the driver */
|
||||
};
|
||||
|
||||
#if defined(CONFIG_ISAPNP) || (defined(CONFIG_ISAPNP_MODULE) && defined(MODULE))
|
||||
|
||||
#define __ISAPNP__
|
||||
|
|
|
|||
|
|
@ -427,9 +427,9 @@ struct transaction_s
|
|||
enum {
|
||||
T_RUNNING,
|
||||
T_LOCKED,
|
||||
T_RUNDOWN,
|
||||
T_FLUSH,
|
||||
T_COMMIT,
|
||||
T_COMMIT_RECORD,
|
||||
T_FINISHED
|
||||
} t_state;
|
||||
|
||||
|
|
@ -991,6 +991,7 @@ int journal_start_commit(journal_t *journal, tid_t *tid);
|
|||
int journal_force_commit_nested(journal_t *journal);
|
||||
int log_wait_commit(journal_t *journal, tid_t tid);
|
||||
int log_do_checkpoint(journal_t *journal);
|
||||
int journal_trans_will_send_data_barrier(journal_t *journal, tid_t tid);
|
||||
|
||||
void __log_wait_for_space(journal_t *journal);
|
||||
extern void __journal_drop_transaction(journal_t *, transaction_t *);
|
||||
|
|
|
|||
|
|
@ -215,8 +215,8 @@ union jffs2_node_union
|
|||
|
||||
/* Data payload for device nodes. */
|
||||
union jffs2_device_node {
|
||||
jint16_t old;
|
||||
jint32_t new;
|
||||
jint16_t old_id;
|
||||
jint32_t new_id;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_JFFS2_H__ */
|
||||
|
|
|
|||
117
include/linux/kdb.h
Normal file
117
include/linux/kdb.h
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
#ifndef _KDB_H
|
||||
#define _KDB_H
|
||||
|
||||
/*
|
||||
* Kernel Debugger Architecture Independent Global Headers
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU General Public
|
||||
* License. See the file "COPYING" in the main directory of this archive
|
||||
* for more details.
|
||||
*
|
||||
* Copyright (c) 2000-2007 Silicon Graphics, Inc. All Rights Reserved.
|
||||
* Copyright (C) 2000 Stephane Eranian <eranian@hpl.hp.com>
|
||||
* Copyright (C) 2009 Jason Wessel <jason.wessel@windriver.com>
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_KGDB_KDB
|
||||
#include <linux/init.h>
|
||||
#include <linux/sched.h>
|
||||
#include <asm/atomic.h>
|
||||
|
||||
#define KDB_POLL_FUNC_MAX 5
|
||||
extern int kdb_poll_idx;
|
||||
|
||||
/*
|
||||
* kdb_initial_cpu is initialized to -1, and is set to the cpu
|
||||
* number whenever the kernel debugger is entered.
|
||||
*/
|
||||
extern int kdb_initial_cpu;
|
||||
extern atomic_t kdb_event;
|
||||
|
||||
/*
|
||||
* kdb_diemsg
|
||||
*
|
||||
* Contains a pointer to the last string supplied to the
|
||||
* kernel 'die' panic function.
|
||||
*/
|
||||
extern const char *kdb_diemsg;
|
||||
|
||||
#define KDB_FLAG_EARLYKDB (1 << 0) /* set from boot parameter kdb=early */
|
||||
#define KDB_FLAG_CATASTROPHIC (1 << 1) /* A catastrophic event has occurred */
|
||||
#define KDB_FLAG_CMD_INTERRUPT (1 << 2) /* Previous command was interrupted */
|
||||
#define KDB_FLAG_NOIPI (1 << 3) /* Do not send IPIs */
|
||||
#define KDB_FLAG_ONLY_DO_DUMP (1 << 4) /* Only do a dump, used when
|
||||
* kdb is off */
|
||||
#define KDB_FLAG_NO_CONSOLE (1 << 5) /* No console is available,
|
||||
* kdb is disabled */
|
||||
#define KDB_FLAG_NO_VT_CONSOLE (1 << 6) /* No VT console is available, do
|
||||
* not use keyboard */
|
||||
#define KDB_FLAG_NO_I8042 (1 << 7) /* No i8042 chip is available, do
|
||||
* not use keyboard */
|
||||
|
||||
extern int kdb_flags; /* Global flags, see kdb_state for per cpu state */
|
||||
|
||||
extern void kdb_save_flags(void);
|
||||
extern void kdb_restore_flags(void);
|
||||
|
||||
#define KDB_FLAG(flag) (kdb_flags & KDB_FLAG_##flag)
|
||||
#define KDB_FLAG_SET(flag) ((void)(kdb_flags |= KDB_FLAG_##flag))
|
||||
#define KDB_FLAG_CLEAR(flag) ((void)(kdb_flags &= ~KDB_FLAG_##flag))
|
||||
|
||||
/*
|
||||
* External entry point for the kernel debugger. The pt_regs
|
||||
* at the time of entry are supplied along with the reason for
|
||||
* entry to the kernel debugger.
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
KDB_REASON_ENTER = 1, /* KDB_ENTER() trap/fault - regs valid */
|
||||
KDB_REASON_ENTER_SLAVE, /* KDB_ENTER_SLAVE() trap/fault - regs valid */
|
||||
KDB_REASON_BREAK, /* Breakpoint inst. - regs valid */
|
||||
KDB_REASON_DEBUG, /* Debug Fault - regs valid */
|
||||
KDB_REASON_OOPS, /* Kernel Oops - regs valid */
|
||||
KDB_REASON_SWITCH, /* CPU switch - regs valid*/
|
||||
KDB_REASON_KEYBOARD, /* Keyboard entry - regs valid */
|
||||
KDB_REASON_NMI, /* Non-maskable interrupt; regs valid */
|
||||
KDB_REASON_RECURSE, /* Recursive entry to kdb;
|
||||
* regs probably valid */
|
||||
KDB_REASON_SSTEP, /* Single Step trap. - regs valid */
|
||||
} kdb_reason_t;
|
||||
|
||||
extern int kdb_trap_printk;
|
||||
extern int vkdb_printf(const char *fmt, va_list args)
|
||||
__attribute__ ((format (printf, 1, 0)));
|
||||
extern int kdb_printf(const char *, ...)
|
||||
__attribute__ ((format (printf, 1, 2)));
|
||||
typedef int (*kdb_printf_t)(const char *, ...)
|
||||
__attribute__ ((format (printf, 1, 2)));
|
||||
|
||||
extern void kdb_init(int level);
|
||||
|
||||
/* Access to kdb specific polling devices */
|
||||
typedef int (*get_char_func)(void);
|
||||
extern get_char_func kdb_poll_funcs[];
|
||||
extern int kdb_get_kbd_char(void);
|
||||
|
||||
static inline
|
||||
int kdb_process_cpu(const struct task_struct *p)
|
||||
{
|
||||
unsigned int cpu = task_thread_info(p)->cpu;
|
||||
if (cpu > num_possible_cpus())
|
||||
cpu = 0;
|
||||
return cpu;
|
||||
}
|
||||
|
||||
/* kdb access to register set for stack dumping */
|
||||
extern struct pt_regs *kdb_current_regs;
|
||||
|
||||
#else /* ! CONFIG_KGDB_KDB */
|
||||
#define kdb_printf(...)
|
||||
#define kdb_init(x)
|
||||
#endif /* CONFIG_KGDB_KDB */
|
||||
enum {
|
||||
KDB_NOT_INITIALIZED,
|
||||
KDB_INIT_EARLY,
|
||||
KDB_INIT_FULL,
|
||||
};
|
||||
#endif /* !_KDB_H */
|
||||
|
|
@ -4,6 +4,8 @@
|
|||
/*
|
||||
* 'kernel.h' contains some often-used function prototypes etc
|
||||
*/
|
||||
#define __ALIGN_KERNEL(x, a) __ALIGN_KERNEL_MASK(x, (typeof(x))(a) - 1)
|
||||
#define __ALIGN_KERNEL_MASK(x, mask) (((x) + (mask)) & ~(mask))
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
|
|
@ -37,8 +39,8 @@ extern const char linux_proc_banner[];
|
|||
|
||||
#define STACK_MAGIC 0xdeadbeef
|
||||
|
||||
#define ALIGN(x,a) __ALIGN_MASK(x,(typeof(x))(a)-1)
|
||||
#define __ALIGN_MASK(x,mask) (((x)+(mask))&~(mask))
|
||||
#define ALIGN(x, a) __ALIGN_KERNEL((x), (a))
|
||||
#define __ALIGN_MASK(x, mask) __ALIGN_KERNEL_MASK((x), (mask))
|
||||
#define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a)))
|
||||
#define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0)
|
||||
|
||||
|
|
@ -344,6 +346,7 @@ extern enum system_states {
|
|||
#define TAINT_OVERRIDDEN_ACPI_TABLE 8
|
||||
#define TAINT_WARN 9
|
||||
#define TAINT_CRAP 10
|
||||
#define TAINT_FIRMWARE_WORKAROUND 11
|
||||
|
||||
extern void dump_stack(void) __cold;
|
||||
|
||||
|
|
@ -490,6 +493,13 @@ static inline void tracing_off(void) { }
|
|||
static inline void tracing_off_permanent(void) { }
|
||||
static inline int tracing_is_on(void) { return 0; }
|
||||
#endif
|
||||
|
||||
enum ftrace_dump_mode {
|
||||
DUMP_NONE,
|
||||
DUMP_ALL,
|
||||
DUMP_ORIG,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_TRACING
|
||||
extern void tracing_start(void);
|
||||
extern void tracing_stop(void);
|
||||
|
|
@ -571,7 +581,7 @@ __ftrace_vbprintk(unsigned long ip, const char *fmt, va_list ap);
|
|||
extern int
|
||||
__ftrace_vprintk(unsigned long ip, const char *fmt, va_list ap);
|
||||
|
||||
extern void ftrace_dump(void);
|
||||
extern void ftrace_dump(enum ftrace_dump_mode oops_dump_mode);
|
||||
#else
|
||||
static inline void
|
||||
ftrace_special(unsigned long arg1, unsigned long arg2, unsigned long arg3) { }
|
||||
|
|
@ -592,7 +602,7 @@ ftrace_vprintk(const char *fmt, va_list ap)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
static inline void ftrace_dump(void) { }
|
||||
static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { }
|
||||
#endif /* CONFIG_TRACING */
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -201,7 +201,7 @@ static inline __must_check unsigned int kfifo_avail(struct kfifo *fifo)
|
|||
* @n: the length of the data to be added.
|
||||
* @lock: pointer to the spinlock to use for locking.
|
||||
*
|
||||
* This function copies at most @len bytes from the @from buffer into
|
||||
* This function copies at most @n bytes from the @from buffer into
|
||||
* the FIFO depending on the free space, and returns the number of
|
||||
* bytes copied.
|
||||
*/
|
||||
|
|
@ -227,7 +227,7 @@ static inline unsigned int kfifo_in_locked(struct kfifo *fifo,
|
|||
* @n: the size of the destination buffer.
|
||||
* @lock: pointer to the spinlock to use for locking.
|
||||
*
|
||||
* This function copies at most @len bytes from the FIFO into the
|
||||
* This function copies at most @n bytes from the FIFO into the
|
||||
* @to buffer and returns the number of copied bytes.
|
||||
*/
|
||||
static inline __must_check unsigned int kfifo_out_locked(struct kfifo *fifo,
|
||||
|
|
|
|||
|
|
@ -16,10 +16,12 @@
|
|||
#include <linux/serial_8250.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/init.h>
|
||||
|
||||
#include <asm/atomic.h>
|
||||
#ifdef CONFIG_HAVE_ARCH_KGDB
|
||||
#include <asm/kgdb.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_KGDB
|
||||
struct pt_regs;
|
||||
|
||||
/**
|
||||
|
|
@ -33,20 +35,6 @@ struct pt_regs;
|
|||
*/
|
||||
extern int kgdb_skipexception(int exception, struct pt_regs *regs);
|
||||
|
||||
/**
|
||||
* kgdb_post_primary_code - (optional) Save error vector/code numbers.
|
||||
* @regs: Original pt_regs.
|
||||
* @e_vector: Original error vector.
|
||||
* @err_code: Original error code.
|
||||
*
|
||||
* This is usually needed on architectures which support SMP and
|
||||
* KGDB. This function is called after all the secondary cpus have
|
||||
* been put to a know spin state and the primary CPU has control over
|
||||
* KGDB.
|
||||
*/
|
||||
extern void kgdb_post_primary_code(struct pt_regs *regs, int e_vector,
|
||||
int err_code);
|
||||
|
||||
/**
|
||||
* kgdb_disable_hw_debug - (optional) Disable hardware debugging hook
|
||||
* @regs: Current &struct pt_regs.
|
||||
|
|
@ -72,6 +60,7 @@ struct uart_port;
|
|||
void kgdb_breakpoint(void);
|
||||
|
||||
extern int kgdb_connected;
|
||||
extern int kgdb_io_module_registered;
|
||||
|
||||
extern atomic_t kgdb_setting_breakpoint;
|
||||
extern atomic_t kgdb_cpu_doing_single_step;
|
||||
|
|
@ -202,11 +191,33 @@ kgdb_arch_handle_exception(int vector, int signo, int err_code,
|
|||
*/
|
||||
extern void kgdb_roundup_cpus(unsigned long flags);
|
||||
|
||||
/**
|
||||
* kgdb_arch_set_pc - Generic call back to the program counter
|
||||
* @regs: Current &struct pt_regs.
|
||||
* @pc: The new value for the program counter
|
||||
*
|
||||
* This function handles updating the program counter and requires an
|
||||
* architecture specific implementation.
|
||||
*/
|
||||
extern void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc);
|
||||
|
||||
|
||||
/* Optional functions. */
|
||||
extern int kgdb_validate_break_address(unsigned long addr);
|
||||
extern int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr);
|
||||
extern int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle);
|
||||
|
||||
/**
|
||||
* kgdb_arch_late - Perform any architecture specific initalization.
|
||||
*
|
||||
* This function will handle the late initalization of any
|
||||
* architecture specific callbacks. This is an optional function for
|
||||
* handling things like late initialization of hw breakpoints. The
|
||||
* default implementation does nothing.
|
||||
*/
|
||||
extern void kgdb_arch_late(void);
|
||||
|
||||
|
||||
/**
|
||||
* struct kgdb_arch - Describe architecture specific values.
|
||||
* @gdb_bpt_instr: The instruction to trigger a breakpoint.
|
||||
|
|
@ -247,6 +258,8 @@ struct kgdb_arch {
|
|||
* the I/O driver.
|
||||
* @post_exception: Pointer to a function that will do any cleanup work
|
||||
* for the I/O driver.
|
||||
* @is_console: 1 if the end device is a console 0 if the I/O device is
|
||||
* not a console
|
||||
*/
|
||||
struct kgdb_io {
|
||||
const char *name;
|
||||
|
|
@ -256,6 +269,7 @@ struct kgdb_io {
|
|||
int (*init) (void);
|
||||
void (*pre_exception) (void);
|
||||
void (*post_exception) (void);
|
||||
int is_console;
|
||||
};
|
||||
|
||||
extern struct kgdb_arch arch_kgdb_ops;
|
||||
|
|
@ -264,12 +278,14 @@ extern unsigned long __weak kgdb_arch_pc(int exception, struct pt_regs *regs);
|
|||
|
||||
extern int kgdb_register_io_module(struct kgdb_io *local_kgdb_io_ops);
|
||||
extern void kgdb_unregister_io_module(struct kgdb_io *local_kgdb_io_ops);
|
||||
extern struct kgdb_io *dbg_io_ops;
|
||||
|
||||
extern int kgdb_hex2long(char **ptr, unsigned long *long_val);
|
||||
extern int kgdb_mem2hex(char *mem, char *buf, int count);
|
||||
extern int kgdb_hex2mem(char *buf, char *mem, int count);
|
||||
|
||||
extern int kgdb_isremovedbreak(unsigned long addr);
|
||||
extern void kgdb_schedule_breakpoint(void);
|
||||
|
||||
extern int
|
||||
kgdb_handle_exception(int ex_vector, int signo, int err_code,
|
||||
|
|
@ -278,5 +294,12 @@ extern int kgdb_nmicallback(int cpu, void *regs);
|
|||
|
||||
extern int kgdb_single_step;
|
||||
extern atomic_t kgdb_active;
|
||||
|
||||
#define in_dbg_master() \
|
||||
(raw_smp_processor_id() == atomic_read(&kgdb_active))
|
||||
extern bool dbg_is_early;
|
||||
extern void __init dbg_late_init(void);
|
||||
#else /* ! CONFIG_KGDB */
|
||||
#define in_dbg_master() (0)
|
||||
#define dbg_late_init()
|
||||
#endif /* ! CONFIG_KGDB */
|
||||
#endif /* _KGDB_H_ */
|
||||
|
|
|
|||
|
|
@ -1,3 +1,10 @@
|
|||
/*
|
||||
* kobj_map.h
|
||||
*/
|
||||
|
||||
#ifndef _KOBJ_MAP_H_
|
||||
#define _KOBJ_MAP_H_
|
||||
|
||||
#include <linux/mutex.h>
|
||||
|
||||
typedef struct kobject *kobj_probe_t(dev_t, int *, void *);
|
||||
|
|
@ -8,3 +15,5 @@ int kobj_map(struct kobj_map *, dev_t, unsigned long, struct module *,
|
|||
void kobj_unmap(struct kobj_map *, dev_t, unsigned long);
|
||||
struct kobject *kobj_lookup(struct kobj_map *, dev_t, int *);
|
||||
struct kobj_map *kobj_map_init(kobj_probe_t *, struct mutex *);
|
||||
|
||||
#endif /* _KOBJ_MAP_H_ */
|
||||
|
|
|
|||
|
|
@ -108,6 +108,8 @@ struct kobj_type {
|
|||
void (*release)(struct kobject *kobj);
|
||||
const struct sysfs_ops *sysfs_ops;
|
||||
struct attribute **default_attrs;
|
||||
const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
|
||||
const void *(*namespace)(struct kobject *kobj);
|
||||
};
|
||||
|
||||
struct kobj_uevent_env {
|
||||
|
|
@ -134,6 +136,42 @@ struct kobj_attribute {
|
|||
|
||||
extern const struct sysfs_ops kobj_sysfs_ops;
|
||||
|
||||
/*
|
||||
* Namespace types which are used to tag kobjects and sysfs entries.
|
||||
* Network namespace will likely be the first.
|
||||
*/
|
||||
enum kobj_ns_type {
|
||||
KOBJ_NS_TYPE_NONE = 0,
|
||||
KOBJ_NS_TYPE_NET,
|
||||
KOBJ_NS_TYPES
|
||||
};
|
||||
|
||||
struct sock;
|
||||
|
||||
/*
|
||||
* Callbacks so sysfs can determine namespaces
|
||||
* @current_ns: return calling task's namespace
|
||||
* @netlink_ns: return namespace to which a sock belongs (right?)
|
||||
* @initial_ns: return the initial namespace (i.e. init_net_ns)
|
||||
*/
|
||||
struct kobj_ns_type_operations {
|
||||
enum kobj_ns_type type;
|
||||
const void *(*current_ns)(void);
|
||||
const void *(*netlink_ns)(struct sock *sk);
|
||||
const void *(*initial_ns)(void);
|
||||
};
|
||||
|
||||
int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
|
||||
int kobj_ns_type_registered(enum kobj_ns_type type);
|
||||
const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent);
|
||||
const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj);
|
||||
|
||||
const void *kobj_ns_current(enum kobj_ns_type type);
|
||||
const void *kobj_ns_netlink(enum kobj_ns_type type, struct sock *sk);
|
||||
const void *kobj_ns_initial(enum kobj_ns_type type);
|
||||
void kobj_ns_exit(enum kobj_ns_type type, const void *ns);
|
||||
|
||||
|
||||
/**
|
||||
* struct kset - a set of kobjects of a specific type, belonging to a specific subsystem.
|
||||
*
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* kref.c - library routines for handling generic reference counted objects
|
||||
* kref.h - library routines for handling generic reference counted objects
|
||||
*
|
||||
* Copyright (C) 2004 Greg Kroah-Hartman <greg@kroah.com>
|
||||
* Copyright (C) 2004 IBM Corp.
|
||||
|
|
@ -21,7 +21,6 @@ struct kref {
|
|||
atomic_t refcount;
|
||||
};
|
||||
|
||||
void kref_set(struct kref *kref, int num);
|
||||
void kref_init(struct kref *kref);
|
||||
void kref_get(struct kref *kref);
|
||||
int kref_put(struct kref *kref, void (*release) (struct kref *kref));
|
||||
|
|
|
|||
34
include/linux/ks8842.h
Normal file
34
include/linux/ks8842.h
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
* ks8842.h KS8842 platform data struct definition
|
||||
* Copyright (c) 2010 Intel Corporation
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_KS8842_H
|
||||
#define _LINUX_KS8842_H
|
||||
|
||||
#include <linux/if_ether.h>
|
||||
|
||||
/**
|
||||
* struct ks8842_platform_data - Platform data of the KS8842 network driver
|
||||
* @macaddr: The MAC address of the device, set to all 0:s to use the on in
|
||||
* the chip.
|
||||
*
|
||||
*/
|
||||
struct ks8842_platform_data {
|
||||
u8 macaddr[ETH_ALEN];
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -130,7 +130,7 @@ static inline ktime_t timeval_to_ktime(struct timeval tv)
|
|||
/* Convert ktime_t to nanoseconds - NOP in the scalar storage format: */
|
||||
#define ktime_to_ns(kt) ((kt).tv64)
|
||||
|
||||
#else
|
||||
#else /* !((BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)) */
|
||||
|
||||
/*
|
||||
* Helper macros/inlines to get the ktime_t math right in the timespec
|
||||
|
|
@ -275,7 +275,7 @@ static inline s64 ktime_to_ns(const ktime_t kt)
|
|||
return (s64) kt.tv.sec * NSEC_PER_SEC + kt.tv.nsec;
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif /* !((BITS_PER_LONG == 64) || defined(CONFIG_KTIME_SCALAR)) */
|
||||
|
||||
/**
|
||||
* ktime_equal - Compares two ktime_t variables to see if they are equal
|
||||
|
|
@ -295,6 +295,12 @@ static inline s64 ktime_to_us(const ktime_t kt)
|
|||
return (s64) tv.tv_sec * USEC_PER_SEC + tv.tv_usec;
|
||||
}
|
||||
|
||||
static inline s64 ktime_to_ms(const ktime_t kt)
|
||||
{
|
||||
struct timeval tv = ktime_to_timeval(kt);
|
||||
return (s64) tv.tv_sec * MSEC_PER_SEC + tv.tv_usec / USEC_PER_MSEC;
|
||||
}
|
||||
|
||||
static inline s64 ktime_us_delta(const ktime_t later, const ktime_t earlier)
|
||||
{
|
||||
return ktime_to_us(ktime_sub(later, earlier));
|
||||
|
|
|
|||
|
|
@ -160,6 +160,7 @@ struct kvm_pit_config {
|
|||
#define KVM_EXIT_DCR 15
|
||||
#define KVM_EXIT_NMI 16
|
||||
#define KVM_EXIT_INTERNAL_ERROR 17
|
||||
#define KVM_EXIT_OSI 18
|
||||
|
||||
/* For KVM_EXIT_INTERNAL_ERROR */
|
||||
#define KVM_INTERNAL_ERROR_EMULATION 1
|
||||
|
|
@ -259,6 +260,10 @@ struct kvm_run {
|
|||
__u32 ndata;
|
||||
__u64 data[16];
|
||||
} internal;
|
||||
/* KVM_EXIT_OSI */
|
||||
struct {
|
||||
__u64 gprs[32];
|
||||
} osi;
|
||||
/* Fix the size of the union. */
|
||||
char padding[256];
|
||||
};
|
||||
|
|
@ -400,6 +405,15 @@ struct kvm_ioeventfd {
|
|||
__u8 pad[36];
|
||||
};
|
||||
|
||||
/* for KVM_ENABLE_CAP */
|
||||
struct kvm_enable_cap {
|
||||
/* in */
|
||||
__u32 cap;
|
||||
__u32 flags;
|
||||
__u64 args[4];
|
||||
__u8 pad[64];
|
||||
};
|
||||
|
||||
#define KVMIO 0xAE
|
||||
|
||||
/*
|
||||
|
|
@ -501,7 +515,15 @@ struct kvm_ioeventfd {
|
|||
#define KVM_CAP_HYPERV_VAPIC 45
|
||||
#define KVM_CAP_HYPERV_SPIN 46
|
||||
#define KVM_CAP_PCI_SEGMENT 47
|
||||
#define KVM_CAP_PPC_PAIRED_SINGLES 48
|
||||
#define KVM_CAP_INTR_SHADOW 49
|
||||
#ifdef __KVM_HAVE_DEBUGREGS
|
||||
#define KVM_CAP_DEBUGREGS 50
|
||||
#endif
|
||||
#define KVM_CAP_X86_ROBUST_SINGLESTEP 51
|
||||
#define KVM_CAP_PPC_OSI 52
|
||||
#define KVM_CAP_PPC_UNSET_IRQ 53
|
||||
#define KVM_CAP_ENABLE_CAP 54
|
||||
|
||||
#ifdef KVM_CAP_IRQ_ROUTING
|
||||
|
||||
|
|
@ -688,6 +710,10 @@ struct kvm_clock_data {
|
|||
/* Available with KVM_CAP_VCPU_EVENTS */
|
||||
#define KVM_GET_VCPU_EVENTS _IOR(KVMIO, 0x9f, struct kvm_vcpu_events)
|
||||
#define KVM_SET_VCPU_EVENTS _IOW(KVMIO, 0xa0, struct kvm_vcpu_events)
|
||||
/* Available with KVM_CAP_DEBUGREGS */
|
||||
#define KVM_GET_DEBUGREGS _IOR(KVMIO, 0xa1, struct kvm_debugregs)
|
||||
#define KVM_SET_DEBUGREGS _IOW(KVMIO, 0xa2, struct kvm_debugregs)
|
||||
#define KVM_ENABLE_CAP _IOW(KVMIO, 0xa3, struct kvm_enable_cap)
|
||||
|
||||
#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
|
||||
|
||||
|
|
|
|||
|
|
@ -105,6 +105,12 @@ struct kvm_vcpu {
|
|||
struct kvm_vcpu_arch arch;
|
||||
};
|
||||
|
||||
/*
|
||||
* Some of the bitops functions do not support too long bitmaps.
|
||||
* This number must be determined not to exceed such limits.
|
||||
*/
|
||||
#define KVM_MEM_MAX_NR_PAGES ((1UL << 31) - 1)
|
||||
|
||||
struct kvm_memory_slot {
|
||||
gfn_t base_gfn;
|
||||
unsigned long npages;
|
||||
|
|
@ -237,17 +243,23 @@ void kvm_vcpu_uninit(struct kvm_vcpu *vcpu);
|
|||
void vcpu_load(struct kvm_vcpu *vcpu);
|
||||
void vcpu_put(struct kvm_vcpu *vcpu);
|
||||
|
||||
int kvm_init(void *opaque, unsigned int vcpu_size,
|
||||
int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
|
||||
struct module *module);
|
||||
void kvm_exit(void);
|
||||
|
||||
void kvm_get_kvm(struct kvm *kvm);
|
||||
void kvm_put_kvm(struct kvm *kvm);
|
||||
|
||||
static inline struct kvm_memslots *kvm_memslots(struct kvm *kvm)
|
||||
{
|
||||
return rcu_dereference_check(kvm->memslots,
|
||||
srcu_read_lock_held(&kvm->srcu)
|
||||
|| lockdep_is_held(&kvm->slots_lock));
|
||||
}
|
||||
|
||||
#define HPA_MSB ((sizeof(hpa_t) * 8) - 1)
|
||||
#define HPA_ERR_MASK ((hpa_t)1 << HPA_MSB)
|
||||
static inline int is_error_hpa(hpa_t hpa) { return hpa >> HPA_MSB; }
|
||||
struct page *gva_to_page(struct kvm_vcpu *vcpu, gva_t gva);
|
||||
|
||||
extern struct page *bad_page;
|
||||
extern pfn_t bad_pfn;
|
||||
|
|
|
|||
163
include/linux/l2tp.h
Normal file
163
include/linux/l2tp.h
Normal file
|
|
@ -0,0 +1,163 @@
|
|||
/*
|
||||
* L2TP-over-IP socket for L2TPv3.
|
||||
*
|
||||
* Author: James Chapman <jchapman@katalix.com>
|
||||
*/
|
||||
|
||||
#ifndef _LINUX_L2TP_H_
|
||||
#define _LINUX_L2TP_H_
|
||||
|
||||
#include <linux/types.h>
|
||||
#ifdef __KERNEL__
|
||||
#include <linux/socket.h>
|
||||
#include <linux/in.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
#define IPPROTO_L2TP 115
|
||||
|
||||
/**
|
||||
* struct sockaddr_l2tpip - the sockaddr structure for L2TP-over-IP sockets
|
||||
* @l2tp_family: address family number AF_L2TPIP.
|
||||
* @l2tp_addr: protocol specific address information
|
||||
* @l2tp_conn_id: connection id of tunnel
|
||||
*/
|
||||
#define __SOCK_SIZE__ 16 /* sizeof(struct sockaddr) */
|
||||
struct sockaddr_l2tpip {
|
||||
/* The first fields must match struct sockaddr_in */
|
||||
sa_family_t l2tp_family; /* AF_INET */
|
||||
__be16 l2tp_unused; /* INET port number (unused) */
|
||||
struct in_addr l2tp_addr; /* Internet address */
|
||||
|
||||
__u32 l2tp_conn_id; /* Connection ID of tunnel */
|
||||
|
||||
/* Pad to size of `struct sockaddr'. */
|
||||
unsigned char __pad[sizeof(struct sockaddr) - sizeof(sa_family_t) -
|
||||
sizeof(__be16) - sizeof(struct in_addr) -
|
||||
sizeof(__u32)];
|
||||
};
|
||||
|
||||
/*****************************************************************************
|
||||
* NETLINK_GENERIC netlink family.
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Commands.
|
||||
* Valid TLVs of each command are:-
|
||||
* TUNNEL_CREATE - CONN_ID, pw_type, netns, ifname, ipinfo, udpinfo, udpcsum, vlanid
|
||||
* TUNNEL_DELETE - CONN_ID
|
||||
* TUNNEL_MODIFY - CONN_ID, udpcsum
|
||||
* TUNNEL_GETSTATS - CONN_ID, (stats)
|
||||
* TUNNEL_GET - CONN_ID, (...)
|
||||
* SESSION_CREATE - SESSION_ID, PW_TYPE, offset, data_seq, cookie, peer_cookie, offset, l2spec
|
||||
* SESSION_DELETE - SESSION_ID
|
||||
* SESSION_MODIFY - SESSION_ID, data_seq
|
||||
* SESSION_GET - SESSION_ID, (...)
|
||||
* SESSION_GETSTATS - SESSION_ID, (stats)
|
||||
*
|
||||
*/
|
||||
enum {
|
||||
L2TP_CMD_NOOP,
|
||||
L2TP_CMD_TUNNEL_CREATE,
|
||||
L2TP_CMD_TUNNEL_DELETE,
|
||||
L2TP_CMD_TUNNEL_MODIFY,
|
||||
L2TP_CMD_TUNNEL_GET,
|
||||
L2TP_CMD_SESSION_CREATE,
|
||||
L2TP_CMD_SESSION_DELETE,
|
||||
L2TP_CMD_SESSION_MODIFY,
|
||||
L2TP_CMD_SESSION_GET,
|
||||
__L2TP_CMD_MAX,
|
||||
};
|
||||
|
||||
#define L2TP_CMD_MAX (__L2TP_CMD_MAX - 1)
|
||||
|
||||
/*
|
||||
* ATTR types defined for L2TP
|
||||
*/
|
||||
enum {
|
||||
L2TP_ATTR_NONE, /* no data */
|
||||
L2TP_ATTR_PW_TYPE, /* u16, enum l2tp_pwtype */
|
||||
L2TP_ATTR_ENCAP_TYPE, /* u16, enum l2tp_encap_type */
|
||||
L2TP_ATTR_OFFSET, /* u16 */
|
||||
L2TP_ATTR_DATA_SEQ, /* u16 */
|
||||
L2TP_ATTR_L2SPEC_TYPE, /* u8, enum l2tp_l2spec_type */
|
||||
L2TP_ATTR_L2SPEC_LEN, /* u8, enum l2tp_l2spec_type */
|
||||
L2TP_ATTR_PROTO_VERSION, /* u8 */
|
||||
L2TP_ATTR_IFNAME, /* string */
|
||||
L2TP_ATTR_CONN_ID, /* u32 */
|
||||
L2TP_ATTR_PEER_CONN_ID, /* u32 */
|
||||
L2TP_ATTR_SESSION_ID, /* u32 */
|
||||
L2TP_ATTR_PEER_SESSION_ID, /* u32 */
|
||||
L2TP_ATTR_UDP_CSUM, /* u8 */
|
||||
L2TP_ATTR_VLAN_ID, /* u16 */
|
||||
L2TP_ATTR_COOKIE, /* 0, 4 or 8 bytes */
|
||||
L2TP_ATTR_PEER_COOKIE, /* 0, 4 or 8 bytes */
|
||||
L2TP_ATTR_DEBUG, /* u32 */
|
||||
L2TP_ATTR_RECV_SEQ, /* u8 */
|
||||
L2TP_ATTR_SEND_SEQ, /* u8 */
|
||||
L2TP_ATTR_LNS_MODE, /* u8 */
|
||||
L2TP_ATTR_USING_IPSEC, /* u8 */
|
||||
L2TP_ATTR_RECV_TIMEOUT, /* msec */
|
||||
L2TP_ATTR_FD, /* int */
|
||||
L2TP_ATTR_IP_SADDR, /* u32 */
|
||||
L2TP_ATTR_IP_DADDR, /* u32 */
|
||||
L2TP_ATTR_UDP_SPORT, /* u16 */
|
||||
L2TP_ATTR_UDP_DPORT, /* u16 */
|
||||
L2TP_ATTR_MTU, /* u16 */
|
||||
L2TP_ATTR_MRU, /* u16 */
|
||||
L2TP_ATTR_STATS, /* nested */
|
||||
__L2TP_ATTR_MAX,
|
||||
};
|
||||
|
||||
#define L2TP_ATTR_MAX (__L2TP_ATTR_MAX - 1)
|
||||
|
||||
/* Nested in L2TP_ATTR_STATS */
|
||||
enum {
|
||||
L2TP_ATTR_STATS_NONE, /* no data */
|
||||
L2TP_ATTR_TX_PACKETS, /* u64 */
|
||||
L2TP_ATTR_TX_BYTES, /* u64 */
|
||||
L2TP_ATTR_TX_ERRORS, /* u64 */
|
||||
L2TP_ATTR_RX_PACKETS, /* u64 */
|
||||
L2TP_ATTR_RX_BYTES, /* u64 */
|
||||
L2TP_ATTR_RX_SEQ_DISCARDS, /* u64 */
|
||||
L2TP_ATTR_RX_OOS_PACKETS, /* u64 */
|
||||
L2TP_ATTR_RX_ERRORS, /* u64 */
|
||||
__L2TP_ATTR_STATS_MAX,
|
||||
};
|
||||
|
||||
#define L2TP_ATTR_STATS_MAX (__L2TP_ATTR_STATS_MAX - 1)
|
||||
|
||||
enum l2tp_pwtype {
|
||||
L2TP_PWTYPE_NONE = 0x0000,
|
||||
L2TP_PWTYPE_ETH_VLAN = 0x0004,
|
||||
L2TP_PWTYPE_ETH = 0x0005,
|
||||
L2TP_PWTYPE_PPP = 0x0007,
|
||||
L2TP_PWTYPE_PPP_AC = 0x0008,
|
||||
L2TP_PWTYPE_IP = 0x000b,
|
||||
__L2TP_PWTYPE_MAX
|
||||
};
|
||||
|
||||
enum l2tp_l2spec_type {
|
||||
L2TP_L2SPECTYPE_NONE,
|
||||
L2TP_L2SPECTYPE_DEFAULT,
|
||||
};
|
||||
|
||||
enum l2tp_encap_type {
|
||||
L2TP_ENCAPTYPE_UDP,
|
||||
L2TP_ENCAPTYPE_IP,
|
||||
};
|
||||
|
||||
enum l2tp_seqmode {
|
||||
L2TP_SEQ_NONE = 0,
|
||||
L2TP_SEQ_IP = 1,
|
||||
L2TP_SEQ_ALL = 2,
|
||||
};
|
||||
|
||||
/*
|
||||
* NETLINK_GENERIC related info
|
||||
*/
|
||||
#define L2TP_GENL_NAME "l2tp"
|
||||
#define L2TP_GENL_VERSION 0x1
|
||||
|
||||
#endif
|
||||
|
|
@ -202,12 +202,6 @@ enum {
|
|||
ATA_FLAG_SW_ACTIVITY = (1 << 22), /* driver supports sw activity
|
||||
* led */
|
||||
|
||||
/* The following flag belongs to ap->pflags but is kept in
|
||||
* ap->flags because it's referenced in many LLDs and will be
|
||||
* removed in not-too-distant future.
|
||||
*/
|
||||
ATA_FLAG_DISABLED = (1 << 23), /* port is disabled, ignore it */
|
||||
|
||||
/* bits 24:31 of ap->flags are reserved for LLD specific flags */
|
||||
|
||||
|
||||
|
|
@ -256,12 +250,13 @@ enum {
|
|||
ATA_TMOUT_INTERNAL_QUICK = 5000,
|
||||
ATA_TMOUT_MAX_PARK = 30000,
|
||||
|
||||
/* FIXME: GoVault needs 2s but we can't afford that without
|
||||
* parallel probing. 800ms is enough for iVDR disk
|
||||
* HHD424020F7SV00. Increase to 2secs when parallel probing
|
||||
* is in place.
|
||||
/*
|
||||
* GoVault needs 2s and iVDR disk HHD424020F7SV00 800ms. 2s
|
||||
* is too much without parallel probing. Use 2s if parallel
|
||||
* probing is available, 800ms otherwise.
|
||||
*/
|
||||
ATA_TMOUT_FF_WAIT = 800,
|
||||
ATA_TMOUT_FF_WAIT_LONG = 2000,
|
||||
ATA_TMOUT_FF_WAIT = 800,
|
||||
|
||||
/* Spec mandates to wait for ">= 2ms" before checking status
|
||||
* after reset. We wait 150ms, because that was the magic
|
||||
|
|
@ -721,15 +716,15 @@ struct ata_port {
|
|||
unsigned int print_id; /* user visible unique port ID */
|
||||
unsigned int port_no; /* 0 based port no. inside the host */
|
||||
|
||||
struct ata_prd *prd; /* our SG list */
|
||||
dma_addr_t prd_dma; /* and its DMA mapping */
|
||||
|
||||
#ifdef CONFIG_ATA_SFF
|
||||
struct ata_ioports ioaddr; /* ATA cmd/ctl/dma register blocks */
|
||||
#endif /* CONFIG_ATA_SFF */
|
||||
|
||||
u8 ctl; /* cache of ATA control register */
|
||||
u8 last_ctl; /* Cache last written value */
|
||||
struct delayed_work sff_pio_task;
|
||||
struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */
|
||||
dma_addr_t bmdma_prd_dma; /* and its DMA mapping */
|
||||
#endif /* CONFIG_ATA_SFF */
|
||||
|
||||
unsigned int pio_mask;
|
||||
unsigned int mwdma_mask;
|
||||
unsigned int udma_mask;
|
||||
|
|
@ -751,8 +746,6 @@ struct ata_port {
|
|||
struct ata_host *host;
|
||||
struct device *dev;
|
||||
|
||||
void *port_task_data;
|
||||
struct delayed_work port_task;
|
||||
struct delayed_work hotplug_task;
|
||||
struct work_struct scsi_rescan_task;
|
||||
|
||||
|
|
@ -849,6 +842,7 @@ struct ata_port_operations {
|
|||
* SFF / taskfile oriented ops
|
||||
*/
|
||||
void (*sff_dev_select)(struct ata_port *ap, unsigned int device);
|
||||
void (*sff_set_devctl)(struct ata_port *ap, u8 ctl);
|
||||
u8 (*sff_check_status)(struct ata_port *ap);
|
||||
u8 (*sff_check_altstatus)(struct ata_port *ap);
|
||||
void (*sff_tf_load)(struct ata_port *ap, const struct ata_taskfile *tf);
|
||||
|
|
@ -857,16 +851,15 @@ struct ata_port_operations {
|
|||
const struct ata_taskfile *tf);
|
||||
unsigned int (*sff_data_xfer)(struct ata_device *dev,
|
||||
unsigned char *buf, unsigned int buflen, int rw);
|
||||
u8 (*sff_irq_on)(struct ata_port *);
|
||||
void (*sff_irq_on)(struct ata_port *);
|
||||
bool (*sff_irq_check)(struct ata_port *);
|
||||
void (*sff_irq_clear)(struct ata_port *);
|
||||
void (*sff_drain_fifo)(struct ata_queued_cmd *qc);
|
||||
|
||||
void (*bmdma_setup)(struct ata_queued_cmd *qc);
|
||||
void (*bmdma_start)(struct ata_queued_cmd *qc);
|
||||
void (*bmdma_stop)(struct ata_queued_cmd *qc);
|
||||
u8 (*bmdma_status)(struct ata_port *ap);
|
||||
|
||||
void (*drain_fifo)(struct ata_queued_cmd *qc);
|
||||
#endif /* CONFIG_ATA_SFF */
|
||||
|
||||
ssize_t (*em_show)(struct ata_port *ap, char *buf);
|
||||
|
|
@ -935,7 +928,6 @@ static inline int ata_port_is_dummy(struct ata_port *ap)
|
|||
return ap->ops == &ata_dummy_port_ops;
|
||||
}
|
||||
|
||||
extern void ata_port_probe(struct ata_port *);
|
||||
extern int sata_set_spd(struct ata_link *link);
|
||||
extern int ata_std_prereset(struct ata_link *link, unsigned long deadline);
|
||||
extern int ata_wait_after_reset(struct ata_link *link, unsigned long deadline,
|
||||
|
|
@ -950,7 +942,6 @@ extern int sata_link_hardreset(struct ata_link *link,
|
|||
extern int sata_std_hardreset(struct ata_link *link, unsigned int *class,
|
||||
unsigned long deadline);
|
||||
extern void ata_std_postreset(struct ata_link *link, unsigned int *classes);
|
||||
extern void ata_port_disable(struct ata_port *);
|
||||
|
||||
extern struct ata_host *ata_host_alloc(struct device *dev, int max_ports);
|
||||
extern struct ata_host *ata_host_alloc_pinfo(struct device *dev,
|
||||
|
|
@ -1006,7 +997,6 @@ extern unsigned long ata_xfer_mode2mask(u8 xfer_mode);
|
|||
extern int ata_xfer_mode2shift(unsigned long xfer_mode);
|
||||
extern const char *ata_mode_string(unsigned long xfer_mask);
|
||||
extern unsigned long ata_id_xfermask(const u16 *id);
|
||||
extern int ata_port_start(struct ata_port *ap);
|
||||
extern int ata_std_qc_defer(struct ata_queued_cmd *qc);
|
||||
extern void ata_noop_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern void ata_sg_init(struct ata_queued_cmd *qc, struct scatterlist *sg,
|
||||
|
|
@ -1039,9 +1029,6 @@ extern int ata_cable_sata(struct ata_port *ap);
|
|||
extern int ata_cable_ignore(struct ata_port *ap);
|
||||
extern int ata_cable_unknown(struct ata_port *ap);
|
||||
|
||||
extern void ata_pio_queue_task(struct ata_port *ap, void *data,
|
||||
unsigned long delay);
|
||||
|
||||
/* Timing helpers */
|
||||
extern unsigned int ata_pio_need_iordy(const struct ata_device *);
|
||||
extern const struct ata_timing *ata_timing_find_mode(u8 xfer_mode);
|
||||
|
|
@ -1443,7 +1430,11 @@ static inline void ata_tf_init(struct ata_device *dev, struct ata_taskfile *tf)
|
|||
{
|
||||
memset(tf, 0, sizeof(*tf));
|
||||
|
||||
#ifdef CONFIG_ATA_SFF
|
||||
tf->ctl = dev->link->ap->ctl;
|
||||
#else
|
||||
tf->ctl = ATA_DEVCTL_OBS;
|
||||
#endif
|
||||
if (dev->devno == 0)
|
||||
tf->device = ATA_DEVICE_OBS;
|
||||
else
|
||||
|
|
@ -1578,8 +1569,6 @@ extern const struct ata_port_operations ata_bmdma32_port_ops;
|
|||
.sg_tablesize = LIBATA_MAX_PRD, \
|
||||
.dma_boundary = ATA_DMA_BOUNDARY
|
||||
|
||||
extern void ata_sff_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern void ata_sff_dumb_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device);
|
||||
extern u8 ata_sff_check_status(struct ata_port *ap);
|
||||
extern void ata_sff_pause(struct ata_port *ap);
|
||||
|
|
@ -1597,10 +1586,11 @@ extern unsigned int ata_sff_data_xfer32(struct ata_device *dev,
|
|||
unsigned char *buf, unsigned int buflen, int rw);
|
||||
extern unsigned int ata_sff_data_xfer_noirq(struct ata_device *dev,
|
||||
unsigned char *buf, unsigned int buflen, int rw);
|
||||
extern u8 ata_sff_irq_on(struct ata_port *ap);
|
||||
extern void ata_sff_irq_on(struct ata_port *ap);
|
||||
extern void ata_sff_irq_clear(struct ata_port *ap);
|
||||
extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc,
|
||||
u8 status, int in_wq);
|
||||
extern void ata_sff_queue_pio_task(struct ata_port *ap, unsigned long delay);
|
||||
extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc);
|
||||
extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc);
|
||||
extern unsigned int ata_sff_host_intr(struct ata_port *ap,
|
||||
|
|
@ -1621,21 +1611,8 @@ extern int sata_sff_hardreset(struct ata_link *link, unsigned int *class,
|
|||
extern void ata_sff_postreset(struct ata_link *link, unsigned int *classes);
|
||||
extern void ata_sff_drain_fifo(struct ata_queued_cmd *qc);
|
||||
extern void ata_sff_error_handler(struct ata_port *ap);
|
||||
extern void ata_sff_post_internal_cmd(struct ata_queued_cmd *qc);
|
||||
extern int ata_sff_port_start(struct ata_port *ap);
|
||||
extern int ata_sff_port_start32(struct ata_port *ap);
|
||||
extern void ata_sff_std_ports(struct ata_ioports *ioaddr);
|
||||
extern unsigned long ata_bmdma_mode_filter(struct ata_device *dev,
|
||||
unsigned long xfer_mask);
|
||||
extern void ata_bmdma_setup(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_start(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
|
||||
extern u8 ata_bmdma_status(struct ata_port *ap);
|
||||
extern void ata_bus_reset(struct ata_port *ap);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev);
|
||||
extern int ata_pci_bmdma_init(struct ata_host *host);
|
||||
extern int ata_pci_sff_init_host(struct ata_host *host);
|
||||
extern int ata_pci_sff_prepare_host(struct pci_dev *pdev,
|
||||
const struct ata_port_info * const * ppi,
|
||||
|
|
@ -1648,6 +1625,23 @@ extern int ata_pci_sff_init_one(struct pci_dev *pdev,
|
|||
struct scsi_host_template *sht, void *host_priv, int hflags);
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_error_handler(struct ata_port *ap);
|
||||
extern void ata_bmdma_post_internal_cmd(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_setup(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_start(struct ata_queued_cmd *qc);
|
||||
extern void ata_bmdma_stop(struct ata_queued_cmd *qc);
|
||||
extern u8 ata_bmdma_status(struct ata_port *ap);
|
||||
extern int ata_bmdma_port_start(struct ata_port *ap);
|
||||
extern int ata_bmdma_port_start32(struct ata_port *ap);
|
||||
|
||||
#ifdef CONFIG_PCI
|
||||
extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev);
|
||||
extern void ata_pci_bmdma_init(struct ata_host *host);
|
||||
#endif /* CONFIG_PCI */
|
||||
|
||||
/**
|
||||
* ata_sff_busy_wait - Wait for a port status register
|
||||
* @ap: Port to wait for.
|
||||
|
|
|
|||
|
|
@ -44,6 +44,8 @@ struct lock_class_key {
|
|||
struct lockdep_subclass_key subkeys[MAX_LOCKDEP_SUBCLASSES];
|
||||
};
|
||||
|
||||
extern struct lock_class_key __lockdep_no_validate__;
|
||||
|
||||
#define LOCKSTAT_POINTS 4
|
||||
|
||||
/*
|
||||
|
|
@ -270,6 +272,9 @@ extern void lockdep_init_map(struct lockdep_map *lock, const char *name,
|
|||
#define lockdep_set_subclass(lock, sub) \
|
||||
lockdep_init_map(&(lock)->dep_map, #lock, \
|
||||
(lock)->dep_map.key, sub)
|
||||
|
||||
#define lockdep_set_novalidate_class(lock) \
|
||||
lockdep_set_class(lock, &__lockdep_no_validate__)
|
||||
/*
|
||||
* Compare locking classes
|
||||
*/
|
||||
|
|
@ -354,6 +359,9 @@ static inline void lockdep_on(void)
|
|||
#define lockdep_set_class_and_subclass(lock, key, sub) \
|
||||
do { (void)(key); } while (0)
|
||||
#define lockdep_set_subclass(lock, sub) do { } while (0)
|
||||
|
||||
#define lockdep_set_novalidate_class(lock) do { } while (0)
|
||||
|
||||
/*
|
||||
* We don't define lockdep_match_class() and lockdep_match_key() for !LOCKDEP
|
||||
* case since the result is not well defined and the caller should rather
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ struct common_audit_data {
|
|||
#define LSM_AUDIT_DATA_IPC 4
|
||||
#define LSM_AUDIT_DATA_TASK 5
|
||||
#define LSM_AUDIT_DATA_KEY 6
|
||||
#define LSM_AUDIT_NO_AUDIT 7
|
||||
#define LSM_AUDIT_DATA_NONE 7
|
||||
#define LSM_AUDIT_DATA_KMOD 8
|
||||
struct task_struct *tsk;
|
||||
union {
|
||||
|
|
|
|||
|
|
@ -44,17 +44,17 @@ struct meye_params {
|
|||
};
|
||||
|
||||
/* query the extended parameters */
|
||||
#define MEYEIOC_G_PARAMS _IOR ('v', BASE_VIDIOCPRIVATE+0, struct meye_params)
|
||||
#define MEYEIOC_G_PARAMS _IOR ('v', BASE_VIDIOC_PRIVATE+0, struct meye_params)
|
||||
/* set the extended parameters */
|
||||
#define MEYEIOC_S_PARAMS _IOW ('v', BASE_VIDIOCPRIVATE+1, struct meye_params)
|
||||
#define MEYEIOC_S_PARAMS _IOW ('v', BASE_VIDIOC_PRIVATE+1, struct meye_params)
|
||||
/* queue a buffer for mjpeg capture */
|
||||
#define MEYEIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOCPRIVATE+2, int)
|
||||
#define MEYEIOC_QBUF_CAPT _IOW ('v', BASE_VIDIOC_PRIVATE+2, int)
|
||||
/* sync a previously queued mjpeg buffer */
|
||||
#define MEYEIOC_SYNC _IOWR('v', BASE_VIDIOCPRIVATE+3, int)
|
||||
#define MEYEIOC_SYNC _IOWR('v', BASE_VIDIOC_PRIVATE+3, int)
|
||||
/* get a still uncompressed snapshot */
|
||||
#define MEYEIOC_STILLCAPT _IO ('v', BASE_VIDIOCPRIVATE+4)
|
||||
#define MEYEIOC_STILLCAPT _IO ('v', BASE_VIDIOC_PRIVATE+4)
|
||||
/* get a jpeg compressed snapshot */
|
||||
#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOCPRIVATE+5, int)
|
||||
#define MEYEIOC_STILLJCAPT _IOR ('v', BASE_VIDIOC_PRIVATE+5, int)
|
||||
|
||||
/* V4L2 private controls */
|
||||
#define V4L2_CID_AGC V4L2_CID_PRIVATE_BASE
|
||||
|
|
|
|||
126
include/linux/mfd/davinci_voicecodec.h
Normal file
126
include/linux/mfd/davinci_voicecodec.h
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* DaVinci Voice Codec Core Interface for TI platforms
|
||||
*
|
||||
* Copyright (C) 2010 Texas Instruments, Inc
|
||||
*
|
||||
* Author: Miguel Aguilar <miguel.aguilar@ridgerun.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_MFD_DAVINCI_VOICECODEC_H_
|
||||
#define __LINUX_MFD_DAVINIC_VOICECODEC_H_
|
||||
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/mfd/core.h>
|
||||
|
||||
#include <mach/edma.h>
|
||||
|
||||
/*
|
||||
* Register values.
|
||||
*/
|
||||
#define DAVINCI_VC_PID 0x00
|
||||
#define DAVINCI_VC_CTRL 0x04
|
||||
#define DAVINCI_VC_INTEN 0x08
|
||||
#define DAVINCI_VC_INTSTATUS 0x0c
|
||||
#define DAVINCI_VC_INTCLR 0x10
|
||||
#define DAVINCI_VC_EMUL_CTRL 0x14
|
||||
#define DAVINCI_VC_RFIFO 0x20
|
||||
#define DAVINCI_VC_WFIFO 0x24
|
||||
#define DAVINCI_VC_FIFOSTAT 0x28
|
||||
#define DAVINCI_VC_TST_CTRL 0x2C
|
||||
#define DAVINCI_VC_REG05 0x94
|
||||
#define DAVINCI_VC_REG09 0xA4
|
||||
#define DAVINCI_VC_REG12 0xB0
|
||||
|
||||
/* DAVINCI_VC_CTRL bit fields */
|
||||
#define DAVINCI_VC_CTRL_MASK 0x5500
|
||||
#define DAVINCI_VC_CTRL_RSTADC BIT(0)
|
||||
#define DAVINCI_VC_CTRL_RSTDAC BIT(1)
|
||||
#define DAVINCI_VC_CTRL_RD_BITS_8 BIT(4)
|
||||
#define DAVINCI_VC_CTRL_RD_UNSIGNED BIT(5)
|
||||
#define DAVINCI_VC_CTRL_WD_BITS_8 BIT(6)
|
||||
#define DAVINCI_VC_CTRL_WD_UNSIGNED BIT(7)
|
||||
#define DAVINCI_VC_CTRL_RFIFOEN BIT(8)
|
||||
#define DAVINCI_VC_CTRL_RFIFOCL BIT(9)
|
||||
#define DAVINCI_VC_CTRL_RFIFOMD_WORD_1 BIT(10)
|
||||
#define DAVINCI_VC_CTRL_WFIFOEN BIT(12)
|
||||
#define DAVINCI_VC_CTRL_WFIFOCL BIT(13)
|
||||
#define DAVINCI_VC_CTRL_WFIFOMD_WORD_1 BIT(14)
|
||||
|
||||
/* DAVINCI_VC_INT bit fields */
|
||||
#define DAVINCI_VC_INT_MASK 0x3F
|
||||
#define DAVINCI_VC_INT_RDRDY_MASK BIT(0)
|
||||
#define DAVINCI_VC_INT_RERROVF_MASK BIT(1)
|
||||
#define DAVINCI_VC_INT_RERRUDR_MASK BIT(2)
|
||||
#define DAVINCI_VC_INT_WDREQ_MASK BIT(3)
|
||||
#define DAVINCI_VC_INT_WERROVF_MASKBIT BIT(4)
|
||||
#define DAVINCI_VC_INT_WERRUDR_MASK BIT(5)
|
||||
|
||||
/* DAVINCI_VC_REG05 bit fields */
|
||||
#define DAVINCI_VC_REG05_PGA_GAIN 0x07
|
||||
|
||||
/* DAVINCI_VC_REG09 bit fields */
|
||||
#define DAVINCI_VC_REG09_MUTE 0x40
|
||||
#define DAVINCI_VC_REG09_DIG_ATTEN 0x3F
|
||||
|
||||
/* DAVINCI_VC_REG12 bit fields */
|
||||
#define DAVINCI_VC_REG12_POWER_ALL_ON 0xFD
|
||||
#define DAVINCI_VC_REG12_POWER_ALL_OFF 0x00
|
||||
|
||||
#define DAVINCI_VC_CELLS 2
|
||||
|
||||
enum davinci_vc_cells {
|
||||
DAVINCI_VC_VCIF_CELL,
|
||||
DAVINCI_VC_CQ93VC_CELL,
|
||||
};
|
||||
|
||||
struct davinci_vcif {
|
||||
struct platform_device *pdev;
|
||||
u32 dma_tx_channel;
|
||||
u32 dma_rx_channel;
|
||||
dma_addr_t dma_tx_addr;
|
||||
dma_addr_t dma_rx_addr;
|
||||
};
|
||||
|
||||
struct cq93vc {
|
||||
struct platform_device *pdev;
|
||||
struct snd_soc_codec *codec;
|
||||
u32 sysclk;
|
||||
};
|
||||
|
||||
struct davinci_vc;
|
||||
|
||||
struct davinci_vc {
|
||||
/* Device data */
|
||||
struct device *dev;
|
||||
struct platform_device *pdev;
|
||||
struct clk *clk;
|
||||
|
||||
/* Memory resources */
|
||||
void __iomem *base;
|
||||
resource_size_t pbase;
|
||||
size_t base_size;
|
||||
|
||||
/* MFD cells */
|
||||
struct mfd_cell cells[DAVINCI_VC_CELLS];
|
||||
|
||||
/* Client devices */
|
||||
struct davinci_vcif davinci_vcif;
|
||||
struct cq93vc cq93vc;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
@ -1,7 +1,13 @@
|
|||
#ifndef __SH_MOBILE_SDHI_H__
|
||||
#define __SH_MOBILE_SDHI_H__
|
||||
|
||||
#include <linux/types.h>
|
||||
|
||||
struct sh_mobile_sdhi_info {
|
||||
int dma_slave_tx;
|
||||
int dma_slave_rx;
|
||||
unsigned long tmio_flags;
|
||||
u32 tmio_ocr_mask; /* available MMC voltages */
|
||||
void (*set_pwr)(struct platform_device *pdev, int state);
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -50,17 +50,28 @@
|
|||
tmio_iowrite16((val) >> 16, (base) + ((reg + 2) << (shift))); \
|
||||
} while (0)
|
||||
|
||||
/* tmio MMC platform flags */
|
||||
#define TMIO_MMC_WRPROTECT_DISABLE (1 << 0)
|
||||
|
||||
int tmio_core_mmc_enable(void __iomem *cnf, int shift, unsigned long base);
|
||||
int tmio_core_mmc_resume(void __iomem *cnf, int shift, unsigned long base);
|
||||
void tmio_core_mmc_pwr(void __iomem *cnf, int shift, int state);
|
||||
void tmio_core_mmc_clk_div(void __iomem *cnf, int shift, int state);
|
||||
|
||||
struct tmio_mmc_dma {
|
||||
void *chan_priv_tx;
|
||||
void *chan_priv_rx;
|
||||
};
|
||||
|
||||
/*
|
||||
* data for the MMC controller
|
||||
*/
|
||||
struct tmio_mmc_data {
|
||||
unsigned int hclk;
|
||||
unsigned long capabilities;
|
||||
unsigned long flags;
|
||||
u32 ocr_mask; /* available voltages */
|
||||
struct tmio_mmc_dma *dma;
|
||||
void (*set_pwr)(struct platform_device *host, int state);
|
||||
void (*set_clk_div)(struct platform_device *host, int state);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -492,6 +492,8 @@
|
|||
*/
|
||||
#define WM8350_JACK_L_LVL 0x0800
|
||||
#define WM8350_JACK_R_LVL 0x0400
|
||||
#define WM8350_JACK_MICSCD_LVL 0x0200
|
||||
#define WM8350_JACK_MICSD_LVL 0x0100
|
||||
|
||||
/*
|
||||
* WM8350 Platform setup
|
||||
|
|
|
|||
|
|
@ -15,14 +15,38 @@
|
|||
#ifndef __MFD_WM8994_CORE_H__
|
||||
#define __MFD_WM8994_CORE_H__
|
||||
|
||||
#include <linux/interrupt.h>
|
||||
|
||||
struct regulator_dev;
|
||||
struct regulator_bulk_data;
|
||||
|
||||
#define WM8994_NUM_GPIO_REGS 11
|
||||
#define WM8994_NUM_LDO_REGS 2
|
||||
#define WM8994_NUM_LDO_REGS 2
|
||||
#define WM8994_NUM_IRQ_REGS 2
|
||||
|
||||
#define WM8994_IRQ_TEMP_SHUT 0
|
||||
#define WM8994_IRQ_MIC1_DET 1
|
||||
#define WM8994_IRQ_MIC1_SHRT 2
|
||||
#define WM8994_IRQ_MIC2_DET 3
|
||||
#define WM8994_IRQ_MIC2_SHRT 4
|
||||
#define WM8994_IRQ_FLL1_LOCK 5
|
||||
#define WM8994_IRQ_FLL2_LOCK 6
|
||||
#define WM8994_IRQ_SRC1_LOCK 7
|
||||
#define WM8994_IRQ_SRC2_LOCK 8
|
||||
#define WM8994_IRQ_AIF1DRC1_SIG_DET 9
|
||||
#define WM8994_IRQ_AIF1DRC2_SIG_DET 10
|
||||
#define WM8994_IRQ_AIF2DRC_SIG_DET 11
|
||||
#define WM8994_IRQ_FIFOS_ERR 12
|
||||
#define WM8994_IRQ_WSEQ_DONE 13
|
||||
#define WM8994_IRQ_DCS_DONE 14
|
||||
#define WM8994_IRQ_TEMP_WARN 15
|
||||
|
||||
/* GPIOs in the chip are numbered from 1-11 */
|
||||
#define WM8994_IRQ_GPIO(x) (x + WM8994_IRQ_TEMP_WARN)
|
||||
|
||||
struct wm8994 {
|
||||
struct mutex io_lock;
|
||||
struct mutex irq_lock;
|
||||
|
||||
struct device *dev;
|
||||
int (*read_dev)(struct wm8994 *wm8994, unsigned short reg,
|
||||
|
|
@ -33,6 +57,11 @@ struct wm8994 {
|
|||
void *control_data;
|
||||
|
||||
int gpio_base;
|
||||
int irq_base;
|
||||
|
||||
int irq;
|
||||
u16 irq_masks_cur[WM8994_NUM_IRQ_REGS];
|
||||
u16 irq_masks_cache[WM8994_NUM_IRQ_REGS];
|
||||
|
||||
/* Used over suspend/resume */
|
||||
u16 ldo_regs[WM8994_NUM_LDO_REGS];
|
||||
|
|
@ -51,4 +80,26 @@ int wm8994_set_bits(struct wm8994 *wm8994, unsigned short reg,
|
|||
int wm8994_bulk_read(struct wm8994 *wm8994, unsigned short reg,
|
||||
int count, u16 *buf);
|
||||
|
||||
|
||||
/* Helper to save on boilerplate */
|
||||
static inline int wm8994_request_irq(struct wm8994 *wm8994, int irq,
|
||||
irq_handler_t handler, const char *name,
|
||||
void *data)
|
||||
{
|
||||
if (!wm8994->irq_base)
|
||||
return -EINVAL;
|
||||
return request_threaded_irq(wm8994->irq_base + irq, NULL, handler,
|
||||
IRQF_TRIGGER_RISING, name,
|
||||
data);
|
||||
}
|
||||
static inline void wm8994_free_irq(struct wm8994 *wm8994, int irq, void *data)
|
||||
{
|
||||
if (!wm8994->irq_base)
|
||||
return;
|
||||
free_irq(wm8994->irq_base + irq, data);
|
||||
}
|
||||
|
||||
int wm8994_irq_init(struct wm8994 *wm8994);
|
||||
void wm8994_irq_exit(struct wm8994 *wm8994);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ struct wm8994_pdata {
|
|||
|
||||
struct wm8994_ldo_pdata ldo[WM8994_NUM_LDO];
|
||||
|
||||
int irq_base; /** Base IRQ number for WM8994, required for IRQs */
|
||||
|
||||
int num_drc_cfgs;
|
||||
struct wm8994_drc_cfg *drc_cfgs;
|
||||
|
|
|
|||
|
|
@ -123,8 +123,8 @@ enum {
|
|||
MLX4_OPCODE_RDMA_READ = 0x10,
|
||||
MLX4_OPCODE_ATOMIC_CS = 0x11,
|
||||
MLX4_OPCODE_ATOMIC_FA = 0x12,
|
||||
MLX4_OPCODE_ATOMIC_MASK_CS = 0x14,
|
||||
MLX4_OPCODE_ATOMIC_MASK_FA = 0x15,
|
||||
MLX4_OPCODE_MASKED_ATOMIC_CS = 0x14,
|
||||
MLX4_OPCODE_MASKED_ATOMIC_FA = 0x15,
|
||||
MLX4_OPCODE_BIND_MW = 0x18,
|
||||
MLX4_OPCODE_FMR = 0x19,
|
||||
MLX4_OPCODE_LOCAL_INVAL = 0x1b,
|
||||
|
|
|
|||
|
|
@ -285,6 +285,13 @@ struct mlx4_wqe_atomic_seg {
|
|||
__be64 compare;
|
||||
};
|
||||
|
||||
struct mlx4_wqe_masked_atomic_seg {
|
||||
__be64 swap_add;
|
||||
__be64 compare;
|
||||
__be64 swap_add_mask;
|
||||
__be64 compare_mask;
|
||||
};
|
||||
|
||||
struct mlx4_wqe_data_seg {
|
||||
__be32 byte_count;
|
||||
__be32 lkey;
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ struct anon_vma;
|
|||
struct file_ra_state;
|
||||
struct user_struct;
|
||||
struct writeback_control;
|
||||
struct rlimit;
|
||||
|
||||
#ifndef CONFIG_DISCONTIGMEM /* Don't use mapnrs, do it properly */
|
||||
extern unsigned long max_mapnr;
|
||||
|
|
@ -1449,9 +1448,6 @@ int vmemmap_populate_basepages(struct page *start_page,
|
|||
int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
|
||||
void vmemmap_populate_print_last(void);
|
||||
|
||||
extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim,
|
||||
size_t size);
|
||||
extern void refund_locked_memory(struct mm_struct *mm, size_t size);
|
||||
|
||||
enum mf_flags {
|
||||
MF_COUNT_INCREASED = 1 << 0,
|
||||
|
|
|
|||
|
|
@ -94,6 +94,8 @@
|
|||
|
||||
#define SDIO_BUS_WIDTH_1BIT 0x00
|
||||
#define SDIO_BUS_WIDTH_4BIT 0x02
|
||||
#define SDIO_BUS_ECSI 0x20 /* Enable continuous SPI interrupt */
|
||||
#define SDIO_BUS_SCSI 0x40 /* Support continuous SPI interrupt */
|
||||
|
||||
#define SDIO_BUS_ASYNC_INT 0x20
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue