提交 b03d7b18 编写于 作者: T Thomas Bogendoerfer 提交者: Ralf Baechle

[MIPS] IP22: Add platform device for Indy volume buttons

Create platform device for Indy volume buttons and remove button
handling from ip22-reset.c
Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 efff4ae2
master alk-4.19.24 alk-4.19.30 alk-4.19.34 alk-4.19.36 alk-4.19.43 alk-4.19.48 alk-4.19.57 ck-4.19.67 ck-4.19.81 ck-4.19.91 github/fork/deepanshu1422/fix-typo-in-comment github/fork/haosdent/fix-typo linux-next v4.19.91 v4.19.90 v4.19.89 v4.19.88 v4.19.87 v4.19.86 v4.19.85 v4.19.84 v4.19.83 v4.19.82 v4.19.81 v4.19.80 v4.19.79 v4.19.78 v4.19.77 v4.19.76 v4.19.75 v4.19.74 v4.19.73 v4.19.72 v4.19.71 v4.19.70 v4.19.69 v4.19.68 v4.19.67 v4.19.66 v4.19.65 v4.19.64 v4.19.63 v4.19.62 v4.19.61 v4.19.60 v4.19.59 v4.19.58 v4.19.57 v4.19.56 v4.19.55 v4.19.54 v4.19.53 v4.19.52 v4.19.51 v4.19.50 v4.19.49 v4.19.48 v4.19.47 v4.19.46 v4.19.45 v4.19.44 v4.19.43 v4.19.42 v4.19.41 v4.19.40 v4.19.39 v4.19.38 v4.19.37 v4.19.36 v4.19.35 v4.19.34 v4.19.33 v4.19.32 v4.19.31 v4.19.30 v4.19.29 v4.19.28 v4.19.27 v4.19.26 v4.19.25 v4.19.24 v4.19.23 v4.19.22 v4.19.21 v4.19.20 v4.19.19 v4.19.18 v4.19.17 v4.19.16 v4.19.15 v4.19.14 v4.19.13 v4.19.12 v4.19.11 v4.19.10 v4.19.9 v4.19.8 v4.19.7 v4.19.6 v4.19.5 v4.19.4 v4.19.3 v4.19.2 v4.19.1 v4.19 v4.19-rc8 v4.19-rc7 v4.19-rc6 v4.19-rc5 v4.19-rc4 v4.19-rc3 v4.19-rc2 v4.19-rc1 ck-release-21 ck-release-20 ck-release-19.2 ck-release-19.1 ck-release-19 ck-release-18 ck-release-17.2 ck-release-17.1 ck-release-17 ck-release-16 ck-release-15.1 ck-release-15 ck-release-14 ck-release-13.2 ck-release-13 ck-release-12 ck-release-11 ck-release-10 ck-release-9 ck-release-7 alk-release-15 alk-release-14 alk-release-13.2 alk-release-13 alk-release-12 alk-release-11 alk-release-10 alk-release-9 alk-release-7
无相关合并请求
......@@ -182,3 +182,14 @@ static int __init sgi_hal2_devinit(void)
}
device_initcall(sgi_hal2_devinit);
static int __init sgi_button_devinit(void)
{
if (ip22_is_fullhouse())
return 0; /* full house has no volume buttons */
return IS_ERR(platform_device_register_simple("sgiindybtns",
-1, NULL, 0));
}
device_initcall(sgi_button_devinit);
......@@ -39,7 +39,7 @@
#define POWERDOWN_FREQ (HZ / 4)
#define PANIC_FREQ (HZ / 8)
static struct timer_list power_timer, blink_timer, debounce_timer, volume_timer;
static struct timer_list power_timer, blink_timer, debounce_timer;
#define MACHINE_PANICED 1
#define MACHINE_SHUTTING_DOWN 2
......@@ -139,36 +139,6 @@ static inline void power_button(void)
add_timer(&power_timer);
}
void (*indy_volume_button)(int) = NULL;
EXPORT_SYMBOL(indy_volume_button);
static inline void volume_up_button(unsigned long data)
{
del_timer(&volume_timer);
if (indy_volume_button)
indy_volume_button(1);
if (sgint->istat1 & SGINT_ISTAT1_PWR) {
volume_timer.expires = jiffies + (HZ / 100);
add_timer(&volume_timer);
}
}
static inline void volume_down_button(unsigned long data)
{
del_timer(&volume_timer);
if (indy_volume_button)
indy_volume_button(-1);
if (sgint->istat1 & SGINT_ISTAT1_PWR) {
volume_timer.expires = jiffies + (HZ / 100);
add_timer(&volume_timer);
}
}
static irqreturn_t panel_int(int irq, void *dev_id)
{
unsigned int buttons;
......@@ -190,25 +160,8 @@ static irqreturn_t panel_int(int irq, void *dev_id)
* House. Only lowest 2 bits are used. Guiness uses upper four bits
* for volume control". This is not true, all bits are pulled high
* on fullhouse */
if (ip22_is_fullhouse() || !(buttons & SGIOC_PANEL_POWERINTR)) {
if (!(buttons & SGIOC_PANEL_POWERINTR))
power_button();
return IRQ_HANDLED;
}
/* TODO: mute/unmute */
/* Volume up button was pressed */
if (!(buttons & SGIOC_PANEL_VOLUPINTR)) {
init_timer(&volume_timer);
volume_timer.function = volume_up_button;
volume_timer.expires = jiffies + (HZ / 100);
add_timer(&volume_timer);
}
/* Volume down button was pressed */
if (!(buttons & SGIOC_PANEL_VOLDNINTR)) {
init_timer(&volume_timer);
volume_timer.function = volume_down_button;
volume_timer.expires = jiffies + (HZ / 100);
add_timer(&volume_timer);
}
return IRQ_HANDLED;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部