Skip to content

Commit

Permalink
HID: amd_sfh: Move interrupt handling to common interface
Browse files Browse the repository at this point in the history
Interrupt handling can be used in multiple files to support all
AMD SOCs. Hence move interrupt handling to common interface.

Signed-off-by: Basavaraj Natikar <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
  • Loading branch information
Basavaraj Natikar authored and Jiri Kosina committed Jul 21, 2022
1 parent e7f535e commit 014730c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 8 deletions.
6 changes: 2 additions & 4 deletions drivers/hid/amd-sfh-hid/amd_sfh_client.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,8 +178,7 @@ static void amd_sfh_resume(struct amd_mp2_dev *mp2)
}

schedule_delayed_work(&cl_data->work_buffer, msecs_to_jiffies(AMD_SFH_IDLE_LOOP));
if (mp2->mp2_ops->clear_intr)
mp2->mp2_ops->clear_intr(mp2);
amd_sfh_clear_intr(mp2);
}

static void amd_sfh_suspend(struct amd_mp2_dev *mp2)
Expand All @@ -202,8 +201,7 @@ static void amd_sfh_suspend(struct amd_mp2_dev *mp2)
}

cancel_delayed_work_sync(&cl_data->work_buffer);
if (mp2->mp2_ops->clear_intr)
mp2->mp2_ops->clear_intr(mp2);
amd_sfh_clear_intr(mp2);
}

int amd_sfh_hid_client_init(struct amd_mp2_dev *privdata)
Expand Down
4 changes: 4 additions & 0 deletions drivers/hid/amd-sfh-hid/amd_sfh_common.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,8 @@ struct amd_mp2_ops {

void amd_sfh_work(struct work_struct *work);
void amd_sfh_work_buffer(struct work_struct *work);
void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata);
int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata);
void amd_sfh_clear_intr(struct amd_mp2_dev *privdata);
int amd_sfh_irq_init(struct amd_mp2_dev *privdata);
#endif
8 changes: 4 additions & 4 deletions drivers/hid/amd-sfh-hid/amd_sfh_pcie.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,15 +92,15 @@ static void amd_stop_all_sensor_v2(struct amd_mp2_dev *privdata)
writel(cmd_base.ul, privdata->mmio + AMD_C2P_MSG0);
}

static void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata)
void amd_sfh_clear_intr_v2(struct amd_mp2_dev *privdata)
{
if (readl(privdata->mmio + AMD_P2C_MSG(4))) {
writel(0, privdata->mmio + AMD_P2C_MSG(4));
writel(0xf, privdata->mmio + AMD_P2C_MSG(5));
}
}

static void amd_sfh_clear_intr(struct amd_mp2_dev *privdata)
void amd_sfh_clear_intr(struct amd_mp2_dev *privdata)
{
if (privdata->mp2_ops->clear_intr)
privdata->mp2_ops->clear_intr(privdata);
Expand All @@ -113,7 +113,7 @@ static irqreturn_t amd_sfh_irq_handler(int irq, void *data)
return IRQ_HANDLED;
}

static int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata)
int amd_sfh_irq_init_v2(struct amd_mp2_dev *privdata)
{
int rc;

Expand Down Expand Up @@ -279,7 +279,7 @@ static void mp2_select_ops(struct amd_mp2_dev *privdata)
}
}

static int amd_sfh_irq_init(struct amd_mp2_dev *privdata)
int amd_sfh_irq_init(struct amd_mp2_dev *privdata)
{
if (privdata->mp2_ops->init_intr)
return privdata->mp2_ops->init_intr(privdata);
Expand Down

0 comments on commit 014730c

Please sign in to comment.