~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/net/wireless/iwlegacy/iwl-4965-led.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 *
 
3
 * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
 
4
 *
 
5
 * This program is free software; you can redistribute it and/or modify it
 
6
 * under the terms of version 2 of the GNU General Public License as
 
7
 * published by the Free Software Foundation.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful, but WITHOUT
 
10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 
11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 
12
 * more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License along with
 
15
 * this program; if not, write to the Free Software Foundation, Inc.,
 
16
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
 
17
 *
 
18
 * The full GNU General Public License is included in this distribution in the
 
19
 * file called LICENSE.
 
20
 *
 
21
 * Contact Information:
 
22
 *  Intel Linux Wireless <ilw@linux.intel.com>
 
23
 * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
 
24
 *
 
25
 *****************************************************************************/
 
26
 
 
27
#include <linux/kernel.h>
 
28
#include <linux/module.h>
 
29
#include <linux/init.h>
 
30
#include <linux/pci.h>
 
31
#include <linux/dma-mapping.h>
 
32
#include <linux/delay.h>
 
33
#include <linux/skbuff.h>
 
34
#include <linux/netdevice.h>
 
35
#include <linux/wireless.h>
 
36
#include <net/mac80211.h>
 
37
#include <linux/etherdevice.h>
 
38
#include <asm/unaligned.h>
 
39
 
 
40
#include "iwl-commands.h"
 
41
#include "iwl-dev.h"
 
42
#include "iwl-core.h"
 
43
#include "iwl-io.h"
 
44
#include "iwl-4965-led.h"
 
45
 
 
46
/* Send led command */
 
47
static int
 
48
iwl4965_send_led_cmd(struct iwl_priv *priv, struct iwl_led_cmd *led_cmd)
 
49
{
 
50
        struct iwl_host_cmd cmd = {
 
51
                .id = REPLY_LEDS_CMD,
 
52
                .len = sizeof(struct iwl_led_cmd),
 
53
                .data = led_cmd,
 
54
                .flags = CMD_ASYNC,
 
55
                .callback = NULL,
 
56
        };
 
57
        u32 reg;
 
58
 
 
59
        reg = iwl_read32(priv, CSR_LED_REG);
 
60
        if (reg != (reg & CSR_LED_BSM_CTRL_MSK))
 
61
                iwl_write32(priv, CSR_LED_REG, reg & CSR_LED_BSM_CTRL_MSK);
 
62
 
 
63
        return iwl_legacy_send_cmd(priv, &cmd);
 
64
}
 
65
 
 
66
/* Set led register off */
 
67
void iwl4965_led_enable(struct iwl_priv *priv)
 
68
{
 
69
        iwl_write32(priv, CSR_LED_REG, CSR_LED_REG_TRUN_ON);
 
70
}
 
71
 
 
72
const struct iwl_led_ops iwl4965_led_ops = {
 
73
        .cmd = iwl4965_send_led_cmd,
 
74
};