kernel-ark/drivers/net/wireless/rtl818x/rtl8187_leds.h
Herton Ronaldo Krzesinski 49d7590ce4 rtl8187: add radio led and fix warnings on suspend
Michael Buesch reports that his rtl8187 gives warnings on suspend
("queueing ieee80211 work while going to suspend" warnings), as rtl8187
can call ieee80211_queue_delayed_work after mac80211 is suspended.

This change enhances rtl8187 led code so we can avoid queuing work after
mac80211 is suspended: now we register a radio led and make additional
checks to ensure led is off/on properly as mac80211 wants.

Signed-off-by: Herton Ronaldo Krzesinski <herton@mandriva.com.br>
Tested-by: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
2009-12-10 16:09:51 -05:00

60 lines
1.3 KiB
C

/*
* Definitions for RTL8187 leds
*
* Copyright 2009 Larry Finger <Larry.Finger@lwfinger.net>
*
* Based on the LED handling in the r8187 driver, which is:
* Copyright (c) Realtek Semiconductor Corp. All rights reserved.
*
* 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.
*/
#ifndef RTL8187_LED_H
#define RTL8187_LED_H
#ifdef CONFIG_RTL8187_LEDS
#define RTL8187_LED_MAX_NAME_LEN 21
#include <linux/leds.h>
#include <linux/types.h>
enum {
LED_PIN_LED0,
LED_PIN_LED1,
LED_PIN_GPIO0,
LED_PIN_HW
};
enum {
EEPROM_CID_RSVD0 = 0x00,
EEPROM_CID_RSVD1 = 0xFF,
EEPROM_CID_ALPHA0 = 0x01,
EEPROM_CID_SERCOMM_PS = 0x02,
EEPROM_CID_HW = 0x03,
EEPROM_CID_TOSHIBA = 0x04,
EEPROM_CID_QMI = 0x07,
EEPROM_CID_DELL = 0x08
};
struct rtl8187_led {
struct ieee80211_hw *dev;
/* The LED class device */
struct led_classdev led_dev;
/* The pin/method used to control the led */
u8 ledpin;
/* The unique name string for this LED device. */
char name[RTL8187_LED_MAX_NAME_LEN + 1];
/* If the LED is radio or tx/rx */
bool is_radio;
};
void rtl8187_leds_init(struct ieee80211_hw *dev, u16 code);
void rtl8187_leds_exit(struct ieee80211_hw *dev);
#endif /* def CONFIG_RTL8187_LED */
#endif /* RTL8187_LED_H */