linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
@ 2009-03-11  2:45 Zhang Rui
  2009-03-11  2:46 ` Matthew Garrett
  0 siblings, 1 reply; 10+ messages in thread
From: Zhang Rui @ 2009-03-11  2:45 UTC (permalink / raw)
  To: Mattia Dongili
  Cc: Len Brown, Matthew Garrett, Zhang, Rui, Wang, Zhenyu Z,
	linux-acpi

Hi, Matthia,

we encounter a couple of bugs about the Garbled screen after X started.
http://bugs.freedesktop.org/show_bug.cgi?id=17508

The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
And it seems that there are some works already done for this issue.
http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058

My question is that do we have any plans to ship these fixes upstream?

thanks,
rui




^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11  2:45 The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia) Zhang Rui
@ 2009-03-11  2:46 ` Matthew Garrett
  2009-03-11  7:29   ` Zhang Rui
  0 siblings, 1 reply; 10+ messages in thread
From: Matthew Garrett @ 2009-03-11  2:46 UTC (permalink / raw)
  To: Zhang Rui; +Cc: Mattia Dongili, Len Brown, Wang, Zhenyu Z, linux-acpi

On Wed, Mar 11, 2009 at 10:45:27AM +0800, Zhang Rui wrote:

> The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
> And it seems that there are some works already done for this issue.
> http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058

This method is specific to Sony. What would be most helpful here would 
be for Intel to tell us how this is actually meant to work. 

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11  2:46 ` Matthew Garrett
@ 2009-03-11  7:29   ` Zhang Rui
  2009-03-11  7:30     ` Zhang Rui
  2009-03-11 13:08     ` Mattia Dongili
  0 siblings, 2 replies; 10+ messages in thread
From: Zhang Rui @ 2009-03-11  7:29 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: Mattia Dongili, Len Brown, Wang, Zhenyu Z, linux-acpi

On Wed, 2009-03-11 at 10:46 +0800, Matthew Garrett wrote:
> On Wed, Mar 11, 2009 at 10:45:27AM +0800, Zhang Rui wrote:
> 
> > The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
> > And it seems that there are some works already done for this issue.
> > http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058
> 
> This method is specific to Sony. What would be most helpful here would 
> be for Intel to tell us how this is actually meant to work. 
> 
Well, the change in sony-laptop driver is a new feature rather than a
bug fix.
the new sony-laptop driver introduces a new sysfs I/F:
/sys/devices/platform/sony-laptop/speed_stamina
and users can echo {speed, stamina} to this file to switch between
Intel and Nvidia graphics card.

And the bug above happens to depend on this new feature, i.e. it needs
to disable/enable/disable the Nvidia card to get a working X.
please refer to https://bugs.freedesktop.org/show_bug.cgi?id=17508
comment #93.
About the reason why it helps in this issue, I don't know.
As this(disabling one graphics card) is usually done by BIOS, I guess it
may be the BIOS that doesn't disable Nvidia card cleanly.

thanks,
rui



^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11  7:29   ` Zhang Rui
@ 2009-03-11  7:30     ` Zhang Rui
  2009-03-11 12:47       ` Matthew Garrett
  2009-03-11 13:08     ` Mattia Dongili
  1 sibling, 1 reply; 10+ messages in thread
From: Zhang Rui @ 2009-03-11  7:30 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: Mattia Dongili, Len Brown, Wang, Zhenyu Z, linux-acpi

Anyway, switching between the two graphics cards is a good feature for
users, isn't it?

thanks,
rui

On Wed, 2009-03-11 at 15:29 +0800, Zhang Rui wrote:
> On Wed, 2009-03-11 at 10:46 +0800, Matthew Garrett wrote:
> > On Wed, Mar 11, 2009 at 10:45:27AM +0800, Zhang Rui wrote:
> > 
> > > The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
> > > And it seems that there are some works already done for this issue.
> > > http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058
> > 
> > This method is specific to Sony. What would be most helpful here would 
> > be for Intel to tell us how this is actually meant to work. 
> > 
> Well, the change in sony-laptop driver is a new feature rather than a
> bug fix.
> the new sony-laptop driver introduces a new sysfs I/F:
> /sys/devices/platform/sony-laptop/speed_stamina
> and users can echo {speed, stamina} to this file to switch between
> Intel and Nvidia graphics card.
> 
> And the bug above happens to depend on this new feature, i.e. it needs
> to disable/enable/disable the Nvidia card to get a working X.
> please refer to https://bugs.freedesktop.org/show_bug.cgi?id=17508
> comment #93.
> About the reason why it helps in this issue, I don't know.
> As this(disabling one graphics card) is usually done by BIOS, I guess it
> may be the BIOS that doesn't disable Nvidia card cleanly.
> 
> thanks,
> rui
> 


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11  7:30     ` Zhang Rui
@ 2009-03-11 12:47       ` Matthew Garrett
  0 siblings, 0 replies; 10+ messages in thread
From: Matthew Garrett @ 2009-03-11 12:47 UTC (permalink / raw)
  To: Zhang Rui; +Cc: Mattia Dongili, Len Brown, Wang, Zhenyu Z, linux-acpi

On Wed, Mar 11, 2009 at 03:30:25PM +0800, Zhang Rui wrote:
> Anyway, switching between the two graphics cards is a good feature for
> users, isn't it?

Yes, but the same functionality is present on other machines which don't 
have the _DSM method that the Sonys have. Intel haven't provided any 
information about how this is supposed to work, despite the handover 
being a feature of the GM45 chipset.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11  7:29   ` Zhang Rui
  2009-03-11  7:30     ` Zhang Rui
@ 2009-03-11 13:08     ` Mattia Dongili
  2009-03-16  5:46       ` Zhang Rui
  2009-03-16 10:24       ` Matthew Garrett
  1 sibling, 2 replies; 10+ messages in thread
From: Mattia Dongili @ 2009-03-11 13:08 UTC (permalink / raw)
  To: Zhang Rui; +Cc: Matthew Garrett, Len Brown, Wang, Zhenyu Z, linux-acpi

On Wed, Mar 11, 2009 at 03:29:10PM +0800, Zhang Rui wrote:
> On Wed, 2009-03-11 at 10:46 +0800, Matthew Garrett wrote:
> > On Wed, Mar 11, 2009 at 10:45:27AM +0800, Zhang Rui wrote:
> > 
> > > The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
> > > And it seems that there are some works already done for this issue.
> > > http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058
> > 
> > This method is specific to Sony. What would be most helpful here would 
> > be for Intel to tell us how this is actually meant to work. 
> > 
> Well, the change in sony-laptop driver is a new feature rather than a
> bug fix.
> the new sony-laptop driver introduces a new sysfs I/F:
> /sys/devices/platform/sony-laptop/speed_stamina
> and users can echo {speed, stamina} to this file to switch between
> Intel and Nvidia graphics card.

and see their Xorg miserably die. ;)

Jokes aside, I have no big problem incorporating the differences in the
driver, just that:
- I can't test it
- some models have different magic numbers for the _DSM invocation, from
  the DSDT I have available:
	DSDT.sz.xxx.dsl (some uknown model)
	DSDT.sz61mn-forXP.dsl
	DSDT.tt11lnb.dsl
	DSDT.z11vn.dsl
	DSDT.z90s.dsl
	VGN-SZ4XWNC-R0111N0.dsl
  and for what I can see, z and tt have the same magic numbers while the
  sz has different ones. So the code that calls _DSM will need to have
  some DMI switch to make sure we are calling it with the right
  parameters (for now supporting z and tt might be enough)

I'll see what I can do (I accept patches in case someone feels like
doing it)
-- 
mattia
:wq!

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11 13:08     ` Mattia Dongili
@ 2009-03-16  5:46       ` Zhang Rui
  2009-03-16 10:24       ` Matthew Garrett
  1 sibling, 0 replies; 10+ messages in thread
From: Zhang Rui @ 2009-03-16  5:46 UTC (permalink / raw)
  To: Mattia Dongili; +Cc: Matthew Garrett, Len Brown, Wang, Zhenyu Z, linux-acpi

[-- Attachment #1: Type: text/plain, Size: 2072 bytes --]

On Wed, 2009-03-11 at 21:08 +0800, Mattia Dongili wrote:
> On Wed, Mar 11, 2009 at 03:29:10PM +0800, Zhang Rui wrote:
> > On Wed, 2009-03-11 at 10:46 +0800, Matthew Garrett wrote:
> > > On Wed, Mar 11, 2009 at 10:45:27AM +0800, Zhang Rui wrote:
> > > 
> > > > The problem can be fixed by disabling Nvidia card via ACPI _DSM method.
> > > > And it seems that there are some works already done for this issue.
> > > > http://archive.netbsd.se/?ml=xorg&a=2009-02&t=9908058
> > > 
> > > This method is specific to Sony. What would be most helpful here would 
> > > be for Intel to tell us how this is actually meant to work. 
> > > 
> > Well, the change in sony-laptop driver is a new feature rather than a
> > bug fix.
> > the new sony-laptop driver introduces a new sysfs I/F:
> > /sys/devices/platform/sony-laptop/speed_stamina
> > and users can echo {speed, stamina} to this file to switch between
> > Intel and Nvidia graphics card.
> 
> and see their Xorg miserably die. ;)
> 
> Jokes aside, I have no big problem incorporating the differences in the
> driver, just that:
> - I can't test it
> - some models have different magic numbers for the _DSM invocation, from
>   the DSDT I have available:
> 	DSDT.sz.xxx.dsl (some uknown model)
> 	DSDT.sz61mn-forXP.dsl
> 	DSDT.tt11lnb.dsl
> 	DSDT.z11vn.dsl
> 	DSDT.z90s.dsl
> 	VGN-SZ4XWNC-R0111N0.dsl
>   and for what I can see, z and tt have the same magic numbers while the
>   sz has different ones. So the code that calls _DSM will need to have
>   some DMI switch to make sure we are calling it with the right
>   parameters (for now supporting z and tt might be enough)
> 
> I'll see what I can do (I accept patches in case someone feels like
> doing it)
I made a diff between the sony-laptop-zseries driver v0.5 and the
upstream kernel sony-laptop driver, it seems that we don't need to
change the current code a lot, only some code to play with _DSM method
is needed. the diff file is attached.

the sony-laptop-zseries driver can be found at
http://www.basyskom.org/~eva/log_installation_vaio_z21vnx.html

thanks,
rui

[-- Attachment #2: diff-sony-laptop --]
[-- Type: text/x-patch, Size: 8890 bytes --]

--- drivers/platform/x86/sony-laptop.c	2009-01-12 09:40:55.000000000 +0800
+++ sony-laptop-zseries-0.5/sony-laptop.c	2009-02-15 18:56:26.000000000 +0800
@@ -3,6 +3,7 @@
  *
  * Copyright (C) 2004-2005 Stelian Pop <stelian@popies.net>
  * Copyright (C) 2007 Mattia Dongili <malattia@linux.it>
+ * Copyright (C) 2009 Matthias Welwarsky <matze@welwarsky.de>
  *
  * Parts of this driver inspired from asus_acpi.c and ibm_acpi.c
  * which are copyrighted by their respective authors.
@@ -84,6 +85,8 @@
 #define SONY_PIC_HID		"SNY6001"
 #define SONY_PIC_DRIVER_NAME	"Sony Programmable IO Control Driver"
 
+#define SONY_WMMX_GUID "F6CB5C3C-9CAE-4EBD-B577-931EA32A2CC0"
+
 MODULE_AUTHOR("Stelian Pop, Mattia Dongili");
 MODULE_DESCRIPTION("Sony laptop extras driver (SPIC and SNC ACPI device)");
 MODULE_LICENSE("GPL");
@@ -115,6 +118,11 @@ MODULE_PARM_DESC(camera,
 		 "set this to 1 to enable Motion Eye camera controls "
 		 "(only use it if you have a C1VE or C1VN model)");
 
+static int speed_stamina;
+module_param(speed_stamina, int, 0444);
+MODULE_PARM_DESC(speed_stamina,
+		"Set this to 1 to enable SPEED mode on module load (EXPERIMENTAL)");
+
 #ifdef CONFIG_SONYPI_COMPAT
 static int minor = -1;
 module_param(minor, int, 0);
@@ -475,9 +483,158 @@ static void sony_laptop_remove_input(voi
 }
 
 /*********** Platform Device ***********/
+static int sony_ovga_dsm(int func, int arg)
+{
+	static const char *path = "\\_SB.PCI0.OVGA._DSM";
+	static const char muid[] = {
+		/*00*/	0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D,		/* MUID */
+		/*08*/	0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4,
+	};
+
+	struct acpi_buffer output = { ACPI_ALLOCATE_BUFFER, NULL };
+	struct acpi_object_list input;
+	union acpi_object params[4];
+	union acpi_object *obj;
+	int result;
+
+	input.count = 4;
+	input.pointer = params;
+	params[0].type = ACPI_TYPE_BUFFER;
+	params[0].buffer.length = sizeof(muid);
+	params[0].buffer.pointer = muid;
+	params[1].type = ACPI_TYPE_INTEGER;
+	params[1].integer.value = 0x00000102;
+	params[2].type = ACPI_TYPE_INTEGER;
+	params[2].integer.value = func;
+	params[3].type = ACPI_TYPE_INTEGER;
+	params[3].integer.value = arg;
+
+	result = acpi_evaluate_object(NULL, path, &input, &output);
+	if (result) {
+		printk("%s failed: %d\n", path, result);
+		return -1;
+	}
+
+	obj = (union acpi_object*)output.pointer;
+	printk("result type %d\n", obj->type);
+	if (obj->type == ACPI_TYPE_PACKAGE) {
+		int i;
+		printk("returned package sized %d\n", obj->package.count);
+		for (i = 0; i < obj->package.count; i++)
+			printk("%d %08x\n", i, obj->package.elements[i].integer.value);
+	} else
+	if (obj->type == ACPI_TYPE_INTEGER) {
+		printk("returned integer %08X\n", obj->integer.value);
+	} else
+	if (obj->type == ACPI_TYPE_BUFFER) {
+		int i;
+		printk("returned buffer sized %d\n", obj->buffer.length);
+		for (i = 0; i < obj->buffer.length; i++)
+			printk("%d %02x\n", i, obj->buffer.pointer[i]);
+	}
+	kfree(output.pointer);
+
+	return 0;
+}
+
+static int sony_led_stamina(void)
+{
+	return sony_ovga_dsm(2, 0x11);
+}
+
+static int sony_led_speed(void)
+{
+	return sony_ovga_dsm(2, 0x12);
+}
+
+static int sony_led_off(void)
+{
+	return sony_ovga_dsm(2, 0x13);
+}
+
+static int sony_dgpu_sta(void)
+{
+	return sony_ovga_dsm(3, 0x00);
+}
+
+static int sony_dgpu_off(void)
+{
+	return sony_ovga_dsm(3, 0x02);
+}
+
+static int sony_dgpu_on(void)
+{
+	return sony_ovga_dsm(3, 0x01);
+}
+
+static ssize_t sony_pf_store_speed_stamina(struct device *dev,
+			       struct device_attribute *attr,
+			       const char *buffer, size_t count)
+{
+	if (!strncmp(buffer, "speed", strlen("speed"))) {
+		sony_dgpu_on();
+		sony_led_speed();
+		speed_stamina = 1;
+	} else
+	if (!strncmp(buffer, "stamina", strlen("stamina"))) {
+		sony_dgpu_off();
+		sony_led_stamina();
+		speed_stamina = 0;
+	} else
+		return -EINVAL;
+
+	return count;
+}
+
+static ssize_t sony_pf_show_speed_stamina(struct device *dev,
+		struct device_attribute *attr, char *buffer)
+{
+	return snprintf(buffer, PAGE_SIZE, "%s\n", speed_stamina ? "speed":"stamina");
+}
+
+static struct device_attribute sony_pf_speed_stamina_attr =
+	__ATTR(speed_stamina, S_IWUSR|S_IRUGO,
+		sony_pf_show_speed_stamina, sony_pf_store_speed_stamina);
+
+static int sony_pf_probe(struct platform_device *pdev)
+{
+	int result;
+
+	result = device_create_file(&pdev->dev, &sony_pf_speed_stamina_attr);
+	if (result)
+		printk(KERN_DEBUG "sony_pf_probe: failed to add speed/stamina switch\n");
+
+	/* initialize default, look at module param speed_stamina */
+	if (speed_stamina == 1) {
+		sony_dgpu_on();
+		sony_led_speed();
+	} else {
+		sony_dgpu_off();
+		sony_led_stamina();
+	}
+
+	return 0;
+}
+
+static int sony_pf_resume(struct platform_device *pdev)
+{
+	/* on resume, restore previous state */
+	if (speed_stamina == 1) {
+		sony_dgpu_on();
+		sony_led_speed();
+	} else {
+		sony_dgpu_off();
+		sony_led_stamina();
+	}
+	return 0;
+}
 
 static atomic_t sony_pf_users = ATOMIC_INIT(0);
 static struct platform_driver sony_pf_driver = {
+	.probe  = sony_pf_probe,
+#ifdef CONFIG_PM
+	.resume_early = sony_pf_resume,
+#endif
 	.driver = {
 		   .name = "sony-laptop",
 		   .owner = THIS_MODULE,
@@ -775,6 +932,36 @@ static ssize_t sony_nc_sysfs_store(struc
 	return count;
 }
 
+/* WWAN power */
+static ssize_t sony_wwanpower_show(struct device *dev, struct device_attribute *attr,
+			      char *buffer)
+{
+	return 0;
+}
+
+static ssize_t sony_wwanpower_store(struct device *dev,
+			       struct device_attribute *attr,
+			       const char *buffer, size_t count)
+{
+	int value;
+
+	value = strtoul(buffer, NULL, 10);
+	if ( (value < 0) || (value > 1) )
+		return -EINVAL;
+
+	if (value) {
+		if (acpi_callsetfunc(sony_nc_acpi_handle, "SN07", 0x9f070803, NULL) < 0)
+			return -EIO;
+	} else {
+		if (acpi_callsetfunc(sony_nc_acpi_handle, "SN07", 0x00000803, NULL) < 0)
+			return -EIO;
+	}
+
+	return count;
+}
+
+static struct device_attribute wwanpower_attr =
+	__ATTR(snc_wwanpower, S_IRUGO|S_IWUSR, sony_wwanpower_show, sony_wwanpower_store);
 
 /*
  * Backlight device
@@ -889,6 +1076,15 @@ static const struct dmi_system_id sony_n
 				DMI_MATCH(DMI_PRODUCT_NAME, "VGN-N"),
 			},
 		},
+		{
+			.ident = "Sony Vaio Z Series",
+			.callback = sony_nc_C_enable,
+			.driver_data = sony_C_events,
+			.matches = {
+				DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
+				DMI_MATCH(DMI_PRODUCT_NAME, "VGN-Z"),
+			},
+		},
 		{ }
 };
 
@@ -935,17 +1131,14 @@ static void sony_acpi_notify(acpi_handle
 static acpi_status sony_walk_callback(acpi_handle handle, u32 level,
 				      void *context, void **return_value)
 {
-	struct acpi_device_info *info;
-	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
+	struct acpi_namespace_node *node;
+	union acpi_operand_object *operand;
 
-	if (ACPI_SUCCESS(acpi_get_object_info(handle, &buffer))) {
-		info = buffer.pointer;
+	node = (struct acpi_namespace_node *)handle;
+	operand = (union acpi_operand_object *)node->object;
 
-		printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n",
-			(char *)&info->name, info->param_count);
-
-		kfree(buffer.pointer);
-	}
+	printk(KERN_WARNING DRV_PFX "method: name: %4.4s, args %X\n", node->name.ascii,
+	       (u32) operand->method.param_count);
 
 	return AE_OK;
 }
@@ -973,7 +1166,7 @@ static int sony_nc_resume(struct acpi_de
 	/* set the last requested brightness level */
 	if (sony_backlight_device &&
 			!sony_backlight_update_status(sony_backlight_device))
-		printk(KERN_WARNING DRV_PFX "unable to restore brightness level\n");
+		printk(KERN_WARNING DRV_PFX "unable to restore brightness level");
 
 	/* re-initialize models with specific requirements */
 	dmi_check_system(sony_nc_ids);
@@ -1023,6 +1216,11 @@ static int sony_nc_add(struct acpi_devic
 						NULL, NULL)))
 			dprintk("_INI Method failed\n");
 	}
+#if 0
+	/* try to _INI the ECON variable */
+	if (acpi_callsetfunc(sony_nc_acpi_handle, "ECON", 1, &result))
+			dprintk("ECON Method failed\n");
+#endif
 
 	/* setup input devices and helper fifo */
 	result = sony_laptop_setup_input(device);
@@ -1042,7 +1240,7 @@ static int sony_nc_add(struct acpi_devic
 	}
 
 	if (acpi_video_backlight_support()) {
-		printk(KERN_INFO DRV_PFX "brightness ignored, must be "
+		printk(KERN_INFO DRV_PFX "Sony: Brightness ignored, must be "
 		       "controlled by ACPI video driver\n");
 	} else if (ACPI_SUCCESS(acpi_get_handle(sony_nc_acpi_handle, "GBRT",
 						&handle))) {
@@ -1109,6 +1307,10 @@ static int sony_nc_add(struct acpi_devic
 		}
 	}
 
+	result = device_create_file(&sony_pf_device->dev, &wwanpower_attr);
+	if (result)
+		goto out_sysfs;
+
 	return 0;
 
       out_sysfs:
@@ -1927,6 +2129,7 @@ static int sonypi_misc_fasync(int fd, st
 
 static int sonypi_misc_release(struct inode *inode, struct file *file)
 {
+	sonypi_misc_fasync(-1, file, 0);
 	atomic_dec(&sonypi_compat.open_count);
 	return 0;
 }

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-11 13:08     ` Mattia Dongili
  2009-03-16  5:46       ` Zhang Rui
@ 2009-03-16 10:24       ` Matthew Garrett
  2009-03-16 11:28         ` Mattia Dongili
  1 sibling, 1 reply; 10+ messages in thread
From: Matthew Garrett @ 2009-03-16 10:24 UTC (permalink / raw)
  To: Mattia Dongili; +Cc: Zhang Rui, Len Brown, Wang, Zhenyu Z, linux-acpi

On Wed, Mar 11, 2009 at 10:08:47PM +0900, Mattia Dongili wrote:

> - some models have different magic numbers for the _DSM invocation, from
>   the DSDT I have available:
> 	DSDT.sz.xxx.dsl (some uknown model)
> 	DSDT.sz61mn-forXP.dsl
> 	DSDT.tt11lnb.dsl
> 	DSDT.z11vn.dsl
> 	DSDT.z90s.dsl
> 	VGN-SZ4XWNC-R0111N0.dsl
>   and for what I can see, z and tt have the same magic numbers while the
>   sz has different ones. So the code that calls _DSM will need to have
>   some DMI switch to make sure we are calling it with the right
>   parameters (for now supporting z and tt might be enough)

_DSM is "Device Specific Method". The magic numbers it requires are 
interface descriptions. How many of these machines have nvidia-based 
dual GPU architectures? Are the _DSM methods always attached to the 
nvidia device?

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-16 10:24       ` Matthew Garrett
@ 2009-03-16 11:28         ` Mattia Dongili
  2009-03-16 11:33           ` Matthew Garrett
  0 siblings, 1 reply; 10+ messages in thread
From: Mattia Dongili @ 2009-03-16 11:28 UTC (permalink / raw)
  To: Matthew Garrett; +Cc: Zhang Rui, Len Brown, Wang, Zhenyu Z, linux-acpi

On Mon, Mar 16, 2009 at 10:24:23AM +0000, Matthew Garrett wrote:
> On Wed, Mar 11, 2009 at 10:08:47PM +0900, Mattia Dongili wrote:
> 
> > - some models have different magic numbers for the _DSM invocation, from
> >   the DSDT I have available:
> > 	DSDT.sz.xxx.dsl (some uknown model)
> > 	DSDT.sz61mn-forXP.dsl
> > 	DSDT.tt11lnb.dsl
> > 	DSDT.z11vn.dsl
> > 	DSDT.z90s.dsl
> > 	VGN-SZ4XWNC-R0111N0.dsl
> >   and for what I can see, z and tt have the same magic numbers while the
> >   sz has different ones. So the code that calls _DSM will need to have
> >   some DMI switch to make sure we are calling it with the right
> >   parameters (for now supporting z and tt might be enough)
> 
> _DSM is "Device Specific Method". The magic numbers it requires are 
> interface descriptions. How many of these machines have nvidia-based 
> dual GPU architectures?

SZ and Z have dual GPUs (Intel onboard + NVidia), TT doesn't.

>                         Are the _DSM methods always attached to the 
> nvidia device?

As far as I can see the Z is the only one having it attached to the
nvidia device.
You can have a look at the DSDTs here:
http://www.kamineko.org/dsdt-vaio/

-- 
mattia
:wq!

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia)
  2009-03-16 11:28         ` Mattia Dongili
@ 2009-03-16 11:33           ` Matthew Garrett
  0 siblings, 0 replies; 10+ messages in thread
From: Matthew Garrett @ 2009-03-16 11:33 UTC (permalink / raw)
  To: Mattia Dongili; +Cc: Zhang Rui, Len Brown, Wang, Zhenyu Z, linux-acpi

On Mon, Mar 16, 2009 at 08:28:51PM +0900, Mattia Dongili wrote:
> On Mon, Mar 16, 2009 at 10:24:23AM +0000, Matthew Garrett wrote:
> > _DSM is "Device Specific Method". The magic numbers it requires are 
> > interface descriptions. How many of these machines have nvidia-based 
> > dual GPU architectures?
> 
> SZ and Z have dual GPUs (Intel onboard + NVidia), TT doesn't.

There's been two generations of dual GPU machines - ones that support 
runtime switching (whih I think is limited to the Z?) and ones that 
don't (the early SZs at least, probably all of them). The _DSM stuff 
we're interested in is for the runtime switching.

> >                         Are the _DSM methods always attached to the 
> > nvidia device?
> 
> As far as I can see the Z is the only one having it attached to the
> nvidia device.

In that case I think we're fine only worrying about that case. The 
interesting thing now is in whether this is Sony-specific or whether the 
same method is specified for other systems switching between the nvidia 
chipsets.

-- 
Matthew Garrett | mjg59@srcf.ucam.org

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2009-03-16 11:33 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-03-11  2:45 The Garbled screen issue on Sony laptops with two graphics (Intel and Nvidia) Zhang Rui
2009-03-11  2:46 ` Matthew Garrett
2009-03-11  7:29   ` Zhang Rui
2009-03-11  7:30     ` Zhang Rui
2009-03-11 12:47       ` Matthew Garrett
2009-03-11 13:08     ` Mattia Dongili
2009-03-16  5:46       ` Zhang Rui
2009-03-16 10:24       ` Matthew Garrett
2009-03-16 11:28         ` Mattia Dongili
2009-03-16 11:33           ` Matthew Garrett

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).