drivers: wireless: Refactor gs2200m.c
Summary: - Remove unnecessay code from gs2200m_irq() - Fix irq control in case that work_available() returns false Impact: - All use cases with gs2200m driver Testing: - Tested with spresense:wifi Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
This commit is contained in:
parent
46dd4d8d91
commit
07b4b219cd
@ -3086,26 +3086,22 @@ errout:
|
|||||||
static int gs2200m_irq(int irq, FAR void *context, FAR void *arg)
|
static int gs2200m_irq(int irq, FAR void *context, FAR void *arg)
|
||||||
{
|
{
|
||||||
FAR struct gs2200m_dev_s *dev;
|
FAR struct gs2200m_dev_s *dev;
|
||||||
int ec = 0;
|
|
||||||
|
|
||||||
DEBUGASSERT(arg != NULL);
|
DEBUGASSERT(arg != NULL);
|
||||||
dev = (FAR struct gs2200m_dev_s *)arg;
|
dev = (FAR struct gs2200m_dev_s *)arg;
|
||||||
|
|
||||||
dev->lower->dready(&ec);
|
|
||||||
ASSERT(0 < ec);
|
|
||||||
|
|
||||||
wlinfo(">>>> \n");
|
wlinfo(">>>> \n");
|
||||||
|
|
||||||
/* NOTE: Disable gs2200m irq during processing */
|
|
||||||
|
|
||||||
dev->lower->disable();
|
|
||||||
|
|
||||||
if (!work_available(&dev->irq_work))
|
if (!work_available(&dev->irq_work))
|
||||||
{
|
{
|
||||||
wlwarn("*** warning: there is still pending work **** \n");
|
wlwarn("*** warning: there is still pending work **** \n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* NOTE: Disable gs2200m irq during processing */
|
||||||
|
|
||||||
|
dev->lower->disable();
|
||||||
|
|
||||||
return work_queue(GS2200MWORK, &dev->irq_work, gs2200m_irq_worker,
|
return work_queue(GS2200MWORK, &dev->irq_work, gs2200m_irq_worker,
|
||||||
(FAR void *)dev, 0);
|
(FAR void *)dev, 0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user