Compare commits

...

5 Commits

Author SHA1 Message Date
Simon1511 9001f824d7 sm7125: drm: msm: samsung_lego: reset finger mask state on screen off 3 weeks ago
Tim Zimmermann 0a8f5fc069 input: Sync switch event codes with upstream linux 3 weeks ago
Todd Kjos 2e36663481 Revert "Revert "Revert "ANDROID: ALSA: jack: Update supported ja..." 3 weeks ago
Simon1511 fc5d1262f3 sm7125: input: stm: force enable hover proximity sensor 3 weeks ago
Davide Garberi fa0f035c02 drm: msm: sde: Fallback to PCC for color invert 3 weeks ago
  1. 6
      drivers/gpu/drm/msm/samsung_lego/ss_dsi_panel_common.c
  2. 13
      drivers/gpu/drm/msm/sde/sde_color_processing.c
  3. 1
      drivers/gpu/drm/msm/sde/sde_crtc.h
  4. 12
      drivers/gpu/drm/msm/sde/sde_plane.c
  5. 6
      drivers/input/keyboard/certify_hall_ic.c
  6. 5
      drivers/input/touchscreen/stm/fts5cu56a/fts_sec.c
  7. 16
      drivers/input/touchscreen/stm/fts5cu56a/fts_ts.c
  8. 2
      include/linux/mod_devicetable.h
  9. 3
      include/sound/jack.h
  10. 9
      include/uapi/linux/input-event-codes.h
  11. 10
      include/uapi/linux/input.h
  12. 8
      sound/core/jack.c

@ -2997,6 +2997,12 @@ int ss_panel_off_post(struct samsung_display_driver_data *vdd)
LCD_INFO("[DISPLAY_%d] +\n", vdd->ndx);
if (vdd->finger_mask)
vdd->finger_mask = 0;
if (vdd->br_info.common_br.finger_mask_bl_level)
vdd->br_info.common_br.finger_mask_bl_level = 0;
if (vdd->mdnie.support_trans_dimming)
vdd->mdnie.disable_trans_dimming = true;

