aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorÁlvaro Fernández Rojas <noltari@gmail.com>2016-06-02 20:41:17 +0200
committerÁlvaro Fernández Rojas <noltari@gmail.com>2016-06-03 16:35:46 +0200
commit7807c7e867d5cb080b1992a72f0a1a4af75c230a (patch)
treebe7132f19182f3e218d7dac8bc3dc35641c165bd
parentec95509af426cf58652355e3276d23f157f327bb (diff)
downloadupstream-7807c7e867d5cb080b1992a72f0a1a4af75c230a.tar.gz
upstream-7807c7e867d5cb080b1992a72f0a1a4af75c230a.tar.bz2
upstream-7807c7e867d5cb080b1992a72f0a1a4af75c230a.zip
brcm63xx: add support for inverting ath9k LED polarity
Some devices with ath9k WiFi require changing the default active low polarity to high in order to correctly operate the WiFi status LEDs. Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
-rw-r--r--target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch12
-rw-r--r--target/linux/brcm63xx/patches-4.4/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch9
2 files changed, 12 insertions, 9 deletions
diff --git a/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch b/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch
index 07e5e21fd06..c18d8db0481 100644
--- a/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch
+++ b/target/linux/brcm63xx/patches-4.4/421-BCM63XX-add-led-pin-for-ath9k.patch
@@ -5,18 +5,18 @@
for (i = 0; i < board.has_caldata; i++)
pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
- board.caldata[i].endian_check);
-+ board.caldata[i].endian_check, board.caldata[i].led_pin);
++ board.caldata[i].endian_check, board.caldata[i].led_pin, board.caldata[i].led_active_high);
return 0;
}
--- a/arch/mips/bcm63xx/pci-ath9k-fixup.c
+++ b/arch/mips/bcm63xx/pci-ath9k-fixup.c
-@@ -182,13 +182,14 @@ static void ath9k_pci_fixup(struct pci_d
+@@ -182,13 +182,15 @@ static void ath9k_pci_fixup(struct pci_d
DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_ATHEROS, PCI_ANY_ID, ath9k_pci_fixup);
void __init pci_enable_ath9k_fixup(unsigned slot, u32 offset,
- unsigned endian_check)
-+ unsigned endian_check, int led_pin)
++ unsigned endian_check, int led_pin, bool led_active_high)
{
if (ath9k_num_fixups >= ARRAY_SIZE(ath9k_fixups))
return;
@@ -24,16 +24,18 @@
ath9k_fixups[ath9k_num_fixups].slot = slot;
ath9k_fixups[ath9k_num_fixups].pdata.endian_check = endian_check;
+ ath9k_fixups[ath9k_num_fixups].pdata.led_pin = led_pin;
++ ath9k_fixups[ath9k_num_fixups].pdata.led_active_high = led_active_high;
if (!bcm63xx_read_eeprom(ath9k_fixups[ath9k_num_fixups].pdata.eeprom_data, offset))
return;
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-@@ -21,6 +21,7 @@ struct ath9k_caldata {
+@@ -21,6 +21,8 @@ struct ath9k_caldata {
unsigned int slot;
u32 caldata_offset;
unsigned int endian_check:1;
+ int led_pin;
++ bool led_active_high;
};
/*
@@ -44,6 +46,6 @@
void pci_enable_ath9k_fixup(unsigned slot, u32 offset,
- unsigned endian_check) __init;
-+ unsigned endian_check, int led_pin) __init;
++ unsigned endian_check, int led_pin, bool led_active_high) __init;
#endif /* _PCI_ATH9K_FIXUP */
diff --git a/target/linux/brcm63xx/patches-4.4/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch b/target/linux/brcm63xx/patches-4.4/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch
index 1638c5e722c..cdbecfd0eb1 100644
--- a/target/linux/brcm63xx/patches-4.4/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch
+++ b/target/linux/brcm63xx/patches-4.4/422-BCM63XX-add-a-fixup-for-rt2x00-devices.patch
@@ -42,13 +42,13 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices
/* register any fixups */
- for (i = 0; i < board.has_caldata; i++)
- pci_enable_ath9k_fixup(board.caldata[i].slot, board.caldata[i].caldata_offset,
-- board.caldata[i].endian_check, board.caldata[i].led_pin);
+- board.caldata[i].endian_check, board.caldata[i].led_pin, board.caldata[i].led_active_high);
+ for (i = 0; i < board.has_caldata; i++) {
+ switch (board.caldata[i].vendor) {
+ case PCI_VENDOR_ID_ATHEROS:
+ pci_enable_ath9k_fixup(board.caldata[i].slot,
+ board.caldata[i].caldata_offset, board.caldata[i].endian_check,
-+ board.caldata[i].led_pin);
++ board.caldata[i].led_pin, board.caldata[i].led_active_high);
+ break;
+ case PCI_VENDOR_ID_RALINK:
+ pci_enable_rt2x00_fixup(board.caldata[i].slot,
@@ -166,7 +166,7 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices
/*
* flash mapping
-@@ -17,11 +18,15 @@
+@@ -17,12 +18,16 @@
#define BCM963XX_CFE_VERSION_OFFSET 0x570
#define BCM963XX_NVRAM_OFFSET 0x580
@@ -178,12 +178,13 @@ Subject: [PATCH 72/72] 446-BCM63XX-add-a-fixup-for-rt2x00-devices
+ /* Atheros */
unsigned int endian_check:1;
int led_pin;
+ bool led_active_high;
+ /* Ralink */
+ char* eeprom;
};
/*
-@@ -47,7 +52,7 @@ struct board_info {
+@@ -48,7 +53,7 @@ struct board_info {
unsigned int has_caldata:2;
/* wifi calibration data config */
'>354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495