~ubuntu-branches/ubuntu/quantal/linux-linaro-mx51/quantal

« back to all changes in this revision

Viewing changes to drivers/net/wireless/ath/ar9170/cmd.h

  • Committer: Package Import Robot
  • Author(s): John Rigby, John Rigby
  • Date: 2011-09-26 10:44:23 UTC
  • Revision ID: package-import@ubuntu.com-20110926104423-3o58a3c1bj7x00rs
Tags: 3.0.0-1007.9
[ John Rigby ]

Enable crypto modules and remove crypto-modules from
exclude-module files
LP: #826021

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * Atheros AR9170 driver
3
 
 *
4
 
 * Basic HW register/memory/command access functions
5
 
 *
6
 
 * Copyright 2008, Johannes Berg <johannes@sipsolutions.net>
7
 
 *
8
 
 * This program is free software; you can redistribute it and/or modify
9
 
 * it under the terms of the GNU General Public License as published by
10
 
 * the Free Software Foundation; either version 2 of the License, or
11
 
 * (at your option) any later version.
12
 
 *
13
 
 * This program is distributed in the hope that it will be useful,
14
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 
 * GNU General Public License for more details.
17
 
 *
18
 
 * You should have received a copy of the GNU General Public License
19
 
 * along with this program; see the file COPYING.  If not, see
20
 
 * http://www.gnu.org/licenses/.
21
 
 *
22
 
 * This file incorporates work covered by the following copyright and
23
 
 * permission notice:
24
 
 *    Copyright (c) 2007-2008 Atheros Communications, Inc.
25
 
 *
26
 
 *    Permission to use, copy, modify, and/or distribute this software for any
27
 
 *    purpose with or without fee is hereby granted, provided that the above
28
 
 *    copyright notice and this permission notice appear in all copies.
29
 
 *
30
 
 *    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
31
 
 *    WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
32
 
 *    MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
33
 
 *    ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
34
 
 *    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
35
 
 *    ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
36
 
 *    OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
37
 
 */
38
 
#ifndef __CMD_H
39
 
#define __CMD_H
40
 
 
41
 
#include "ar9170.h"
42
 
 
43
 
/* basic HW access */
44
 
int ar9170_write_mem(struct ar9170 *ar, const __le32 *data, size_t len);
45
 
int ar9170_write_reg(struct ar9170 *ar, const u32 reg, const u32 val);
46
 
int ar9170_read_reg(struct ar9170 *ar, u32 reg, u32 *val);
47
 
int ar9170_read_mreg(struct ar9170 *ar, int nregs, const u32 *regs, u32 *out);
48
 
int ar9170_echo_test(struct ar9170 *ar, u32 v);
49
 
 
50
 
/*
51
 
 * Macros to facilitate writing multiple registers in a single
52
 
 * write-combining USB command. Note that when the first group
53
 
 * fails the whole thing will fail without any others attempted,
54
 
 * but you won't know which write in the group failed.
55
 
 */
56
 
#define ar9170_regwrite_begin(ar)                                       \
57
 
do {                                                                    \
58
 
        int __nreg = 0, __err = 0;                                      \
59
 
        struct ar9170 *__ar = ar;
60
 
 
61
 
#define ar9170_regwrite(r, v) do {                                      \
62
 
        __ar->cmdbuf[2 * __nreg + 1] = cpu_to_le32(r);                  \
63
 
        __ar->cmdbuf[2 * __nreg + 2] = cpu_to_le32(v);                  \
64
 
        __nreg++;                                                       \
65
 
        if ((__nreg >= PAYLOAD_MAX/2)) {                                \
66
 
                if (IS_ACCEPTING_CMD(__ar))                             \
67
 
                        __err = ar->exec_cmd(__ar, AR9170_CMD_WREG,     \
68
 
                                             8 * __nreg,                \
69
 
                                             (u8 *) &__ar->cmdbuf[1],   \
70
 
                                             0, NULL);                  \
71
 
                __nreg = 0;                                             \
72
 
                if (__err)                                              \
73
 
                        goto __regwrite_out;                            \
74
 
        }                                                               \
75
 
} while (0)
76
 
 
77
 
#define ar9170_regwrite_finish()                                        \
78
 
__regwrite_out :                                                        \
79
 
        if (__nreg) {                                                   \
80
 
                if (IS_ACCEPTING_CMD(__ar))                             \
81
 
                        __err = ar->exec_cmd(__ar, AR9170_CMD_WREG,     \
82
 
                                             8 * __nreg,                \
83
 
                                             (u8 *) &__ar->cmdbuf[1],   \
84
 
                                             0, NULL);                  \
85
 
                __nreg = 0;                                             \
86
 
        }
87
 
 
88
 
#define ar9170_regwrite_result()                                        \
89
 
        __err;                                                          \
90
 
} while (0);
91
 
 
92
 
#endif /* __CMD_H */