Hello community, here is the log from the commit of package hwinfo checked in at Thu Oct 12 15:08:18 CEST 2006. -------- --- hwinfo/hwinfo.changes 2006-09-27 16:49:56.000000000 +0200 +++ /mounts/work_src_done/STABLE/hwinfo/hwinfo.changes 2006-10-11 15:37:43.000000000 +0200 @@ -1,0 +2,12 @@ +Wed Oct 11 15:37:37 CEST 2006 - snwint@suse.de + +- added magic for pata_* modules (libata based ide modules) + +------------------------------------------------------------------- +Tue Oct 10 12:29:40 CEST 2006 - snwint@suse.de + +- scan 3 ports on all notebooks with nvidia cards for monitor data +- print detailed monitor timings +- report driver module name + +------------------------------------------------------------------- Old: ---- hwinfo-13.5.tar.bz2 New: ---- hwinfo-13.7.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ hwinfo.spec ++++++ --- /var/tmp/diff_new_pack.MeLYzk/_old 2006-10-12 15:08:03.000000000 +0200 +++ /var/tmp/diff_new_pack.MeLYzk/_new 2006-10-12 15:08:03.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package hwinfo (Version 13.5) +# spec file for package hwinfo (Version 13.7) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -20,9 +20,9 @@ PreReq: /sbin/ldconfig %insserv_prereq %fillup_prereq Autoreqprov: on Summary: Hardware Library -Version: 13.5 +Version: 13.7 Release: 1 -Source: hwinfo-13.5.tar.bz2 +Source: hwinfo-13.7.tar.bz2 BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -89,6 +89,12 @@ %doc doc/libhd/html %changelog -n hwinfo +* Wed Oct 11 2006 - snwint@suse.de +- added magic for pata_* modules (libata based ide modules) +* Tue Oct 10 2006 - snwint@suse.de +- scan 3 ports on all notebooks with nvidia cards for monitor data +- print detailed monitor timings +- report driver module name * Wed Sep 27 2006 - snwint@suse.de - revert TIOCGDEV removal accidentally introduced in v13.0 (#201741) - remove adb code (#206648) ++++++ hwinfo-13.5.tar.bz2 -> hwinfo-13.7.tar.bz2 ++++++ diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/Changelog new/hwinfo-13.7/Changelog --- old/hwinfo-13.5/Changelog 2006-09-27 14:38:15.000000000 +0200 +++ new/hwinfo-13.7/Changelog 2006-10-11 15:34:49.000000000 +0200 @@ -1,3 +1,11 @@ +11/10/2006: v13.7 + - added magic for pata_* modules (libata based ide modules) + +10/10/2006: v13.6 + - scan 3 ports on all notebooks with nvidia cards for monitor data + - print detailed monitor timings + - report driver module name + 27/9/2006: v13.5 - revert TIOCGDEV removal accidentally introduced in v13.0 (#201741) - remove adb code (#206648) diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/VERSION new/hwinfo-13.7/VERSION --- old/hwinfo-13.5/VERSION 2006-09-21 17:06:32.000000000 +0200 +++ new/hwinfo-13.7/VERSION 2006-10-11 15:33:44.000000000 +0200 @@ -1 +1 @@ -13.5 +13.7 diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/bios.c new/hwinfo-13.7/src/hd/bios.c --- old/hwinfo-13.5/src/hd/bios.c 2006-09-27 16:48:55.000000000 +0200 +++ new/hwinfo-13.7/src/hd/bios.c 2006-10-11 15:22:57.000000000 +0200 @@ -156,8 +156,6 @@ vbe_mode_info_t *mi; hd_res_t *res; str_list_t *sl, *sl0; - hd_smbios_t *sm; - unsigned is_dell_nb; #endif if(!hd_probe_feature(hd_data, pr_bios)) return; @@ -432,34 +430,6 @@ } } - /* scan only 2 ports for monitor data, some BIOSes crash when you try more */ - vbe->ddc_ports = 2; - - is_dell_nb = 0; - - for(sm = hd_data->smbios; sm; sm = sm->next) { - if( - sm->any.type == sm_sysinfo && - sm->sysinfo.manuf && - !strncasecmp(sm->sysinfo.manuf, "dell ", 5) - ) { - is_dell_nb |= 1; - } - - if( - sm->any.type == sm_chassis && - ( - (sm->chassis.ch_type.id >= 8 && sm->chassis.ch_type.id <= 11) || - sm->chassis.ch_type.id == 14 - ) - ) { - is_dell_nb |= 2; - } - } - - /* for Dell notebooks, go for 3 */ - if(is_dell_nb == 3) vbe->ddc_ports = 3; - get_vbe_info(hd_data, vbe); if(vbe->ok) { @@ -559,7 +529,7 @@ if(hd_probe_feature(hd_data, pr_bios_acpi)) { PROGRESS(6, 0, "acpi"); - if((sl0 = read_file("|/usr/sbin/acpidump", 0, 0))) { + if((sl0 = read_file("|/usr/sbin/acpidump 2>/dev/null", 0, 0))) { ADD2LOG("----- %s -----\n", "ACPI dump"); for(sl = sl0; sl; sl = sl->next) { ADD2LOG("%s", sl->str); diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/hd.c new/hwinfo-13.7/src/hd/hd.c --- old/hwinfo-13.5/src/hd/hd.c 2006-09-27 14:33:43.000000000 +0200 +++ new/hwinfo-13.7/src/hd/hd.c 2006-10-11 15:31:55.000000000 +0200 @@ -263,6 +263,10 @@ { pr_bios, 0, 8|4|2|1, "bios" }, { pr_bios_vesa, pr_bios, 4|2|1, "bios.vesa" }, { pr_bios_ddc, pr_bios_vesa, 0, "bios.ddc" }, + { pr_bios_ddc_ports_1, pr_bios_ddc, 0, "bios.ddc.ports=1" }, // probe 1 ddc port + { pr_bios_ddc_ports_2, pr_bios_ddc, 0, "bios.ddc.ports=2" }, // probe 2 ddc ports + { pr_bios_ddc_ports_3, pr_bios_ddc, 0, "bios.ddc.ports=3" }, // probe 3 ddc ports + { pr_bios_ddc_ports_4, pr_bios_ddc, 0, "bios.ddc.ports=4" }, // probe 4 ddc ports { pr_bios_fb, pr_bios_vesa, 0, "bios.fb" }, { pr_bios_mode, pr_bios_vesa, 0, "bios.mode" }, { pr_bios_vbe, pr_bios_mode, 0, "bios.vbe" }, // just an alias @@ -329,7 +333,8 @@ { pr_edd_mod, pr_edd, 8|4|2|1, "edd.mod" }, { pr_input, 0, 8|4|2|1, "input" }, { pr_wlan, 0, 8|4|2|1, "wlan" }, - { pr_hal, 0, 0, "hal" } + { pr_hal, 0, 0, "hal" }, + { pr_modules_pata, 0, 0, "modules.pata" } }; struct s_pr_flags *get_pr_flags(enum probe_feature feature) @@ -544,6 +549,7 @@ hd_set_probe_feature(hd_data, pr_prom); hd_set_probe_feature(hd_data, pr_pci); hd_set_probe_feature(hd_data, pr_bios_ddc); + hd_set_probe_feature(hd_data, pr_bios_fb); hd_set_probe_feature(hd_data, pr_fb); hd_set_probe_feature(hd_data, pr_monitor); break; @@ -1773,6 +1779,7 @@ if(!hd_probe_feature(hd_data, pr_bios_crc)) hd_data->flags.nobioscrc = 1; if(hd_probe_feature(hd_data, pr_bios_vram)) hd_data->flags.biosvram = 1; hd_set_probe_feature(hd_data, pr_bios_acpi); + if(hd_probe_feature(hd_data, pr_modules_pata)) hd_data->flags.pata = 1; } /* get shm segment, if we didn't do it already */ @@ -1849,8 +1856,20 @@ /* for compatibility */ for(hd = hd_data->hd; hd; hd = hd->next) { + hd_sysfsdrv_t *sf; + hd->driver = free_mem(hd->driver); - if(hd->drivers && hd->drivers->str) hd->driver = new_str(hd->drivers->str); + hd->driver_module = free_mem(hd->driver_module); + + if(hd->drivers && hd->drivers->str) { + hd->driver = new_str(hd->drivers->str); + + for(sf = hd_data->sysfsdrv; sf; sf = sf->next) { + if(sf->module && !strcmp(sf->driver, hd->driver)) { + hd->driver_module = new_str(sf->module); + } + } + } } hd_data->module = mod_none; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/hd.h new/hwinfo-13.7/src/hd/hd.h --- old/hwinfo-13.5/src/hd/hd.h 2006-09-27 14:23:23.000000000 +0200 +++ new/hwinfo-13.7/src/hd/hd.h 2006-10-11 15:35:10.000000000 +0200 @@ -117,7 +117,8 @@ pr_block, pr_block_cdrom, pr_block_part, pr_edd, pr_edd_mod, pr_bios_ddc, pr_bios_fb, pr_bios_mode, pr_input, pr_block_mods, pr_bios_vesa, pr_cpuemu_debug, pr_scsi_noserial, pr_wlan, pr_bios_crc, pr_hal, - pr_bios_vram, pr_bios_acpi, + pr_bios_vram, pr_bios_acpi, pr_bios_ddc_ports_1, pr_bios_ddc_ports_2, + pr_bios_ddc_ports_3, pr_bios_ddc_ports_4, pr_modules_pata, pr_max, pr_lxrc, pr_default, pr_all /**< pr_all must be last */ } hd_probe_feature_t; @@ -2391,6 +2392,11 @@ char *driver; /** + * Currently active driver module (if any). + */ + char *driver_module; + + /** * List of currently active drivers. */ str_list_t *drivers; @@ -2515,6 +2521,7 @@ unsigned nobioscrc:1; /**< internal: don't check VBIOS crc */ unsigned biosvram:1; /**< internal: map Video BIOS RAM (128k at 0xa0000) */ unsigned nowpa:1; /**< do not probe WPA capabilities */ + unsigned pata:1; /**< use new libata modules instead of classical ide modules */ } flags; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/hddb.c new/hwinfo-13.7/src/hd/hddb.c --- old/hwinfo-13.5/src/hd/hddb.c 2006-09-04 14:46:30.000000000 +0200 +++ new/hwinfo-13.7/src/hd/hddb.c 2006-10-11 15:31:04.000000000 +0200 @@ -253,7 +253,7 @@ /** * return prio, 0: no match */ -int match_modinfo(modinfo_t *db, modinfo_t *match) +int match_modinfo(hd_data_t *hd_data, modinfo_t *db, modinfo_t *match) { int prio = 0; char *s; @@ -264,7 +264,7 @@ case mi_pci: if(db->pci.has.base_class) { if(match->pci.has.base_class && db->pci.base_class == match->pci.base_class) { - prio = 1; + prio = 10; } else { prio = 0; @@ -273,7 +273,7 @@ } if(db->pci.has.sub_class) { if(match->pci.has.sub_class && db->pci.sub_class == match->pci.sub_class) { - prio = 1; + prio = 10; } else { prio = 0; @@ -282,7 +282,7 @@ } if(db->pci.has.prog_if) { if(match->pci.has.prog_if && db->pci.prog_if == match->pci.prog_if) { - prio = 1; + prio = 10; } else { prio = 0; @@ -291,7 +291,7 @@ } if(db->pci.has.vendor) { if(match->pci.has.vendor && db->pci.vendor == match->pci.vendor) { - prio = 2; + prio = 20; } else { prio = 0; @@ -300,7 +300,7 @@ } if(db->pci.has.device) { if(match->pci.has.device && db->pci.device == match->pci.device) { - prio = 3; + prio = 30; } else { prio = 0; @@ -309,7 +309,7 @@ } if(db->pci.has.sub_vendor) { if(match->pci.has.sub_vendor && db->pci.sub_vendor == match->pci.sub_vendor) { - prio = 4; + prio = 40; } else { prio = 0; @@ -318,13 +318,19 @@ } if(db->pci.has.sub_device) { if(match->pci.has.sub_device && db->pci.sub_device == match->pci.sub_device) { - prio = 5; + prio = 50; } else { prio = 0; break; } } + if(prio && db->module) { + if(!strncmp(db->module, "pata_", sizeof "pata_" - 1)) { + prio += hd_data->flags.pata ? 1 : -1; + } + if(!strcmp(db->module, "generic")) prio -= 2; + } break; case mi_other: @@ -410,7 +416,7 @@ } for(mod_list_len = 0; modinfo_db->type; modinfo_db++) { - if((prio = match_modinfo(modinfo_db, &match))) { + if((prio = match_modinfo(hd_data, modinfo_db, &match))) { for(di2 = drv_info; di2; di2 = di2->next) { if( di2->any.type == di_module && diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/hdp.c new/hwinfo-13.7/src/hd/hdp.c --- old/hwinfo-13.5/src/hd/hdp.c 2006-09-27 12:02:49.000000000 +0200 +++ new/hwinfo-13.7/src/hd/hdp.c 2006-10-10 12:27:15.000000000 +0200 @@ -352,24 +352,6 @@ } } -#if 0 - if( - h->base_class.id == bc_storage_device && - h->sub_class.id == sc_sdev_floppy && - h->detail && - h->detail->type == hd_detail_floppy - ) { - floppy_info_t *fi = h->detail->floppy.data; - - if(fi) { - dump_line_str("Drive status: floppy found\n"); - } - else { - dump_line_str("Drive status: no floppy found\n"); - } - } -#endif - ind -= 2; if(h->next) dump_line_str("\n"); @@ -389,6 +371,7 @@ driver_info_t *di; str_list_t *sl, *sl1, *sl2; isdn_parm_t *ip; + monitor_info_t *mi; static char *geo_type_str[] = { "Physical", "Logical", "BIOS EDD", "BIOS Legacy" }; if(h->model) dump_line("Model: \"%s\"\n", h->model); @@ -477,6 +460,10 @@ s = free_mem(s); } + if(hd_data->debug == -1u && h->driver_module) { + dump_line("Main Driver Module: \"%s\"\n", h->driver_module); + } + if(h->broken) { dump_line_str("Warning: might be broken\n"); } @@ -810,6 +797,35 @@ dump_line("Module Alias: \"%s\"\n", h->modalias); } + if( + h->detail && + h->detail->type == hd_detail_monitor && + (mi = h->detail->monitor.data) + ) { + if(mi->htotal && mi->vtotal) { + dump_line_str("Detailed Timings:\n"); + dump_line(" Resolution: %ux%u\n", mi->width, mi->height); + dump_line( + " Horizontal: %4u %4u %4u %4u (+%u +%u +%u) %chsync\n", + mi->hdisp, mi->hsyncstart, mi->hsyncend, mi->htotal, + mi->hsyncstart - mi->hdisp, mi->hsyncend - mi->hdisp, mi->htotal - mi->hdisp, + mi->hflag + ); + dump_line( + " Vertical: %4u %4u %4u %4u (+%u +%u +%u) %cvsync\n", + mi->vdisp, mi->vsyncstart, mi->vsyncend, mi->vtotal, + mi->vsyncstart - mi->vdisp, mi->vsyncend - mi->vdisp, mi->vtotal - mi->vdisp, + mi->vflag + ); + dump_line( + " Frequencies: %.2f MHz, %.2f kHz, %.2f Hz\n", + (double) mi->clock / 1000, + (double) mi->clock / mi->htotal, + (double) mi->clock / mi->htotal / mi->vtotal * 1000 + ); + } + } + for(di = h->driver_info, i = 0; di; di = di->next, i++) { dump_line("Driver Info #%d:\n", i); ind += 2; diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/hd/monitor.c new/hwinfo-13.7/src/hd/monitor.c --- old/hwinfo-13.5/src/hd/monitor.c 2006-09-27 12:36:15.000000000 +0200 +++ new/hwinfo-13.7/src/hd/monitor.c 2006-10-06 16:41:02.000000000 +0200 @@ -472,7 +472,6 @@ (double) mi->clock / u1 / u2 * 1000 ); } - } } } diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/hwinfo-13.5/src/int10/int10.c new/hwinfo-13.7/src/int10/int10.c --- old/hwinfo-13.5/src/int10/int10.c 2006-09-27 12:49:33.000000000 +0200 +++ new/hwinfo-13.7/src/int10/int10.c 2006-10-06 16:15:08.000000000 +0200 @@ -23,6 +23,12 @@ unsigned char vbeinfo[0x200]; int ax, bx, cx; unsigned cpuemu; + hd_smbios_t *sm; + struct { + unsigned notebook:1; + unsigned dell:1; + unsigned nvidia:1; + } is = { }; log_hd_data = hd_data; @@ -59,6 +65,42 @@ read_vbe_info(hd_data, vbe, vbeinfo, cpuemu); } + /* scan only 2 ports for monitor data, some BIOSes crash when you try more */ + vbe->ddc_ports = 2; + + for(sm = hd_data->smbios; sm; sm = sm->next) { + if( + sm->any.type == sm_sysinfo && + sm->sysinfo.manuf && + !strncasecmp(sm->sysinfo.manuf, "dell ", 5) + ) { + is.dell = 1; + } + + if( + sm->any.type == sm_chassis && + ( + (sm->chassis.ch_type.id >= 8 && sm->chassis.ch_type.id <= 11) || + sm->chassis.ch_type.id == 14 + ) + ) { + is.notebook = 1; + } + } + + if( + (vbe->vendor_name && !strncasecmp(vbe->vendor_name, "nvidia", sizeof "nvidia" - 1)) || + (vbe->oem_name && !strncasecmp(vbe->oem_name, "nvidia", sizeof "nvidia" - 1)) + ) is.nvidia = 1; + + /* notebooks like to have it at port 3 */ + if((is.dell || is.nvidia) && is.notebook) vbe->ddc_ports = 3; + + if(hd_probe_feature(hd_data, pr_bios_ddc_ports_1)) vbe->ddc_ports = 1; + if(hd_probe_feature(hd_data, pr_bios_ddc_ports_2)) vbe->ddc_ports = 2; + if(hd_probe_feature(hd_data, pr_bios_ddc_ports_3)) vbe->ddc_ports = 3; + if(hd_probe_feature(hd_data, pr_bios_ddc_ports_4)) vbe->ddc_ports = 4; + if(hd_probe_feature(hd_data, pr_bios_ddc)) { PROGRESS(4, 3, "ddc info"); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org