diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/Makefile linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/Makefile --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/Makefile Sun Nov 19 15:18:35 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/Makefile Sun Nov 19 01:29:55 2000 @@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 2 SUBLEVEL = 18 -EXTRAVERSION = pre21-paulus11.14-24sound-ictc-temp-atymem-ext3_5b +EXTRAVERSION = pre21-paulus11.14-24sound-ictc-temp-atymem-ext3_5b-JPG ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/) diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/config.in linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/config.in --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/config.in Tue Nov 14 11:45:39 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/config.in Sun Nov 19 03:18:34 2000 @@ -83,6 +83,7 @@ bool 'Support for VGA Console' CONFIG_VGA_CONSOLE bool 'Support for frame buffer devices' CONFIG_FB bool 'Power management support for Apple PowerBooks' CONFIG_PMAC_PBOOK +bool 'PowerMacintosh Backlight/Volume Control support' CONFIG_PMAC_BACKLIGHT bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE bool 'Support for TotalImpact TotalMP' CONFIG_TOTALMP bool 'Support for early boot text console (BootX only)' CONFIG_BOOTX_TEXT diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/Makefile linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/Makefile --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/Makefile Wed Oct 25 22:01:21 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/Makefile Sun Nov 19 14:53:02 2000 @@ -41,10 +41,11 @@ O_OBJS += apus_setup.o prom.o openpic.o endif -PMAC_OBJS = pmac_time.o pmac_setup.o pmac_support.o pmac_pci.o pmac_pic.o \ +PMAC_OBJS = pmac_time.o pmac_setup.o pmac_pci.o pmac_pic.o \ feature.o openpic.o open_pic.o prom.o +PMACX_OBJS = pmac_support.o CHRP_OBJS = $(PMAC_OBJS) chrp_time.o chrp_pci.o i8259.o indirect_pci.o -CHRPX_OBJS = chrp_setup.o +CHRPX_OBJS = $(PMACX_OBJS) chrp_setup.o PREP_OBJS = prep_time.o prep_pci.o residual.o prep_nvram.o i8259.o \ indirect_pci.o openpic.o open_pic.o prom.o PREPX_OBJS = prep_setup.o diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/misc.S linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/misc.S --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/misc.S Thu Oct 26 19:26:24 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/misc.S Sun Nov 19 02:22:01 2000 @@ -563,6 +563,14 @@ isync /* Handle erratas in some cases */ blr +_GLOBAL(_get_ICTC) + mfspr r3,ICTC + blr + +_GLOBAL(_set_ICTC) + mtspr ICTC,r3 + blr + /* L2CR functions Copyright © 1997-1998 by PowerLogix R & D, Inc. diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/pmac_support.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/pmac_support.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/arch/ppc/kernel/pmac_support.c Wed Aug 9 18:32:21 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/arch/ppc/kernel/pmac_support.c Sun Nov 19 15:10:42 2000 @@ -9,6 +9,7 @@ * contain, among other things, the brightness, video mode, etc... */ #include +#include #include #include #include @@ -524,3 +525,68 @@ return backlight_level; } +#include +static struct volume_controller *volumeer = NULL; +static void* volume_data = NULL; +static int volume_level[2] = {0x8,0x8}; +static int volume_mute[2] = {0,0}; +EXPORT_SYMBOL(register_volume_controller); +EXPORT_SYMBOL(unregister_volume_controller); + +void __pmac +register_volume_controller(struct volume_controller *ctrler, void *data){ + if (volumeer!=NULL) + return ; + volumeer = ctrler; + volume_data = data; +} +void __pmac +unregister_volume_controller(struct volume_controller *ctrler, void *data){ + if (ctrler == volumeer && data == volume_data) + volumeer = NULL; +} + +int __pmac +set_volume_mute(int internal, int mute){ + if (!volumeer) + return -ENODEV; + (*(volumeer->set_mute)) (internal,mute,volume_data); + return volume_mute[internal?0:1]=mute; +} + +int __pmac +get_volume_mute(int internal){ + if (!volumeer) + return -ENODEV; + + return volume_mute[internal?0:1]; +} + +int __pmac +set_volume_level(int internal, int level){ + if (!volumeer) + return -ENODEV; + + if (level < VOLUME_MIN) + level = VOLUME_OFF; + else if (level > VOLUME_MAX) + level = VOLUME_MAX; + else if(volume_mute[internal?0:1] && ( level != VOLUME_OFF )) + set_volume_mute(internal,0); + + (*(volumeer->set_level)) (internal,level,volume_data); + volume_level[internal?0:1]=level; + + if(level==VOLUME_OFF) + set_volume_mute(internal,1); + + return level; +} + +int __pmac +get_volume_level(int internal){ + if (!volumeer) + return -ENODEV; + + return volume_level[internal?0:1]; +} diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/macintosh/adbhid.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/macintosh/adbhid.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/macintosh/adbhid.c Tue Oct 24 20:54:18 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/macintosh/adbhid.c Sun Nov 19 17:58:20 2000 @@ -44,6 +44,11 @@ #include #ifdef CONFIG_PMAC_BACKLIGHT #include +#include +static int shift_down=0; +static int option_down=0; +extern int volume_shift_does_internal; +extern int volume_send_keycodes; #endif MODULE_AUTHOR("Franz Sirl "); @@ -91,7 +96,7 @@ static void init_turbomouse(int id); static void init_microspeed(int id); static void init_ms_a3(int id); - + static struct adb_ids keyboard_ids; static struct adb_ids mouse_ids; static struct adb_ids buttons_ids; @@ -141,6 +146,13 @@ up_flag = (keycode & 0x80); keycode &= 0x7f; +#ifdef CONFIG_PMAC_BACKLIGHT + /* buttons_handler() needs to know state of shift and option keys */ + if (keycode == 0x38) + shift_down = !up_flag; + if (keycode == 0x3a) + option_down = !up_flag; +#endif switch (keycode) { case 0x39: /* Generate down/up events for CapsLock everytime. */ @@ -255,65 +267,151 @@ ((data[1]&0x7f) < 64 ? (data[1]&0x7f) : (data[1]&0x7f)-128 )); } +#ifdef CONFIG_PMAC_BACKLIGHT +/* Autorepeat delays for ADB buttons */ +#define BUTTON_DELAY0 (HZ/2) +#define BUTTON_DELAY1 (HZ/6) + +/* Timer for buttons autorepeat */ +static struct timer_list button_timer; +/* Store buttons data here between each interrupt */ +static unsigned char button_data[4]; static void -adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll) +buttons_handler(unsigned char *data, int repeat_delay); + +static void +buttons_repeat(unsigned long x) { - int id = (data[0] >> 4) & 0x0f; + unsigned long flags; - if (!adbhid[id]) { - printk(KERN_ERR "ADB HID on ID %d not yet registered\n", id); - return; - } + save_flags(flags); + cli(); + buttons_handler(button_data, BUTTON_DELAY1); + restore_flags(flags); +} +#endif - switch (adbhid[id]->original_handler_id) { - default: - case 0x02: /* Adjustable keyboard button device */ - printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n", - data[0], data[1], data[2], data[3]); - break; - case 0x1f: /* Powerbook button device */ - { +static void +adbhid_buttons_input(unsigned char *data, int nb, struct pt_regs *regs, int autopoll) +{ + int id = (data[0] >> 4) & 0x0f; + + if (!adbhid[id]) { + printk(KERN_ERR "ADB HID on ID %d not yet registered\n", id); + return; + } + + switch (adbhid[id]->original_handler_id) { + default: + case 0x02: /* Adjustable keyboard button device */ + printk(KERN_INFO "Unhandled ADB_MISC event %02x, %02x, %02x, %02x\n", + data[0], data[1], data[2], data[3]); + break; + case 0x1f: /* Powerbook button device */ #ifdef CONFIG_PMAC_BACKLIGHT - int backlight = get_backlight_level(); - - /* - * XXX: Where is the contrast control for the passive? - * -- Cort - */ - - switch (data[1]) { + if (volume_send_keycodes){ + switch (data[1]&0xf) { case 0x8: /* mute */ - break; - + input_report_key(&adbhid[id]->input, KEY_MUTE, data[1] == (data[1] & 0xf)); + break; + case 0x7: /* contrast decrease */ - break; - + input_report_key(&adbhid[id]->input, KEY_VOLUMEDOWN, data[1] == (data[1] & 0xf)); + break; + case 0x6: /* contrast increase */ - break; - - case 0xa: /* brightness decrease */ - if (backlight < 0) - break; - if (backlight > BACKLIGHT_OFF) - set_backlight_level(backlight-1); - else - set_backlight_level(BACKLIGHT_OFF); - break; - - case 0x9: /* brightness increase */ - if (backlight < 0) - break; - if (backlight < BACKLIGHT_MAX) - set_backlight_level(backlight+1); - else - set_backlight_level(BACKLIGHT_MAX); - break; + input_report_key(&adbhid[id]->input, KEY_VOLUMEUP, data[1] == (data[1] & 0xf)); + break; } -#endif /* CONFIG_PMAC_BACKLIGHT */ - } + }else + buttons_handler(data, BUTTON_DELAY0); +#endif break; + } +} + + +#ifdef CONFIG_PMAC_BACKLIGHT +static void +buttons_handler(unsigned char *data, int repeat_delay) +{ + int backlight = get_backlight_level(); + int do_internal = (shift_down == volume_shift_does_internal); + int volume = get_volume_level(do_internal); + int mute = get_volume_mute(do_internal); + int down_flag = data[1] == (data[1] & 0xf); + int repeat_flag = 0; + + del_timer(&button_timer); + /* + * XXX: Where is the contrast control for the passive? + * -- Cort + */ + + switch (data[1]&0xf) { + case 0x8: /* mute */ + if (volume < 0) + return; + if(down_flag){ + set_volume_mute(do_internal,!mute); + // mute doesn't repeat. + } + break; + + case 0x7: /* contrast decrease */ + if (volume < 0) + return; + if(down_flag){ + set_volume_level(do_internal,option_down?VOLUME_MIN:volume-1); + repeat_flag = !option_down; } + break; + + case 0x6: /* contrast increase */ + if (volume < 0) + return; + if(down_flag){ + set_volume_level(do_internal,option_down?VOLUME_MAX:(volume+1)); + repeat_flag = !option_down; + } + break; + + case 0xa: /* brightness decrease */ + if (backlight < 0) + break; + if(down_flag){ + if (!option_down && (backlight > BACKLIGHT_OFF)) + set_backlight_level(backlight-1); + else + set_backlight_level(BACKLIGHT_OFF); + repeat_flag = !option_down; + } + break; + + case 0x9: /* brightness increase */ + if (backlight < 0) + break; + if(down_flag){ + if (!option_down && (backlight < BACKLIGHT_MAX)) + set_backlight_level(backlight+1); + else + set_backlight_level(BACKLIGHT_MAX); + repeat_flag = !option_down; + } + break; + } + if (repeat_flag) { + button_data[0] = data[0]; + button_data[1] = data[1]; + button_data[2] = data[2]; + button_data[3] = data[3]; + button_timer.expires = repeat_delay + jiffies; + button_timer.data = 0; + button_timer.function = buttons_repeat; + add_timer(&button_timer); + } } +#endif /* CONFIG_PMAC_BACKLIGHT */ static struct adb_request led_request; static int leds_pending[16]; diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/macintosh/mac_hid.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/macintosh/mac_hid.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/macintosh/mac_hid.c Mon Oct 23 06:13:08 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/macintosh/mac_hid.c Sun Nov 19 17:20:43 2000 @@ -190,6 +190,8 @@ static int keyboard_lock_keycodes = 0; int keyboard_sends_linux_keycodes = 0; +int volume_send_keycodes = 0; +int volume_shift_does_internal = 0; #else int keyboard_sends_linux_keycodes = 1; #endif /* CONFIG_MAC_ADBKEYCODES */ @@ -241,6 +243,18 @@ 0644, NULL, &proc_dointvec }, #endif +#ifdef CONFIG_PMAC_BACKLIGHT + { + DEV_MAC_HID_VOLUME_SENDS_KEYCODES, + "volume_send_keycodes", &volume_send_keycodes, sizeof(int), + 0644, NULL, &proc_dointvec + }, + { + DEV_MAC_HID_VOLUME_SHIFT_DOES_INTERNAL, + "volume_shift_does_internal", &volume_shift_does_internal, sizeof(int), + 0644, NULL, &proc_dointvec + }, +#endif #ifdef CONFIG_MAC_EMUMOUSEBTN { DEV_MAC_HID_MOUSE_BUTTON_EMULATION, @@ -293,14 +307,14 @@ && keyboard_sends_linux_keycodes != val) { if (!keyboard_sends_linux_keycodes) { #ifdef CONFIG_MAGIC_SYSRQ - ppc_md.ppc_kbd_sysrq_xlate = mac_hid_kbd_sysrq_xlate; + ppc_md.sysrq_xlate = mac_hid_kbd_sysrq_xlate; SYSRQ_KEY = 0x69; #endif memcpy(pc_key_maps_save, key_maps, sizeof(key_maps)); memcpy(key_maps, mac_key_maps_save, sizeof(key_maps)); } else { #ifdef CONFIG_MAGIC_SYSRQ - ppc_md.ppc_kbd_sysrq_xlate = pckbd_sysrq_xlate; + ppc_md.sysrq_xlate = pckbd_sysrq_xlate; SYSRQ_KEY = 0x54; #endif memcpy(mac_key_maps_save, key_maps, sizeof(key_maps)); diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/net/bmac.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/net/bmac.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/net/bmac.c Sun Sep 3 13:10:36 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/net/bmac.c Sun Nov 19 01:40:22 2000 @@ -127,6 +127,9 @@ static struct pmu_sleep_notifier bmac_sleep_notifier = { bmac_sleep_notify, SLEEP_LEVEL_NET, }; +#ifndef MODULE +static int bmac_uses=0; +#endif #endif #if 0 @@ -505,6 +508,8 @@ break; case PBOOK_WAKE: /* see if this is enough */ + if(!bmac_uses) + return PBOOK_SLEEP_OK; bmac_reset_and_enable(bmac_devs, 1); enable_irq(bmac_devs->irq); enable_irq(bp->tx_dma_intr); @@ -1390,6 +1395,10 @@ bmac_proc_info }); #endif +#ifndef MODULE + if(bmac_uses==0) + bmac_sleep_notify(0,PBOOK_SLEEP_NOW); +#endif return 0; } @@ -1398,8 +1407,12 @@ { /* XXDEBUG(("bmac: enter open\n")); */ /* reset the chip */ +#if defined(CONFIG_PMAC_PBOOK) && !defined(MODULE) + bmac_uses++; + bmac_sleep_notify(0,PBOOK_WAKE); +#else bmac_reset_and_enable(dev, 1); - +#endif dev->flags |= IFF_UP | IFF_RUNNING; MOD_INC_USE_COUNT; @@ -1448,6 +1461,10 @@ bp->reset_and_enabled = 0; XXDEBUG(("bmac: all bufs freed\n")); +#if defined(CONFIG_PMAC_PBOOK) && !defined(MODULE) + if(--bmac_uses==0) + bmac_sleep_notify(0,PBOOK_SLEEP_NOW); +#endif MOD_DEC_USE_COUNT; return 0; diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/sound/dmasound/dmasound_awacs.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/sound/dmasound/dmasound_awacs.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/drivers/sound/dmasound/dmasound_awacs.c Tue Nov 14 11:45:40 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/drivers/sound/dmasound/dmasound_awacs.c Sun Nov 19 17:23:39 2000 @@ -135,6 +135,9 @@ static int is_pbook_G3; static unsigned char *macio_base; +/* Mute/unmute status */ +static int is_mute; + /* Burgundy functions */ static void awacs_burgundy_wcw(unsigned addr,unsigned newval); static unsigned awacs_burgundy_rcw(unsigned addr); @@ -152,6 +155,15 @@ awacs_sleep_notify, SLEEP_LEVEL_SOUND, }; #endif /* CONFIG_PMAC_PBOOK */ +#ifdef CONFIG_PMAC_BACKLIGHT +#include +static int awacs_set_volume(int internal, int level, void *data); +static int awacs_set_mute(int internal, int mute, void *data); +static struct volume_controller awacs_vol_ctrler = { + awacs_set_mute, + awacs_set_volume, +}; +#endif /* CONFIG_PMAC_BACKLIGHT */ int expand_bal; /* Balance factor for expanding (not volume!) */ int expand_data; /* Data for expanding */ @@ -328,6 +340,9 @@ out_le32(&awacs_txdma->control, RUN | (RUN << 16)); expand_bal = -dmasound.soft.speed; +#ifdef CONFIG_PMAC_BACKLIGHT + register_volume_controller (&awacs_vol_ctrler, NULL); +#endif } static int PMacSetFormat(int format) @@ -395,6 +410,7 @@ awacs_write((n << 12) | rn); volume = awacs_get_volume(rn, lshift); } + r1 |= is_mute; if (r1 != awacs_reg[1]) { awacs_reg[1] = r1; awacs_write(r1 | MASK_ADDR1); @@ -450,6 +466,50 @@ restore_flags(flags); } +/* Toggle muting of headphones (n==2) or speakers (n==4) */ +int +awacs_set_mute(int internal, int mute, void *data) +{ + int mask; + + if (internal) + mask = MASK_CMUTE; + else + mask = MASK_AMUTE; + + is_mute = (is_mute & ~mask) | (mute?mask:0); + awacs_reg[1] = (awacs_reg[1] & ~mask) | (mute?mask:0); + awacs_write(awacs_reg[1] | MASK_ADDR1); + + return is_mute & mask; +} + +/* Adjust volume of headphones (n==2) or speakers (n==4) */ +int +awacs_set_volume(int internal, int level, void *data) +{ + int volume, mask; + + if (internal) + mask = MASK_CMUTE; + else + mask = MASK_AMUTE; + +#if 0 + if (is_mute & mask) + is_mute &= ~mask; +#endif + if (level > VOLUME_MAX) + volume = 0x64; + else if (level < VOLUME_MIN) + volume = 0x01; + else + volume = level*100/VOLUME_MAX; + + awacs_volume_setter(volume|(volume<<8), internal?4:2, mask, 6); + + return volume; +} static void PMacRecord(void) { @@ -1392,6 +1452,8 @@ int __init dmasound_awacs_init(void) { struct device_node *np; + int beep_volume_tmp; + int retu; if (_machine != _MACH_Pmac) return -ENODEV; @@ -1648,7 +1710,13 @@ } actual_freq_list[j] = -1 ; /* we might claim *no* freqs */ dmasound.mach.hardware_sample_rates = actual_freq_list ; - return dmasound_init(); + retu= dmasound_init(); + /* Remove hiss from PowerBook speakers */ + beep_volume_tmp = beep_volume; + beep_volume = 0; + awacs_mksound(750, 1); + beep_volume = beep_volume_tmp; + return retu; } return -ENODEV; } @@ -1657,6 +1725,9 @@ static void __exit dmasound_awacs_cleanup(void) { dmasound_deinit(); +#ifdef CONFIG_PMAC_BACKLIGHT + unregister_volume_controller (&awacs_vol_ctrler, NULL); +#endif } module_init(dmasound_awacs_init); @@ -1672,6 +1743,9 @@ int cleanup_module(void) { dmasound_deinit() ; +#ifdef CONFIG_PMAC_BACKLIGHT + unregister_volume_controller (&awacs_vol_ctrler, NULL); +#endif return 0 ; } #endif diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/fs/ext3/balloc.c linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/fs/ext3/balloc.c --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/fs/ext3/balloc.c Sun Nov 19 15:18:26 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/fs/ext3/balloc.c Sun Nov 19 02:24:08 2000 @@ -699,7 +699,9 @@ ext3_test_bit(alloctmp, bhtmp->b_data), bhtmp->b_committed_data ? ext3_test_bit(alloctmp, bhtmp->b_committed_data) : -2, bhtmp->b_frozen_data ? ext3_test_bit(alloctmp, bhtmp->b_frozen_data) : -2); +#ifdef EXT3FS_DEBUG BUG(); +#endif } memset(bh->b_data, 0, sb->s_blocksize); diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/asm-ppc/volume.h linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/asm-ppc/volume.h --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/asm-ppc/volume.h Wed Dec 31 18:00:00 1969 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/asm-ppc/volume.h Sun Nov 19 01:30:28 2000 @@ -0,0 +1,28 @@ +/* + * Routines for handling backlight control on PowerBooks + * + * For now, implementation resides in arch/ppc/kernel/pmac_support.c + * + */ +#ifndef __ASM_PPC_VOLUME_H +#define __ASM_PPC_VOLUME_H + +/* Abstract values */ +#define VOLUME_OFF 0 +#define VOLUME_MIN 1 +#define VOLUME_MAX 0xf + +struct volume_controller { + int (*set_mute)(int internal,int mute, void *data); + int (*set_level)(int internal,int level, void *data); +}; + +extern void register_volume_controller(struct volume_controller *ctrler, void *data); +extern void unregister_volume_controller(struct volume_controller *ctrler, void *data); + +extern int set_volume_mute(int internal,int mute); +extern int get_volume_mute(int internal); +extern int set_volume_level(int internal,int level); +extern int get_volume_level(int internal); + +#endif diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/compile.h linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/compile.h --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/compile.h Wed Dec 31 18:00:00 1969 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/compile.h Sun Nov 19 17:59:29 2000 @@ -0,0 +1,6 @@ +#define UTS_VERSION "#71 Sun Nov 19 17:59:29 CST 2000" +#define LINUX_COMPILE_TIME "17:59:29" +#define LINUX_COMPILE_BY "jpgarcia" +#define LINUX_COMPILE_HOST "momiji" +#define LINUX_COMPILE_DOMAIN "" +#define LINUX_COMPILER "gcc version 2.95.3 19991030 (prerelease/franzo/20001030)" diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/sysctl.h linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/sysctl.h --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/sysctl.h Tue Nov 14 11:50:09 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/sysctl.h Sun Nov 19 17:37:54 2000 @@ -456,7 +456,9 @@ DEV_MAC_HID_MOUSE_BUTTON_EMULATION=3, DEV_MAC_HID_MOUSE_BUTTON2_KEYCODE=4, DEV_MAC_HID_MOUSE_BUTTON3_KEYCODE=5, - DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6 + DEV_MAC_HID_ADB_MOUSE_SENDS_KEYCODES=6, + DEV_MAC_HID_VOLUME_SENDS_KEYCODES=7, + DEV_MAC_HID_VOLUME_SHIFT_DOES_INTERNAL=8 }; #ifdef __KERNEL__ diff -ruP -X ignorediff linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/version.h linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/version.h --- linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b/include/linux/version.h Sun Nov 12 16:58:10 2000 +++ linux-2.2.18pre21-paulus-24sound-ictc-temp-atymem-ext3_5b-JPG2/include/linux/version.h Sun Nov 19 01:47:10 2000 @@ -1,3 +1,3 @@ -#define UTS_RELEASE "2.2.18pre21" +#define UTS_RELEASE "2.2.18pre21-paulus11.14-24sound-ictc-temp-atymem-ext3_5b-JPG" #define LINUX_VERSION_CODE 131602 #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))