Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
afbd65f5
Commit
afbd65f5
authored
Dec 06, 2019
by
Dmitry Torokhov
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next' into for-linus
Prepare second round of updates for 5.5 merge window.
parents
976e3645
a284e11c
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
51 additions
and
17 deletions
+51
-17
drivers/input/keyboard/Kconfig
drivers/input/keyboard/Kconfig
+1
-1
drivers/input/keyboard/snvs_pwrkey.c
drivers/input/keyboard/snvs_pwrkey.c
+35
-13
drivers/input/misc/uinput.c
drivers/input/misc/uinput.c
+1
-1
drivers/input/rmi4/rmi_f34v7.c
drivers/input/rmi4/rmi_f34v7.c
+3
-0
drivers/input/rmi4/rmi_smbus.c
drivers/input/rmi4/rmi_smbus.c
+0
-2
drivers/input/touchscreen/goodix.c
drivers/input/touchscreen/goodix.c
+9
-0
include/uapi/linux/input-event-codes.h
include/uapi/linux/input-event-codes.h
+2
-0
No files found.
drivers/input/keyboard/Kconfig
View file @
afbd65f5
...
@@ -450,7 +450,7 @@ config KEYBOARD_SNVS_PWRKEY
...
@@ -450,7 +450,7 @@ config KEYBOARD_SNVS_PWRKEY
depends on OF
depends on OF
help
help
This is the snvs powerkey driver for the Freescale i.MX application
This is the snvs powerkey driver for the Freescale i.MX application
processors
that are newer than i.MX6 SX
.
processors.
To compile this driver as a module, choose M here; the
To compile this driver as a module, choose M here; the
module will be called snvs_pwrkey.
module will be called snvs_pwrkey.
...
...
drivers/input/keyboard/snvs_pwrkey.c
View file @
afbd65f5
...
@@ -19,6 +19,7 @@
...
@@ -19,6 +19,7 @@
#include <linux/mfd/syscon.h>
#include <linux/mfd/syscon.h>
#include <linux/regmap.h>
#include <linux/regmap.h>
#define SNVS_HPVIDR1_REG 0xF8
#define SNVS_LPSR_REG 0x4C
/* LP Status Register */
#define SNVS_LPSR_REG 0x4C
/* LP Status Register */
#define SNVS_LPCR_REG 0x38
/* LP Control Register */
#define SNVS_LPCR_REG 0x38
/* LP Control Register */
#define SNVS_HPSR_REG 0x14
#define SNVS_HPSR_REG 0x14
...
@@ -37,6 +38,7 @@ struct pwrkey_drv_data {
...
@@ -37,6 +38,7 @@ struct pwrkey_drv_data {
int
wakeup
;
int
wakeup
;
struct
timer_list
check_timer
;
struct
timer_list
check_timer
;
struct
input_dev
*
input
;
struct
input_dev
*
input
;
u8
minor_rev
;
};
};
static
void
imx_imx_snvs_check_for_events
(
struct
timer_list
*
t
)
static
void
imx_imx_snvs_check_for_events
(
struct
timer_list
*
t
)
...
@@ -67,13 +69,29 @@ static irqreturn_t imx_snvs_pwrkey_interrupt(int irq, void *dev_id)
...
@@ -67,13 +69,29 @@ static irqreturn_t imx_snvs_pwrkey_interrupt(int irq, void *dev_id)
{
{
struct
platform_device
*
pdev
=
dev_id
;
struct
platform_device
*
pdev
=
dev_id
;
struct
pwrkey_drv_data
*
pdata
=
platform_get_drvdata
(
pdev
);
struct
pwrkey_drv_data
*
pdata
=
platform_get_drvdata
(
pdev
);
struct
input_dev
*
input
=
pdata
->
input
;
u32
lp_status
;
u32
lp_status
;
pm_wakeup_event
(
pdata
->
input
->
dev
.
parent
,
0
);
pm_wakeup_event
(
input
->
dev
.
parent
,
0
);
regmap_read
(
pdata
->
snvs
,
SNVS_LPSR_REG
,
&
lp_status
);
regmap_read
(
pdata
->
snvs
,
SNVS_LPSR_REG
,
&
lp_status
);
if
(
lp_status
&
SNVS_LPSR_SPO
)
if
(
lp_status
&
SNVS_LPSR_SPO
)
{
mod_timer
(
&
pdata
->
check_timer
,
jiffies
+
msecs_to_jiffies
(
DEBOUNCE_TIME
));
if
(
pdata
->
minor_rev
==
0
)
{
/*
* The first generation i.MX6 SoCs only sends an
* interrupt on button release. To mimic power-key
* usage, we'll prepend a press event.
*/
input_report_key
(
input
,
pdata
->
keycode
,
1
);
input_sync
(
input
);
input_report_key
(
input
,
pdata
->
keycode
,
0
);
input_sync
(
input
);
pm_relax
(
input
->
dev
.
parent
);
}
else
{
mod_timer
(
&
pdata
->
check_timer
,
jiffies
+
msecs_to_jiffies
(
DEBOUNCE_TIME
));
}
}
/* clear SPO status */
/* clear SPO status */
regmap_write
(
pdata
->
snvs
,
SNVS_LPSR_REG
,
SNVS_LPSR_SPO
);
regmap_write
(
pdata
->
snvs
,
SNVS_LPSR_REG
,
SNVS_LPSR_SPO
);
...
@@ -90,10 +108,11 @@ static void imx_snvs_pwrkey_act(void *pdata)
...
@@ -90,10 +108,11 @@ static void imx_snvs_pwrkey_act(void *pdata)
static
int
imx_snvs_pwrkey_probe
(
struct
platform_device
*
pdev
)
static
int
imx_snvs_pwrkey_probe
(
struct
platform_device
*
pdev
)
{
{
struct
pwrkey_drv_data
*
pdata
=
NULL
;
struct
pwrkey_drv_data
*
pdata
;
struct
input_dev
*
input
=
NULL
;
struct
input_dev
*
input
;
struct
device_node
*
np
;
struct
device_node
*
np
;
int
error
;
int
error
;
u32
vid
;
/* Get SNVS register Page */
/* Get SNVS register Page */
np
=
pdev
->
dev
.
of_node
;
np
=
pdev
->
dev
.
of_node
;
...
@@ -121,6 +140,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
...
@@ -121,6 +140,9 @@ static int imx_snvs_pwrkey_probe(struct platform_device *pdev)
if
(
pdata
->
irq
<
0
)
if
(
pdata
->
irq
<
0
)
return
-
EINVAL
;
return
-
EINVAL
;
regmap_read
(
pdata
->
snvs
,
SNVS_HPVIDR1_REG
,
&
vid
);
pdata
->
minor_rev
=
vid
&
0xff
;
regmap_update_bits
(
pdata
->
snvs
,
SNVS_LPCR_REG
,
SNVS_LPCR_DEP_EN
,
SNVS_LPCR_DEP_EN
);
regmap_update_bits
(
pdata
->
snvs
,
SNVS_LPCR_REG
,
SNVS_LPCR_DEP_EN
,
SNVS_LPCR_DEP_EN
);
/* clear the unexpected interrupt before driver ready */
/* clear the unexpected interrupt before driver ready */
...
...
drivers/input/misc/uinput.c
View file @
afbd65f5
...
@@ -695,7 +695,7 @@ static __poll_t uinput_poll(struct file *file, poll_table *wait)
...
@@ -695,7 +695,7 @@ static __poll_t uinput_poll(struct file *file, poll_table *wait)
if
(
udev
->
head
!=
udev
->
tail
)
if
(
udev
->
head
!=
udev
->
tail
)
return
EPOLLIN
|
EPOLLRDNORM
;
return
EPOLLIN
|
EPOLLRDNORM
;
return
0
;
return
EPOLLOUT
|
EPOLLWRNORM
;
}
}
static
int
uinput_release
(
struct
inode
*
inode
,
struct
file
*
file
)
static
int
uinput_release
(
struct
inode
*
inode
,
struct
file
*
file
)
...
...
drivers/input/rmi4/rmi_f34v7.c
View file @
afbd65f5
...
@@ -1189,6 +1189,9 @@ int rmi_f34v7_do_reflash(struct f34_data *f34, const struct firmware *fw)
...
@@ -1189,6 +1189,9 @@ int rmi_f34v7_do_reflash(struct f34_data *f34, const struct firmware *fw)
{
{
int
ret
;
int
ret
;
f34
->
fn
->
rmi_dev
->
driver
->
set_irq_bits
(
f34
->
fn
->
rmi_dev
,
f34
->
fn
->
irq_mask
);
rmi_f34v7_read_queries_bl_version
(
f34
);
rmi_f34v7_read_queries_bl_version
(
f34
);
f34
->
v7
.
image
=
fw
->
data
;
f34
->
v7
.
image
=
fw
->
data
;
...
...
drivers/input/rmi4/rmi_smbus.c
View file @
afbd65f5
...
@@ -163,7 +163,6 @@ static int rmi_smb_write_block(struct rmi_transport_dev *xport, u16 rmiaddr,
...
@@ -163,7 +163,6 @@ static int rmi_smb_write_block(struct rmi_transport_dev *xport, u16 rmiaddr,
/* prepare to write next block of bytes */
/* prepare to write next block of bytes */
cur_len
-=
SMB_MAX_COUNT
;
cur_len
-=
SMB_MAX_COUNT
;
databuff
+=
SMB_MAX_COUNT
;
databuff
+=
SMB_MAX_COUNT
;
rmiaddr
+=
SMB_MAX_COUNT
;
}
}
exit:
exit:
mutex_unlock
(
&
rmi_smb
->
page_mutex
);
mutex_unlock
(
&
rmi_smb
->
page_mutex
);
...
@@ -215,7 +214,6 @@ static int rmi_smb_read_block(struct rmi_transport_dev *xport, u16 rmiaddr,
...
@@ -215,7 +214,6 @@ static int rmi_smb_read_block(struct rmi_transport_dev *xport, u16 rmiaddr,
/* prepare to read next block of bytes */
/* prepare to read next block of bytes */
cur_len
-=
SMB_MAX_COUNT
;
cur_len
-=
SMB_MAX_COUNT
;
databuff
+=
SMB_MAX_COUNT
;
databuff
+=
SMB_MAX_COUNT
;
rmiaddr
+=
SMB_MAX_COUNT
;
}
}
retval
=
0
;
retval
=
0
;
...
...
drivers/input/touchscreen/goodix.c
View file @
afbd65f5
...
@@ -128,6 +128,15 @@ static const unsigned long goodix_irq_flags[] = {
...
@@ -128,6 +128,15 @@ static const unsigned long goodix_irq_flags[] = {
*/
*/
static
const
struct
dmi_system_id
rotated_screen
[]
=
{
static
const
struct
dmi_system_id
rotated_screen
[]
=
{
#if defined(CONFIG_DMI) && defined(CONFIG_X86)
#if defined(CONFIG_DMI) && defined(CONFIG_X86)
{
.
ident
=
"Teclast X89"
,
.
matches
=
{
/* tPAD is too generic, also match on bios date */
DMI_MATCH
(
DMI_BOARD_VENDOR
,
"TECLAST"
),
DMI_MATCH
(
DMI_BOARD_NAME
,
"tPAD"
),
DMI_MATCH
(
DMI_BIOS_DATE
,
"12/19/2014"
),
},
},
{
{
.
ident
=
"WinBook TW100"
,
.
ident
=
"WinBook TW100"
,
.
matches
=
{
.
matches
=
{
...
...
include/uapi/linux/input-event-codes.h
View file @
afbd65f5
...
@@ -649,6 +649,8 @@
...
@@ -649,6 +649,8 @@
*/
*/
#define KEY_DATA 0x277
#define KEY_DATA 0x277
#define KEY_ONSCREEN_KEYBOARD 0x278
#define KEY_ONSCREEN_KEYBOARD 0x278
/* Electronic privacy screen control */
#define KEY_PRIVACY_SCREEN_TOGGLE 0x279
#define BTN_TRIGGER_HAPPY 0x2c0
#define BTN_TRIGGER_HAPPY 0x2c0
#define BTN_TRIGGER_HAPPY1 0x2c0
#define BTN_TRIGGER_HAPPY1 0x2c0
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment