* 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).