gmux_data         102 drivers/platform/x86/apple-gmux.c static u8 gmux_pio_read8(struct apple_gmux_data *gmux_data, int port)
gmux_data         104 drivers/platform/x86/apple-gmux.c 	return inb(gmux_data->iostart + port);
gmux_data         107 drivers/platform/x86/apple-gmux.c static void gmux_pio_write8(struct apple_gmux_data *gmux_data, int port,
gmux_data         110 drivers/platform/x86/apple-gmux.c 	outb(val, gmux_data->iostart + port);
gmux_data         113 drivers/platform/x86/apple-gmux.c static u32 gmux_pio_read32(struct apple_gmux_data *gmux_data, int port)
gmux_data         115 drivers/platform/x86/apple-gmux.c 	return inl(gmux_data->iostart + port);
gmux_data         118 drivers/platform/x86/apple-gmux.c static void gmux_pio_write32(struct apple_gmux_data *gmux_data, int port,
gmux_data         126 drivers/platform/x86/apple-gmux.c 		outb(tmpval, gmux_data->iostart + port + i);
gmux_data         130 drivers/platform/x86/apple-gmux.c static int gmux_index_wait_ready(struct apple_gmux_data *gmux_data)
gmux_data         133 drivers/platform/x86/apple-gmux.c 	u8 gwr = inb(gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         136 drivers/platform/x86/apple-gmux.c 		inb(gmux_data->iostart + GMUX_PORT_READ);
gmux_data         137 drivers/platform/x86/apple-gmux.c 		gwr = inb(gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         145 drivers/platform/x86/apple-gmux.c static int gmux_index_wait_complete(struct apple_gmux_data *gmux_data)
gmux_data         148 drivers/platform/x86/apple-gmux.c 	u8 gwr = inb(gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         151 drivers/platform/x86/apple-gmux.c 		gwr = inb(gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         157 drivers/platform/x86/apple-gmux.c 		inb(gmux_data->iostart + GMUX_PORT_READ);
gmux_data         162 drivers/platform/x86/apple-gmux.c static u8 gmux_index_read8(struct apple_gmux_data *gmux_data, int port)
gmux_data         166 drivers/platform/x86/apple-gmux.c 	mutex_lock(&gmux_data->index_lock);
gmux_data         167 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_ready(gmux_data);
gmux_data         168 drivers/platform/x86/apple-gmux.c 	outb((port & 0xff), gmux_data->iostart + GMUX_PORT_READ);
gmux_data         169 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_complete(gmux_data);
gmux_data         170 drivers/platform/x86/apple-gmux.c 	val = inb(gmux_data->iostart + GMUX_PORT_VALUE);
gmux_data         171 drivers/platform/x86/apple-gmux.c 	mutex_unlock(&gmux_data->index_lock);
gmux_data         176 drivers/platform/x86/apple-gmux.c static void gmux_index_write8(struct apple_gmux_data *gmux_data, int port,
gmux_data         179 drivers/platform/x86/apple-gmux.c 	mutex_lock(&gmux_data->index_lock);
gmux_data         180 drivers/platform/x86/apple-gmux.c 	outb(val, gmux_data->iostart + GMUX_PORT_VALUE);
gmux_data         181 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_ready(gmux_data);
gmux_data         182 drivers/platform/x86/apple-gmux.c 	outb(port & 0xff, gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         183 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_complete(gmux_data);
gmux_data         184 drivers/platform/x86/apple-gmux.c 	mutex_unlock(&gmux_data->index_lock);
gmux_data         187 drivers/platform/x86/apple-gmux.c static u32 gmux_index_read32(struct apple_gmux_data *gmux_data, int port)
gmux_data         191 drivers/platform/x86/apple-gmux.c 	mutex_lock(&gmux_data->index_lock);
gmux_data         192 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_ready(gmux_data);
gmux_data         193 drivers/platform/x86/apple-gmux.c 	outb((port & 0xff), gmux_data->iostart + GMUX_PORT_READ);
gmux_data         194 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_complete(gmux_data);
gmux_data         195 drivers/platform/x86/apple-gmux.c 	val = inl(gmux_data->iostart + GMUX_PORT_VALUE);
gmux_data         196 drivers/platform/x86/apple-gmux.c 	mutex_unlock(&gmux_data->index_lock);
gmux_data         201 drivers/platform/x86/apple-gmux.c static void gmux_index_write32(struct apple_gmux_data *gmux_data, int port,
gmux_data         207 drivers/platform/x86/apple-gmux.c 	mutex_lock(&gmux_data->index_lock);
gmux_data         211 drivers/platform/x86/apple-gmux.c 		outb(tmpval, gmux_data->iostart + GMUX_PORT_VALUE + i);
gmux_data         214 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_ready(gmux_data);
gmux_data         215 drivers/platform/x86/apple-gmux.c 	outb(port & 0xff, gmux_data->iostart + GMUX_PORT_WRITE);
gmux_data         216 drivers/platform/x86/apple-gmux.c 	gmux_index_wait_complete(gmux_data);
gmux_data         217 drivers/platform/x86/apple-gmux.c 	mutex_unlock(&gmux_data->index_lock);
gmux_data         220 drivers/platform/x86/apple-gmux.c static u8 gmux_read8(struct apple_gmux_data *gmux_data, int port)
gmux_data         222 drivers/platform/x86/apple-gmux.c 	if (gmux_data->indexed)
gmux_data         223 drivers/platform/x86/apple-gmux.c 		return gmux_index_read8(gmux_data, port);
gmux_data         225 drivers/platform/x86/apple-gmux.c 		return gmux_pio_read8(gmux_data, port);
gmux_data         228 drivers/platform/x86/apple-gmux.c static void gmux_write8(struct apple_gmux_data *gmux_data, int port, u8 val)
gmux_data         230 drivers/platform/x86/apple-gmux.c 	if (gmux_data->indexed)
gmux_data         231 drivers/platform/x86/apple-gmux.c 		gmux_index_write8(gmux_data, port, val);
gmux_data         233 drivers/platform/x86/apple-gmux.c 		gmux_pio_write8(gmux_data, port, val);
gmux_data         236 drivers/platform/x86/apple-gmux.c static u32 gmux_read32(struct apple_gmux_data *gmux_data, int port)
gmux_data         238 drivers/platform/x86/apple-gmux.c 	if (gmux_data->indexed)
gmux_data         239 drivers/platform/x86/apple-gmux.c 		return gmux_index_read32(gmux_data, port);
gmux_data         241 drivers/platform/x86/apple-gmux.c 		return gmux_pio_read32(gmux_data, port);
gmux_data         244 drivers/platform/x86/apple-gmux.c static void gmux_write32(struct apple_gmux_data *gmux_data, int port,
gmux_data         247 drivers/platform/x86/apple-gmux.c 	if (gmux_data->indexed)
gmux_data         248 drivers/platform/x86/apple-gmux.c 		gmux_index_write32(gmux_data, port, val);
gmux_data         250 drivers/platform/x86/apple-gmux.c 		gmux_pio_write32(gmux_data, port, val);
gmux_data         253 drivers/platform/x86/apple-gmux.c static bool gmux_is_indexed(struct apple_gmux_data *gmux_data)
gmux_data         257 drivers/platform/x86/apple-gmux.c 	outb(0xaa, gmux_data->iostart + 0xcc);
gmux_data         258 drivers/platform/x86/apple-gmux.c 	outb(0x55, gmux_data->iostart + 0xcd);
gmux_data         259 drivers/platform/x86/apple-gmux.c 	outb(0x00, gmux_data->iostart + 0xce);
gmux_data         261 drivers/platform/x86/apple-gmux.c 	val = inb(gmux_data->iostart + 0xcc) |
gmux_data         262 drivers/platform/x86/apple-gmux.c 		(inb(gmux_data->iostart + 0xcd) << 8);
gmux_data         286 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = bl_get_data(bd);
gmux_data         287 drivers/platform/x86/apple-gmux.c 	return gmux_read32(gmux_data, GMUX_PORT_BRIGHTNESS) &
gmux_data         293 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = bl_get_data(bd);
gmux_data         299 drivers/platform/x86/apple-gmux.c 	gmux_write32(gmux_data, GMUX_PORT_BRIGHTNESS, brightness);
gmux_data         386 drivers/platform/x86/apple-gmux.c static void gmux_read_switch_state(struct apple_gmux_data *gmux_data)
gmux_data         388 drivers/platform/x86/apple-gmux.c 	if (gmux_read8(gmux_data, GMUX_PORT_SWITCH_DDC) == 1)
gmux_data         389 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_ddc = VGA_SWITCHEROO_IGD;
gmux_data         391 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_ddc = VGA_SWITCHEROO_DIS;
gmux_data         393 drivers/platform/x86/apple-gmux.c 	if (gmux_read8(gmux_data, GMUX_PORT_SWITCH_DISPLAY) == 2)
gmux_data         394 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_display = VGA_SWITCHEROO_IGD;
gmux_data         396 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_display = VGA_SWITCHEROO_DIS;
gmux_data         398 drivers/platform/x86/apple-gmux.c 	if (gmux_read8(gmux_data, GMUX_PORT_SWITCH_EXTERNAL) == 2)
gmux_data         399 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_external = VGA_SWITCHEROO_IGD;
gmux_data         401 drivers/platform/x86/apple-gmux.c 		gmux_data->switch_state_external = VGA_SWITCHEROO_DIS;
gmux_data         404 drivers/platform/x86/apple-gmux.c static void gmux_write_switch_state(struct apple_gmux_data *gmux_data)
gmux_data         406 drivers/platform/x86/apple-gmux.c 	if (gmux_data->switch_state_ddc == VGA_SWITCHEROO_IGD)
gmux_data         407 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_DDC, 1);
gmux_data         409 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_DDC, 2);
gmux_data         411 drivers/platform/x86/apple-gmux.c 	if (gmux_data->switch_state_display == VGA_SWITCHEROO_IGD)
gmux_data         412 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_DISPLAY, 2);
gmux_data         414 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_DISPLAY, 3);
gmux_data         416 drivers/platform/x86/apple-gmux.c 	if (gmux_data->switch_state_external == VGA_SWITCHEROO_IGD)
gmux_data         417 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_EXTERNAL, 2);
gmux_data         419 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_EXTERNAL, 3);
gmux_data         461 drivers/platform/x86/apple-gmux.c static int gmux_set_discrete_state(struct apple_gmux_data *gmux_data,
gmux_data         464 drivers/platform/x86/apple-gmux.c 	reinit_completion(&gmux_data->powerchange_done);
gmux_data         467 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_DISCRETE_POWER, 1);
gmux_data         468 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_DISCRETE_POWER, 3);
gmux_data         471 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_DISCRETE_POWER, 1);
gmux_data         472 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_DISCRETE_POWER, 0);
gmux_data         476 drivers/platform/x86/apple-gmux.c 	gmux_data->power_state = state;
gmux_data         478 drivers/platform/x86/apple-gmux.c 	if (gmux_data->gpe >= 0 &&
gmux_data         479 drivers/platform/x86/apple-gmux.c 	    !wait_for_completion_interruptible_timeout(&gmux_data->powerchange_done,
gmux_data         533 drivers/platform/x86/apple-gmux.c static inline void gmux_disable_interrupts(struct apple_gmux_data *gmux_data)
gmux_data         535 drivers/platform/x86/apple-gmux.c 	gmux_write8(gmux_data, GMUX_PORT_INTERRUPT_ENABLE,
gmux_data         539 drivers/platform/x86/apple-gmux.c static inline void gmux_enable_interrupts(struct apple_gmux_data *gmux_data)
gmux_data         541 drivers/platform/x86/apple-gmux.c 	gmux_write8(gmux_data, GMUX_PORT_INTERRUPT_ENABLE,
gmux_data         545 drivers/platform/x86/apple-gmux.c static inline u8 gmux_interrupt_get_status(struct apple_gmux_data *gmux_data)
gmux_data         547 drivers/platform/x86/apple-gmux.c 	return gmux_read8(gmux_data, GMUX_PORT_INTERRUPT_STATUS);
gmux_data         550 drivers/platform/x86/apple-gmux.c static void gmux_clear_interrupts(struct apple_gmux_data *gmux_data)
gmux_data         555 drivers/platform/x86/apple-gmux.c 	status = gmux_interrupt_get_status(gmux_data);
gmux_data         556 drivers/platform/x86/apple-gmux.c 	gmux_write8(gmux_data, GMUX_PORT_INTERRUPT_STATUS, status);
gmux_data         563 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp);
gmux_data         565 drivers/platform/x86/apple-gmux.c 	status = gmux_interrupt_get_status(gmux_data);
gmux_data         566 drivers/platform/x86/apple-gmux.c 	gmux_disable_interrupts(gmux_data);
gmux_data         569 drivers/platform/x86/apple-gmux.c 	gmux_clear_interrupts(gmux_data);
gmux_data         570 drivers/platform/x86/apple-gmux.c 	gmux_enable_interrupts(gmux_data);
gmux_data         573 drivers/platform/x86/apple-gmux.c 		complete(&gmux_data->powerchange_done);
gmux_data         579 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp);
gmux_data         581 drivers/platform/x86/apple-gmux.c 	gmux_disable_interrupts(gmux_data);
gmux_data         588 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp);
gmux_data         590 drivers/platform/x86/apple-gmux.c 	gmux_enable_interrupts(gmux_data);
gmux_data         591 drivers/platform/x86/apple-gmux.c 	gmux_write_switch_state(gmux_data);
gmux_data         592 drivers/platform/x86/apple-gmux.c 	if (gmux_data->power_state == VGA_SWITCHEROO_OFF)
gmux_data         593 drivers/platform/x86/apple-gmux.c 		gmux_set_discrete_state(gmux_data, gmux_data->power_state);
gmux_data         604 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data;
gmux_data         616 drivers/platform/x86/apple-gmux.c 	gmux_data = kzalloc(sizeof(*gmux_data), GFP_KERNEL);
gmux_data         617 drivers/platform/x86/apple-gmux.c 	if (!gmux_data)
gmux_data         619 drivers/platform/x86/apple-gmux.c 	pnp_set_drvdata(pnp, gmux_data);
gmux_data         627 drivers/platform/x86/apple-gmux.c 	gmux_data->iostart = res->start;
gmux_data         628 drivers/platform/x86/apple-gmux.c 	gmux_data->iolen = res->end - res->start;
gmux_data         630 drivers/platform/x86/apple-gmux.c 	if (gmux_data->iolen < GMUX_MIN_IO_LEN) {
gmux_data         632 drivers/platform/x86/apple-gmux.c 		       gmux_data->iolen, GMUX_MIN_IO_LEN);
gmux_data         636 drivers/platform/x86/apple-gmux.c 	if (!request_region(gmux_data->iostart, gmux_data->iolen,
gmux_data         648 drivers/platform/x86/apple-gmux.c 	ver_major = gmux_read8(gmux_data, GMUX_PORT_VERSION_MAJOR);
gmux_data         649 drivers/platform/x86/apple-gmux.c 	ver_minor = gmux_read8(gmux_data, GMUX_PORT_VERSION_MINOR);
gmux_data         650 drivers/platform/x86/apple-gmux.c 	ver_release = gmux_read8(gmux_data, GMUX_PORT_VERSION_RELEASE);
gmux_data         652 drivers/platform/x86/apple-gmux.c 		if (gmux_is_indexed(gmux_data)) {
gmux_data         654 drivers/platform/x86/apple-gmux.c 			mutex_init(&gmux_data->index_lock);
gmux_data         655 drivers/platform/x86/apple-gmux.c 			gmux_data->indexed = true;
gmux_data         656 drivers/platform/x86/apple-gmux.c 			version = gmux_read32(gmux_data,
gmux_data         668 drivers/platform/x86/apple-gmux.c 		ver_release, (gmux_data->indexed ? "indexed" : "classic"));
gmux_data         672 drivers/platform/x86/apple-gmux.c 	props.max_brightness = gmux_read32(gmux_data, GMUX_PORT_MAX_BRIGHTNESS);
gmux_data         684 drivers/platform/x86/apple-gmux.c 					 gmux_data, &gmux_bl_ops, &props);
gmux_data         690 drivers/platform/x86/apple-gmux.c 	gmux_data->bdev = bdev;
gmux_data         703 drivers/platform/x86/apple-gmux.c 	gmux_data->power_state = VGA_SWITCHEROO_ON;
gmux_data         705 drivers/platform/x86/apple-gmux.c 	gmux_data->dhandle = ACPI_HANDLE(&pnp->dev);
gmux_data         706 drivers/platform/x86/apple-gmux.c 	if (!gmux_data->dhandle) {
gmux_data         713 drivers/platform/x86/apple-gmux.c 	status = acpi_evaluate_integer(gmux_data->dhandle, "GMGP", NULL, &gpe);
gmux_data         715 drivers/platform/x86/apple-gmux.c 		gmux_data->gpe = (int)gpe;
gmux_data         717 drivers/platform/x86/apple-gmux.c 		status = acpi_install_notify_handler(gmux_data->dhandle,
gmux_data         727 drivers/platform/x86/apple-gmux.c 		status = acpi_enable_gpe(NULL, gmux_data->gpe);
gmux_data         735 drivers/platform/x86/apple-gmux.c 		gmux_data->gpe = -1;
gmux_data         742 drivers/platform/x86/apple-gmux.c 	gmux_data->external_switchable =
gmux_data         744 drivers/platform/x86/apple-gmux.c 	if (!gmux_data->external_switchable)
gmux_data         745 drivers/platform/x86/apple-gmux.c 		gmux_write8(gmux_data, GMUX_PORT_SWITCH_EXTERNAL, 3);
gmux_data         747 drivers/platform/x86/apple-gmux.c 	apple_gmux_data = gmux_data;
gmux_data         748 drivers/platform/x86/apple-gmux.c 	init_completion(&gmux_data->powerchange_done);
gmux_data         749 drivers/platform/x86/apple-gmux.c 	gmux_enable_interrupts(gmux_data);
gmux_data         750 drivers/platform/x86/apple-gmux.c 	gmux_read_switch_state(gmux_data);
gmux_data         759 drivers/platform/x86/apple-gmux.c 	if (gmux_data->indexed)
gmux_data         773 drivers/platform/x86/apple-gmux.c 	gmux_disable_interrupts(gmux_data);
gmux_data         775 drivers/platform/x86/apple-gmux.c 	if (gmux_data->gpe >= 0)
gmux_data         776 drivers/platform/x86/apple-gmux.c 		acpi_disable_gpe(NULL, gmux_data->gpe);
gmux_data         778 drivers/platform/x86/apple-gmux.c 	if (gmux_data->gpe >= 0)
gmux_data         779 drivers/platform/x86/apple-gmux.c 		acpi_remove_notify_handler(gmux_data->dhandle,
gmux_data         785 drivers/platform/x86/apple-gmux.c 	release_region(gmux_data->iostart, gmux_data->iolen);
gmux_data         787 drivers/platform/x86/apple-gmux.c 	kfree(gmux_data);
gmux_data         793 drivers/platform/x86/apple-gmux.c 	struct apple_gmux_data *gmux_data = pnp_get_drvdata(pnp);
gmux_data         796 drivers/platform/x86/apple-gmux.c 	gmux_disable_interrupts(gmux_data);
gmux_data         797 drivers/platform/x86/apple-gmux.c 	if (gmux_data->gpe >= 0) {
gmux_data         798 drivers/platform/x86/apple-gmux.c 		acpi_disable_gpe(NULL, gmux_data->gpe);
gmux_data         799 drivers/platform/x86/apple-gmux.c 		acpi_remove_notify_handler(gmux_data->dhandle,
gmux_data         804 drivers/platform/x86/apple-gmux.c 	backlight_device_unregister(gmux_data->bdev);
gmux_data         806 drivers/platform/x86/apple-gmux.c 	release_region(gmux_data->iostart, gmux_data->iolen);
gmux_data         808 drivers/platform/x86/apple-gmux.c 	kfree(gmux_data);