|
From: Tino K. <tin...@ti...> - 2007-02-06 11:01:05
|
On Tue, Feb 06, 2007 at 10:40:36 +0000, Miguel Sousa Filipe wrote: > Hi, >=20 > On 2/5/07, Pedro C=F4rte-Real <pe...@pe...> wrote: [...] > > Is anyone pushing the mactel patches to the mainline kernel? >=20 >=20 > Last time that was asked the answer was: > - several mactel patches are undocumented and therefore, not apt for > mainline submission. >=20 > For instance: > - usb-storage-zerowait.patch > doesn't seem to have anything to do with mactel specifics, looks more > like some mactel developer personal preference about flushing usb > storage ASAP. >=20 > However, the number of patches on mactel svn seem to be diminishing.. The coretemp patch was grabbed from the lm-sensors mailing list. I don't know if it is already in the -mm kernel, but I think we can expect it (or similar functionality) soon in the vanilla kernel. Regards, Tino |
|
From: Tino K. <tin...@ti...> - 2007-02-06 13:05:34
|
On Mon, Feb 05, 2007 at 02:04:17 -0800, hu...@us... wrote: > Revision: 82 > http://svn.sourceforge.net/mactel-linux/?rev=82&view=rev > Author: huceke > Date: 2007-02-05 02:04:17 -0800 (Mon, 05 Feb 2007) > > Log Message: > ----------- > Initial 2.6.20 patches Hi, the ir.patch is still missing. I used the 2.6.19 version with .20-rc6 and it works fine on my mini. Regards, Tino |
|
From: Guillaume P. <gui...@gm...> - 2007-02-06 17:01:38
|
Hi, I have been running Gentoo 64 bits for 1 month on my MacBookPro C2D. I switched to Gentoo 32 bits more than 1 month ago. This switch did NOT change anything to these problems: - no powerplay (really annoying) - no wakeup with ati-drivers >= 30.3 - dvi-out works on 32 bit, but I didn't test it when running 64bits - my battery reporting seems reliable, but I didn't noticed any problem under 64 bits - wakeup works 95% of the time. So I think that you can safely stay 64 bits. Regards, |
|
From: Guillaume P. <gui...@gm...> - 2007-02-06 17:03:41
|
Forgot to mention, wireless LAN works only with ndiswrapper and 32 bits windows drivers under a 32 bits system ATM. 2007/2/6, Guillaume Pujol <gui...@gm...>: > Hi, > > I have been running Gentoo 64 bits for 1 month on my MacBookPro C2D. I > switched to Gentoo 32 bits more than 1 month ago. > This switch did NOT change anything to these problems: > - no powerplay (really annoying) > - no wakeup with ati-drivers >= 30.3 > > - dvi-out works on 32 bit, but I didn't test it when running 64bits > - my battery reporting seems reliable, but I didn't noticed any > problem under 64 bits > - wakeup works 95% of the time. > > So I think that you can safely stay 64 bits. > > Regards, > |
|
From: Stefan B. <br...@cs...> - 2007-02-06 20:54:50
|
At 18:03 +0100 on 2007-2-6 Guillaume Pujol wrote:
>
> I have been running Gentoo 64 bits for 1 month on my MacBookPro C2D. I
> switched to Gentoo 32 bits more than 1 month ago.
> This switch did NOT change anything to these problems:
> - no powerplay (really annoying)
> - no wakeup with ati-drivers >= 30.3
Agreed.
> - dvi-out works on 32 bit, but I didn't test it when running 64bits
It does not seem to work, though maybe I am doing something wrong. I
meant to test further but I did not get to it.
> - my battery reporting seems reliable, but I didn't noticed any
> problem under 64 bits
You must be doing something right that I have missed. What
kernel/mactel patches combination are you using? Can I take a peek at
your kernel config?
> - wakeup works 95% of the time.
Seems to be the case here too.
> So I think that you can safely stay 64 bits.
Agreed once more. Thanks.
Stefan
--
If it was so, it might be; and if it were so, it would be; but as
it isn't, it ain't. That's logic.
--Lewis Carroll, Through the Looking-Glass
|
|
From: Guillaume P. <gui...@gm...> - 2007-02-07 09:09:27
|
2007/2/6, Stefan Bruda <br...@cs...>: > At 18:03 +0100 on 2007-2-6 Guillaume Pujol wrote: > > - my battery reporting seems reliable, but I didn't noticed any > > problem under 64 bits > > You must be doing something right that I have missed. What > kernel/mactel patches combination are you using? Can I take a peek at > your kernel config? Sure, here it is (this is a 2.6.18 vanilla+gentoo+suspend2+latest mactel patches): I can give you the ebuild if you want. 2.6.19 isn't working really well (VFS error on boot...) I tested 2.6.20 quickly, it seems to work, but the touchpad isn't recognized the same way it is in 2.6.18 (I'll look into it). # # Automatically generated make config: don't edit # Linux kernel version: 2.6.18-mactel-r2 # Tue Feb 6 18:23:08 2007 # CONFIG_X86_32=y CONFIG_GENERIC_TIME=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_SEMAPHORE_SLEEPERS=y CONFIG_X86=y CONFIG_MMU=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_DMI=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" # # Code maturity level options # CONFIG_EXPERIMENTAL=y CONFIG_LOCK_KERNEL=y CONFIG_INIT_ENV_ARG_LIMIT=32 # # General setup # CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_POSIX_MQUEUE=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y # CONFIG_TASKSTATS is not set CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y # CONFIG_CPUSETS is not set # CONFIG_RELAY is not set CONFIG_INITRAMFS_SOURCE="" # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set # CONFIG_EMBEDDED is not set CONFIG_UID16=y CONFIG_SYSCTL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CONFIG_KALLSYMS_EXTRA_PASS is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SHMEM=y CONFIG_SLAB=y CONFIG_VM_EVENT_COUNTERS=y CONFIG_RT_MUTEXES=y # CONFIG_TINY_SHMEM is not set CONFIG_BASE_SMALL=0 # CONFIG_SLOB is not set # # Loadable module support # CONFIG_MODULES=y CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y CONFIG_MODULE_SRCVERSION_ALL=y CONFIG_KMOD=y CONFIG_STOP_MACHINE=y # # Block layer # CONFIG_LBD=y # CONFIG_BLK_DEV_IO_TRACE is not set # CONFIG_LSF is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_AS is not set # CONFIG_IOSCHED_DEADLINE is not set CONFIG_IOSCHED_CFQ=y # CONFIG_DEFAULT_AS is not set # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" # # Processor type and features # CONFIG_SMP=y CONFIG_X86_PC=y # CONFIG_X86_ELAN is not set # CONFIG_X86_VOYAGER is not set # CONFIG_X86_NUMAQ is not set # CONFIG_X86_SUMMIT is not set # CONFIG_X86_BIGSMP is not set # CONFIG_X86_VISWS is not set # CONFIG_X86_GENERICARCH is not set # CONFIG_X86_ES7000 is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set # CONFIG_M686 is not set # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set CONFIG_MPENTIUMM=y # CONFIG_MPENTIUM4 is not set # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP2 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_X86_GENERIC is not set CONFIG_X86_CMPXCHG=y CONFIG_X86_XADD=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_GOOD_APIC=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_NR_CPUS=2 # CONFIG_SCHED_SMT is not set CONFIG_SCHED_MC=y # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_PREEMPT_BKL=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_MCE=y CONFIG_X86_MCE_NONFATAL=y # CONFIG_X86_MCE_P4THERMAL is not set CONFIG_VM86=y # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set # CONFIG_X86_REBOOTFIXUPS is not set CONFIG_MICROCODE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # # Firmware Drivers # # CONFIG_EDD is not set # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_DISCONTIGMEM_MANUAL is not set # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_SPLIT_PTLOCK_CPUS=4 # CONFIG_RESOURCES_64BIT is not set # CONFIG_HIGHPTE is not set # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_EFI is not set CONFIG_IRQBALANCE=y CONFIG_REGPARM=y CONFIG_SECCOMP=y # CONFIG_HZ_100 is not set CONFIG_HZ_250=y # CONFIG_HZ_1000 is not set CONFIG_HZ=250 CONFIG_KEXEC=y # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x100000 CONFIG_HOTPLUG_CPU=y CONFIG_COMPAT_VDSO=y CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management options (ACPI, APM) # CONFIG_PM=y CONFIG_PM_LEGACY=y # CONFIG_PM_DEBUG is not set CONFIG_SOFTWARE_SUSPEND=y CONFIG_PM_STD_PARTITION="" CONFIG_SUSPEND_SMP=y # # ACPI (Advanced Configuration and Power Interface) Support # CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_SLEEP_PROC_FS=y # CONFIG_ACPI_SLEEP_PROC_SLEEP is not set CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_HOTKEY=y CONFIG_ACPI_FAN=y # CONFIG_ACPI_DOCK is not set CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_ASUS is not set # CONFIG_ACPI_IBM is not set # CONFIG_ACPI_TOSHIBA is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_EC=y CONFIG_ACPI_POWER=y CONFIG_ACPI_SYSTEM=y CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_SBS is not set # # APM (Advanced Power Management) BIOS Support # # CONFIG_APM is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y # CONFIG_CPU_FREQ_DEBUG is not set CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=y CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y # # CPUFreq processor drivers # CONFIG_X86_ACPI_CPUFREQ=y # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set # CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_GX_SUSPMOD is not set CONFIG_X86_SPEEDSTEP_CENTRINO=y CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y # CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE is not set CONFIG_X86_SPEEDSTEP_ICH=y # CONFIG_X86_SPEEDSTEP_SMI is not set # CONFIG_X86_P4_CLOCKMOD is not set # CONFIG_X86_CPUFREQ_NFORCE2 is not set # CONFIG_X86_LONGRUN is not set # CONFIG_X86_LONGHAUL is not set # # shared options # # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set CONFIG_X86_SPEEDSTEP_LIB=y # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set # # Bus options (PCI, PCMCIA, EISA, MCA, ISA) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCIEPORTBUS=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set CONFIG_ISA_DMA_API=y # CONFIG_ISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # # PCCARD (PCMCIA/CardBus) support # # CONFIG_PCCARD is not set # # PCI Hotplug Support # # CONFIG_HOTPLUG_PCI is not set # # Executable file formats # CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_MISC=y # # Networking # CONFIG_NET=y # # Networking options # # CONFIG_NETDEBUG is not set CONFIG_PACKET=y CONFIG_PACKET_MMAP=y CONFIG_UNIX=y # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y CONFIG_ASK_IP_FIB_HASH=y # CONFIG_IP_FIB_TRIE is not set CONFIG_IP_FIB_HASH=y # CONFIG_IP_MULTIPLE_TABLES is not set # CONFIG_IP_ROUTE_MULTIPATH is not set # CONFIG_IP_ROUTE_VERBOSE is not set # CONFIG_IP_PNP is not set CONFIG_NET_IPIP=y # CONFIG_NET_IPGRE is not set # CONFIG_IP_MROUTE is not set # CONFIG_ARPD is not set # CONFIG_SYN_COOKIES is not set # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set CONFIG_INET_TUNNEL=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_ADVANCED=y # # TCP congestion control # CONFIG_TCP_CONG_BIC=y CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=y CONFIG_TCP_CONG_HTCP=y # CONFIG_TCP_CONG_HSTCP is not set # CONFIG_TCP_CONG_HYBLA is not set CONFIG_TCP_CONG_VEGAS=y # CONFIG_TCP_CONG_SCALABLE is not set # CONFIG_TCP_CONG_LP is not set CONFIG_TCP_CONG_VENO=y # # IP: Virtual Server Configuration # # CONFIG_IP_VS is not set # CONFIG_IPV6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set # CONFIG_NETWORK_SECMARK is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NETFILTER_XTABLES=y # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set # CONFIG_NETFILTER_XT_TARGET_MARK is not set CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set # CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set # CONFIG_NETFILTER_XT_MATCH_DCCP is not set # CONFIG_NETFILTER_XT_MATCH_ESP is not set # CONFIG_NETFILTER_XT_MATCH_HELPER is not set # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set CONFIG_NETFILTER_XT_MATCH_LIMIT=y CONFIG_NETFILTER_XT_MATCH_MAC=y # CONFIG_NETFILTER_XT_MATCH_MARK is not set CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set # CONFIG_NETFILTER_XT_MATCH_REALM is not set # CONFIG_NETFILTER_XT_MATCH_SCTP is not set # CONFIG_NETFILTER_XT_MATCH_STATE is not set CONFIG_NETFILTER_XT_MATCH_STATISTIC=y # CONFIG_NETFILTER_XT_MATCH_STRING is not set CONFIG_NETFILTER_XT_MATCH_TCPMSS=y # # IP: Netfilter Configuration # CONFIG_IP_NF_CONNTRACK=y # CONFIG_IP_NF_CT_ACCT is not set # CONFIG_IP_NF_CONNTRACK_MARK is not set # CONFIG_IP_NF_CONNTRACK_EVENTS is not set CONFIG_IP_NF_CONNTRACK_NETLINK=y # CONFIG_IP_NF_CT_PROTO_SCTP is not set CONFIG_IP_NF_FTP=y CONFIG_IP_NF_IRC=y # CONFIG_IP_NF_NETBIOS_NS is not set CONFIG_IP_NF_TFTP=y # CONFIG_IP_NF_AMANDA is not set CONFIG_IP_NF_PPTP=y # CONFIG_IP_NF_H323 is not set # CONFIG_IP_NF_SIP is not set # CONFIG_IP_NF_QUEUE is not set CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_IPRANGE=y # CONFIG_IP_NF_MATCH_TOS is not set # CONFIG_IP_NF_MATCH_RECENT is not set # CONFIG_IP_NF_MATCH_ECN is not set # CONFIG_IP_NF_MATCH_DSCP is not set # CONFIG_IP_NF_MATCH_AH is not set CONFIG_IP_NF_MATCH_TTL=y # CONFIG_IP_NF_MATCH_OWNER is not set # CONFIG_IP_NF_MATCH_ADDRTYPE is not set # CONFIG_IP_NF_MATCH_HASHLIMIT is not set # CONFIG_IP_NF_FILTER is not set CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y CONFIG_IP_NF_TARGET_TCPMSS=y CONFIG_IP_NF_NAT=y CONFIG_IP_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_SAME=y # CONFIG_IP_NF_NAT_SNMP_BASIC is not set CONFIG_IP_NF_NAT_IRC=y CONFIG_IP_NF_NAT_FTP=y CONFIG_IP_NF_NAT_TFTP=y CONFIG_IP_NF_NAT_PPTP=y # CONFIG_IP_NF_MANGLE is not set # CONFIG_IP_NF_RAW is not set CONFIG_IP_NF_ARPTABLES=y # CONFIG_IP_NF_ARPFILTER is not set # CONFIG_IP_NF_ARP_MANGLE is not set # # DCCP Configuration (EXPERIMENTAL) # # CONFIG_IP_DCCP is not set # # SCTP Configuration (EXPERIMENTAL) # # CONFIG_IP_SCTP is not set # # TIPC Configuration (EXPERIMENTAL) # # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_BRIDGE is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # # QoS and/or fair queueing # # CONFIG_NET_SCHED is not set # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_HAMRADIO is not set # CONFIG_IRDA is not set # CONFIG_BT is not set CONFIG_IEEE80211=y # CONFIG_IEEE80211_DEBUG is not set CONFIG_IEEE80211_CRYPT_WEP=y CONFIG_IEEE80211_CRYPT_CCMP=y CONFIG_IEEE80211_CRYPT_TKIP=y CONFIG_IEEE80211_SOFTMAC=y # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set CONFIG_WIRELESS_EXT=y # # Device Drivers # # # Generic Driver Options # CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_DEBUG_DRIVER is not set # CONFIG_SYS_HYPERVISOR is not set # # Connector - unified userspace <-> kernelspace linker # CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # # Memory Technology Devices (MTD) # # CONFIG_MTD is not set # # Parallel port support # # CONFIG_PARPORT is not set # # Plug and Play support # # CONFIG_PNP is not set # # Block devices # # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_CRYPTOLOOP=y # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=4096 CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 CONFIG_BLK_DEV_INITRD=y CONFIG_CDROM_PKTCDVD=y CONFIG_CDROM_PKTCDVD_BUFFERS=8 CONFIG_CDROM_PKTCDVD_WCACHE=y # CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support # CONFIG_IDE=y CONFIG_BLK_DEV_IDE=y # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE_SATA is not set # CONFIG_BLK_DEV_HD_IDE is not set # CONFIG_BLK_DEV_IDEDISK is not set # CONFIG_IDEDISK_MULTI_MODE is not set CONFIG_BLK_DEV_IDECD=y # CONFIG_BLK_DEV_IDETAPE is not set # CONFIG_BLK_DEV_IDEFLOPPY is not set # CONFIG_BLK_DEV_IDESCSI is not set # CONFIG_IDE_TASK_IOCTL is not set # # IDE chipset support/bugfixes # CONFIG_IDE_GENERIC=y # CONFIG_BLK_DEV_CMD640 is not set CONFIG_BLK_DEV_IDEPCI=y # CONFIG_IDEPCI_SHARE_IRQ is not set # CONFIG_BLK_DEV_OFFBOARD is not set # CONFIG_BLK_DEV_GENERIC is not set # CONFIG_BLK_DEV_OPTI621 is not set # CONFIG_BLK_DEV_RZ1000 is not set CONFIG_BLK_DEV_IDEDMA_PCI=y # CONFIG_BLK_DEV_IDEDMA_FORCED is not set # CONFIG_IDEDMA_PCI_AUTO is not set # CONFIG_BLK_DEV_AEC62XX is not set # CONFIG_BLK_DEV_ALI15X3 is not set # CONFIG_BLK_DEV_AMD74XX is not set # CONFIG_BLK_DEV_ATIIXP is not set # CONFIG_BLK_DEV_CMD64X is not set # CONFIG_BLK_DEV_TRIFLEX is not set # CONFIG_BLK_DEV_CY82C693 is not set # CONFIG_BLK_DEV_CS5520 is not set # CONFIG_BLK_DEV_CS5530 is not set # CONFIG_BLK_DEV_CS5535 is not set # CONFIG_BLK_DEV_HPT34X is not set # CONFIG_BLK_DEV_HPT366 is not set # CONFIG_BLK_DEV_SC1200 is not set CONFIG_BLK_DEV_PIIX=y # CONFIG_BLK_DEV_IT821X is not set # CONFIG_BLK_DEV_NS87415 is not set # CONFIG_BLK_DEV_PDC202XX_OLD is not set # CONFIG_BLK_DEV_PDC202XX_NEW is not set # CONFIG_BLK_DEV_SVWKS is not set # CONFIG_BLK_DEV_SIIMAGE is not set # CONFIG_BLK_DEV_SIS5513 is not set # CONFIG_BLK_DEV_SLC90E66 is not set # CONFIG_BLK_DEV_TRM290 is not set # CONFIG_BLK_DEV_VIA82CXXX is not set # CONFIG_IDE_ARM is not set CONFIG_BLK_DEV_IDEDMA=y # CONFIG_IDEDMA_IVB is not set # CONFIG_IDEDMA_AUTO is not set # CONFIG_BLK_DEV_HD is not set # # SCSI device support # # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=y # CONFIG_CHR_DEV_SCH is not set # # Some SCSI devices (e.g. CD jukebox) support multiple LUNs # CONFIG_SCSI_MULTI_LUN=y # CONFIG_SCSI_CONSTANTS is not set # CONFIG_SCSI_LOGGING is not set # # SCSI Transport Attributes # # CONFIG_SCSI_SPI_ATTRS is not set # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # # SCSI low-level drivers # # CONFIG_ISCSI_TCP is not set # CONFIG_BLK_DEV_3W_XXXX_RAID is not set # CONFIG_SCSI_3W_9XXX is not set # CONFIG_SCSI_ACARD is not set # CONFIG_SCSI_AACRAID is not set # CONFIG_SCSI_AIC7XXX is not set # CONFIG_SCSI_AIC7XXX_OLD is not set # CONFIG_SCSI_AIC79XX is not set # CONFIG_SCSI_DPT_I2O is not set # CONFIG_SCSI_ADVANSYS is not set # CONFIG_MEGARAID_NEWGEN is not set # CONFIG_MEGARAID_LEGACY is not set # CONFIG_MEGARAID_SAS is not set CONFIG_SCSI_SATA=y # CONFIG_SCSI_SATA_AHCI is not set # CONFIG_SCSI_SATA_SVW is not set CONFIG_SCSI_ATA_PIIX=y # CONFIG_SCSI_SATA_MV is not set # CONFIG_SCSI_SATA_NV is not set # CONFIG_SCSI_PDC_ADMA is not set # CONFIG_SCSI_HPTIOP is not set # CONFIG_SCSI_SATA_QSTOR is not set # CONFIG_SCSI_SATA_PROMISE is not set # CONFIG_SCSI_SATA_SX4 is not set # CONFIG_SCSI_SATA_SIL is not set # CONFIG_SCSI_SATA_SIL24 is not set # CONFIG_SCSI_SATA_SIS is not set # CONFIG_SCSI_SATA_ULI is not set # CONFIG_SCSI_SATA_VIA is not set # CONFIG_SCSI_SATA_VITESSE is not set CONFIG_SCSI_SATA_INTEL_COMBINED=y # CONFIG_SCSI_BUSLOGIC is not set # CONFIG_SCSI_DMX3191D is not set # CONFIG_SCSI_EATA is not set # CONFIG_SCSI_FUTURE_DOMAIN is not set # CONFIG_SCSI_GDTH is not set # CONFIG_SCSI_IPS is not set # CONFIG_SCSI_INITIO is not set # CONFIG_SCSI_INIA100 is not set # CONFIG_SCSI_SYM53C8XX_2 is not set # CONFIG_SCSI_IPR is not set # CONFIG_SCSI_QLOGIC_1280 is not set # CONFIG_SCSI_QLA_FC is not set # CONFIG_SCSI_LPFC is not set # CONFIG_SCSI_DC395x is not set # CONFIG_SCSI_DC390T is not set # CONFIG_SCSI_NSP32 is not set # CONFIG_SCSI_DEBUG is not set # # Multi-device support (RAID and LVM) # # CONFIG_MD is not set # # Fusion MPT device support # # CONFIG_FUSION is not set # CONFIG_FUSION_SPI is not set # CONFIG_FUSION_FC is not set # CONFIG_FUSION_SAS is not set # # IEEE 1394 (FireWire) support # CONFIG_IEEE1394=y # # Subsystem Options # # CONFIG_IEEE1394_VERBOSEDEBUG is not set CONFIG_IEEE1394_OUI_DB=y CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y CONFIG_IEEE1394_CONFIG_ROM_IP1394=y CONFIG_IEEE1394_EXPORT_FULL_API=y # # Device Drivers # CONFIG_IEEE1394_PCILYNX=y CONFIG_IEEE1394_OHCI1394=y # # Protocol Drivers # CONFIG_IEEE1394_VIDEO1394=y CONFIG_IEEE1394_SBP2=y # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set CONFIG_IEEE1394_ETH1394=y CONFIG_IEEE1394_DV1394=y CONFIG_IEEE1394_RAWIO=y # # I2O device support # # CONFIG_I2O is not set # # Macintosh device drivers # # CONFIG_MAC_EMUMOUSEBTN is not set # # Network device support # CONFIG_NETDEVICES=y CONFIG_DUMMY=y # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # # ARCnet devices # # CONFIG_ARCNET is not set # # PHY device support # # # Ethernet (10 or 100Mbit) # # CONFIG_NET_ETHERNET is not set # # Ethernet (1000 Mbit) # # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set # CONFIG_SKGE is not set CONFIG_SKY2=y # CONFIG_SK98LIN is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # # Ethernet (10000 Mbit) # # CONFIG_CHELSIO_T1 is not set # CONFIG_IXGB is not set # CONFIG_S2IO is not set # CONFIG_MYRI10GE is not set # # Token Ring devices # # CONFIG_TR is not set # # Wireless LAN (non-hamradio) # CONFIG_NET_RADIO=y CONFIG_NET_WIRELESS_RTNETLINK=y # # Obsolete Wireless cards support (pre-802.11) # # CONFIG_STRIP is not set # # Wireless 802.11b ISA/PCI cards support # # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_AIRO is not set # CONFIG_HERMES is not set # CONFIG_ATMEL is not set # # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support # # CONFIG_PRISM54 is not set # CONFIG_USB_ZD1201 is not set # CONFIG_HOSTAP is not set # CONFIG_BCM43XX is not set # CONFIG_ZD1211RW is not set CONFIG_NET_WIRELESS=y # # Wan interfaces # # CONFIG_WAN is not set # CONFIG_FDDI is not set # CONFIG_HIPPI is not set CONFIG_PPP=y # CONFIG_PPP_MULTILINK is not set # CONFIG_PPP_FILTER is not set CONFIG_PPP_ASYNC=y CONFIG_PPP_SYNC_TTY=y CONFIG_PPP_DEFLATE=y # CONFIG_PPP_BSDCOMP is not set # CONFIG_PPP_MPPE is not set # CONFIG_PPPOE is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set # CONFIG_SHAPER is not set # CONFIG_NETCONSOLE is not set # CONFIG_NETPOLL is not set # CONFIG_NET_POLL_CONTROLLER is not set # # ISDN subsystem # # CONFIG_ISDN is not set # # Telephony Support # # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set # CONFIG_INPUT_TSDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_XTKBD is not set # CONFIG_KEYBOARD_NEWTON is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y # CONFIG_SERIO_SERPORT is not set # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set # CONFIG_SERIAL_NONSTANDARD is not set # # Serial drivers # # CONFIG_SERIAL_8250 is not set # # Non-8250 serial port support # # CONFIG_SERIAL_JSM is not set CONFIG_UNIX98_PTYS=y CONFIG_LEGACY_PTYS=y CONFIG_LEGACY_PTY_COUNT=256 # # IPMI # # CONFIG_IPMI_HANDLER is not set # # Watchdog Cards # # CONFIG_WATCHDOG is not set CONFIG_HW_RANDOM=y CONFIG_HW_RANDOM_INTEL=y # CONFIG_HW_RANDOM_AMD is not set # CONFIG_HW_RANDOM_GEODE is not set # CONFIG_HW_RANDOM_VIA is not set CONFIG_NVRAM=y CONFIG_RTC=y # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set # # Ftape, the floppy tape device driver # CONFIG_AGP=y # CONFIG_AGP_ALI is not set # CONFIG_AGP_ATI is not set # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set CONFIG_AGP_INTEL=y # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set # CONFIG_AGP_VIA is not set # CONFIG_AGP_EFFICEON is not set # CONFIG_DRM is not set # CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set # CONFIG_NSC_GPIO is not set # CONFIG_CS5535_GPIO is not set # CONFIG_RAW_DRIVER is not set # CONFIG_HPET is not set # CONFIG_HANGCHECK_TIMER is not set # # TPM devices # CONFIG_TCG_TPM=y # CONFIG_TCG_ATMEL is not set # CONFIG_TELCLOCK is not set # # I2C support # CONFIG_I2C=y CONFIG_I2C_CHARDEV=y # # I2C Algorithms # CONFIG_I2C_ALGOBIT=y # CONFIG_I2C_ALGOPCF is not set # CONFIG_I2C_ALGOPCA is not set # # I2C Hardware Bus support # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_I801=y # CONFIG_I2C_I810 is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_PROSAVAGE is not set # CONFIG_I2C_SAVAGE4 is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_STUB is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # CONFIG_I2C_VOODOO3 is not set # CONFIG_I2C_PCA_ISA is not set # # Miscellaneous I2C Chip support # # CONFIG_SENSORS_DS1337 is not set # CONFIG_SENSORS_DS1374 is not set CONFIG_SENSORS_EEPROM=y # CONFIG_SENSORS_PCF8574 is not set # CONFIG_SENSORS_PCA9539 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_SENSORS_MAX6875 is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_I2C_DEBUG_CHIP is not set # # SPI support # # CONFIG_SPI is not set # CONFIG_SPI_MASTER is not set # # Dallas's 1-wire bus # # CONFIG_W1 is not set # # Hardware Monitoring support # CONFIG_HWMON=y # CONFIG_HWMON_VID is not set # CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1031 is not set # CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ASB100 is not set # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_FSCHER is not set # CONFIG_SENSORS_FSCPOS is not set # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM75 is not set # CONFIG_SENSORS_LM77 is not set # CONFIG_SENSORS_LM78 is not set # CONFIG_SENSORS_LM80 is not set # CONFIG_SENSORS_LM83 is not set # CONFIG_SENSORS_LM85 is not set # CONFIG_SENSORS_LM87 is not set # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_HDAPS is not set CONFIG_SENSORS_APPLESMC=y # CONFIG_HWMON_DEBUG_CHIP is not set # # Misc devices # # CONFIG_IBM_ASM is not set # # Multimedia devices # CONFIG_VIDEO_DEV=y # CONFIG_VIDEO_V4L1 is not set CONFIG_VIDEO_V4L1_COMPAT=y CONFIG_VIDEO_V4L2=y # # Video Capture Adapters # # # Video Capture Adapters # # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_CX88 is not set # # Encoders and Decoders # # CONFIG_VIDEO_MSP3400 is not set # CONFIG_VIDEO_CS53L32A is not set # CONFIG_VIDEO_TLV320AIC23B is not set # CONFIG_VIDEO_WM8775 is not set # CONFIG_VIDEO_WM8739 is not set # CONFIG_VIDEO_CX2341X is not set # CONFIG_VIDEO_CX25840 is not set # CONFIG_VIDEO_SAA711X is not set # CONFIG_VIDEO_SAA7127 is not set # CONFIG_VIDEO_UPD64031A is not set # CONFIG_VIDEO_UPD64083 is not set # # V4L USB devices # # CONFIG_VIDEO_PVRUSB2 is not set # # Radio Adapters # # # Digital Video Broadcasting Devices # # CONFIG_DVB is not set # CONFIG_USB_DABUSB is not set # # Graphics support # CONFIG_FIRMWARE_EDID=y CONFIG_FB=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set CONFIG_FB_VESA=y # CONFIG_FB_VESA_STD is not set CONFIG_FB_VESA_TNG=y CONFIG_FB_VESA_DEFAULT_MODE="1152x864-24@60" CONFIG_VIDEO_SELECT=y # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I810 is not set # CONFIG_FB_INTEL is not set # CONFIG_FB_MATROX is not set CONFIG_FB_RADEON=y CONFIG_FB_RADEON_I2C=y # CONFIG_FB_RADEON_DEBUG is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_CYBLA is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_VIRTUAL is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=1024 CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set CONFIG_FONTS=y CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_FONT_6x11 is not set # CONFIG_FONT_7x14 is not set # CONFIG_FONT_PEARL_8x8 is not set # CONFIG_FONT_ACORN_8x8 is not set # CONFIG_FONT_MINI_4x6 is not set # CONFIG_FONT_SUN8x16 is not set # CONFIG_FONT_SUN12x22 is not set # CONFIG_FONT_10x18 is not set # # Logo configuration # # CONFIG_LOGO is not set # CONFIG_BACKLIGHT_LCD_SUPPORT is not set CONFIG_FB_SPLASH=y # # Speakup console speech # # CONFIG_SPEAKUP is not set # # Sound # CONFIG_SOUND=y # # Advanced Linux Sound Architecture # # CONFIG_SND is not set # # Open Sound System # # CONFIG_SOUND_PRIME is not set # # USB support # CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y # CONFIG_USB_DEBUG is not set # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_BANDWIDTH=y CONFIG_USB_DYNAMIC_MINORS=y # CONFIG_USB_SUSPEND is not set # CONFIG_USB_OTG is not set # # USB Host Controller Drivers # CONFIG_USB_EHCI_HCD=y CONFIG_USB_EHCI_SPLIT_ISO=y CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_OHCI_HCD is not set CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # # USB Device Class drivers # # CONFIG_USB_ACM is not set # CONFIG_USB_PRINTER is not set # # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' # # # may also be needed; see USB_STORAGE Help for more information # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG... [truncated message content] |
|
From: Stefan B. <br...@cs...> - 2007-02-07 19:02:52
|
At 10:09 +0100 on 2007-2-7 Guillaume Pujol wrote:
>
> 2007/2/6, Stefan Bruda <br...@cs...>:
> > At 18:03 +0100 on 2007-2-6 Guillaume Pujol wrote:
> > > - my battery reporting seems reliable, but I didn't noticed any
> > > problem under 64 bits
> >
> > You must be doing something right that I have missed. What
> > kernel/mactel patches combination are you using? Can I take a peek
> > at your kernel config?
>
> Sure, here it is (this is a 2.6.18 vanilla+gentoo+suspend2+latest
> mactel patches):
Hey, thanks, I found a potentially significant issue, in that you do
not have sbs (the Smart Battery System) ACPI module in your kernel. I
got rid of it, and the battery information appeared on reboot. In
other words, the Macbook (Pro? C2D?) battery is not a SBS battery
(contrary to what I read I forgot where). It could be that the sbs
module interferes somehow with the rest of the battery ACPI system and
causes all the trouble. But then I cannot be sure of this until some
time passes. It looks nonetheless promising.
> 2.6.19 isn't working really well (VFS error on boot...)
Works well for me (this is what I am using), though I am not sure why
it does not for you.
> I tested 2.6.20 quickly, it seems to work, but the touchpad isn't
> recognized the same way it is in 2.6.18 (I'll look into it).
There are some mactel-patches that are missing from the 2.2.20 series
(most notable the ir.patch) but I did not get to check the touchpad--
essentially I stopped testing 2.6.20 when I discovered that
ati-drivers-8.30.3 will not build under it (anything above 8.30.3
causes a reboot upon wakeup on my machine, I would be interested in
knowing whether anybody else has managed to make it work).
Anyway, thanks for the config, if you do not hear from me in the next
couple of days or so it means that the sbs thing fixes the battery
issue. ;-)
Cheers,
Stefan
--
If it was so, it might be; and if it were so, it would be; but as
it isn't, it ain't. That's logic.
--Lewis Carroll, Through the Looking-Glass
|
|
From: Stefan B. <br...@cs...> - 2007-02-07 19:12:35
|
Hi,
I am not the one having troubles on the matter, so I am forwarding
this to the list:
At 20:09 +0100 on 2007-2-7 Ortwin Gl=FCck wrote:
>
> Stefan Bruda wrote:
> > > 2.6.19 isn't working really well (VFS error on boot...)
> >=20
> > Works well for me (this is what I am using), though I am not sure =
why
> > it does not for you.
>=20
> The IDE/ATA/SATA/PATA drivers changed much from 2.6.18 to 2.6.19. So=
=20
> it's easy to get your config wrong. Simplified what they did is:
> - move the SATA support out of SCSI and make it standalone
> - create new PATA drivers from the IDE ones that use the SATA framwo=
rk
> So you now have the choice between thew new PATA drivers or the old =
IDE=20
> ones to grab your CD-ROM. You also need the SATA drivers for the har=
d=20
> drive. Because the latter moved in the config you probably forgot to=
=20
> enable it. So the kernel can not find a device to boot from.
>=20
> -Ortwin
--=20
If it was so, it might be; and if it were so, it would be; but as
it isn't, it ain't. That's logic.
--Lewis Carroll, Through the Looking-Glass
|
|
From: Guillaume P. <gui...@gm...> - 2007-02-08 14:03:06
|
Oops, sorry Stephan, this was supposed to be a reply to the list, not only you :/ My message follows: 2007/2/8, Guillaume Pujol <gui...@gm...>: > > > Stefan Bruda wrote: > > > > > 2.6.19 isn't working really well (VFS error on boot...) > > > > > > > > Works well for me (this is what I am using), though I am not sure why > > > > it does not for you. > > > > > > The IDE/ATA/SATA/PATA drivers changed much from 2.6.18 to 2.6.19. So > > > it's easy to get your config wrong. Simplified what they did is: > > > - move the SATA support out of SCSI and make it standalone > > > - create new PATA drivers from the IDE ones that use the SATA framwork > > > So you now have the choice between thew new PATA drivers or the old IDE > > > ones to grab your CD-ROM. You also need the SATA drivers for the hard > > > drive. Because the latter moved in the config you probably forgot to > > > enable it. So the kernel can not find a device to boot from. > > Thanks you for your advice, but I was aware of this change, and configured my kernel > in a way I think is appropriate. > What I forgot to mention is that, when I try 2.6.19, _sometimes_ it > succeeds (boots succesfully) , and _most of the times_ it ends up with a VFS error. > But maybe I'm doing something wrong ? Here is my .config for 2.6.19; I'd be happy if you > find my problem, or give me your own .config for comparison: > > # > # Automatically generated make config: don't edit > # Linux kernel version: 2.6.19-mactel-r3 > # Fri Jan 19 20:15:56 2007 > # > CONFIG_X86_32=y > CONFIG_GENERIC_TIME=y > CONFIG_LOCKDEP_SUPPORT=y > CONFIG_STACKTRACE_SUPPORT=y > CONFIG_SEMAPHORE_SLEEPERS=y > CONFIG_X86=y > CONFIG_MMU=y > CONFIG_GENERIC_ISA_DMA=y > CONFIG_GENERIC_IOMAP=y > CONFIG_GENERIC_HWEIGHT=y > CONFIG_ARCH_MAY_HAVE_PC_FDC=y > CONFIG_DMI=y > CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" > > # > # Code maturity level options > # > CONFIG_EXPERIMENTAL=y > CONFIG_LOCK_KERNEL=y > CONFIG_INIT_ENV_ARG_LIMIT=32 > > # > # General setup > # > CONFIG_LOCALVERSION="" > CONFIG_LOCALVERSION_AUTO=y > CONFIG_SWAP=y > CONFIG_SYSVIPC=y > # CONFIG_IPC_NS is not set > CONFIG_POSIX_MQUEUE=y > CONFIG_BSD_PROCESS_ACCT=y > CONFIG_BSD_PROCESS_ACCT_V3=y > # CONFIG_TASKSTATS is not set > # CONFIG_UTS_NS is not set > CONFIG_AUDIT=y > CONFIG_AUDITSYSCALL=y > CONFIG_IKCONFIG=y > CONFIG_IKCONFIG_PROC=y > # CONFIG_CPUSETS is not set > CONFIG_RELAY=y > CONFIG_INITRAMFS_SOURCE="" > # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set > CONFIG_SYSCTL=y > # CONFIG_EMBEDDED is not set > CONFIG_UID16=y > CONFIG_SYSCTL_SYSCALL=y > CONFIG_KALLSYMS=y > # CONFIG_KALLSYMS_ALL is not set > # CONFIG_KALLSYMS_EXTRA_PASS is not set > CONFIG_HOTPLUG=y > CONFIG_PRINTK=y > CONFIG_BUG=y > CONFIG_ELF_CORE=y > CONFIG_BASE_FULL=y > CONFIG_FUTEX=y > CONFIG_EPOLL=y > CONFIG_SHMEM=y > CONFIG_SLAB=y > CONFIG_VM_EVENT_COUNTERS=y > CONFIG_RT_MUTEXES=y > # CONFIG_TINY_SHMEM is not set > CONFIG_BASE_SMALL=0 > # CONFIG_SLOB is not set > > # > # Loadable module support > # > CONFIG_MODULES=y > CONFIG_MODULE_UNLOAD=y > CONFIG_MODULE_FORCE_UNLOAD=y > CONFIG_MODVERSIONS=y > CONFIG_MODULE_SRCVERSION_ALL=y > CONFIG_KMOD=y > CONFIG_STOP_MACHINE=y > > # > # Block layer > # > CONFIG_BLOCK=y > CONFIG_LBD=y > CONFIG_BLK_DEV_IO_TRACE=y > # CONFIG_LSF is not set > > # > # IO Schedulers > # > CONFIG_IOSCHED_NOOP=y > # CONFIG_IOSCHED_AS is not set > # CONFIG_IOSCHED_DEADLINE is not set > CONFIG_IOSCHED_CFQ=y > # CONFIG_DEFAULT_AS is not set > # CONFIG_DEFAULT_DEADLINE is not set > CONFIG_DEFAULT_CFQ=y > # CONFIG_DEFAULT_NOOP is not set > CONFIG_DEFAULT_IOSCHED="cfq" > > # > # Processor type and features > # > CONFIG_SMP=y > CONFIG_X86_PC=y > # CONFIG_X86_ELAN is not set > # CONFIG_X86_VOYAGER is not set > # CONFIG_X86_NUMAQ is not set > # CONFIG_X86_SUMMIT is not set > # CONFIG_X86_BIGSMP is not set > # CONFIG_X86_VISWS is not set > # CONFIG_X86_GENERICARCH is not set > # CONFIG_X86_ES7000 is not set > # CONFIG_M386 is not set > # CONFIG_M486 is not set > # CONFIG_M586 is not set > # CONFIG_M586TSC is not set > # CONFIG_M586MMX is not set > # CONFIG_M686 is not set > # CONFIG_MPENTIUMII is not set > # CONFIG_MPENTIUMIII is not set > CONFIG_MPENTIUMM=y > # CONFIG_MPENTIUM4 is not set > # CONFIG_MK6 is not set > # CONFIG_MK7 is not set > # CONFIG_MK8 is not set > # CONFIG_MCRUSOE is not set > # CONFIG_MEFFICEON is not set > # CONFIG_MWINCHIPC6 is not set > # CONFIG_MWINCHIP2 is not set > # CONFIG_MWINCHIP3D is not set > # CONFIG_MGEODEGX1 is not set > # CONFIG_MGEODE_LX is not set > # CONFIG_MCYRIXIII is not set > # CONFIG_MVIAC3_2 is not set > # CONFIG_X86_GENERIC is not set > CONFIG_X86_CMPXCHG=y > CONFIG_X86_XADD=y > CONFIG_X86_L1_CACHE_SHIFT=6 > CONFIG_RWSEM_XCHGADD_ALGORITHM=y > CONFIG_GENERIC_CALIBRATE_DELAY=y > CONFIG_X86_WP_WORKS_OK=y > CONFIG_X86_INVLPG=y > CONFIG_X86_BSWAP=y > CONFIG_X86_POPAD_OK=y > CONFIG_X86_CMPXCHG64=y > CONFIG_X86_GOOD_APIC=y > CONFIG_X86_INTEL_USERCOPY=y > CONFIG_X86_USE_PPRO_CHECKSUM=y > CONFIG_X86_TSC=y > CONFIG_HPET_TIMER=y > CONFIG_HPET_EMULATE_RTC=y > CONFIG_NR_CPUS=2 > # CONFIG_SCHED_SMT is not set > CONFIG_SCHED_MC=y > # CONFIG_PREEMPT_NONE is not set > CONFIG_PREEMPT_VOLUNTARY=y > # CONFIG_PREEMPT is not set > CONFIG_PREEMPT_BKL=y > CONFIG_X86_LOCAL_APIC=y > CONFIG_X86_IO_APIC=y > CONFIG_X86_MCE=y > CONFIG_X86_MCE_NONFATAL=y > CONFIG_X86_MCE_P4THERMAL=y > CONFIG_VM86=y > # CONFIG_TOSHIBA is not set > # CONFIG_I8K is not set > # CONFIG_X86_REBOOTFIXUPS is not set > CONFIG_MICROCODE=y > CONFIG_MICROCODE_OLD_INTERFACE=y > CONFIG_X86_MSR=y > CONFIG_X86_CPUID=y > > # > # Firmware Drivers > # > # CONFIG_EDD is not set > # CONFIG_DELL_RBU is not set > # CONFIG_DCDBAS is not set > # CONFIG_NOHIGHMEM is not set > CONFIG_HIGHMEM4G=y > # CONFIG_HIGHMEM64G is not set > CONFIG_PAGE_OFFSET=0xC0000000 > CONFIG_HIGHMEM=y > CONFIG_ARCH_FLATMEM_ENABLE=y > CONFIG_ARCH_SPARSEMEM_ENABLE=y > CONFIG_ARCH_SELECT_MEMORY_MODEL=y > CONFIG_ARCH_POPULATES_NODE_MAP=y > CONFIG_SELECT_MEMORY_MODEL=y > CONFIG_FLATMEM_MANUAL=y > # CONFIG_DISCONTIGMEM_MANUAL is not set > # CONFIG_SPARSEMEM_MANUAL is not set > CONFIG_FLATMEM=y > CONFIG_FLAT_NODE_MEM_MAP=y > CONFIG_SPARSEMEM_STATIC=y > CONFIG_SPLIT_PTLOCK_CPUS=4 > # CONFIG_RESOURCES_64BIT is not set > # CONFIG_HIGHPTE is not set > # CONFIG_MATH_EMULATION is not set > CONFIG_MTRR=y > # CONFIG_EFI is not set > CONFIG_IRQBALANCE=y > CONFIG_REGPARM=y > CONFIG_SECCOMP=y > # CONFIG_HZ_100 is not set > CONFIG_HZ_250=y > # CONFIG_HZ_1000 is not set > CONFIG_HZ=250 > CONFIG_KEXEC=y > # CONFIG_CRASH_DUMP is not set > CONFIG_PHYSICAL_START=0x100000 > CONFIG_HOTPLUG_CPU=y > CONFIG_COMPAT_VDSO=y > CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y > > # > # Power management options (ACPI, APM) > # > CONFIG_PM=y > CONFIG_PM_LEGACY=y > # CONFIG_PM_DEBUG is not set > # CONFIG_PM_SYSFS_DEPRECATED is not set > CONFIG_SOFTWARE_SUSPEND=y > CONFIG_PM_STD_PARTITION="" > CONFIG_SUSPEND_SMP=y > CONFIG_SUSPEND2_CRYPTO=y > CONFIG_SUSPEND2=y > > # > # Image Storage (you need at least one allocator) > # > CONFIG_SUSPEND2_FILE=y > CONFIG_SUSPEND2_SWAP=y > > # > # General Options > # > CONFIG_SUSPEND2_DEFAULT_RESUME2="/swap" > # CONFIG_SUSPEND2_KEEP_IMAGE is not set > CONFIG_SUSPEND2_REPLACE_SWSUSP=y > CONFIG_SUSPEND_SHARED=y > > # > # ACPI (Advanced Configuration and Power Interface) Support > # > CONFIG_ACPI=y > CONFIG_ACPI_SLEEP=y > CONFIG_ACPI_SLEEP_PROC_FS=y > # CONFIG_ACPI_SLEEP_PROC_SLEEP is not set > CONFIG_ACPI_AC=y > CONFIG_ACPI_BATTERY=y > CONFIG_ACPI_BUTTON=y > CONFIG_ACPI_VIDEO=y > CONFIG_ACPI_HOTKEY=y > CONFIG_ACPI_FAN=y > # CONFIG_ACPI_DOCK is not set > CONFIG_ACPI_PROCESSOR=y > CONFIG_ACPI_HOTPLUG_CPU=y > CONFIG_ACPI_THERMAL=y > # CONFIG_ACPI_ASUS is not set > # CONFIG_ACPI_IBM is not set > # CONFIG_ACPI_TOSHIBA is not set > CONFIG_ACPI_BLACKLIST_YEAR=0 > # CONFIG_ACPI_DEBUG is not set > CONFIG_ACPI_EC=y > CONFIG_ACPI_POWER=y > CONFIG_ACPI_SYSTEM=y > CONFIG_X86_PM_TIMER=y > CONFIG_ACPI_CONTAINER=y > # CONFIG_ACPI_SBS is not set > > # > # APM (Advanced Power Management) BIOS Support > # > # CONFIG_APM is not set > > # > # CPU Frequency scaling > # > CONFIG_CPU_FREQ=y > CONFIG_CPU_FREQ_TABLE=y > # CONFIG_CPU_FREQ_DEBUG is not set > CONFIG_CPU_FREQ_STAT=y > CONFIG_CPU_FREQ_STAT_DETAILS=y > # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set > CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y > CONFIG_CPU_FREQ_GOV_PERFORMANCE=y > CONFIG_CPU_FREQ_GOV_POWERSAVE=y > CONFIG_CPU_FREQ_GOV_USERSPACE=y > CONFIG_CPU_FREQ_GOV_ONDEMAND=y > CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y > > # > # CPUFreq processor drivers > # > CONFIG_X86_ACPI_CPUFREQ=y > # CONFIG_X86_POWERNOW_K6 is not set > # CONFIG_X86_POWERNOW_K7 is not set > # CONFIG_X86_POWERNOW_K8 is not set > # CONFIG_X86_GX_SUSPMOD is not set > CONFIG_X86_SPEEDSTEP_CENTRINO=y > CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y > # CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE is not set > CONFIG_X86_SPEEDSTEP_ICH=y > # CONFIG_X86_SPEEDSTEP_SMI is not set > # CONFIG_X86_P4_CLOCKMOD is not set > # CONFIG_X86_CPUFREQ_NFORCE2 is not set > # CONFIG_X86_LONGRUN is not set > # CONFIG_X86_LONGHAUL is not set > > # > # shared options > # > # CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set > CONFIG_X86_SPEEDSTEP_LIB=y > # CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK is not set > > # > # Bus options (PCI, PCMCIA, EISA, MCA, ISA) > # > CONFIG_PCI=y > # CONFIG_PCI_GOBIOS is not set > # CONFIG_PCI_GOMMCONFIG is not set > # CONFIG_PCI_GODIRECT is not set > CONFIG_PCI_GOANY=y > CONFIG_PCI_BIOS=y > CONFIG_PCI_DIRECT=y > CONFIG_PCI_MMCONFIG=y > CONFIG_PCIEPORTBUS=y > CONFIG_PCIEAER=y > CONFIG_PCI_MSI=y > # CONFIG_PCI_DEBUG is not set > CONFIG_HT_IRQ=y > CONFIG_ISA_DMA_API=y > # CONFIG_ISA is not set > # CONFIG_MCA is not set > # CONFIG_SCx200 is not set > > # > # PCCARD (PCMCIA/CardBus) support > # > # CONFIG_PCCARD is not set > > # > # PCI Hotplug Support > # > # CONFIG_HOTPLUG_PCI is not set > > # > # Executable file formats > # > CONFIG_BINFMT_ELF=y > # CONFIG_BINFMT_AOUT is not set > CONFIG_BINFMT_MISC=y > > # > # Networking > # > CONFIG_NET=y > > # > # Networking options > # > # CONFIG_NETDEBUG is not set > CONFIG_PACKET=y > CONFIG_PACKET_MMAP=y > CONFIG_UNIX=y > # CONFIG_NET_KEY is not set > CONFIG_INET=y > CONFIG_IP_MULTICAST=y > CONFIG_IP_ADVANCED_ROUTER=y > CONFIG_ASK_IP_FIB_HASH=y > # CONFIG_IP_FIB_TRIE is not set > CONFIG_IP_FIB_HASH=y > # CONFIG_IP_MULTIPLE_TABLES is not set > # CONFIG_IP_ROUTE_MULTIPATH is not set > # CONFIG_IP_ROUTE_VERBOSE is not set > # CONFIG_IP_PNP is not set > # CONFIG_NET_IPIP is not set > # CONFIG_NET_IPGRE is not set > # CONFIG_IP_MROUTE is not set > # CONFIG_ARPD is not set > # CONFIG_SYN_COOKIES is not set > # CONFIG_INET_AH is not set > # CONFIG_INET_ESP is not set > # CONFIG_INET_IPCOMP is not set > # CONFIG_INET_XFRM_TUNNEL is not set > # CONFIG_INET_TUNNEL is not set > # CONFIG_INET_XFRM_MODE_TRANSPORT is not set > # CONFIG_INET_XFRM_MODE_TUNNEL is not set > # CONFIG_INET_XFRM_MODE_BEET is not set > # CONFIG_INET_DIAG is not set > # CONFIG_TCP_CONG_ADVANCED is not set > CONFIG_TCP_CONG_CUBIC=y > CONFIG_DEFAULT_TCP_CONG="cubic" > # CONFIG_IPV6 is not set > # CONFIG_INET6_XFRM_TUNNEL is not set > # CONFIG_INET6_TUNNEL is not set > # CONFIG_NETWORK_SECMARK is not set > # CONFIG_NETFILTER is not set > > # > # DCCP Configuration (EXPERIMENTAL) > # > # CONFIG_IP_DCCP is not set > > # > # SCTP Configuration (EXPERIMENTAL) > # > # CONFIG_IP_SCTP is not set > > # > # TIPC Configuration (EXPERIMENTAL) > # > # CONFIG_TIPC is not set > # CONFIG_ATM is not set > # CONFIG_BRIDGE is not set > # CONFIG_VLAN_8021Q is not set > # CONFIG_DECNET is not set > # CONFIG_LLC2 is not set > # CONFIG_IPX is not set > # CONFIG_ATALK is not set > # CONFIG_X25 is not set > # CONFIG_LAPB is not set > # CONFIG_ECONET is not set > # CONFIG_WAN_ROUTER is not set > > # > # QoS and/or fair queueing > # > # CONFIG_NET_SCHED is not set > > # > # Network testing > # > # CONFIG_NET_PKTGEN is not set > # CONFIG_HAMRADIO is not set > # CONFIG_IRDA is not set > # CONFIG_BT is not set > CONFIG_IEEE80211=y > # CONFIG_IEEE80211_DEBUG is not set > CONFIG_IEEE80211_CRYPT_WEP=y > CONFIG_IEEE80211_CRYPT_CCMP=y > CONFIG_IEEE80211_CRYPT_TKIP=y > CONFIG_IEEE80211_SOFTMAC=y > # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set > CONFIG_WIRELESS_EXT=y > > # > # Device Drivers > # > > # > # Generic Driver Options > # > CONFIG_STANDALONE=y > CONFIG_PREVENT_FIRMWARE_BUILD=y > CONFIG_FW_LOADER=y > # CONFIG_DEBUG_DRIVER is not set > # CONFIG_SYS_HYPERVISOR is not set > > # > # Connector - unified userspace <-> kernelspace linker > # > CONFIG_CONNECTOR=y > CONFIG_PROC_EVENTS=y > > # > # Memory Technology Devices (MTD) > # > # CONFIG_MTD is not set > > # > # Parallel port support > # > # CONFIG_PARPORT is not set > > # > # Plug and Play support > # > # CONFIG_PNP is not set > > # > # Block devices > # > # CONFIG_BLK_DEV_FD is not set > # CONFIG_BLK_CPQ_DA is not set > # CONFIG_BLK_CPQ_CISS_DA is not set > # CONFIG_BLK_DEV_DAC960 is not set > # CONFIG_BLK_DEV_UMEM is not set > # CONFIG_BLK_DEV_COW_COMMON is not set > CONFIG_BLK_DEV_LOOP=y > CONFIG_BLK_DEV_CRYPTOLOOP=y > # CONFIG_BLK_DEV_NBD is not set > # CONFIG_BLK_DEV_SX8 is not set > # CONFIG_BLK_DEV_UB is not set > CONFIG_BLK_DEV_RAM=y > CONFIG_BLK_DEV_RAM_COUNT=16 > CONFIG_BLK_DEV_RAM_SIZE=4096 > CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 > CONFIG_BLK_DEV_INITRD=y > CONFIG_CDROM_PKTCDVD=y > CONFIG_CDROM_PKTCDVD_BUFFERS=8 > CONFIG_CDROM_PKTCDVD_WCACHE=y > # CONFIG_ATA_OVER_ETH is not set > > # > # Misc devices > # > # CONFIG_IBM_ASM is not set > # CONFIG_SGI_IOC4 is not set > # CONFIG_TIFM_CORE is not set > > # > # ATA/ATAPI/MFM/RLL support > # > # CONFIG_IDE is not set > > # > # SCSI device support > # > # CONFIG_RAID_ATTRS is not set > CONFIG_SCSI=y > # CONFIG_SCSI_NETLINK is not set > CONFIG_SCSI_PROC_FS=y > > # > # SCSI support type (disk, tape, CD-ROM) > # > CONFIG_BLK_DEV_SD=y > # CONFIG_CHR_DEV_ST is not set > # CONFIG_CHR_DEV_OSST is not set > CONFIG_BLK_DEV_SR=y > CONFIG_BLK_DEV_SR_VENDOR=y > CONFIG_CHR_DEV_SG=y > # CONFIG_CHR_DEV_SCH is not set > > # > # Some SCSI devices (e.g. CD jukebox) support multiple LUNs > # > CONFIG_SCSI_MULTI_LUN=y > # CONFIG_SCSI_CONSTANTS is not set > # CONFIG_SCSI_LOGGING is not set > > # > # SCSI Transports > # > # CONFIG_SCSI_SPI_ATTRS is not set > # CONFIG_SCSI_FC_ATTRS is not set > # CONFIG_SCSI_ISCSI_ATTRS is not set > # CONFIG_SCSI_SAS_ATTRS is not set > # CONFIG_SCSI_SAS_LIBSAS is not set > > # > # SCSI low-level drivers > # > # CONFIG_ISCSI_TCP is not set > # CONFIG_BLK_DEV_3W_XXXX_RAID is not set > # CONFIG_SCSI_3W_9XXX is not set > # CONFIG_SCSI_ACARD is not set > # CONFIG_SCSI_AACRAID is not set > # CONFIG_SCSI_AIC7XXX is not set > # CONFIG_SCSI_AIC7XXX_OLD is not set > # CONFIG_SCSI_AIC79XX is not set > # CONFIG_SCSI_AIC94XX is not set > # CONFIG_SCSI_DPT_I2O is not set > # CONFIG_SCSI_ADVANSYS is not set > # CONFIG_SCSI_ARCMSR is not set > # CONFIG_MEGARAID_NEWGEN is not set > # CONFIG_MEGARAID_LEGACY is not set > # CONFIG_MEGARAID_SAS is not set > # CONFIG_SCSI_HPTIOP is not set > # CONFIG_SCSI_BUSLOGIC is not set > # CONFIG_SCSI_DMX3191D is not set > # CONFIG_SCSI_EATA is not set > # CONFIG_SCSI_FUTURE_DOMAIN is not set > # CONFIG_SCSI_GDTH is not set > # CONFIG_SCSI_IPS is not set > # CONFIG_SCSI_INITIO is not set > # CONFIG_SCSI_INIA100 is not set > # CONFIG_SCSI_STEX is not set > # CONFIG_SCSI_SYM53C8XX_2 is not set > # CONFIG_SCSI_IPR is not set > # CONFIG_SCSI_QLOGIC_1280 is not set > # CONFIG_SCSI_QLA_FC is not set > # CONFIG_SCSI_QLA_ISCSI is not set > # CONFIG_SCSI_LPFC is not set > # CONFIG_SCSI_DC395x is not set > # CONFIG_SCSI_DC390T is not set > # CONFIG_SCSI_NSP32 is not set > # CONFIG_SCSI_DEBUG is not set > > # > # Serial ATA (prod) and Parallel ATA (experimental) drivers > # > CONFIG_ATA=y > # CONFIG_SATA_AHCI is not set > # CONFIG_SATA_SVW is not set > CONFIG_ATA_PIIX=y > # CONFIG_SATA_MV is not set > # CONFIG_SATA_NV is not set > # CONFIG_PDC_ADMA is not set > # CONFIG_SATA_QSTOR is not set > # CONFIG_SATA_PROMISE is not set > # CONFIG_SATA_SX4 is not set > # CONFIG_SATA_SIL is not set > # CONFIG_SATA_SIL24 is not set > # CONFIG_SATA_SIS is not set > # CONFIG_SATA_ULI is not set > # CONFIG_SATA_VIA is not set > # CONFIG_SATA_VITESSE is not set > # CONFIG_PATA_ALI is not set > # CONFIG_PATA_AMD is not set > # CONFIG_PATA_ARTOP is not set > # CONFIG_PATA_ATIIXP is not set > # CONFIG_PATA_CMD64X is not set > # CONFIG_PATA_CS5520 is not set > # CONFIG_PATA_CS5530 is not set > # CONFIG_PATA_CS5535 is not set > # CONFIG_PATA_CYPRESS is not set > # CONFIG_PATA_EFAR is not set > # CONFIG_ATA_GENERIC is not set > # CONFIG_PATA_HPT366 is not set > # CONFIG_PATA_HPT37X is not set > # CONFIG_PATA_HPT3X2N is not set > # CONFIG_PATA_HPT3X3 is not set > # CONFIG_PATA_IT821X is not set > # CONFIG_PATA_JMICRON is not set > # CONFIG_PATA_TRIFLEX is not set > # CONFIG_PATA_MPIIX is not set > # CONFIG_PATA_OLDPIIX is not set > # CONFIG_PATA_NETCELL is not set > # CONFIG_PATA_NS87410 is not set > # CONFIG_PATA_OPTI is not set > # CONFIG_PATA_OPTIDMA is not set > # CONFIG_PATA_PDC_OLD is not set > # CONFIG_PATA_RADISYS is not set > # CONFIG_PATA_RZ1000 is not set > # CONFIG_PATA_SC1200 is not set > # CONFIG_PATA_SERVERWORKS is not set > # CONFIG_PATA_PDC2027X is not set > # CONFIG_PATA_SIL680 is not set > # CONFIG_PATA_SIS is not set > # CONFIG_PATA_VIA is not set > # CONFIG_PATA_WINBOND is not set > > # > # Multi-device support (RAID and LVM) > # > # CONFIG_MD is not set > > # > # Fusion MPT device support > # > # CONFIG_FUSION is not set > # CONFIG_FUSION_SPI is not set > # CONFIG_FUSION_FC is not set > # CONFIG_FUSION_SAS is not set > > # > # IEEE 1394 (FireWire) support > # > CONFIG_IEEE1394=y > > # > # Subsystem Options > # > # CONFIG_IEEE1394_VERBOSEDEBUG is not set > CONFIG_IEEE1394_OUI_DB=y > CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y > CONFIG_IEEE1394_CONFIG_ROM_IP1394=y > CONFIG_IEEE1394_EXPORT_FULL_API=y > > # > # Device Drivers > # > CONFIG_IEEE1394_PCILYNX=y > CONFIG_IEEE1394_OHCI1394=y > > # > # Protocol Drivers > # > CONFIG_IEEE1394_VIDEO1394=y > CONFIG_IEEE1394_SBP2=y > # CONFIG_IEEE1394_SBP2_PHYS_DMA is not set > CONFIG_IEEE1394_ETH1394=y > CONFIG_IEEE1394_DV1394=y > CONFIG_IEEE1394_RAWIO=y > > # > # I2O device support > # > # CONFIG_I2O is not set > > # > # Macintosh device drivers > # > # CONFIG_MAC_EMUMOUSEBTN is not set > > # > # Network device support > # > CONFIG_NETDEVICES=y > CONFIG_DUMMY=y > # CONFIG_BONDING is not set > # CONFIG_EQUALIZER is not set > # CONFIG_TUN is not set > > # > # ARCnet devices > # > # CONFIG_ARCNET is not set > > # > # PHY device support > # > > # > # Ethernet (10 or 100Mbit) > # > # CONFIG_NET_ETHERNET is not set > > # > # Ethernet (1000 Mbit) > # > # CONFIG_ACENIC is not set > # CONFIG_DL2K is not set > # CONFIG_E1000 is not set > # CONFIG_NS83820 is not set > # CONFIG_HAMACHI is not set > # CONFIG_YELLOWFIN is not set > # CONFIG_R8169 is not set > # CONFIG_SIS190 is not set > # CONFIG_SKGE is not set > CONFIG_SKY2=y > # CONFIG_SK98LIN is not set > # CONFIG_TIGON3 is not set > # CONFIG_BNX2 is not set > # CONFIG_QLA3XXX is not set > > # > # Ethernet (10000 Mbit) > # > # CONFIG_CHELSIO_T1 is not set > # CONFIG_IXGB is not set > # CONFIG_S2IO is not set > # CONFIG_MYRI10GE is not set > > # > # Token Ring devices > # > # CONFIG_TR is not set > > # > # Wireless LAN (non-hamradio) > # > CONFIG_NET_RADIO=y > CONFIG_NET_WIRELESS_RTNETLINK=y > > # > # Obsolete Wireless cards support (pre-802.11) > # > # CONFIG_STRIP is not set > > # > # Wireless 802.11b ISA/PCI cards support > # > # CONFIG_IPW2100 is not set > # CONFIG_IPW2200 is not set > # CONFIG_AIRO is not set > # CONFIG_HERMES is not set > # CONFIG_ATMEL is not set > > # > # Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support > # > # CONFIG_PRISM54 is not set > # CONFIG_USB_ZD1201 is not set > # CONFIG_HOSTAP is not set > # CONFIG_BCM43XX is not set > # CONFIG_ZD1211RW is not set > CONFIG_NET_WIRELESS=y > > # > # Wan interfaces > # > # CONFIG_WAN is not set > # CONFIG_FDDI is not set > # CONFIG_HIPPI is not set > # CONFIG_PPP is not set > # CONFIG_SLIP is not set > # CONFIG_NET_FC is not set > # CONFIG_SHAPER is not set > # CONFIG_NETCONSOLE is not set > # CONFIG_NETPOLL is not set > # CONFIG_NET_POLL_CONTROLLER is not set > > # > # ISDN subsystem > # > # CONFIG_ISDN is not set > > # > # Telephony Support > # > # CONFIG_PHONE is not set > > # > # Input device support > # > CONFIG_INPUT=y > # CONFIG_INPUT_FF_MEMLESS is not set > > # > # Userland interfaces > # > CONFIG_INPUT_MOUSEDEV=y > # CONFIG_INPUT_MOUSEDEV_PSAUX is not set > CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 > CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 > # CONFIG_INPUT_JOYDEV is not set > # CONFIG_INPUT_TSDEV is not set > CONFIG_INPUT_EVDEV=y > # CONFIG_INPUT_EVBUG is not set > > # > # Input Device Drivers > # > CONFIG_INPUT_KEYBOARD=y > CONFIG_KEYBOARD_ATKBD=y > # CONFIG_KEYBOARD_SUNKBD is not set > # CONFIG_KEYBOARD_LKKBD is not set > # CONFIG_KEYBOARD_XTKBD is not set > # CONFIG_KEYBOARD_NEWTON is not set > # CONFIG_KEYBOARD_STOWAWAY is not set > CONFIG_INPUT_MOUSE=y > CONFIG_MOUSE_PS2=y > # CONFIG_MOUSE_SERIAL is not set > # CONFIG_MOUSE_VSXXXAA is not set > # CONFIG_INPUT_JOYSTICK is not set > # CONFIG_INPUT_TOUCHSCREEN is not set > # CONFIG_INPUT_MISC is not set > > # > # Hardware I/O ports > # > CONFIG_SERIO=y > CONFIG_SERIO_I8042=y > # CONFIG_SERIO_SERPORT is not set > # CONFIG_SERIO_CT82C710 is not set > # CONFIG_SERIO_PCIPS2 is not set > CONFIG_SERIO_LIBPS2=y > # CONFIG_SERIO_RAW is not set > # CONFIG_GAMEPORT is not set > > # > # Character devices > # > CONFIG_VT=y > CONFIG_VT_CONSOLE=y > CONFIG_HW_CONSOLE=y > # CONFIG_VT_HW_CONSOLE_BINDING is not set > # CONFIG_SERIAL_NONSTANDARD is not set > > # > # Serial drivers > # > # CONFIG_SERIAL_8250 is not set > > # > # Non-8250 serial port support > # > # CONFIG_SERIAL_JSM is not set > CONFIG_UNIX98_PTYS=y > CONFIG_LEGACY_PTYS=y > CONFIG_LEGACY_PTY_COUNT=256 > > # > # IPMI > # > # CONFIG_IPMI_HANDLER is not set > > # > # Watchdog Cards > # > # CONFIG_WATCHDOG is not set > CONFIG_HW_RANDOM=y > CONFIG_HW_RANDOM_INTEL=y > # CONFIG_HW_RANDOM_AMD is not set > # CONFIG_HW_RANDOM_GEODE is not set > # CONFIG_HW_RANDOM_VIA is not set > CONFIG_NVRAM=y > CONFIG_RTC=y > # CONFIG_DTLK is not set > # CONFIG_R3964 is not set > # CONFIG_APPLICOM is not set > # CONFIG_SONYPI is not set > > # > # Ftape, the floppy tape device driver > # > CONFIG_AGP=y > # CONFIG_AGP_ALI is not set > # CONFIG_AGP_ATI is not set > # CONFIG_AGP_AMD is not set > # CONFIG_AGP_AMD64 is not set > CONFIG_AGP_INTEL=y > # CONFIG_AGP_NVIDIA is not set > # CONFIG_AGP_SIS is not set > # CONFIG_AGP_SWORKS is not set > # CONFIG_AGP_VIA is not set > # CONFIG_AGP_EFFICEON is not set > # CONFIG_DRM is not set > # CONFIG_MWAVE is not set > # CONFIG_PC8736x_GPIO is not set > # CONFIG_NSC_GPIO is not set > # CONFIG_CS5535_GPIO is not set > # CONFIG_RAW_DRIVER is not set > # CONFIG_HPET is not set > # CONFIG_HANGCHECK_TIMER is not set > > # > # TPM devices > # > CONFIG_TCG_TPM=y > # CONFIG_TCG_ATMEL is not set > # CONFIG_TELCLOCK is not set > > # > # I2C support > # > CONFIG_I2C=y > CONFIG_I2C_CHARDEV=y > > # > # I2C Algorithms > # > CONFIG_I2C_ALGOBIT=y > # CONFIG_I2C_ALGOPCF is not set > # CONFIG_I2C_ALGOPCA is not set > > # > # I2C Hardware Bus support > # > # CONFIG_I2C_ALI1535 is not set > # CONFIG_I2C_ALI1563 is not set > # CONFIG_I2C_ALI15X3 is not set > # CONFIG_I2C_AMD756 is not set > # CONFIG_I2C_AMD8111 is not set > CONFIG_I2C_I801=y > # CONFIG_I2C_I810 is not set > # CONFIG_I2C_PIIX4 is not set > # CONFIG_I2C_NFORCE2 is not set > # CONFIG_I2C_OCORES is not set > # CONFIG_I2C_PARPORT_LIGHT is not set > # CONFIG_I2C_PROSAVAGE is not set > # CONFIG_I2C_SAVAGE4 is not set > # CONFIG_SCx200_ACB is not set > # CONFIG_I2C_SIS5595 is not set > # CONFIG_I2C_SIS630 is not set > # CONFIG_I2C_SIS96X is not set > # CONFIG_I2C_STUB is not set > # CONFIG_I2C_VIA is not set > # CONFIG_I2C_VIAPRO is not set > # CONFIG_I2C_VOODOO3 is not set > # CONFIG_I2C_PCA_ISA is not set > > # > # Miscellaneous I2C Chip support > # > # CONFIG_SENSORS_DS1337 is not set > # CONFIG_SENSORS_DS1374 is not set > CONFIG_SENSORS_EEPROM=y > # CONFIG_SENSORS_PCF8574 is not set > # CONFIG_SENSORS_PCA9539 is not set > # CONFIG_SENSORS_PCF8591 is not set > # CONFIG_SENSORS_MAX6875 is not set > # CONFIG_I2C_DEBUG_CORE is not set > # CONFIG_I2C_DEBUG_ALGO is not set > # CONFIG_I2C_DEBUG_BUS is not set > # CONFIG_I2C_DEBUG_CHIP is not set > > # > # SPI support > # > # CONFIG_SPI is not set > # CONFIG_SPI_MASTER is not set > > # > # Dallas's 1-wire bus > # > # CONFIG_W1 is not set > > # > # Hardware Monitoring support > # > CONFIG_HWMON=y > # CONFIG_HWMON_VID is not set > # CONFIG_SENSORS_ABITUGURU is not set > # CONFIG_SENSORS_ADM1021 is not set > # CONFIG_SENSORS_ADM1025 is not set > # CONFIG_SENSORS_ADM1026 is not set > # CONFIG_SENSORS_ADM1031 is not set > # CONFIG_SENSORS_ADM9240 is not set > # CONFIG_SENSORS_K8TEMP is not set > # CONFIG_SENSORS_ASB100 is not set > # CONFIG_SENSORS_ATXP1 is not set > CONFIG_SENSORS_CORETEMP=y > # CONFIG_SENSORS_DS1621 is not set > # CONFIG_SENSORS_F71805F is not set > # CONFIG_SENSORS_FSCHER is not set > # CONFIG_SENSORS_FSCPOS is not set > # CONFIG_SENSORS_GL518SM is not set > # CONFIG_SENSORS_GL520SM is not set > # CONFIG_SENSORS_IT87 is not set > # CONFIG_SENSORS_LM63 is not set > # CONFIG_SENSORS_LM75 is not set > # CONFIG_SENSORS_LM77 is not set > # CONFIG_SENSORS_LM78 is not set > # CONFIG_SENSORS_LM80 is not set > # CONFIG_SENSORS_LM83 is not set > # CONFIG_SENSORS_LM85 is not set > # CONFIG_SENSORS_LM87 is not set > # CONFIG_SENSORS_LM90 is not set > # CONFIG_SENSORS_LM92 is not set > # CONFIG_SENSORS_MAX1619 is not set > # CONFIG_SENSORS_PC87360 is not set > # CONFIG_SENSORS_SIS5595 is not set > # CONFIG_SENSORS_SMSC47M1 is not set > # CONFIG_SENSORS_SMSC47M192 is not set > # CONFIG_SENSORS_SMSC47B397 is not set > # CONFIG_SENSORS_VIA686A is not set > # CONFIG_SENSORS_VT1211 is not set > # CONFIG_SENSORS_VT8231 is not set > # CONFIG_SENSORS_W83781D is not set > # CONFIG_SENSORS_W83791D is not set > # CONFIG_SENSORS_W83792D is not set > # CONFIG_SENSORS_W83L785TS is not set > # CONFIG_SENSORS_W83627HF is not set > # CONFIG_SENSORS_W83627EHF is not set > # CONFIG_SENSORS_HDAPS is not set > CONFIG_SENSORS_APPLESMC=y > # CONFIG_HWMON_DEBUG_CHIP is not set > > # > # Multimedia devices > # > CONFIG_VIDEO_DEV=y > # CONFIG_VIDEO_V4L1 is not set > CONFIG_VIDEO_V4L1_COMPAT=y > CONFIG_VIDEO_V4L2=y > > # > # Video Capture Adapters > # > > # > # Video Capture Adapters > # > # CONFIG_VIDEO_ADV_DEBUG is not set > CONFIG_VIDEO_HELPER_CHIPS_AUTO=y > # CONFIG_VIDEO_VIVI is not set > # CONFIG_VIDEO_SAA5246A is not set > # CONFIG_VIDEO_SAA5249 is not set > # CONFIG_VIDEO_SAA7134 is not set > # CONFIG_VIDEO_HEXIUM_ORION is not set > # CONFIG_VIDEO_HEXIUM_GEMINI is not set > # CONFIG_VIDEO_CX88 is not set > > # > # V4L USB devices > # > # CONFIG_VIDEO_PVRUSB2 is not set > > # > # Radio Adapters > # > # CONFIG_RADIO_GEMTEK_PCI is not set > # CONFIG_RADIO_MAXIRADIO is not set > # CONFIG_RADIO_MAESTRO is not set > # CONFIG_USB_DSBR is not set > > # > # Digital Video Broadcasting Devices > # > # CONFIG_DVB is not set > # CONFIG_USB_DABUSB is not set > > # > # Graphics support > # > CONFIG_FIRMWARE_EDID=y > CONFIG_FB=y > CONFIG_FB_DDC=y > CONFIG_FB_CFB_FILLRECT=y > CONFIG_FB_CFB_COPYAREA=y > CONFIG_FB_CFB_IMAGEBLIT=y > # CONFIG_FB_MACMODES is not set > # CONFIG_FB_BACKLIGHT is not set > CONFIG_FB_MODE_HELPERS=y > # CONFIG_FB_TILEBLITTING is not set > # CONFIG_FB_CIRRUS is not set > # CONFIG_FB_PM2 is not set > # CONFIG_FB_CYBER2000 is not set > # CONFIG_FB_ARC is not set > # CONFIG_FB_ASILIANT is not set > # CONFIG_FB_IMSTT is not set > # CONFIG_FB_VGA16 is not set > CONFIG_FB_VESA=y > # CONFIG_FB_VESA_STD is not set > CONFIG_FB_VESA_TNG=y > CONFIG_FB_VESA_DEFAULT_MODE="1152x864-24@60" > CONFIG_VIDEO_SELECT=y > # CONFIG_FB_HGA is not set > # CONFIG_FB_S1D13XXX is not set > # CONFIG_FB_NVIDIA is not set > # CONFIG_FB_RIVA is not set > # CONFIG_FB_I810 is not set > # CONFIG_FB_INTEL is not set > # CONFIG_FB_MATROX is not set > CONFIG_FB_RADEON=y > CONFIG_FB_RADEON_I2C=y > # CONFIG_FB_RADEON_DEBUG is not set > # CONFIG_FB_ATY128 is not set > # CONFIG_FB_ATY is not set > # CONFIG_FB_SAVAGE is not set > # CONFIG_FB_SIS is not set > # CONFIG_FB_NEOMAGIC is not set > # CONFIG_FB_KYRO is not set > # CONFIG_FB_3DFX is not set > # CONFIG_FB_VOODOO1 is not set > # CONFIG_FB_CYBLA is not set > # CONFIG_FB_TRIDENT is not set > # CONFIG_FB_GEODE is not set > # CONFIG_FB_VIRTUAL is not set > > # > # Console display driver support > # > CONFIG_VGA_CONSOLE=y > CONFIG_VGACON_SOFT_SCROLLBACK=y > CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=1024 > CONFIG_DUMMY_CONSOLE=y > CONFIG_FRAMEBUFFER_CONSOLE=y > # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set > CONFIG_FONTS=y > CONFIG_FONT_8x8=y > CONFIG_FONT_8x16=y > # CONFIG_FONT_6x11 is not set > # CONFIG_FONT_7x14 is not set > # CONFIG_FONT_PEARL_8x8 is not set > # CONFIG_FONT_ACORN_8x8 is not set > # CONFIG_FONT_MINI_4x6 is not set > # CONFIG_FONT_SUN8x16 is not set > # CONFIG_FONT_SUN12x22 is not set > # CONFIG_FONT_10x18 is not set > > # > # Logo configuration > # > # CONFIG_LOGO is not set > # CONFIG_BACKLIGHT_LCD_SUPPORT is not set > CONFIG_FB_SPLASH=y > > # > # Speakup console speech > # > # CONFIG_SPEAKUP is not set > > # > # Sound > # > CONFIG_SOUND=y > > # > # Advanced Linux Sound Architecture > # > # CONFIG_SND is not set > > # > # Open Sound System > # > # CONFIG_SOUND_PRIME is not set > > # > # USB support > # > CONFIG_USB_ARCH_HAS_HCD=y > CONFIG_USB_ARCH_HAS_OHCI=y > CONFIG_USB_ARCH_HAS_EHCI=y > CONFIG_USB=y > # CONFIG_USB_DEBUG is not set > > # > # Miscellaneous USB options > # > CONFIG_USB_DEVICEFS=y > CONFIG_USB_BANDWIDTH=y > CONFIG_USB_DYNAMIC_MINORS=y > # CONFIG_USB_SUSPEND is not set > # CONFIG_USB_OTG is not set > > # > # USB Host Controller Drivers > # > CONFIG_USB_EHCI_HCD=y > CONFIG_USB_EHCI_SPLIT_ISO=y > CONFIG_USB_EHCI_ROOT_HUB_TT=y > # CONFIG_USB_EHCI_TT_NEWSCHED is not set > # CONFIG_USB_ISP116X_HCD is not set > # CONFIG_USB_OHCI_HCD is not set > CONFIG_USB_UHCI_HCD=y > # CONFIG_USB_SL811_HCD is not set > > # > # USB Device Class drivers > # > # CONFIG_USB_ACM is not set > # CONFIG_USB_PRINTER is not set > > # > # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk suppor... [truncated message content] |
|
From: Stefan B. <br...@cs...> - 2007-02-09 00:16:46
|
At 15:02 +0100 on 2007-2-8 Guillaume Pujol wrote:
>
> What I forgot to mention is that, when I try 2.6.19, _sometimes_ it
> succeeds (boots succesfully) , and _most of the times_ it ends up
> with a VFS error. But maybe I'm doing something wrong ? Here is my
> .config for 2.6.19; I'd be happy if you find my problem, or give me
> your own .config for comparison:
I don't know about others, but what is different between my config and
yours is that I compiles PATA support into the "ATA/ATAPI/MFM/RLL
support" (CONFIG_IDE=y) and not in the "Serial ATA (prod) and Parallel
ATA (experimental) drivers" (where I have only my STATA driver). I
don't know if this makes any difference, but fact is my 2.6.19 kernel
boots just fine. I am not sure what else you do different (and is
pertinent to the matter at hand), but if I discover something else you
will be the first to know.
By the way (and keeping in line with the subject), eliminating the sbs
module from the kernel makes some difference, but I still loose
battery information over time--happened last night actually, after
some 10-12 hours of uptime.
Cheers,
Stefan
--
If it was so, it might be; and if it were so, it would be; but as
it isn't, it ain't. That's logic.
--Lewis Carroll, Through the Looking-Glass
|
|
From: Guillaume P. <gui...@gm...> - 2007-02-09 08:43:43
|
2007/2/9, Stefan Bruda <br...@cs...>: > At 15:02 +0100 on 2007-2-8 Guillaume Pujol wrote: > > > > What I forgot to mention is that, when I try 2.6.19, _sometimes_ it > > succeeds (boots succesfully) , and _most of the times_ it ends up > > with a VFS error. But maybe I'm doing something wrong ? Here is my > > .config for 2.6.19; I'd be happy if you find my problem, or give me > > your own .config for comparison: > > I don't know about others, but what is different between my config and > yours is that I compiles PATA support into the "ATA/ATAPI/MFM/RLL > support" (CONFIG_IDE=y) and not in the "Serial ATA (prod) and Parallel > ATA (experimental) drivers" (where I have only my STATA driver). I > don't know if this makes any difference, but fact is my 2.6.19 kernel > boots just fine. I am not sure what else you do different (and is > pertinent to the matter at hand), but if I discover something else you > will be the first to know. OK thanks you :) I think I'll jump directly to 2.6.20 anyways, so I hope I won't have this problem anymore. > By the way (and keeping in line with the subject), eliminating the sbs > module from the kernel makes some difference, but I still loose > battery information over time--happened last night actually, after > some 10-12 hours of uptime. That's really strange, I never noticed a problem with my battery reporting, including after some suspend/resume cycles and more than 20 hours of uptime. Here's my /proc/acpi/battery/BAT0/info for reference: present: yes design capacity: 55000 mWh last full capacity: 51270 mWh battery technology: rechargeable design voltage: 11100 mV design capacity warning: 250 mWh design capacity low: 100 mWh capacity granularity 1: 10 mWh capacity granularity 2: 10 mWh model number: ASMB012 serial number: battery type: LION012 OEM info: Sony012 Maybe we have two different models of battery... Regards, |
|
From: Stefan B. <br...@cs...> - 2007-02-09 18:20:50
|
At 09:43 +0100 on 2007-2-9 Guillaume Pujol wrote:
>
> > By the way (and keeping in line with the subject), eliminating the sbs
> > module from the kernel makes some difference, but I still loose
> > battery information over time--happened last night actually, after
> > some 10-12 hours of uptime.
>
> That's really strange, I never noticed a problem with my battery
> reporting, including after some suspend/resume cycles and more than 20
> hours of uptime. Here's my /proc/acpi/battery/BAT0/info for reference:
>
> present: yes
> design capacity: 55000 mWh
> last full capacity: 51270 mWh
> battery technology: rechargeable
> design voltage: 11100 mV
> design capacity warning: 250 mWh
> design capacity low: 100 mWh
> capacity granularity 1: 10 mWh
> capacity granularity 2: 10 mWh
> model number: ASMB012
> serial number:
> battery type: LION012
> OEM info: Sony012
Yep, that's my battery too. It is really strange. I have no idea
what is going on. Thanks for the battery info though.
Stefan
--
If it was so, it might be; and if it were so, it would be; but as
it isn't, it ain't. That's logic.
--Lewis Carroll, Through the Looking-Glass
|
|
From: <nbo...@us...> - 2007-03-10 18:31:40
|
Revision: 83
http://svn.sourceforge.net/mactel-linux/?rev=83&view=rev
Author: nboichat
Date: 2007-03-10 10:31:37 -0800 (Sat, 10 Mar 2007)
Log Message:
-----------
Add patch series for 2.6.21-rc3
Added Paths:
-----------
trunk/kernel/mactel-patches-2.6.21/
trunk/kernel/mactel-patches-2.6.21/applesmc.patch
trunk/kernel/mactel-patches-2.6.21/appletouch.patch
trunk/kernel/mactel-patches-2.6.21/apply
trunk/kernel/mactel-patches-2.6.21/coretemp.patch
trunk/kernel/mactel-patches-2.6.21/unapply
trunk/kernel/mactel-patches-2.6.21/usb-storage-zerowait.patch
Added: trunk/kernel/mactel-patches-2.6.21/applesmc.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.21/applesmc.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.21/applesmc.patch 2007-03-10 18:31:37 UTC (rev 83)
@@ -0,0 +1,976 @@
+Apple SMC driver.
+
+From: Nicolas Boichat <ni...@bo...>
+
+
+---
+
+ drivers/hwmon/Kconfig | 22 +
+ drivers/hwmon/Makefile | 1
+ drivers/hwmon/applesmc.c | 913 ++++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 936 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
+index c3d4856..7d8c013 100644
+--- a/drivers/hwmon/Kconfig
++++ b/drivers/hwmon/Kconfig
+@@ -593,6 +593,28 @@ config SENSORS_HDAPS
+ Say Y here if you have an applicable laptop and want to experience
+ the awesome power of hdaps.
+
++config SENSORS_APPLESMC
++ tristate "Apple SMC (Motion sensor, light sensor, keyboard backlight)"
++ depends on HWMON && INPUT && X86
++ select NEW_LEDS
++ select LEDS_CLASS
++ default n
++ help
++ This driver provides support for the Apple System Management
++ Controller, which provides an accelerometer (Apple Sudden Motion
++ Sensor), light sensors, and keyboard backlight control.
++
++ Only Intel-based Apple's laptops are supported (MacBook Pro, MacBook).
++
++ The accelerometer and light sensors data is readable via sysfs, and
++ the keyboard backlight is writable.
++
++ This driver also provides an absolute input class device, allowing
++ the laptop to act as a pinball machine-esque joystick.
++
++ Say Y here if you have an applicable laptop and want to experience
++ the awesome power of applesmc.
++
+ config HWMON_DEBUG_CHIP
+ bool "Hardware Monitoring Chip debugging messages"
+ depends on HWMON
+diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
+index 4165c27..544f8d8 100644
+--- a/drivers/hwmon/Makefile
++++ b/drivers/hwmon/Makefile
+@@ -20,6 +20,7 @@ obj-$(CONFIG_SENSORS_ADM1026) += adm1026.o
+ obj-$(CONFIG_SENSORS_ADM1029) += adm1029.o
+ obj-$(CONFIG_SENSORS_ADM1031) += adm1031.o
+ obj-$(CONFIG_SENSORS_ADM9240) += adm9240.o
++obj-$(CONFIG_SENSORS_APPLESMC) += applesmc.o
+ obj-$(CONFIG_SENSORS_AMS) += ams/
+ obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o
+ obj-$(CONFIG_SENSORS_DS1621) += ds1621.o
+diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
+new file mode 100644
+index 0000000..5ea432c
+--- /dev/null
++++ b/drivers/hwmon/applesmc.c
+@@ -0,0 +1,913 @@
++/*
++ * drivers/hwmon/applesmc.c - driver for Apple's SMC (various sensors,
++ * fan control)
++ *
++ * Copyright (C) 2006 Nicolas Boichat <ni...@bo...>
++ *
++ * Based on hdaps.c driver:
++ * Copyright (C) 2005 Robert Love <rm...@no...>
++ * Copyright (C) 2005 Jesper Juhl <jes...@gm...>
++ *
++ * Fan control based on smcFanControl:
++ * Copyright (C) 2006 Hendrik Holtmann <hol...@ma...>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License v2 as published by the
++ * Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
++ */
++
++#include <linux/delay.h>
++#include <linux/platform_device.h>
++#include <linux/input.h>
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/timer.h>
++#include <linux/dmi.h>
++#include <asm/io.h>
++#include <linux/leds.h>
++
++/* data port used by apple SMC */
++#define APPLESMC_DATA_PORT 0x300
++/* command/status port used by apple SMC */
++#define APPLESMC_CMD_PORT 0x304
++
++#define APPLESMC_NR_PORTS 5 /* 0x300-0x304 */
++
++#define APPLESMC_STATUS_MASK 0x0f
++#define APPLESMC_READ_CMD 0x10
++#define APPLESMC_WRITE_CMD 0x11
++
++#define LIGHT_SENSOR_LEFT_KEY "ALV0" //r-o length 6
++#define LIGHT_SENSOR_RIGHT_KEY "ALV1" //r-o length 6
++#define BACKLIGHT_KEY "LKSB" //w-o
++
++#define CLAMSHELL_KEY "MSLD" //r-o length 1 (unused)
++
++#define MOTION_SENSOR_X_KEY "MO_X" //r-o length 2
++#define MOTION_SENSOR_Y_KEY "MO_Y" //r-o length 2
++#define MOTION_SENSOR_Z_KEY "MO_Z" //r-o length 2
++#define MOTION_SENSOR_KEY "MOCN" //r/w length 2
++
++#define FANS_COUNT "FNum" //r-o length 1
++#define FANS_MANUAL "FS! " //r-w length 2
++#define FAN_ACTUAL_SPEED "F0Ac" //r-o length 2
++#define FAN_MIN_SPEED "F0Mn" //r-o length 2
++#define FAN_MAX_SPEED "F0Mx" //r-o length 2
++#define FAN_SAFE_SPEED "F0Sf" //r-o length 2
++#define FAN_TARGET_SPEED "F0Tg" //r-w length 2
++
++static const char* temperature_sensors_sets[][8] =
++{
++ { "TB0T", "TC0D", "TC0P", "Th0H", "Ts0P", "Th1H", "Ts1P", NULL },
++ { "TC0D", "TC0P", NULL }
++};
++
++#define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */
++#define INIT_WAIT_MSECS 50 /* ... in 50ms increments */
++
++#define APPLESMC_POLL_PERIOD (HZ/20) /* poll for input every 1/20s */
++#define APPLESMC_INPUT_FUZZ 4 /* input event threshold */
++#define APPLESMC_INPUT_FLAT 4
++
++#define SENSOR_X 0
++#define SENSOR_Y 1
++#define SENSOR_Z 2
++
++/* Structure to be passed to DMI_MATCH function */
++struct dmi_match_data {
++/* Indicate whether this computer has an accelerometer. */
++ int accelerometer;
++/* Indicate whether this computer has light sensors and keyboard backlight. */
++ int light;
++/* Indicate which temperature sensors set to use. */
++ int temperature_set;
++};
++
++static int debug = 0;
++static struct platform_device *pdev;
++static s16 rest_x;
++static s16 rest_y;
++static struct timer_list applesmc_timer;
++static struct input_dev *applesmc_idev;
++
++/* Indicate whether this computer has an accelerometer. */
++static unsigned int applesmc_accelerometer = 0;
++
++/* Indicate whether this computer has light sensors and keyboard backlight. */
++static unsigned int applesmc_light = 0;
++
++/* Indicate which temperature sensors set to use. */
++static unsigned int applesmc_temperature_set = 0;
++
++static DECLARE_MUTEX(applesmc_sem);
++
++/*
++ * __wait_status - Wait up to 100ms for the status port to get a certain value
++ * (masked with 0x0f), returning zero if the value is obtained. Callers must
++ * hold applesmc_sem.
++ */
++static int __wait_status(u8 val)
++{
++ unsigned int i;
++
++ val = val & APPLESMC_STATUS_MASK;
++
++ for (i = 0; i < 10000; i++) {
++ if ((inb(APPLESMC_CMD_PORT) & APPLESMC_STATUS_MASK) == val)
++ return 0;
++ udelay(10);
++ }
++
++ printk(KERN_WARNING "applesmc: wait status failed: %x != %x\n",
++ val, inb(APPLESMC_CMD_PORT));
++
++ return -EIO;
++}
++
++/*
++ * applesmc_read_key - reads len bytes from a given key, and put them in buffer.
++ * Returns zero on success or a negative error on failure. Callers must
++ * hold applesmc_sem.
++ */
++static int applesmc_read_key(const char* key, u8* buffer, u8 len)
++{
++ int ret = -EIO;
++ int i;
++
++ outb(APPLESMC_READ_CMD, APPLESMC_CMD_PORT);
++ if (__wait_status(0x0c))
++ goto out;
++
++ for (i = 0; i < 4; i++) {
++ outb(key[i], APPLESMC_DATA_PORT);
++ if (__wait_status(0x04))
++ goto out;
++ }
++ if (debug) printk(KERN_DEBUG "<%s", key);
++
++ outb(len, APPLESMC_DATA_PORT);
++ if (debug) printk(KERN_DEBUG ">%x", len);
++
++ for (i = 0; i < len; i++) {
++ if (__wait_status(0x05))
++ goto out;
++ buffer[i] = inb(APPLESMC_DATA_PORT);
++ if (debug) printk(KERN_DEBUG "<%x", buffer[i]);
++ }
++ if (debug) printk(KERN_DEBUG "\n");
++ ret = 0;
++
++out:
++ return ret;
++}
++
++/*
++ * applesmc_write_key - writes len bytes from buffer to a given key.
++ * Returns zero on success or a negative error on failure. Callers must
++ * hold applesmc_sem.
++ */
++static int applesmc_write_key(const char* key, u8* buffer, u8 len)
++{
++ int ret = -EIO;
++ int i;
++
++ outb(APPLESMC_WRITE_CMD, APPLESMC_CMD_PORT);
++ if (__wait_status(0x0c))
++ goto out;
++
++ for (i = 0; i < 4; i++) {
++ outb(key[i], APPLESMC_DATA_PORT);
++ if (__wait_status(0x04))
++ goto out;
++ }
++
++ outb(len, APPLESMC_DATA_PORT);
++
++ for (i = 0; i < len; i++) {
++ if (__wait_status(0x04))
++ goto out;
++ outb(buffer[i], APPLESMC_DATA_PORT);
++ }
++
++ ret = 0;
++out:
++ return ret;
++}
++
++/*
++ * applesmc_read_motion_sensor - Read motion sensor (X, Y or Z). Callers must
++ * hold applesmc_sem.
++ */
++static int applesmc_read_motion_sensor(int index, s16* value) {
++ u8 buffer[2];
++ int ret;
++
++ switch (index) {
++ case SENSOR_X:
++ ret = applesmc_read_key(MOTION_SENSOR_X_KEY, buffer, 2);
++ break;
++ case SENSOR_Y:
++ ret = applesmc_read_key(MOTION_SENSOR_Y_KEY, buffer, 2);
++ break;
++ case SENSOR_Z:
++ ret = applesmc_read_key(MOTION_SENSOR_Z_KEY, buffer, 2);
++ break;
++ default:
++ ret = -EINVAL;
++ }
++
++ *value = ((s16)buffer[0] << 8) | buffer[1];
++
++ return ret;
++}
++
++/*
++ * applesmc_device_init - initialize the accelerometer. Returns zero on success
++ * and negative error code on failure. Can sleep.
++ */
++static int applesmc_device_init(void)
++{
++ int total, ret = -ENXIO;
++ u8 buffer[2];
++
++ if (!applesmc_accelerometer) return 0;
++
++ down(&applesmc_sem);
++
++ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) {
++ if (debug) printk(KERN_DEBUG "applesmc try %d\n", total);
++ if (!applesmc_read_key(MOTION_SENSOR_KEY, buffer, 2) &&
++ (buffer[0] != 0x00 || buffer[1] != 0x00)) {
++ if (total == INIT_TIMEOUT_MSECS) {
++ printk(KERN_DEBUG "applesmc: device has"
++ " already been initialized"
++ " (0x%02x, 0x%02x).\n",
++ buffer[0], buffer[1]);
++ }
++ else {
++ printk(KERN_DEBUG "applesmc: device"
++ " successfully initialized"
++ " (0x%02x, 0x%02x).\n",
++ buffer[0], buffer[1]);
++ }
++ ret = 0;
++ goto out;
++ }
++ buffer[0] = 0xe0;
++ buffer[1] = 0x00;
++ applesmc_write_key(MOTION_SENSOR_KEY, buffer, 2);
++ msleep(INIT_WAIT_MSECS);
++ }
++
++ printk(KERN_WARNING "applesmc: failed to init the device\n");
++
++out:
++ up(&applesmc_sem);
++ return ret;
++}
++
++/*
++ * applesmc_get_fan_count - get the number of fans. Callers must NOT hold
++ * applesmc_sem.
++ */
++static int applesmc_get_fan_count(void)
++{
++ int ret;
++ u8 buffer[1];
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(FANS_COUNT, buffer, 1);
++
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return buffer[0];
++}
++
++/* Device model stuff */
++static int applesmc_probe(struct platform_device *dev)
++{
++ int ret;
++
++ ret = applesmc_device_init();
++ if (ret)
++ return ret;
++
++ printk(KERN_INFO "applesmc: device successfully initialized.\n");
++ return 0;
++}
++
++static int applesmc_resume(struct platform_device *dev)
++{
++ return applesmc_device_init();
++}
++
++static struct platform_driver applesmc_driver = {
++ .probe = applesmc_probe,
++ .resume = applesmc_resume,
++ .driver = {
++ .name = "applesmc",
++ .owner = THIS_MODULE,
++ },
++};
++
++/*
++ * applesmc_calibrate - Set our "resting" values. Callers must hold applesmc_sem.
++ */
++static void applesmc_calibrate(void)
++{
++ applesmc_read_motion_sensor(SENSOR_X, &rest_x);
++ applesmc_read_motion_sensor(SENSOR_Y, &rest_y);
++}
++
++static void applesmc_mousedev_poll(unsigned long unused)
++{
++ s16 x, y;
++
++ /* Cannot sleep. Try nonblockingly. If we fail, try again later. */
++ if (down_trylock(&applesmc_sem)) {
++ mod_timer(&applesmc_timer,jiffies + APPLESMC_POLL_PERIOD);
++ return;
++ }
++
++ if (applesmc_read_motion_sensor(SENSOR_X, &x))
++ goto out;
++ if (applesmc_read_motion_sensor(SENSOR_Y, &y))
++ goto out;
++
++
++ input_report_abs(applesmc_idev, ABS_X, x - rest_x);
++ input_report_abs(applesmc_idev, ABS_Y, y - rest_y);
++ input_sync(applesmc_idev);
++
++out:
++ mod_timer(&applesmc_timer, jiffies + APPLESMC_POLL_PERIOD);
++
++ up(&applesmc_sem);
++}
++
++/* Sysfs Files */
++
++static ssize_t applesmc_position_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ int ret;
++ s16 x, y, z;
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_motion_sensor(SENSOR_X, &x);
++ if (ret)
++ goto out;
++ ret = applesmc_read_motion_sensor(SENSOR_Y, &y);
++ if (ret)
++ goto out;
++ ret = applesmc_read_motion_sensor(SENSOR_Z, &z);
++ if (ret)
++ goto out;
++
++out:
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return sprintf(buf, "(%d,%d,%d)\n", x, y, z);
++}
++
++static ssize_t applesmc_light_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ int ret;
++ u8 left = 0, right = 0;
++ u8 buffer[6];
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(LIGHT_SENSOR_LEFT_KEY, buffer, 6);
++ left = buffer[2];
++ if (ret)
++ goto out;
++ ret = applesmc_read_key(LIGHT_SENSOR_RIGHT_KEY, buffer, 6);
++ right = buffer[2];
++
++out:
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return sprintf(buf, "(%d,%d)\n", left, right);
++}
++
++/* Displays °C * 100 */
++static ssize_t applesmc_show_temperature(struct device *dev, char *buf, const char *key)
++{
++ int ret;
++ u8 buffer[2];
++ unsigned int temp;
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(key, buffer, 2);
++ temp = buffer[0]*100;
++ temp += (buffer[1] >> 6) * 25;
++
++ up(&applesmc_sem);
++
++ if (ret)
++ return ret;
++ else
++ return sprintf(buf, "%u\n", temp);
++}
++
++static ssize_t applesmc_show_fan_speed(struct device *dev, char *buf,
++ const char* key, int offset)
++{
++ int ret;
++ unsigned int speed = 0;
++ char newkey[5];
++ u8 buffer[2];
++
++ newkey[0] = key[0];
++ newkey[1] = '0' + offset;
++ newkey[2] = key[2];
++ newkey[3] = key[3];
++ newkey[4] = 0;
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(newkey, buffer, 2);
++ speed = ((buffer[0] << 8 | buffer[1]) >> 2);
++
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return sprintf(buf, "%u\n", speed);
++}
++
++static ssize_t applesmc_store_fan_speed(struct device *dev, const char *buf,
++ size_t count, const char* key, int offset)
++{
++ int ret;
++ u32 speed;
++ char newkey[5];
++ u8 buffer[2];
++
++ speed = simple_strtoul(buf, NULL, 10);
++
++ if (speed > 0x4000) /* Bigger than a 14-bit value */
++ return -EINVAL;
++
++ newkey[0] = key[0];
++ newkey[1] = '0' + offset;
++ newkey[2] = key[2];
++ newkey[3] = key[3];
++ newkey[4] = 0;
++
++ down(&applesmc_sem);
++
++ buffer[0] = (speed >> 6) & 0xff;
++ buffer[1] = (speed << 2) & 0xff;
++ ret = applesmc_write_key(newkey, buffer, 2);
++
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return count;
++}
++
++static ssize_t applesmc_show_fan_manual(struct device *dev, char *buf,
++ int offset)
++{
++ int ret;
++ u16 manual = 0;
++ u8 buffer[2];
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
++ manual = ((buffer[0] << 8 | buffer[1]) >> offset) & 0x01;
++
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return sprintf(buf, "%d\n", manual);
++}
++
++static ssize_t applesmc_store_fan_manual(struct device *dev, const char *buf,
++ size_t count, int offset)
++{
++ int ret;
++ u8 buffer[2];
++ u32 input;
++ u16 val;
++
++ input = simple_strtoul(buf, NULL, 10);
++
++ down(&applesmc_sem);
++
++ ret = applesmc_read_key(FANS_MANUAL, buffer, 2);
++ val = (buffer[0] << 8 | buffer[1]);
++ if (ret)
++ goto out;
++
++ if (input)
++ val = val | (0x01 << offset);
++ else
++ val = val & ~(0x01 << offset);
++
++ buffer[0] = (val >> 8) & 0xFF;
++ buffer[1] = val & 0xFF;
++
++ ret = applesmc_write_key(FANS_MANUAL, buffer, 2);
++
++out:
++ up(&applesmc_sem);
++ if (ret)
++ return ret;
++ else
++ return count;
++}
++
++static ssize_t applesmc_calibrate_show(struct device *dev,
++ struct device_attribute *attr, char *buf)
++{
++ return sprintf(buf, "(%d,%d)\n", rest_x, rest_y);
++}
++
++static ssize_t applesmc_calibrate_store(struct device *dev,
++ struct device_attribute *attr,
++ const char *buf, size_t count)
++{
++ down(&applesmc_sem);
++ applesmc_calibrate();
++ up(&applesmc_sem);
++
++ return count;
++}
++
++static void applesmc_backlight_set(struct led_classdev *led_cdev,
++ enum led_brightness value)
++{
++ u8 buffer[2];
++
++ down(&applesmc_sem);
++ buffer[0] = value;
++ buffer[1] = 0x00;
++ applesmc_write_key(BACKLIGHT_KEY, buffer, 2);
++ up(&applesmc_sem);
++}
++
++static struct led_classdev applesmc_backlight = {
++ .name = "smc:kbd_backlight",
++ .default_trigger = "nand-disk",
++ .brightness_set = applesmc_backlight_set,
++};
++
++static DEVICE_ATTR(position, 0444, applesmc_position_show, NULL);
++static DEVICE_ATTR(calibrate, 0644, applesmc_calibrate_show,applesmc_calibrate_store);
++
++static DEVICE_ATTR(light, 0444, applesmc_light_show, NULL);
++
++#define sysfs_fan_speeds_offset(offset) \
++static ssize_t show_fan_actual_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_speed(dev, buf, FAN_ACTUAL_SPEED, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_actual_speed, S_IRUGO, \
++ show_fan_actual_speed_##offset, NULL); \
++\
++static ssize_t show_fan_minimum_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_speed(dev, buf, FAN_MIN_SPEED, offset); \
++} \
++static ssize_t store_fan_minimum_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, const char *buf, size_t count) \
++{ \
++ return applesmc_store_fan_speed(dev, buf, count, FAN_MIN_SPEED, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_minimum_speed, S_IRUGO | S_IWUSR, \
++ show_fan_minimum_speed_##offset, store_fan_minimum_speed_##offset); \
++\
++static ssize_t show_fan_maximum_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_speed(dev, buf, FAN_MAX_SPEED, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_maximum_speed, S_IRUGO, \
++ show_fan_maximum_speed_##offset, NULL); \
++\
++static ssize_t show_fan_safe_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_speed(dev, buf, FAN_SAFE_SPEED, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_safe_speed, S_IRUGO, \
++ show_fan_safe_speed_##offset, NULL); \
++\
++static ssize_t show_fan_target_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_speed(dev, buf, FAN_TARGET_SPEED, offset); \
++} \
++static ssize_t store_fan_target_speed_##offset (struct device *dev, \
++ struct device_attribute *attr, const char *buf, size_t count) \
++{ \
++ return applesmc_store_fan_speed(dev, buf, count, FAN_TARGET_SPEED, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_target_speed, S_IRUGO | S_IWUSR, \
++ show_fan_target_speed_##offset, store_fan_target_speed_##offset);
++
++#define sysfs_fan_manual_offset(offset) \
++static ssize_t show_fan_manual_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_fan_manual(dev, buf, offset); \
++} \
++static ssize_t store_fan_manual_##offset (struct device *dev, \
++ struct device_attribute *attr, const char *buf, size_t count) \
++{ \
++ return applesmc_store_fan_manual(dev, buf, count, offset); \
++} \
++static DEVICE_ATTR(fan##offset##_manual, S_IRUGO | S_IWUSR, \
++ show_fan_manual_##offset, store_fan_manual_##offset);
++
++
++sysfs_fan_speeds_offset(0);
++sysfs_fan_manual_offset(0);
++sysfs_fan_speeds_offset(1);
++sysfs_fan_manual_offset(1);
++
++#define device_create_file_fan(client, offset) \
++do { \
++sysfs_create_file(client, &dev_attr_fan##offset##_actual_speed.attr); \
++sysfs_create_file(client, &dev_attr_fan##offset##_minimum_speed.attr); \
++sysfs_create_file(client, &dev_attr_fan##offset##_maximum_speed.attr); \
++sysfs_create_file(client, &dev_attr_fan##offset##_safe_speed.attr); \
++sysfs_create_file(client, &dev_attr_fan##offset##_target_speed.attr); \
++sysfs_create_file(client, &dev_attr_fan##offset##_manual.attr); \
++} while (0)
++
++#define sysfs_temperature_offset(offset) \
++static ssize_t show_temperature_##offset (struct device *dev, \
++ struct device_attribute *attr, char *buf) \
++{ \
++ return applesmc_show_temperature(dev, buf, temperature_sensors_sets[applesmc_temperature_set][offset]); \
++} \
++static DEVICE_ATTR(temperature_##offset, S_IRUGO, \
++ show_temperature_##offset, NULL);
++
++sysfs_temperature_offset(0);
++sysfs_temperature_offset(1);
++sysfs_temperature_offset(2);
++sysfs_temperature_offset(3);
++sysfs_temperature_offset(4);
++sysfs_temperature_offset(5);
++sysfs_temperature_offset(6);
++
++#define device_create_files_temperature(client, offset) \
++{ \
++ sysfs_create_file(client, &dev_attr_temperature_##offset.attr); \
++} while (0)
++
++/* Module stuff */
++
++/*
++ * applesmc_dmi_match - found a match. return one, short-circuiting
++ * the hunt.
++ */
++static int applesmc_dmi_match(struct dmi_system_id *id)
++{
++ int i = 0;
++ struct dmi_match_data* dmi_data =
++ (struct dmi_match_data*)id->driver_data;
++ printk(KERN_INFO "applesmc: %s detected:\n", id->ident);
++ applesmc_accelerometer = dmi_data->accelerometer;
++ printk(KERN_INFO "applesmc: - Model %s accelerometer\n",
++ applesmc_accelerometer ? "with" : "without");
++ applesmc_light = dmi_data->light;
++ printk(KERN_INFO "applesmc: - Model %s light sensors and backlight\n",
++ applesmc_light ? "with" : "without");
++
++ applesmc_temperature_set = dmi_data->temperature_set;
++ while (temperature_sensors_sets[applesmc_temperature_set][i] != NULL) i++;
++ printk(KERN_INFO "applesmc: - Model with %d temperature sensors\n", i);
++ return 1;
++}
++
++/* Create accelerometer ressources */
++static int applesmc_create_accelerometer(void) {
++ int ret;
++
++ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_position.attr);
++ if (ret)
++ goto out;
++
++ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_calibrate.attr);
++ if (ret)
++ goto out;
++
++ applesmc_idev = input_allocate_device();
++ if (!applesmc_idev) {
++ ret = -ENOMEM;
++ goto out;
++ }
++
++ /* initial calibrate for the input device */
++ applesmc_calibrate();
++
++ /* initialize the input class */
++ applesmc_idev->name = "applesmc";
++ applesmc_idev->cdev.dev = &pdev->dev;
++ applesmc_idev->evbit[0] = BIT(EV_ABS);
++ input_set_abs_params(applesmc_idev, ABS_X,
++ -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT);
++ input_set_abs_params(applesmc_idev, ABS_Y,
++ -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT);
++
++ input_register_device(applesmc_idev);
++
++ /* start up our timer for the input device */
++ init_timer(&applesmc_timer);
++ applesmc_timer.function = applesmc_mousedev_poll;
++ applesmc_timer.expires = jiffies + APPLESMC_POLL_PERIOD;
++ add_timer(&applesmc_timer);
++
++ return 0;
++
++out:
++ printk(KERN_WARNING "applesmc: driver init failed (ret=%d)!\n", ret);
++ return ret;
++}
++
++/* Release all ressources used by the accelerometer */
++static void applesmc_release_accelerometer(void) {
++ del_timer_sync(&applesmc_timer);
++ input_unregister_device(applesmc_idev);
++}
++
++static int __init applesmc_init(void)
++{
++ int ret;
++
++ struct dmi_match_data applesmc_dmi_data[] = {
++ { .accelerometer = 1, .light = 1, .temperature_set = 0 },
++ { .accelerometer = 1, .light = 0, .temperature_set = 0 },
++ { .accelerometer = 0, .light = 0, .temperature_set = 1 }
++ };
++
++ /* Note that DMI_MATCH(...,"MacBook") will match "MacBookPro1,1".
++ * So we need to put APPLESMC_MACBOOKPRO_DMI_MATCH before
++ * APPLESMC_MACBOOK_DMI_MATCH. */
++ struct dmi_system_id applesmc_whitelist[] = {
++ { applesmc_dmi_match, "Apple MacBook Pro", {
++ DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
++ DMI_MATCH(DMI_PRODUCT_NAME,"MacBookPro") },
++ (void*)&applesmc_dmi_data[0]},
++ { applesmc_dmi_match, "Apple MacBook", {
++ DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
++ DMI_MATCH(DMI_PRODUCT_NAME,"MacBook") },
++ (void*)&applesmc_dmi_data[1]},
++ { applesmc_dmi_match, "Apple Macmini", {
++ DMI_MATCH(DMI_BOARD_VENDOR,"Apple"),
++ DMI_MATCH(DMI_PRODUCT_NAME,"Macmini") },
++ (void*)&applesmc_dmi_data[2]},
++ { .ident = NULL }
++ };
++
++ if (!dmi_check_system(applesmc_whitelist)) {
++ printk(KERN_WARNING "applesmc: supported laptop not found!\n");
++ ret = -ENODEV;
++ goto out;
++ }
++
++ if (!request_region(APPLESMC_DATA_PORT, APPLESMC_NR_PORTS,
++ "applesmc")) {
++ ret = -ENXIO;
++ goto out;
++ }
++
++ ret = platform_driver_register(&applesmc_driver);
++ if (ret)
++ goto out_region;
++
++ pdev = platform_device_register_simple("applesmc", -1, NULL, 0);
++ if (IS_ERR(pdev)) {
++ ret = PTR_ERR(pdev);
++ goto out_driver;
++ }
++
++ /* create fan files */
++ ret = applesmc_get_fan_count();
++ if (ret < 0) {
++ printk(KERN_ERR "applesmc: Cannot get the number of fans.\n");
++ }
++ else {
++ printk(KERN_INFO "applesmc: %d fans found.\n", ret);
++
++ switch (ret) {
++ default:
++ printk(KERN_WARNING "applesmc: More than 2 fans found,"
++ " but at most 2 fans are supported"
++ " by the driver.\n");
++ case 2:
++ device_create_file_fan(&pdev->dev.kobj, 1);
++ case 1:
++ device_create_file_fan(&pdev->dev.kobj, 0);
++ case 0:
++ ;
++ }
++ }
++
++ ret = 0;
++ while (temperature_sensors_sets[applesmc_temperature_set][ret] != NULL) ret++;
++
++ switch (ret) {
++ default:
++ case 7:
++ device_create_files_temperature(&pdev->dev.kobj, 6);
++ case 6:
++ device_create_files_temperature(&pdev->dev.kobj, 5);
++ case 5:
++ device_create_files_temperature(&pdev->dev.kobj, 4);
++ case 4:
++ device_create_files_temperature(&pdev->dev.kobj, 3);
++ case 3:
++ device_create_files_temperature(&pdev->dev.kobj, 2);
++ case 2:
++ device_create_files_temperature(&pdev->dev.kobj, 1);
++ case 1:
++ device_create_files_temperature(&pdev->dev.kobj, 0);
++ case 0:
++ ;
++ }
++
++ if (applesmc_accelerometer) {
++ ret = applesmc_create_accelerometer();
++ if (ret)
++ goto out_device;
++ }
++
++ if (applesmc_light) {
++ /* Add light sensor file */
++ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_light.attr);
++ if (ret)
++ goto out_accelerometer;
++
++ /* register as a led device */
++ ret = led_classdev_register(&pdev->dev, &applesmc_backlight);
++ if (ret < 0)
++ goto out_accelerometer;
++ }
++
++ printk(KERN_INFO "applesmc: driver successfully loaded.\n");
++ return 0;
++
++out_accelerometer:
++ if (applesmc_accelerometer)
++ applesmc_release_accelerometer();
++out_device:
++ platform_device_unregister(pdev);
++out_driver:
++ platform_driver_unregister(&applesmc_driver);
++out_region:
++ release_region(APPLESMC_DATA_PORT, APPLESMC_NR_PORTS);
++out:
++ printk(KERN_WARNING "applesmc: driver init failed (ret=%d)!\n", ret);
++ return ret;
++}
++
++static void __exit applesmc_exit(void)
++{
++ if (applesmc_light)
++ led_classdev_unregister(&applesmc_backlight);
++ if (applesmc_accelerometer)
++ applesmc_release_accelerometer();
++ platform_device_unregister(pdev);
++ platform_driver_unregister(&applesmc_driver);
++ release_region(APPLESMC_DATA_PORT, APPLESMC_NR_PORTS);
++
++ printk(KERN_INFO "applesmc: driver unloaded.\n");
++}
++
++module_init(applesmc_init);
++module_exit(applesmc_exit);
++
++MODULE_AUTHOR("Nicolas Boichat");
++MODULE_DESCRIPTION("Apple SMC");
++MODULE_LICENSE("GPL v2");
Added: trunk/kernel/mactel-patches-2.6.21/appletouch.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.21/appletouch.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.21/appletouch.patch 2007-03-10 18:31:37 UTC (rev 83)
@@ -0,0 +1,23 @@
+Appletouch driver ATP_THRESHOLD fix.
+
+From: Ortwin Glück <od...@od...>
+
+
+---
+
+ drivers/usb/input/appletouch.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/usb/input/appletouch.c b/drivers/usb/input/appletouch.c
+index c77291d..155f18e 100644
+--- a/drivers/usb/input/appletouch.c
++++ b/drivers/usb/input/appletouch.c
+@@ -127,7 +127,7 @@ MODULE_DEVICE_TABLE (usb, atp_table);
+ * Threshold for the touchpad sensors. Any change less than ATP_THRESHOLD is
+ * ignored.
+ */
+-#define ATP_THRESHOLD 5
++#define ATP_THRESHOLD 3
+
+ /* MacBook Pro (Geyser 3 & 4) initialization constants */
+ #define ATP_GEYSER3_MODE_READ_REQUEST_ID 1
Added: trunk/kernel/mactel-patches-2.6.21/apply
===================================================================
--- trunk/kernel/mactel-patches-2.6.21/apply (rev 0)
+++ trunk/kernel/mactel-patches-2.6.21/apply 2007-03-10 18:31:37 UTC (rev 83)
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+if [ "$1" == "" ]; then
+ echo "usage ./apply kerneldir"
+ exit 0
+fi
+
+WORK=$PWD
+
+cd $1
+
+for i in `ls $WORK/*.patch`
+do
+ patch -p1 --dry-run < $i > /dev/null
+ if [ "$?" != "0" ]; then
+ echo "$i would not apply cleanly"
+ exit
+ fi
+done
+
+for i in `ls $WORK/*.patch`
+do
+ echo "$i" | sed -e "s/.*\/\(.*\)$/Applying \1.../"
+ patch -p1 < $i
+done
+
+grep "^EXTRAVERSION *=.*-mactel$" Makefile > /dev/null
+if [ $? != 0 ]; then
+ echo "changing version in Makefile"
+ sed -i Makefile -e "s/^\(EXTRAVERSION *=.*\)$/\1-mactel/"
+fi
Property changes on: trunk/kernel/mactel-p...
[truncated message content] |
|
From: Tino K. <tin...@ti...> - 2007-03-12 21:22:23
|
On Sat, Mar 10, 2007 at 10:31:37 -0800, nbo...@us... wrote: > Revision: 83 > http://svn.sourceforge.net/mactel-linux/?rev=83&view=rev > Author: nboichat > Date: 2007-03-10 10:31:37 -0800 (Sat, 10 Mar 2007) > > Log Message: > ----------- > Add patch series for 2.6.21-rc3 > > Added Paths: > ----------- > trunk/kernel/mactel-patches-2.6.21/ > trunk/kernel/mactel-patches-2.6.21/applesmc.patch > trunk/kernel/mactel-patches-2.6.21/appletouch.patch > trunk/kernel/mactel-patches-2.6.21/apply > trunk/kernel/mactel-patches-2.6.21/coretemp.patch > trunk/kernel/mactel-patches-2.6.21/unapply > trunk/kernel/mactel-patches-2.6.21/usb-storage-zerowait.patch Hi, what about the ir.patch? It was alreay missing in the patchset for 2.6.20. Regards, Tino |
|
From: Nicolas B. <ni...@bo...> - 2007-03-14 05:09:11
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hey, Tino Keitel wrote: > On Sat, Mar 10, 2007 at 10:31:37 -0800, nbo...@us... wrote: >> Revision: 83 >> http://svn.sourceforge.net/mactel-linux/?rev=83&view=rev >> Author: nboichat >> Date: 2007-03-10 10:31:37 -0800 (Sat, 10 Mar 2007) >> >> Log Message: >> ----------- >> Add patch series for 2.6.21-rc3 >> >> Added Paths: >> ----------- >> trunk/kernel/mactel-patches-2.6.21/ >> trunk/kernel/mactel-patches-2.6.21/applesmc.patch >> trunk/kernel/mactel-patches-2.6.21/appletouch.patch >> trunk/kernel/mactel-patches-2.6.21/apply >> trunk/kernel/mactel-patches-2.6.21/coretemp.patch >> trunk/kernel/mactel-patches-2.6.21/unapply >> trunk/kernel/mactel-patches-2.6.21/usb-storage-zerowait.patch > > Hi, > > what about the ir.patch? It was alreay missing in the patchset for > 2.6.20. Added back. Thanks for noticing it. Best regards, Nicolas -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFF94Nc01ajQnpJXgERAlvDAJ9HZG4gP1bcpxPsVxjxIk4frAJzGwCeJ3z4 3PZn9garmNyg6ZzQkd9Y89Q= =iyXx -----END PGP SIGNATURE----- |
|
From: <nbo...@us...> - 2007-05-26 22:33:20
|
Revision: 125
http://svn.sourceforge.net/mactel-linux/?rev=125&view=rev
Author: nboichat
Date: 2007-05-26 15:33:14 -0700 (Sat, 26 May 2007)
Log Message:
-----------
Add 2.6.22 patch series.
Added Paths:
-----------
trunk/kernel/mactel-patches-2.6.22/
trunk/kernel/mactel-patches-2.6.22/appleir.patch
trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch
trunk/kernel/mactel-patches-2.6.22/applesmc_add_name.patch
trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch
trunk/kernel/mactel-patches-2.6.22/appletouch.patch
trunk/kernel/mactel-patches-2.6.22/apply
trunk/kernel/mactel-patches-2.6.22/series
trunk/kernel/mactel-patches-2.6.22/unapply
Added: trunk/kernel/mactel-patches-2.6.22/appleir.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/appleir.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.22/appleir.patch 2007-05-26 22:33:14 UTC (rev 125)
@@ -0,0 +1,429 @@
+Apple IR patch.
+
+From: James McKenzie <ma...@ma...>
+
+
+---
+
+ drivers/input/misc/Kconfig | 5 +
+ drivers/input/misc/Makefile | 1
+ drivers/input/misc/appleir.c | 379 ++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 385 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/input/misc/Kconfig b/drivers/input/misc/Kconfig
+index 842a7b4..00d43d0 100644
+--- a/drivers/input/misc/Kconfig
++++ b/drivers/input/misc/Kconfig
+@@ -113,6 +113,10 @@ config INPUT_ATI_REMOTE2
+ To compile this driver as a module, choose M here: the module will be
+ called ati_remote2.
+
++config USB_APPLEIR
++ tristate "Apple Mac Mini USB IR receiver (built in)"
++ depends on USB && INPUT
++
+ config INPUT_KEYSPAN_REMOTE
+ tristate "Keyspan DMR USB remote control (EXPERIMENTAL)"
+ depends on EXPERIMENTAL
+@@ -190,3 +194,4 @@ config HP_SDC_RTC
+ of the HP SDC controller.
+
+ endif
++
+diff --git a/drivers/input/misc/Makefile b/drivers/input/misc/Makefile
+index 8b2f779..ca41877 100644
+--- a/drivers/input/misc/Makefile
++++ b/drivers/input/misc/Makefile
+@@ -14,6 +14,7 @@ obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o
+ obj-$(CONFIG_INPUT_ATLAS_BTNS) += atlas_btns.o
+ obj-$(CONFIG_INPUT_ATI_REMOTE) += ati_remote.o
+ obj-$(CONFIG_INPUT_ATI_REMOTE2) += ati_remote2.o
++obj-$(CONFIG_USB_APPLEIR) += appleir.o
+ obj-$(CONFIG_INPUT_KEYSPAN_REMOTE) += keyspan_remote.o
+ obj-$(CONFIG_INPUT_POWERMATE) += powermate.o
+ obj-$(CONFIG_INPUT_YEALINK) += yealink.o
+diff --git a/drivers/input/misc/appleir.c b/drivers/input/misc/appleir.c
+new file mode 100644
+index 0000000..170cee6
+--- /dev/null
++++ b/drivers/input/misc/appleir.c
+@@ -0,0 +1,379 @@
++/*
++ * drivers/usb/input/appleir.c - driver for Apple Intel-based Macs IR Receiver
++ *
++ * Copyright (C) 2006 James McKenzie <ma...@ma...>
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License v2 as published by the
++ * Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful, but WITHOUT
++ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
++ * more details.
++ *
++ * You should have received a copy of the GNU General Public License along with
++ * this program; if not, write to the Free Software Foundation, Inc.,
++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
++ */
++
++#include <linux/kernel.h>
++#include <linux/slab.h>
++#include <linux/input.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/usb.h>
++#include <linux/usb/input.h>
++#include <linux/mutex.h>
++#include <asm/unaligned.h>
++#include <asm/byteorder.h>
++
++#define DRIVER_VERSION "v1.2"
++#define DRIVER_AUTHOR "James McKenzie"
++#define DRIVER_DESC "USB Apple MacIntel IR Receiver driver"
++#define DRIVER_LICENSE "GPL"
++
++MODULE_AUTHOR(DRIVER_AUTHOR);
++MODULE_DESCRIPTION(DRIVER_DESC);
++MODULE_LICENSE(DRIVER_LICENSE);
++
++#define USB_VENDOR_ID_APPLE 0x05ac
++#define USB_DEVICE_ID_APPLE_IR 0x8240
++
++#define URB_SIZE 32
++
++#define MAX_KEYS 8
++#define MAX_KEYS_MASK (MAX_KEYS - 1)
++
++static int debug = 1;
++
++struct appleir {
++ struct input_dev *dev;
++ uint8_t *data;
++ dma_addr_t dma_buf;
++ struct usb_device *usbdev;
++ struct urb *urb;
++ struct timer_list key_up_timer;
++ int current_key;
++ char phys[32];
++};
++
++
++static struct usb_device_id appleir_ids[] = {
++ {
++ USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_IR),
++ .driver_info = 0
++ },
++ {}
++};
++
++MODULE_DEVICE_TABLE(usb, appleir_ids);
++
++/*
++ * Devices report the following, where XX depends on the remote and/or the
++ * receiver (at least 2a, 83, ca, ee have been reported as possible values, it
++ * looks like it is remote control dependent).
++ * The fifth byte's LSB also depends on the hardware.
++ * 25 87 ee XX 0a/0b +
++ * 25 87 ee XX 0c/0d -
++ * 25 87 ee XX 09/08 <<
++ * 25 87 ee XX 06/07 >>
++ * 25 87 ee XX 05/04 >"
++ * 25 87 ee 83 03/02 menu
++ * 26 00 00 00 00 for key repeat
++ *
++ * Thomas Glanzmann also observes the following event sometimes sent after a key
++ * is released, which I interpret as a flat battery message:
++ * 25 87 e0 ca 06 flat battery
++ */
++
++static int keymap[MAX_KEYS] = {
++ KEY_RESERVED, KEY_MENU,
++ KEY_PLAYPAUSE, KEY_NEXTSONG,
++ KEY_PREVIOUSSONG, KEY_VOLUMEUP,
++ KEY_VOLUMEDOWN, KEY_RESERVED
++};
++
++static void dump_packet(struct appleir *appleir, char *msg,
++ uint8_t * data, int len)
++{
++ int i;
++
++ printk(KERN_ERR "appleir: %s (%d bytes)", msg, len);
++
++ for (i = 0; i < len; ++i) {
++ printk(" %02x", data[i]);
++ }
++
++ printk("\n");
++}
++
++
++static void key_up(struct appleir *appleir, int key)
++{
++ if (debug)
++ printk (KERN_DEBUG "key %d up\n", key);
++
++ input_report_key(appleir->dev, key, 0);
++ input_sync(appleir->dev);
++}
++
++static void key_down(struct appleir *appleir, int key)
++{
++ if (debug)
++ printk (KERN_DEBUG "key %d down\n", key);
++
++ input_report_key(appleir->dev, key, 1);
++ input_sync(appleir->dev);
++}
++
++static void battery_flat(struct appleir *appleir)
++{
++ printk(KERN_WARNING "appleir: possible flat battery?\n");
++}
++
++static void key_up_tick(unsigned long data)
++{
++ struct appleir *apple_ir = (struct appleir*)data;
++
++ if (apple_ir->current_key) {
++ key_up(apple_ir, apple_ir->current_key);
++ apple_ir->current_key = 0;
++ }
++}
++
++static void parse_data(struct appleir *apple_ir, uint8_t *data, int len)
++{
++ static const uint8_t keydown[] = { 0x25, 0x87, 0xee };
++ static const uint8_t keyrepeat[] = { 0x26, 0x00, 0x00, 0x00, 0x00 };
++ static const uint8_t flatbattery[] = { 0x25, 0x87, 0xe0 };
++
++ if (debug)
++ dump_packet(apple_ir, "received", data, len);
++
++ if (len != 5)
++ return;
++
++ if (!memcmp(data, keydown, sizeof(keydown))) {
++ /*
++ * If we already have a key down, take it up before marking
++ * this one down.
++ */
++ if (apple_ir->current_key)
++ key_up(apple_ir, apple_ir->current_key);
++ apple_ir->current_key = keymap[(data[4] >> 1) & MAX_KEYS_MASK];
++
++ key_down(apple_ir, apple_ir->current_key);
++
++ /*
++ * Remote doesn't do key up, either pull them up, in the test
++ * above, or here set a timer which pulls them up after 1/8 s
++ */
++ mod_timer(&apple_ir->key_up_timer, jiffies + HZ / 8);
++
++ return;
++ }
++
++ if (!memcmp(data, keyrepeat, sizeof(keyrepeat))) {
++ key_down(apple_ir, apple_ir->current_key);
++
++ /*
++ * Remote doesn't do key up, either pull them up, in the test
++ * above, or here set a timer which pulls them up after 1/8 s
++ */
++ mod_timer(&apple_ir->key_up_timer, jiffies + HZ / 8);
++ return;
++ }
++
++ if (!memcmp(data, flatbattery, sizeof(flatbattery))) {
++ battery_flat(apple_ir);
++ /* Fall through */
++ }
++
++ dump_packet(apple_ir, "unknown packet", data, len);
++}
++
++static void appleir_urb(struct urb *urb)
++{
++ struct appleir *appleir = urb->context;
++ int retval;
++
++ switch (urb->status) {
++ case 0:
++ parse_data(appleir, urb->transfer_buffer, urb->actual_length);
++ break;
++ case -ECONNRESET:
++ case -ENOENT:
++ case -ESHUTDOWN:
++ /* this urb is terminated, clean up */
++ dbg("%s - urb shutting down with status: %d",
++ __FUNCTION__, urb->status);
++ return;
++ default:
++ dbg("%s - nonzero urb status received: %d",
++ __FUNCTION__, urb->status);
++ }
++
++ retval = usb_submit_urb(urb, GFP_ATOMIC);
++ if (retval)
++ err("%s - usb_submit_urb failed with result %d",
++ __FUNCTION__, retval);
++}
++
++
++static int appleir_open(struct input_dev *dev)
++{
++ struct appleir *appleir = dev->private;
++
++ if (usb_submit_urb(appleir->urb, GFP_KERNEL))
++ return -EIO;
++
++ return 0;
++}
++
++static void appleir_close(struct input_dev *dev)
++{
++ struct appleir *appleir = dev->private;
++ usb_kill_urb(appleir->urb);
++ del_timer_sync(&appleir->key_up_timer);
++}
++
++static int appleir_probe(struct usb_interface *intf,
++ const struct usb_device_id *id)
++{
++ struct usb_device *dev = interface_to_usbdev(intf);
++ struct usb_endpoint_descriptor *endpoint;
++ struct appleir *appleir = NULL;
++ struct input_dev *input_dev;
++ int i;
++ int ret = -ENOMEM;
++
++ appleir = kzalloc(sizeof(struct appleir), GFP_KERNEL);
++ if (!appleir)
++ goto fail;
++
++ memset(appleir, 0, sizeof(struct appleir));
++
++ appleir->data =
++ usb_buffer_alloc(dev, URB_SIZE, GFP_KERNEL, &appleir->dma_buf);
++ if (!appleir->data)
++ goto fail_appleir;
++
++ appleir->urb = usb_alloc_urb(0, GFP_KERNEL);
++ if (!appleir->urb)
++ goto fail_buffer;
++
++ appleir->usbdev = dev;
++
++ input_dev = input_allocate_device();
++ if (!input_dev)
++ goto fail_urb;
++
++ appleir->dev = input_dev;
++
++ if (usb_make_path(dev, appleir->phys, sizeof(appleir->phys)) < 0)
++ goto fail_input_device;
++
++ strlcpy(appleir->phys, "/input0", sizeof(appleir->phys));
++
++ input_dev->name = "Apple MacIntel infrared remote control driver";
++ input_dev->phys = appleir->phys;
++ usb_to_input_id(dev, &input_dev->id);
++ input_dev->cdev.dev = &intf->dev;
++ input_dev->private = appleir;
++
++ input_dev->evbit[0] = BIT(EV_KEY) | BIT(EV_REP);
++ input_dev->ledbit[0] = 0;
++
++ for (i = 0; i < MAX_KEYS; i++) {
++ set_bit(keymap[i], input_dev->keybit);
++ }
++
++ clear_bit(0, input_dev->keybit);
++
++ input_dev->open = appleir_open;
++ input_dev->close = appleir_close;
++
++ endpoint = &intf->cur_altsetting->endpoint[0].desc;
++
++ usb_fill_int_urb(appleir->urb, dev,
++ usb_rcvintpipe(dev, endpoint->bEndpointAddress),
++ appleir->data, 8,
++ appleir_urb, appleir, endpoint->bInterval);
++
++ appleir->urb->transfer_dma = appleir->dma_buf;
++ appleir->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
++
++ usb_set_intfdata(intf, appleir);
++
++ init_timer(&appleir->key_up_timer);
++
++ appleir->key_up_timer.function = key_up_tick;
++ appleir->key_up_timer.data = (unsigned long) appleir;
++
++ ret = input_register_device(appleir->dev);
++ if (ret < 0)
++ goto fail_timer;
++
++ return 0;
++
++fail_timer:
++ del_timer_sync(&appleir->key_up_timer);
++
++fail_input_device:
++ input_free_device(appleir->dev);
++
++fail_urb:
++ usb_free_urb(appleir->urb);
++
++fail_buffer:
++ usb_buffer_free(dev, URB_SIZE, appleir->data, appleir->dma_buf);
++
++fail_appleir:
++ kfree(appleir);
++
++fail:
++ return ret;
++}
++
++static void appleir_disconnect(struct usb_interface *intf)
++{
++ struct appleir *appleir = usb_get_intfdata(intf);
++
++ usb_set_intfdata(intf, NULL);
++ if (appleir) {
++ input_unregister_device(appleir->dev);
++ del_timer_sync(&appleir->key_up_timer);
++ usb_kill_urb(appleir->urb);
++ usb_free_urb(appleir->urb);
++ usb_buffer_free(interface_to_usbdev(intf), URB_SIZE,
++ appleir->data, appleir->dma_buf);
++ kfree(appleir);
++ }
++}
++
++static struct usb_driver appleir_driver = {
++ .name = "appleir",
++ .probe = appleir_probe,
++ .disconnect = appleir_disconnect,
++ .id_table = appleir_ids,
++};
++
++static int __init appleir_init(void)
++{
++ int retval;
++ retval = usb_register(&appleir_driver);
++ if (retval)
++ goto out;
++ info(DRIVER_VERSION ":" DRIVER_DESC);
++ out:
++ return retval;
++}
++
++static void __exit appleir_exit(void)
++{
++ usb_deregister(&appleir_driver);
++}
++
++module_init(appleir_init);
++module_exit(appleir_exit);
Added: trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.22/applesmc-use-input-polldev.patch 2007-05-26 22:33:14 UTC (rev 125)
@@ -0,0 +1,221 @@
+HWMON: applesmc - convert to use input-polldev.
+
+From: Nicolas Boichat <ni...@bo...>
+
+Switch to using input-polldev skeleton instead of implementing
+polling loop by itself. This also fixes problem with trylock
+on a mutex in atomic context.
+
+Signed-off-by: Dmitry Torokhov <dt...@ma...>
+---
+
+ drivers/hwmon/Kconfig | 1 +
+ drivers/hwmon/applesmc.c | 83 +++++++++++++++++-----------------------------
+ 2 files changed, 31 insertions(+), 53 deletions(-)
+
+diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
+index 4d1cb5b..cfb2a04 100644
+--- a/drivers/hwmon/Kconfig
++++ b/drivers/hwmon/Kconfig
+@@ -623,6 +623,7 @@ config SENSORS_APPLESMC
+ depends on HWMON && INPUT && X86
+ select NEW_LEDS
+ select LEDS_CLASS
++ select INPUT_POLLDEV
+ default n
+ help
+ This driver provides support for the Apple System Management
+diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
+index fd1281f..eb81a64 100644
+--- a/drivers/hwmon/applesmc.c
++++ b/drivers/hwmon/applesmc.c
+@@ -28,7 +28,7 @@
+
+ #include <linux/delay.h>
+ #include <linux/platform_device.h>
+-#include <linux/input.h>
++#include <linux/input-polldev.h>
+ #include <linux/kernel.h>
+ #include <linux/module.h>
+ #include <linux/timer.h>
+@@ -59,9 +59,9 @@
+
+ #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */
+ #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */
+-#define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */
++#define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */
+
+-#define CLAMSHELL_KEY "MSLD" /* r-o ui8 (unused) */
++#define CLAMSHELL_KEY "MSLD" /* r-o ui8 (unused) */
+
+ #define MOTION_SENSOR_X_KEY "MO_X" /* r-o sp78 (2 bytes) */
+ #define MOTION_SENSOR_Y_KEY "MO_Y" /* r-o sp78 (2 bytes) */
+@@ -99,7 +99,7 @@ static const char* fan_speed_keys[] = {
+ #define INIT_TIMEOUT_MSECS 5000 /* wait up to 5s for device init ... */
+ #define INIT_WAIT_MSECS 50 /* ... in 50ms increments */
+
+-#define APPLESMC_POLL_PERIOD (HZ/20) /* poll for input every 1/20s */
++#define APPLESMC_POLL_INTERVAL 50 /* msecs */
+ #define APPLESMC_INPUT_FUZZ 4 /* input event threshold */
+ #define APPLESMC_INPUT_FLAT 4
+
+@@ -121,8 +121,7 @@ static const int debug;
+ static struct platform_device *pdev;
+ static s16 rest_x;
+ static s16 rest_y;
+-static struct timer_list applesmc_timer;
+-static struct input_dev *applesmc_idev;
++static struct input_polled_dev *applesmc_idev;
+ static struct class_device *hwmon_class_dev;
+
+ /* Indicates whether this computer has an accelerometer. */
+@@ -134,7 +133,7 @@ static unsigned int applesmc_light;
+ /* Indicates which temperature sensors set to use. */
+ static unsigned int applesmc_temperature_set;
+
+-static struct mutex applesmc_lock;
++static DEFINE_MUTEX(applesmc_lock);
+
+ /*
+ * Last index written to key_at_index sysfs file, and value to use for all other
+@@ -451,27 +450,12 @@ static void applesmc_calibrate(void)
+ rest_x = -rest_x;
+ }
+
+-static int applesmc_idev_open(struct input_dev *dev)
+-{
+- add_timer(&applesmc_timer);
+-
+- return 0;
+-}
+-
+-static void applesmc_idev_close(struct input_dev *dev)
+-{
+- del_timer_sync(&applesmc_timer);
+-}
+-
+-static void applesmc_idev_poll(unsigned long unused)
++static void applesmc_idev_poll(struct input_polled_dev *dev)
+ {
++ struct input_dev *idev = dev->input;
+ s16 x, y;
+
+- /* Cannot sleep. Try nonblockingly. If we fail, try again later. */
+- if (!mutex_trylock(&applesmc_lock)) {
+- mod_timer(&applesmc_timer, jiffies + APPLESMC_POLL_PERIOD);
+- return;
+- }
++ mutex_lock(&applesmc_lock);
+
+ if (applesmc_read_motion_sensor(SENSOR_X, &x))
+ goto out;
+@@ -479,13 +463,11 @@ static void applesmc_idev_poll(unsigned long unused)
+ goto out;
+
+ x = -x;
+- input_report_abs(applesmc_idev, ABS_X, x - rest_x);
+- input_report_abs(applesmc_idev, ABS_Y, y - rest_y);
+- input_sync(applesmc_idev);
++ input_report_abs(idev, ABS_X, x - rest_x);
++ input_report_abs(idev, ABS_Y, y - rest_y);
++ input_sync(idev);
+
+ out:
+- mod_timer(&applesmc_timer, jiffies + APPLESMC_POLL_PERIOD);
+-
+ mutex_unlock(&applesmc_lock);
+ }
+
+@@ -817,8 +799,7 @@ static ssize_t applesmc_key_at_index_read_show(struct device *dev,
+
+ if (!ret) {
+ return info[0];
+- }
+- else {
++ } else {
+ return ret;
+ }
+ }
+@@ -1089,6 +1070,7 @@ static int applesmc_dmi_match(struct dmi_system_id *id)
+ /* Create accelerometer ressources */
+ static int applesmc_create_accelerometer(void)
+ {
++ struct input_dev *idev;
+ int ret;
+
+ ret = sysfs_create_group(&pdev->dev.kobj,
+@@ -1096,40 +1078,37 @@ static int applesmc_create_accelerometer(void)
+ if (ret)
+ goto out;
+
+- applesmc_idev = input_allocate_device();
++ applesmc_idev = input_allocate_polled_device();
+ if (!applesmc_idev) {
+ ret = -ENOMEM;
+ goto out_sysfs;
+ }
+
++ applesmc_idev->poll = applesmc_idev_poll;
++ applesmc_idev->poll_interval = APPLESMC_POLL_INTERVAL;
++
+ /* initial calibrate for the input device */
+ applesmc_calibrate();
+
+- /* initialize the input class */
+- applesmc_idev->name = "applesmc";
+- applesmc_idev->id.bustype = BUS_HOST;
+- applesmc_idev->dev.parent = &pdev->dev;
+- applesmc_idev->evbit[0] = BIT(EV_ABS);
+- applesmc_idev->open = applesmc_idev_open;
+- applesmc_idev->close = applesmc_idev_close;
+- input_set_abs_params(applesmc_idev, ABS_X,
++ /* initialize the input device */
++ idev = applesmc_idev->input;
++ idev->name = "applesmc";
++ idev->id.bustype = BUS_HOST;
++ idev->dev.parent = &pdev->dev;
++ idev->evbit[0] = BIT(EV_ABS);
++ input_set_abs_params(idev, ABS_X,
+ -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT);
+- input_set_abs_params(applesmc_idev, ABS_Y,
++ input_set_abs_params(idev, ABS_Y,
+ -256, 256, APPLESMC_INPUT_FUZZ, APPLESMC_INPUT_FLAT);
+
+- ret = input_register_device(applesmc_idev);
++ ret = input_register_polled_device(applesmc_idev);
+ if (ret)
+ goto out_idev;
+
+- /* start up our timer for the input device */
+- init_timer(&applesmc_timer);
+- applesmc_timer.function = applesmc_idev_poll;
+- applesmc_timer.expires = jiffies + APPLESMC_POLL_PERIOD;
+-
+ return 0;
+
+ out_idev:
+- input_free_device(applesmc_idev);
++ input_free_polled_device(applesmc_idev);
+
+ out_sysfs:
+ sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group);
+@@ -1142,8 +1121,8 @@ out:
+ /* Release all ressources used by the accelerometer */
+ static void applesmc_release_accelerometer(void)
+ {
+- del_timer_sync(&applesmc_timer);
+- input_unregister_device(applesmc_idev);
++ input_unregister_polled_device(applesmc_idev);
++ input_free_polled_device(applesmc_idev);
+ sysfs_remove_group(&pdev->dev.kobj, &accelerometer_attributes_group);
+ }
+
+@@ -1180,8 +1159,6 @@ static int __init applesmc_init(void)
+ int count;
+ int i;
+
+- mutex_init(&applesmc_lock);
+-
+ if (!dmi_check_system(applesmc_whitelist)) {
+ printk(KERN_WARNING "applesmc: supported laptop not found!\n");
+ ret = -ENODEV;
Added: trunk/kernel/mactel-patches-2.6.22/applesmc_add_name.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/applesmc_add_name.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.22/applesmc_add_name.patch 2007-05-26 22:33:14 UTC (rev 125)
@@ -0,0 +1,46 @@
+Add name file needed by lm_sensors user-space applications in applesmc sysfs tree.
+
+From: Nicolas Boichat <ni...@bo...>
+
+
+---
+
+ drivers/hwmon/applesmc.c | 7 ++++++-
+ 1 files changed, 6 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
+index 366f4a1..fd1281f 100644
+--- a/drivers/hwmon/applesmc.c
++++ b/drivers/hwmon/applesmc.c
+@@ -1206,11 +1206,13 @@ static int __init applesmc_init(void)
+ }
+
+ ret = sysfs_create_file(&pdev->dev.kobj, &dev_attr_name.attr);
++ if (ret)
++ goto out_device;
+
+ /* Create key enumeration sysfs files */
+ ret = sysfs_create_group(&pdev->dev.kobj, &key_enumeration_group);
+ if (ret)
+- goto out_device;
++ goto out_name;
+
+ /* create fan files */
+ count = applesmc_get_fan_count();
+@@ -1310,6 +1312,8 @@ out_fan_1:
+ sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]);
+ out_key_enumeration:
+ sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
++out_name:
++ sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
+ out_device:
+ platform_device_unregister(pdev);
+ out_driver:
+@@ -1335,6 +1339,7 @@ static void __exit applesmc_exit(void)
+ sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[0]);
+ sysfs_remove_group(&pdev->dev.kobj, &fan_attribute_groups[1]);
+ sysfs_remove_group(&pdev->dev.kobj, &key_enumeration_group);
++ sysfs_remove_file(&pdev->dev.kobj, &dev_attr_name.attr);
+ platform_device_unregister(pdev);
+ platform_driver_unregister(&applesmc_driver);
+ release_region(APPLESMC_DATA_PORT, APPLESMC_NR_PORTS);
Added: trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch (rev 0)
+++ trunk/kernel/mactel-patches-2.6.22/applesmc_int.patch 2007-05-26 22:33:14 UTC (rev 125)
@@ -0,0 +1,410 @@
+Interrupt support for the accelerometer.
+
+From: Nicolas Boichat <ni...@bo...>
+
+
+---
+
+ drivers/hwmon/applesmc.c | 316 +++++++++++++++++++++++++++++++++++++++++++---
+ 1 files changed, 293 insertions(+), 23 deletions(-)
+
+diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
+index eb81a64..ff56afd 100644
+--- a/drivers/hwmon/applesmc.c
++++ b/drivers/hwmon/applesmc.c
+@@ -39,14 +39,20 @@
+ #include <linux/leds.h>
+ #include <linux/hwmon.h>
+ #include <linux/workqueue.h>
++#include <linux/interrupt.h>
+
+ /* data port used by Apple SMC */
+ #define APPLESMC_DATA_PORT 0x300
+ /* command/status port used by Apple SMC */
+ #define APPLESMC_CMD_PORT 0x304
++/* status port used by Apple SMC to get which interrupt type just happened */
++#define APPLESMC_INT_PORT 0x31f
+
+ #define APPLESMC_NR_PORTS 32 /* 0x300-0x31f */
+
++/* Defined in ACPI DSDT table, should we read it from there? */
++#define APPLESMC_IRQ 6
++
+ #define APPLESMC_MAX_DATA_LENGTH 32
+
+ #define APPLESMC_STATUS_MASK 0x0f
+@@ -57,6 +63,8 @@
+
+ #define KEY_COUNT_KEY "#KEY" /* r-o ui32 */
+
++#define INTERRUPT_OK_KEY "NTOK" /* w-o ui8 */
++
+ #define LIGHT_SENSOR_LEFT_KEY "ALV0" /* r-o {alv (6 bytes) */
+ #define LIGHT_SENSOR_RIGHT_KEY "ALV1" /* r-o {alv (6 bytes) */
+ #define BACKLIGHT_KEY "LKSB" /* w-o {lkb (2 bytes) */
+@@ -68,6 +76,19 @@
+ #define MOTION_SENSOR_Z_KEY "MO_Z" /* r-o sp78 (2 bytes) */
+ #define MOTION_SENSOR_KEY "MOCN" /* r/w ui16 */
+
++/*
++ * Interrupt controls.
++ * If the norm of the position (sqrt(MO_X^2+MO_Y^2+MO_Z^2)) is smaller than
++ * MOLT (free fall), or bigger than MOHT (high acceleration) for longer than the
++ * value of MOLD (or MOHD), SMC will trigger an interrupt.
++ */
++#define MOTION_LOW_NORM "MOLT" /* r/w sp78 (2 bytes) */
++#define MOTION_HIGH_NORM "MOHT" /* r/w sp78 (2 bytes) */
++#define MOTION_LOW_NORM_INTERVAL "MOLD" /* r/w ui8 */
++#define MOTION_HIGH_NORM_INTERVAL "MOHD" /* r/w ui8 */
++
++#define MSDW_KEY "MSDW" /* r/w flag (1 byte) */
++
+ #define FANS_COUNT "FNum" /* r-o ui8 */
+ #define FANS_MANUAL "FS! " /* r-w ui16 */
+ #define FAN_ACTUAL_SPEED "F0Ac" /* r-o fpe2 (2 bytes) */
+@@ -347,12 +368,79 @@ static int applesmc_read_motion_sensor(int index, s16* value)
+ }
+
+ /*
++ * applesmc_init_check_key_value - checks if a given key contains the bytes in
++ * buffer, if not, writes these bytes.
++ * In case of failure retry every INIT_WAIT_MSECS msec, and timeout if it
++ * waited more than INIT_TIMEOUT_MSECS in total.
++ * Returns zero on success or a negative error on failure. Callers must
++ * hold applesmc_lock.
++ */
++static int applesmc_init_check_key_value(const char* key, u8* buffer, u8 len)
++{
++ int total, ret, i, compare;
++ u8 rdbuffer[APPLESMC_MAX_DATA_LENGTH];
++
++ if (len > APPLESMC_MAX_DATA_LENGTH) {
++ printk(KERN_ERR "applesmc_init_check_key_value: cannot "
++ "read/write more than %d bytes",
++ APPLESMC_MAX_DATA_LENGTH);
++ return -EINVAL;
++ }
++
++ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) {
++ if (!(ret = applesmc_read_key(key, rdbuffer, len))) {
++ compare = 1;
++ for (i = 0; i < len; i++) {
++ if (rdbuffer[i] != buffer[i]) {
++ compare = 0;
++ break;
++ }
++ }
++
++ if (compare) {
++ return 0;
++ }
++ }
++ ret = applesmc_write_key(key, buffer, len);
++ msleep(INIT_WAIT_MSECS);
++ }
++
++ if (ret)
++ return ret;
++ else
++ return -EIO;
++}
++
++irqreturn_t applesmc_irq_handler(int irq, void *dev_id)
++{
++ u8 int_type = inb(APPLESMC_INT_PORT);
++
++ switch (int_type) {
++ case 0x60:
++ printk("applesmc: received a free fall interrupt\n");
++ break;
++ case 0x6f:
++ printk("applesmc: received a high acceleration interrupt\n");
++ break;
++ case 0x80:
++ printk("applesmc: received a shock interrupt\n");
++ break;
++ default:
++ printk("applesmc: received an unknown interrupt %x\n", int_type);
++ }
++
++ return IRQ_HANDLED;
++}
++
++/*
+ * applesmc_device_init - initialize the accelerometer. Returns zero on success
+ * and negative error code on failure. Can sleep.
+ */
+ static int applesmc_device_init(void)
+ {
+- int total, ret = -ENXIO;
++ int total;
++ int ret = -ENXIO;
++ int ret1, ret2;
+ u8 buffer[2];
+
+ if (!applesmc_accelerometer)
+@@ -360,32 +448,79 @@ static int applesmc_device_init(void)
+
+ mutex_lock(&applesmc_lock);
+
++ /* Accept interrupts */
++ buffer[0] = 0x01;
+ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) {
+- if (debug)
+- printk(KERN_DEBUG "applesmc try %d\n", total);
+- if (!applesmc_read_key(MOTION_SENSOR_KEY, buffer, 2) &&
+- (buffer[0] != 0x00 || buffer[1] != 0x00)) {
+- if (total == INIT_TIMEOUT_MSECS) {
+- printk(KERN_DEBUG "applesmc: device has"
+- " already been initialized"
+- " (0x%02x, 0x%02x).\n",
+- buffer[0], buffer[1]);
+- } else {
+- printk(KERN_DEBUG "applesmc: device"
+- " successfully initialized"
+- " (0x%02x, 0x%02x).\n",
+- buffer[0], buffer[1]);
+- }
+- ret = 0;
+- goto out;
+- }
+- buffer[0] = 0xe0;
+- buffer[1] = 0x00;
+- applesmc_write_key(MOTION_SENSOR_KEY, buffer, 2);
++ ret1 = applesmc_write_key(INTERRUPT_OK_KEY, buffer, 1);
++ msleep(INIT_WAIT_MSECS);
++
++ if (!ret1)
++ break;
++ }
++ if (ret1)
++ printk(KERN_WARNING "applesmc: Cannot set NTOK key, "
++ "will not receive interrupts.\n");
++
++ /* Setup interrupt controls. */
++ buffer[0] = 20; /* 20 msecs */
++ ret1 = applesmc_init_check_key_value(MOTION_LOW_NORM_INTERVAL,
++ buffer, 1);
++
++ buffer[0] = 20; /* 20 msecs */
++ ret2 = applesmc_init_check_key_value(MOTION_HIGH_NORM_INTERVAL,
++ buffer, 1);
++
++ if (ret1 || ret2) {
++ printk(KERN_WARNING "applesmc: Cannot set motion sensor "
++ "interrupt interval, might not receive "
++ "some interrupts.");
++ }
++
++ buffer[0] = 0x00;
++ buffer[1] = 0x60;
++ ret1 = applesmc_init_check_key_value(MOTION_LOW_NORM, buffer, 2);
++
++ buffer[0] = 0x01;
++ buffer[1] = 0xc0;
++ ret2 = applesmc_init_check_key_value(MOTION_HIGH_NORM, buffer, 2);
++
++ if (ret1 || ret2) {
++ printk(KERN_WARNING "applesmc: Cannot set motion sensor "
++ "min/max norm parameters, "
++ "might not receive some interrupts.");
++ }
++
++ /* Mysterious key. */
++ buffer[0] = 0x01;
++ for (total = INIT_TIMEOUT_MSECS; total > 0; total -= INIT_WAIT_MSECS) {
++ ret1 = applesmc_write_key(MSDW_KEY, buffer, 1);
+ msleep(INIT_WAIT_MSECS);
++
++ if (!ret1)
++ break;
++ }
++ if (ret1)
++ printk(KERN_WARNING "applesmc: Cannot set MSDW key\n");
++
++ /* Initialize the device. */
++ buffer[0] = 0xe0;
++ buffer[1] = 0xf8;
++ if (applesmc_init_check_key_value(MOTION_SENSOR_KEY, buffer, 2)) {
++ printk(KERN_WARNING "applesmc: failed to init "
++ "the accelerometer\n");
++ goto out;
+ }
+
+- printk(KERN_WARNING "applesmc: failed to init the device\n");
++ ret1 = request_irq(APPLESMC_IRQ, applesmc_irq_handler, IRQF_DISABLED,
++ "applesmc_irq_handler", NULL);
++
++ if (ret1) {
++ printk(KERN_WARNING "applesmc: cannot setup irq handler\n");
++ }
++
++ printk(KERN_DEBUG "applesmc: accelerometer "
++ "successfully initialized.\n");
++ ret = 0;
+
+ out:
+ mutex_unlock(&applesmc_lock);
+@@ -430,9 +565,16 @@ static int applesmc_resume(struct platform_device *dev)
+ return applesmc_device_init();
+ }
+
++static int applesmc_remove(struct platform_device *dev)
++{
++ free_irq(6, NULL);
++ return 0;
++}
++
+ static struct platform_driver applesmc_driver = {
+ .probe = applesmc_probe,
+ .resume = applesmc_resume,
++ .remove = applesmc_remove,
+ .driver = {
+ .name = "applesmc",
+ .owner = THIS_MODULE,
+@@ -894,6 +1036,122 @@ static ssize_t applesmc_key_at_index_store(struct device *dev,
+ return count;
+ }
+
++static ssize_t applesmc_accelerometer_show(struct device *dev,
++ struct device_attribute *attr, char *sysfsbuf)
++{
++ int ret;
++ unsigned int value = 0;
++ u8 buffer[2];
++ char* key;
++ int length;
++ struct sensor_device_attribute_2 *sensor_attr =
++ to_sensor_dev_attr_2(attr);
++
++ switch(sensor_attr->index) {
++ case 0:
++ key = MOTION_LOW_NORM_INTERVAL;
++ length = 1;
++ break;
++ case 1:
++ key = MOTION_HIGH_NORM_INTERVAL;
++ length = 1;
++ break;
++ case 2:
++...
[truncated message content] |
|
From: <nbo...@us...> - 2007-06-19 13:42:55
|
Revision: 130
http://svn.sourceforge.net/mactel-linux/?rev=130&view=rev
Author: nboichat
Date: 2007-06-19 06:42:37 -0700 (Tue, 19 Jun 2007)
Log Message:
-----------
Fix apply and unapply scripts.
Modified Paths:
--------------
trunk/kernel/mactel-patches-2.6.20/apply
trunk/kernel/mactel-patches-2.6.20/unapply
trunk/kernel/mactel-patches-2.6.21/apply
trunk/kernel/mactel-patches-2.6.21/unapply
trunk/kernel/mactel-patches-2.6.22/apply
trunk/kernel/mactel-patches-2.6.22/unapply
Modified: trunk/kernel/mactel-patches-2.6.20/apply
===================================================================
--- trunk/kernel/mactel-patches-2.6.20/apply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.20/apply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./apply kerneldir"
exit 0
fi
Modified: trunk/kernel/mactel-patches-2.6.20/unapply
===================================================================
--- trunk/kernel/mactel-patches-2.6.20/unapply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.20/unapply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./unapply kerneldir"
exit 0
fi
Modified: trunk/kernel/mactel-patches-2.6.21/apply
===================================================================
--- trunk/kernel/mactel-patches-2.6.21/apply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.21/apply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./apply kerneldir"
exit 0
fi
Modified: trunk/kernel/mactel-patches-2.6.21/unapply
===================================================================
--- trunk/kernel/mactel-patches-2.6.21/unapply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.21/unapply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./unapply kerneldir"
exit 0
fi
Modified: trunk/kernel/mactel-patches-2.6.22/apply
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/apply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.22/apply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./apply kerneldir"
exit 0
fi
Modified: trunk/kernel/mactel-patches-2.6.22/unapply
===================================================================
--- trunk/kernel/mactel-patches-2.6.22/unapply 2007-06-16 10:07:20 UTC (rev 129)
+++ trunk/kernel/mactel-patches-2.6.22/unapply 2007-06-19 13:42:37 UTC (rev 130)
@@ -1,6 +1,6 @@
-#!/bin/sh
+#!/bin/bash
-if [ "$1" == "" ]; then
+if [ "$1" = "" ]; then
echo "usage ./unapply kerneldir"
exit 0
fi
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|