View | Details | Raw Unified | Return to bug 229074 | Differences between
and this patch

Collapse All | Expand All

(-)acpi_ibm.c (-1 / +63 lines)
Lines 74-79 Link Here
74
#define ACPI_IBM_METHOD_FANSTATUS	12
74
#define ACPI_IBM_METHOD_FANSTATUS	12
75
#define ACPI_IBM_METHOD_THERMAL		13
75
#define ACPI_IBM_METHOD_THERMAL		13
76
#define ACPI_IBM_METHOD_HANDLEREVENTS	14
76
#define ACPI_IBM_METHOD_HANDLEREVENTS	14
77
#define ACPI_IBM_METHOD_MIC_LED		15
77
78
78
/* Hotkeys/Buttons */
79
/* Hotkeys/Buttons */
79
#define IBM_RTC_HOTKEY1			0x64
80
#define IBM_RTC_HOTKEY1			0x64
Lines 175-180 Link Here
175
	int		led_busy;
176
	int		led_busy;
176
	int		led_state;
177
	int		led_state;
177
178
179
	/* Mic led handle */
180
	ACPI_HANDLE	mic_led_handle;
181
	int		mic_led_state;
182
178
	int		wlan_bt_flags;
183
	int		wlan_bt_flags;
179
	int		thermal_updt_supported;
184
	int		thermal_updt_supported;
180
185
Lines 258-264 Link Here
258
		.method		= ACPI_IBM_METHOD_FANSTATUS,
263
		.method		= ACPI_IBM_METHOD_FANSTATUS,
259
		.description	= "Fan enable",
264
		.description	= "Fan enable",
260
	},
265
	},
261
266
	{
267
		.name		= "mic_led",
268
		.method		= ACPI_IBM_METHOD_MIC_LED,
269
		.description	= "Mic led",
270
	},
262
	{ NULL, 0, NULL, 0 }
271
	{ NULL, 0, NULL, 0 }
263
};
272
};
264
273
Lines 371-376 Link Here
371
}
380
}
372
381
373
static int
382
static int
383
acpi_ibm_mic_led_set (struct acpi_ibm_softc *sc, int arg)
384
{
385
	ACPI_OBJECT_LIST input;
386
	ACPI_OBJECT params[1];
387
	ACPI_STATUS status;
388
389
	if (arg < 0 || arg > 1)
390
		return (EINVAL);
391
392
	if (sc->mic_led_handle) {
393
		params[0].Type = ACPI_TYPE_INTEGER;
394
		params[0].Integer.Value = 0;
395
		/* mic led: 0 off, 2 on */
396
		if (arg == 1)
397
			params[0].Integer.Value = 2;
398
399
		input.Pointer = params;
400
		input.Count = 1;
401
402
		status = AcpiEvaluateObject (sc->handle, "MMTS", &input, NULL);
403
		if (ACPI_SUCCESS(status))
404
			sc->mic_led_state = arg;
405
		return(status);
406
	}
407
408
	return (0);
409
}
410
411
static int
374
acpi_ibm_probe(device_t dev)
412
acpi_ibm_probe(device_t dev)
375
{
413
{
376
	if (acpi_disabled("ibm") ||
414
	if (acpi_disabled("ibm") ||
Lines 552-557 Link Here
552
	}
590
	}
553
	ACPI_SERIAL_END(ibm);
591
	ACPI_SERIAL_END(ibm);
554
592
593
	/* The mic led is does not turn back on sysctl_set is called in the above loop */
594
	acpi_ibm_mic_led_set(sc, sc->mic_led_state);
595
555
	return (0);
596
	return (0);
556
}
597
}
557
598
Lines 739-744 Link Here
739
		else
780
		else
740
			val = -1;
781
			val = -1;
741
		break;
782
		break;
783
	case ACPI_IBM_METHOD_MIC_LED:
784
		if (sc->mic_led_handle)
785
			return sc->mic_led_state;
786
		else
787
			val = -1;
788
		break;
742
	}
789
	}
743
790
744
	return (val);
791
	return (val);
Lines 783-788 Link Here
783
		return acpi_ibm_mute_set(sc, arg);
830
		return acpi_ibm_mute_set(sc, arg);
784
		break;
831
		break;
785
832
833
	case ACPI_IBM_METHOD_MIC_LED:
834
		return acpi_ibm_mic_led_set (sc, arg);
835
		break;
836
786
	case ACPI_IBM_METHOD_THINKLIGHT:
837
	case ACPI_IBM_METHOD_THINKLIGHT:
787
		return acpi_ibm_thinklight_set(sc, arg);
838
		return acpi_ibm_thinklight_set(sc, arg);
788
		break;
839
		break;
Lines 842-847 Link Here
842
		/* EC is required here, which was already checked before */
893
		/* EC is required here, which was already checked before */
843
		return (TRUE);
894
		return (TRUE);
844
895
896
	case ACPI_IBM_METHOD_MIC_LED:
897
		if (ACPI_SUCCESS(AcpiGetHandle(sc->handle, "MMTS", &sc->mic_led_handle)))
898
		{
899
			/* Turn off mic led by default */
900
			acpi_ibm_mic_led_set (sc, 0);
901
			return(TRUE);
902
		}
903
		else
904
			sc->mic_led_handle = NULL;
905
		return (FALSE);
906
845
	case ACPI_IBM_METHOD_THINKLIGHT:
907
	case ACPI_IBM_METHOD_THINKLIGHT:
846
		sc->cmos_handle = NULL;
908
		sc->cmos_handle = NULL;
847
		sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger(
909
		sc->light_get_supported = ACPI_SUCCESS(acpi_GetInteger(

Return to bug 229074