@ -642,13 +642,22 @@ static void sde_cp_crtc_setfeature(struct sde_cp_node *prop_node,
bool feature_enabled = false;
int ret = 0;
struct sde_ad_hw_cfg ad_cfg;
struct drm_property_blob *blob;
struct drm_msm_pcc *pcc_cfg;
sde_cp_get_hw_payload(prop_node, &hw_cfg, &feature_enabled);
hw_cfg.num_of_mixers = sde_crtc->num_mixers;
hw_cfg.last_feature = 0;
if (prop_node->feature == SDE_CP_CRTC_DSPP_PCC)
return;
if (prop_node->feature == SDE_CP_CRTC_DSPP_PCC) {
blob = prop_node->blob_ptr;
pcc_cfg = (struct drm_msm_pcc*)blob->data;
if (pcc_cfg->r.c == 0 && pcc_cfg->b.c == 0 && pcc_cfg->g.c == 0) {
hw_cfg.payload = NULL;
hw_cfg.len = 0;
}
}
for (i = 0; i < num_mixers && !ret; i++) {
hw_lm = sde_crtc->mixers[i].hw_lm;

@ -438,6 +438,7 @@ struct sde_crtc_state {
u32 padding_dummy;
struct sde_crtc_respool rp;
bool color_invert_on;
};
enum sde_crtc_irq_state {

@ -3964,11 +3964,13 @@ struct sde_csc_cfg *sde_plane_get_csc_cfg(struct drm_plane *plane)
struct sde_plane_state *pstate;
struct sde_csc_cfg *csc_ptr;
struct sde_plane *psde;
struct drm_crtc *drm_crtc = plane->state->crtc;
struct sde_crtc_state *cstate = to_sde_crtc_state(drm_crtc->state);
psde = to_sde_plane(plane);
pstate = to_sde_plane_state(plane->state);
if (sde_plane_is_fod_layer(&pstate->base))
if (sde_plane_is_fod_layer(&pstate->base) || cstate->color_invert_on)
csc_ptr = NULL;
else if (psde->csc_pcc_ptr)
csc_ptr = psde->csc_pcc_ptr;
@ -4032,10 +4034,18 @@ static inline void _sde_plane_set_csc_pcc(struct sde_plane *psde,
struct drm_crtc *crtc)
{
const struct drm_msm_pcc *pcc_cfg = sde_cp_crtc_get_pcc_cfg(crtc);
struct sde_crtc_state *cstate = to_sde_crtc_state(crtc->state);
if (pcc_cfg == psde->pcc_cfg)
return;
if (pcc_cfg->r.c != 0 || pcc_cfg->b.c != 0 || pcc_cfg->g.c != 0) {
cstate->color_invert_on = true;
return;
}
cstate->color_invert_on = false;
psde->pcc_cfg = pcc_cfg;
if (pcc_cfg) {

@ -76,7 +76,7 @@ static void certify_cover_work(struct work_struct *work)
if (first == second) {
certify_cover = first;
input_report_switch(ddata->input, SW_CERTIFYHALL, certify_cover);
input_report_switch(ddata->input, SW_MACHINE_COVER, certify_cover);
input_sync(ddata->input);
#if defined(CONFIG_SUPPORT_HALL_ABNORMAL_TEST)
/* send uevent for hall ic */
@ -100,7 +100,7 @@ static void certify_cover_work(struct work_struct *work)
certify_cover = first;
input_report_switch(ddata->input,
SW_CERTIFYHALL, certify_cover);
SW_MACHINE_COVER, certify_cover);
input_sync(ddata->input);
}
#endif
@ -237,7 +237,7 @@ static int certify_hall_probe(struct platform_device *pdev)
input->dev.parent = &pdev->dev;
input->evbit[0] |= BIT_MASK(EV_SW);
input_set_capability(input, EV_SW, SW_CERTIFYHALL);
input_set_capability(input, EV_SW, SW_MACHINE_COVER);
input->open = certify_hall_open;
input->close = certify_hall_close;

@ -7447,7 +7447,10 @@ static void ear_detect_enable(void *device_data)
snprintf(buff, sizeof(buff), "NG");
sec->cmd_state = SEC_CMD_STATUS_FAIL;
} else {
info->ed_enable = sec->cmd_param[0];
if (info->fts_power_state == FTS_POWER_STATE_LOWPOWER)
info->ed_enable = sec->cmd_param[0];
else
info->ed_enable = sec->cmd_param[0] != 0 ? 3 : 0;
snprintf(buff, sizeof(buff), "OK");
data[0] = FTS_CMD_SET_EAR_DETECT;

@ -1820,21 +1820,15 @@ static u8 fts_event_handler_type_b(struct fts_ts_info *info)
if (p_event_status->stype == FTS_EVENT_STATUSTYPE_VENDORINFO) {
if (info->board->support_ear_detect) {
if (p_event_status->status_id == 0x6A) {
if (info->fts_power_state == FTS_POWER_STATE_LOWPOWER || info->finger[TouchID].y < 700 && info->finger[TouchID].x > 900
&& info->finger[TouchID].x < 3000) {
// Report actual range when either the area around the sensor is touched or if panel is in LPM state
if (info->fts_power_state == FTS_POWER_STATE_LOWPOWER || !info->touch_count) {
// Report actual range when the area around the sensor is touched,
// when panel is in LPM state or when the screen isn't touched
p_event_status->status_data_1 = p_event_status->status_data_1 == 5 || !p_event_status->status_data_1;
info->hover_event = p_event_status->status_data_1;
input_report_abs(info->input_dev_proximity, ABS_MT_CUSTOM, p_event_status->status_data_1);
input_sync(info->input_dev_proximity);
} else {
// Properly reset to 1cm
p_event_status->status_data_1 = 1;
info->hover_event = p_event_status->status_data_1;
input_report_abs(info->input_dev_proximity, ABS_MT_CUSTOM, p_event_status->status_data_1);
input_sync(info->input_dev_proximity);
input_info(true, &info->client->dev, "%s: proximity: %d\n", __func__, p_event_status->status_data_1);
}
input_info(true, &info->client->dev, "%s: proximity: %d\n", __func__, p_event_status->status_data_1);
}
}
}
@ -4152,6 +4146,8 @@ int fts_set_lowpowermode(struct fts_ts_info *info, u8 mode)
}
if (mode == TO_LOWPOWER_MODE) {
info->fod_pressed = 0;
if (device_may_wakeup(&info->client->dev))
enable_irq_wake(info->irq);

@ -293,7 +293,7 @@ struct pcmcia_device_id {
#define INPUT_DEVICE_ID_LED_MAX 0x0f
#define INPUT_DEVICE_ID_SND_MAX 0x07
#define INPUT_DEVICE_ID_FF_MAX 0x7f
#define INPUT_DEVICE_ID_SW_MAX 0x20
#define INPUT_DEVICE_ID_SW_MAX 0x10
#define INPUT_DEVICE_ID_PROP_MAX 0x1f
#define INPUT_DEVICE_ID_MATCH_BUS 1

@ -105,6 +105,9 @@ enum snd_jack_types {
#endif
/* Keep in sync with definitions above */
#define SND_JACK_SWITCH_TYPES 6
struct snd_jack {
struct list_head kctl_list;
struct snd_card *card;

@ -824,13 +824,8 @@
#define SW_LINEIN_INSERT 0x0d /* set = inserted */
#define SW_MUTE_DEVICE 0x0e /* set = device disabled */
#define SW_PEN_INSERTED 0x0f /* set = pen inserted */
#define SW_HPHL_OVERCURRENT 0x10 /* set = over current on left hph */
#define SW_HPHR_OVERCURRENT 0x11 /* set = over current on right hph */
#define SW_MICROPHONE2_INSERT 0x12 /* set = inserted */
#define SW_UNSUPPORT_INSERT 0x13 /* set = unsupported device inserted */
#define SW_MACHINE_COVER 0x14 /* set = cover closed */
#define SW_GLOVE 0x20 /* set = glove mode */
#define SW_MAX 0x20
#define SW_MACHINE_COVER 0x10 /* set = cover closed */
#define SW_MAX 0x10
#define SW_CNT (SW_MAX+1)
/*

@ -329,16 +329,6 @@ struct input_mask {
#define EVIOCSCLOCKID _IOW('E', 0xa0, int) /* Set clockid to be used for timestamps */
/*
* Switch events
*/
#define SW_FLIP 0x15 /* set = flip cover open, close*/
#define SW_CERTIFYHALL 0x1b /* set = certify_hall attach/detach */
#define SW_SLIDINGUPHALL 0x1c /* set = sliding_up_hall attach/detach */
#define SW_SLIDINGDOWNHALL 0x1d /* set = sliding_down_hall attach/detach */
#define SW_DIGITALUPHALL 0x1e /* set = digital_up_hall attach/detach */
#define SW_DIGITALDOWNHALL 0x1f /* set = digital_down_hall attach/detach */
/*
* IDs.
*/

@ -33,17 +33,13 @@ struct snd_jack_kctl {
};
#ifdef CONFIG_SND_JACK_INPUT_DEV
static int jack_switch_types[] = {
static int jack_switch_types[SND_JACK_SWITCH_TYPES] = {
SW_HEADPHONE_INSERT,
SW_MICROPHONE_INSERT,
SW_LINEOUT_INSERT,
SW_JACK_PHYSICAL_INSERT,
SW_VIDEOOUT_INSERT,
SW_LINEIN_INSERT,
SW_HPHL_OVERCURRENT,
SW_HPHR_OVERCURRENT,
SW_UNSUPPORT_INSERT,
SW_MICROPHONE2_INSERT,
};
#endif /* CONFIG_SND_JACK_INPUT_DEV */
@ -254,7 +250,7 @@ int snd_jack_new(struct snd_card *card, const char *id, int type,
jack->type = type;
for (i = 0; i < ARRAY_SIZE(jack_switch_types); i++)
for (i = 0; i < SND_JACK_SWITCH_TYPES; i++)
if (type & (1 << i))
input_set_capability(jack->input_dev, EV_SW,
jack_switch_types[i]);

Loading…
Cancel
Save