Revision tags: v3.3-rc7 |
|
#
12eb9444 |
| 07-Mar-2012 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: document all spinlocks
Also fixes quite a few checkpatch warnings like this:
ath6kl/hif.h:226: CHECK: spinlock_t definition without comment
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.co
ath6kl: document all spinlocks
Also fixes quite a few checkpatch warnings like this:
ath6kl/hif.h:226: CHECK: spinlock_t definition without comment
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
96f1fadc |
| 07-Mar-2012 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: alignment should match open parenthesis
Fix the issues which checkpatch found and were easy to fix. Especially callers of ath6kl_bmi_write() are tricky and that needs to be fixed separately.
ath6kl: alignment should match open parenthesis
Fix the issues which checkpatch found and were easy to fix. Especially callers of ath6kl_bmi_write() are tricky and that needs to be fixed separately.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
390a8c8f |
| 07-Mar-2012 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Check wow state before sending control and data pkt
Below two scenarios are taken care in this patch which helped to fix the firmware crash during wow suspend/resume.
* TX operation (ctrl t
ath6kl: Check wow state before sending control and data pkt
Below two scenarios are taken care in this patch which helped to fix the firmware crash during wow suspend/resume.
* TX operation (ctrl tx and data tx) has to be controlled based on suspend state. i.e, with respect to WOW mode, control packets are allowed to send from the host until the suspend state goes ATH6KL_STATE_WOW and the data packets are allowed until WOW suspend operation starts.
* Similarly, wow resume is NOT allowed if WOW suspend is in progress.
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
1e9a905d |
| 06-Mar-2012 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Add provision to define suspend policy in disconnected state.
It gives flexibility to the user to define suspend policy when the suspend mode is set to WOW and the device is in disconnected
ath6kl: Add provision to define suspend policy in disconnected state.
It gives flexibility to the user to define suspend policy when the suspend mode is set to WOW and the device is in disconnected state at the time of suspend.
New module parameter wow_mode is added to get the choice from the user. This parameter is valid only if the module parameter suspend_mode is set to WOW.
To force WOW in connected state and cut power in disconnected state: suspend_mode=0x3 wow_mode=0x1
To force WOW in connected state and deep sleep in disconnected state (this is also the default wow_mode): suspend_mode=0x3 wow_mode=0x2
If there is no value specified to wow_mode during insmod, deep sleep mode will be tried in the disconnected state.
kvalo: clarified commit log
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.3-rc6 |
|
#
daa16bc5 |
| 02-Mar-2012 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Restrict memcpy to bounce buffer only for write request
No need to copy received local buffer content to bounce buffer (DMA buffer) while performing sync READ operation from the chip.
It's
ath6kl: Restrict memcpy to bounce buffer only for write request
No need to copy received local buffer content to bounce buffer (DMA buffer) while performing sync READ operation from the chip.
It's applicable for only WRITE operation.
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.3-rc5, v3.3-rc4 |
|
#
d1f41597 |
| 09-Feb-2012 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Fix random system lockup
The commit "ath6kl: Use a mutex_lock to avoid race in diabling and handling irq" introduces a state where ath6kl_sdio_irq_handler() would be waiting to claim the sdi
ath6kl: Fix random system lockup
The commit "ath6kl: Use a mutex_lock to avoid race in diabling and handling irq" introduces a state where ath6kl_sdio_irq_handler() would be waiting to claim the sdio function for receive indefinitely when things happen in the following order.
ath6kl_sdio_irq_handler() - aquires mtx_irq - sdio_release_host() ath6kl_sdio_irq_disable() - sdio_claim_host() - sleep on mtx_irq ath6kl_hif_intr_bh_handler() - (indefinitely) wait for the sdio function to be released to exclusively claim it again for receive operation.
Fix this by replacing the mtx_irq with an atomic variable and a wait_queue.
kvalo: add ath6kl_sdio_is_on_irq() due to open parenthesis alignment
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.3-rc3 |
|
#
b29072cc |
| 07-Feb-2012 |
Chilam Ng <chilamng@qca.qualcomm.com> |
ath6kl: prioritize Tx bundling based on AC priorities
Tx bundling is the more efficient use of SDIO bus and allows more packet transfers with fewer bus transactions, and is a way to improve overall
ath6kl: prioritize Tx bundling based on AC priorities
Tx bundling is the more efficient use of SDIO bus and allows more packet transfers with fewer bus transactions, and is a way to improve overall throughput. However, Tx bundling has only 4 scatter request resources available. When there are multiple traffic streams of different priorities, it's possible that lower priority traffic may hog all the scatter requests and lock out the higher prioirty traffic from bundling. Tx bundling is now enabled per AC. When an AC do a scatter request and the remaining scatter request resources is lower than a configurable threshold, it will disable Tx bundling for all AC's of lower priorities. When an AC has Tx bundling disabled and has no Tx bundles sent in a consecutive and configurable number of packets, Tx bundling will be re-enabled for that AC.
Signed-off-by: Chilam Ng <chilamng@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
1b2df407 |
| 06-Feb-2012 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Update license header
Update license header with the copyright to Qualcomm Atheros, Inc. for the year 2011-2012.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-
ath6kl: Update license header
Update license header with the copyright to Qualcomm Atheros, Inc. for the year 2011-2012.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.3-rc2 |
|
#
cca4d5ad |
| 30-Jan-2012 |
Santosh Sajjan <ssajjan@codeaurora.org> |
ath6kl: Workaround to support Deep Sleep with MSM.
Set the host pm flag MMC_PM_WAKE_SDIO_IRQ to allow host to disable the sdc2_clk and sdc2_h_clk,so that the MSM device enter into TCXO shutdown.
Si
ath6kl: Workaround to support Deep Sleep with MSM.
Set the host pm flag MMC_PM_WAKE_SDIO_IRQ to allow host to disable the sdc2_clk and sdc2_h_clk,so that the MSM device enter into TCXO shutdown.
Signed-off-by: Santosh Sajjan <ssajjan@codeaurora.org> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
e390af77 |
| 30-Jan-2012 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Re-architect suspend mode handling in ath6kl_sdio_suspend
Using this patch, the user can bypass existing auto suspend mode selection logic and force ath6kl to enter into the suspend mode wha
ath6kl: Re-architect suspend mode handling in ath6kl_sdio_suspend
Using this patch, the user can bypass existing auto suspend mode selection logic and force ath6kl to enter into the suspend mode what he/she wants.
If the user doesn't choose any suspend mode while doing insmod of the driver, auto suspend mode selection logic will kick in and choose suspend mode based on the host SDIO controller capability.
Generic module parameter is required to specify suspend mode including Deep Sleep and WOW while doing insmod. Renaming existing mod param variable suspend_cutpower would be sufficient to meet this requirement.
New module parameter suspend_mode can take any one of the below suspend state, 1. cut power 2. deep sleep 3. wow
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
0e7de662 |
| 21-Jan-2012 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Fix memory leak when unloading ath6kl_sdio
The patch "ath6kl: create core.c" removes wiphy_free() from ath6kl_cfg80211_cleanup() and misses to free wiphy in ath6kl_sdio_remove(). This patch
ath6kl: Fix memory leak when unloading ath6kl_sdio
The patch "ath6kl: create core.c" removes wiphy_free() from ath6kl_cfg80211_cleanup() and misses to free wiphy in ath6kl_sdio_remove(). This patch fixes this regression.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.3-rc1 |
|
#
241b128b |
| 17-Jan-2012 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: add back beginnings of USB support
John Linville had to revert the part of USB support which was already in ath6kl due to build problems in commit cb00ec382b ("ath6kl: revert USB support").
ath6kl: add back beginnings of USB support
John Linville had to revert the part of USB support which was already in ath6kl due to build problems in commit cb00ec382b ("ath6kl: revert USB support"). Now that I fixed the build problems properly by adding ath6kl_core.ko kernel module it's possible to add back the (incomplete) USB support. This patch is a revert of John's patch and adds back the USB code which as already in ath6kl, only difference being minor changes in Makefile and adapting usb.c to new core function names.
Note that USB support in ath6kl is not complete yet. This code only makes it possible to boot firmware but as HTC layer does not yet support USB it's not possible to send any WMI commands nor data packets to the firmware. That will be added soon.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
45eaa78f |
| 17-Jan-2012 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: create core.c
Currently core functions are spread between various files, group all the functions into file and rename the functions to follow the style used elsewhere in the driver. This wil
ath6kl: create core.c
Currently core functions are spread between various files, group all the functions into file and rename the functions to follow the style used elsewhere in the driver. This will make it easier to a separate core module.
Also fix a bug where wiphy is freed too early.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
866dc886 |
| 09-Jan-2012 |
Sujith Manoharan <c_manoha@qca.qualcomm.com> |
ath6kl: Fix SDIO error path
sdio_release_host() would be called twice if sdio_set_block_size() fails for some reason, which would result in the following warning.
WARNING: at /home/sujith/dev/wirel
ath6kl: Fix SDIO error path
sdio_release_host() would be called twice if sdio_set_block_size() fails for some reason, which would result in the following warning.
WARNING: at /home/sujith/dev/wireless-testing/drivers/mmc/core/core.c:828 mmc_release_host+0x42/0x50 [mmc_core]()
Call Trace: [<ffffffff81064fdf>] warn_slowpath_common+0x7f/0xc0 [<ffffffff8106503a>] warn_slowpath_null+0x1a/0x20 [<ffffffffa03beb42>] mmc_release_host+0x42/0x50 [mmc_core] [<ffffffffa03c917e>] sdio_release_host+0x1e/0x30 [mmc_core] [<ffffffffa053fac7>] ath6kl_sdio_config+0xc7/0x110 [ath6kl_sdio] [<ffffffffa053fd2c>] ath6kl_sdio_probe+0x21c/0x320 [ath6kl_sdio] [<ffffffffa03beb2a>] ? mmc_release_host+0x2a/0x50 [mmc_core] [<ffffffffa03c7d2a>] sdio_bus_probe+0xfa/0x130 [mmc_core] [<ffffffff813015ae>] driver_probe_device+0x7e/0x1b0 [<ffffffff8130178b>] __driver_attach+0xab/0xb0 [<ffffffff813016e0>] ? driver_probe_device+0x1b0/0x1b0 [<ffffffff813016e0>] ? driver_probe_device+0x1b0/0x1b0 [<ffffffff81300504>] bus_for_each_dev+0x64/0xa0 [<ffffffff8130123e>] driver_attach+0x1e/0x20 [<ffffffff81300e80>] bus_add_driver+0x1b0/0x280 [<ffffffffa0065000>] ? 0xffffffffa0064fff [<ffffffff81301d06>] driver_register+0x76/0x140 [<ffffffffa0065000>] ? 0xffffffffa0064fff [<ffffffffa03c7b71>] sdio_register_driver+0x21/0x30 [mmc_core] [<ffffffffa0065012>] ath6kl_sdio_init+0x12/0x35 [ath6kl_sdio] [<ffffffff81002042>] do_one_initcall+0x42/0x180 [<ffffffff810b025f>] sys_init_module+0x8f/0x200 [<ffffffff81425ac2>] system_call_fastpath+0x16/0x1b
Signed-off-by: Sujith Manoharan <c_manoha@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.2 |
|
#
9d82682d |
| 04-Jan-2012 |
Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> |
ath6kl: Use a mutex_lock to avoid race in diabling and handling irq
Currently this race is handled but in a messy way an atomic variable is being checked in a loop which sleeps upto ms in every iter
ath6kl: Use a mutex_lock to avoid race in diabling and handling irq
Currently this race is handled but in a messy way an atomic variable is being checked in a loop which sleeps upto ms in every iteration. Remove this logic and use a mutex to make sure irq is not disabled when irq handling is in progress.
Signed-off-by: Vasanthakumar Thiagarajan <vthiagar@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
cb00ec38 |
| 05-Jan-2012 |
John W. Linville <linville@tuxdriver.com> |
ath6kl: revert USB support
The ath6kl driver is causing build failures when the ath6kl bits are not built as modules. A better fix is forthcoming in a future release, but for now lets revert the pr
ath6kl: revert USB support
The ath6kl driver is causing build failures when the ath6kl bits are not built as modules. A better fix is forthcoming in a future release, but for now lets revert the problematic code.
This reverts the following commits:
fde57764ef8751b9aca11b6f6221ac5555bda699 d70385a26ad9a122a5450d066550470107b6bc38 59d954dda4b9b3f3e61d4b87a2b26952b8c4c09d
Signed-off-by: John W. Linville <linville@tuxdriver.com>
show more ...
|
Revision tags: v3.2-rc7, v3.2-rc6 |
|
#
c0038972 |
| 16-Dec-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: handle firmware names more dynamically
Currently ath6kl has just hardcoded paths to each firmware file. Change this more dynamic by separating the the directory and file name from each other
ath6kl: handle firmware names more dynamically
Currently ath6kl has just hardcoded paths to each firmware file. Change this more dynamic by separating the the directory and file name from each other. That way it's easier to dynamically create full paths to firmware and code looks better. And now it's possible to remove a function needed by devicetree code.
While at it add a structure inside struct ath6kl_hw to contain all firmware names. I deliberately omitted board file support as those will be handled later.
This is needed for firmware API 3.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
10509f90 |
| 13-Dec-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: implement scheduled scan
ath6kl firmware supports scheduled scan functionality with the wow ssid filter. But the firmware does not send any events after scan results so I had to add a timer
ath6kl: implement scheduled scan
ath6kl firmware supports scheduled scan functionality with the wow ssid filter. But the firmware does not send any events after scan results so I had to add a timer which notifies about new scan results.
Sched scan needs firmware version 3.2.0.6 or later. If firmware doesn't support sched scan the driver will not enable the feature.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.2-rc5, v3.2-rc4, v3.2-rc3 |
|
#
fdb28589 |
| 21-Nov-2011 |
Raja Mani <rmani@qca.qualcomm.com> |
ath6kl: Use mutex to protect dma buffer in sync read write
Firmware crashes while starting Soft AP in 32 bit x86 platform. The reason is that the single dma buffer (ar_sdio->dma_buffer) is used in a
ath6kl: Use mutex to protect dma buffer in sync read write
Firmware crashes while starting Soft AP in 32 bit x86 platform. The reason is that the single dma buffer (ar_sdio->dma_buffer) is used in ath6kl_sdio_read_write_sync() for unaligned buffer handling and this function is called in the multiple context at the same time. So, finally hits dma buffer corruption and firmware crash.
Mutex is used to protect dma buffer to avoid data corruption. Spin lock can not used to fix this issue since mmc stack read/write calls may for sleep.
Observed this issue with recently commited patch "ath6kl: Claim sdio function only at appropriate places" 861dd058f495973c7ad2a44b8f68f3cc05733eab
kvalo: change name of mutex to more descriptive and add a comment about what it protects
Signed-off-by: Raja Mani <rmani@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
Revision tags: v3.2-rc2 |
|
#
f0ea5d58 |
| 14-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: add ar6004 firmwares to sdio module
When adding ar6004 SDIO support I forgot to add corresponding MODULE_FIRMWARE() definitions to sdio.c.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
#
0d0192ba |
| 14-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: use hardware version names consistently
Part of ath6kl uses "REV3" style of naming hardware versions and elsewhere "hw 2.1.1" is used instead for the same version. This is confusing, use the
ath6kl: use hardware version names consistently
Part of ath6kl uses "REV3" style of naming hardware versions and elsewhere "hw 2.1.1" is used instead for the same version. This is confusing, use the latter term everywhere.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
fde57764 |
| 11-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: enable USB support
Now two modules are built, ath6kl_sdio.ko and ath6kl_usb.ko. But the USB module isn't fully functional yet as HTC layer is missing support and that's why it's marked as ex
ath6kl: enable USB support
Now two modules are built, ath6kl_sdio.ko and ath6kl_usb.ko. But the USB module isn't fully functional yet as HTC layer is missing support and that's why it's marked as experimental for now.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
77eab1e9 |
| 11-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: add hif_type
In some rare cases core code needs to know what hif type is used. Add a field to struct ath6kl to denote that. Hopefully this is just a temporary solution.
Signed-off-by: Kalle
ath6kl: add hif_type
In some rare cases core code needs to know what hif type is used. Add a field to struct ath6kl to denote that. Hopefully this is just a temporary solution.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
d93e2c2f |
| 11-Nov-2011 |
Naveen Gangadharan <ngangadh@qca.qualcomm.com> |
ath6kl: AR6004 SDIO support
Add support for AR6004 SDIO. Tested scan, association (open mode) and ping.
kvalo: change commit log a bit, drop board address changes
Signed-off-by: Naveen Gangadharan
ath6kl: AR6004 SDIO support
Add support for AR6004 SDIO. Tested scan, association (open mode) and ping.
kvalo: change commit log a bit, drop board address changes
Signed-off-by: Naveen Gangadharan <ngangadh@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
show more ...
|
#
c7111495 |
| 11-Nov-2011 |
Kalle Valo <kvalo@qca.qualcomm.com> |
ath6kl: move diag commands to hif driver
This is preparation for USB support which will have different diag commands.
Based on code by Kevin Fang.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|