2009-01-10 10:07:55

by Andrew Price

[permalink] [raw]
Subject: [RFC] rt2500pci: turn on led_qual for default LED mode

Add a check for LED_MODE_DEFAULT so that we initialise the link LED.

Signed-off-by: Andrew Price <[email protected]>
---

I'm submitting this patch just as an RFC as I have no idea whether it works
with all rt2500pci devices. With my card, value holds 0 after the call to
rt2x00_get_field16() and so the added check for LED_MODE_DEFAULT (which is 0)
is needed for the link LED to work.

My card is a "RaLink RT2500 802.11g Cardbus/mini-PCI [1814:0201]" Belkin
F5D7010 according to lspci.

Any advice would be much appreciated. Does this patch look reasonable? Are
there any docs/specs which I could read to learn how this should be handled?

P.S. This is not related to my previous LED patch. This one is for the other
LED which has never worked as far as I can remember, until now :-)

diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index d3bc218..651cb4f 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1524,7 +1524,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);

rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
- if (value == LED_MODE_TXRX_ACTIVITY)
+ if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
LED_TYPE_ACTIVITY);
#endif /* CONFIG_RT2X00_LIB_LEDS */
--
1.5.6.5



2009-01-10 23:26:15

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: [PATCH] rt2400,rt2500: init led_qual for LED_MODE_DEFAULT

On Saturday 10 January 2009, Andrew Price wrote:
> Add a check for LED_MODE_DEFAULT so that we use the link LED for rt2400
> and rt2500 devices.
>
> Signed-off-by: Andrew Price <[email protected]>

Acked-by: Ivo van Doorn <[email protected]>

> diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
> index 6a97767..b86400d 100644
> --- a/drivers/net/wireless/rt2x00/rt2400pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2400pci.c
> @@ -1365,7 +1365,7 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
> value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
>
> rt2400pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
> - if (value == LED_MODE_TXRX_ACTIVITY)
> + if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
> rt2400pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
> LED_TYPE_ACTIVITY);
> #endif /* CONFIG_RT2X00_LIB_LEDS */
> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
> index d3bc218..651cb4f 100644
> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
> @@ -1524,7 +1524,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
> value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
>
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
> - if (value == LED_MODE_TXRX_ACTIVITY)
> + if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
> LED_TYPE_ACTIVITY);
> #endif /* CONFIG_RT2X00_LIB_LEDS */
> diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
> index 30028e2..c8e38a5 100644
> --- a/drivers/net/wireless/rt2x00/rt2500usb.c
> +++ b/drivers/net/wireless/rt2x00/rt2500usb.c
> @@ -1569,7 +1569,7 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
> value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
>
> rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
> - if (value == LED_MODE_TXRX_ACTIVITY)
> + if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
> rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_qual,
> LED_TYPE_ACTIVITY);
> #endif /* CONFIG_RT2X00_LIB_LEDS */



2009-01-10 12:46:02

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: [RFC] rt2500pci: turn on led_qual for default LED mode

On Saturday 10 January 2009, Andrew Price wrote:
> Add a check for LED_MODE_DEFAULT so that we initialise the link LED.
>
> Signed-off-by: Andrew Price <[email protected]>
> ---
>
> I'm submitting this patch just as an RFC as I have no idea whether it works
> with all rt2500pci devices. With my card, value holds 0 after the call to
> rt2x00_get_field16() and so the added check for LED_MODE_DEFAULT (which is 0)
> is needed for the link LED to work.
>
> My card is a "RaLink RT2500 802.11g Cardbus/mini-PCI [1814:0201]" Belkin
> F5D7010 according to lspci.
>
> Any advice would be much appreciated. Does this patch look reasonable? Are
> there any docs/specs which I could read to learn how this should be handled?
>
> P.S. This is not related to my previous LED patch. This one is for the other
> LED which has never worked as far as I can remember, until now :-)

Ok, I just checked legacy driver and LED_MODE_DEFAULT indeed can be considered
as LED_MODE_TXRX_ACTIVITY. Could you resend this patch as normal patch,
but with the same change for rt2400pci and rt2500usb.

Thanks,

> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
> index d3bc218..651cb4f 100644
> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
> @@ -1524,7 +1524,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
> value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
>
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
> - if (value == LED_MODE_TXRX_ACTIVITY)
> + if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
> LED_TYPE_ACTIVITY);
> #endif /* CONFIG_RT2X00_LIB_LEDS */



2009-01-10 11:17:51

by Ivo Van Doorn

[permalink] [raw]
Subject: Re: [RFC] rt2500pci: turn on led_qual for default LED mode

Hi,

> Add a check for LED_MODE_DEFAULT so that we initialise the link LED.
>
> Signed-off-by: Andrew Price <[email protected]>
> ---
>
> I'm submitting this patch just as an RFC as I have no idea whether it works
> with all rt2500pci devices. With my card, value holds 0 after the call to
> rt2x00_get_field16() and so the added check for LED_MODE_DEFAULT (which is 0)
> is needed for the link LED to work.
>
> My card is a "RaLink RT2500 802.11g Cardbus/mini-PCI [1814:0201]" Belkin
> F5D7010 according to lspci.
>
> Any advice would be much appreciated. Does this patch look reasonable? Are
> there any docs/specs which I could read to learn how this should be handled?

You raise a very good point with this patch, I need to double check what the legacy drivers
actually do with LED_MODE_DEFAULT and if it is similar as your approach this patch should
be done for all rt2x00 drivers.

I'll get back on this patch as soon as possible.

Thanks,

Ivo

> diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
> index d3bc218..651cb4f 100644
> --- a/drivers/net/wireless/rt2x00/rt2500pci.c
> +++ b/drivers/net/wireless/rt2x00/rt2500pci.c
> @@ -1524,7 +1524,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
> value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);
>
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
> - if (value == LED_MODE_TXRX_ACTIVITY)
> + if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
> rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
> LED_TYPE_ACTIVITY);
> #endif /* CONFIG_RT2X00_LIB_LEDS */



2009-01-10 19:38:09

by Andrew Price

[permalink] [raw]
Subject: [PATCH] rt2400,rt2500: init led_qual for LED_MODE_DEFAULT

Add a check for LED_MODE_DEFAULT so that we use the link LED for rt2400
and rt2500 devices.

Signed-off-by: Andrew Price <[email protected]>

diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c
index 6a97767..b86400d 100644
--- a/drivers/net/wireless/rt2x00/rt2400pci.c
+++ b/drivers/net/wireless/rt2x00/rt2400pci.c
@@ -1365,7 +1365,7 @@ static int rt2400pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);

rt2400pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
- if (value == LED_MODE_TXRX_ACTIVITY)
+ if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
rt2400pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
LED_TYPE_ACTIVITY);
#endif /* CONFIG_RT2X00_LIB_LEDS */
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c
index d3bc218..651cb4f 100644
--- a/drivers/net/wireless/rt2x00/rt2500pci.c
+++ b/drivers/net/wireless/rt2x00/rt2500pci.c
@@ -1524,7 +1524,7 @@ static int rt2500pci_init_eeprom(struct rt2x00_dev *rt2x00dev)
value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);

rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
- if (value == LED_MODE_TXRX_ACTIVITY)
+ if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
rt2500pci_init_led(rt2x00dev, &rt2x00dev->led_qual,
LED_TYPE_ACTIVITY);
#endif /* CONFIG_RT2X00_LIB_LEDS */
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c
index 30028e2..c8e38a5 100644
--- a/drivers/net/wireless/rt2x00/rt2500usb.c
+++ b/drivers/net/wireless/rt2x00/rt2500usb.c
@@ -1569,7 +1569,7 @@ static int rt2500usb_init_eeprom(struct rt2x00_dev *rt2x00dev)
value = rt2x00_get_field16(eeprom, EEPROM_ANTENNA_LED_MODE);

rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_radio, LED_TYPE_RADIO);
- if (value == LED_MODE_TXRX_ACTIVITY)
+ if (value == LED_MODE_TXRX_ACTIVITY || value == LED_MODE_DEFAULT)
rt2500usb_init_led(rt2x00dev, &rt2x00dev->led_qual,
LED_TYPE_ACTIVITY);
#endif /* CONFIG_RT2X00_LIB_LEDS */
--
1.5.6.5