aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-01-18MIPS: ath79: Add initial support for the Atheros AP81 reference boardGabor Juhos4-0/+104
Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1952/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add common SPI controller deviceGabor Juhos6-0/+84
Several boards are using the built-in SPI controller of the AR71XX/AR724X/AR913X SoCs. This patch adds common platform_device and helper code to register it. Additionally, the patch registers the SPI bus on the PB44 board. Signed-off-by: Gabor Juhos <[email protected]> Cc: [email protected] Cc: Imre Kaloz <[email protected]> Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1956/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18SPI: Add SPI controller driver for the Atheros AR71XX/AR724X/AR913X SoCsGabor Juhos4-0/+324
The Atheros AR71XX/AR724X/AR913X SoCs have a built-in SPI controller. This patch implements a driver for that. Signed-off-by: Gabor Juhos <[email protected]> Cc: David Brownell <[email protected]> Cc: [email protected] Acked-by: Grant Likely <[email protected]> Cc: [email protected] Cc: Imre Kaloz <[email protected]> Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1960/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add common GPIO buttons deviceGabor Juhos5-0/+113
Almost all boards have one or more push buttons connected to GPIO lines. This patch adds common code to register a platform_device for them. The patch also adds support for the buttons on the PB44 board. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1954/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add common watchdog deviceGabor Juhos3-0/+12
All supported SoCs have a built-in hardware watchdog driver. This patch registers a platform_device for that to make it usable. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1955/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add common GPIO LEDs deviceGabor Juhos5-0/+100
Almost all boards have one or more LEDs connected to GPIO lines. This patch adds common code to register a platform_device for them. The patch also adds support for the LEDs on the PB44 board. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1953/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add initial support for the Atheros PB44 reference boardGabor Juhos4-0/+73
Signed-off-by: Gabor Juhos <[email protected]> Cc: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1950/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: utilize the MIPS multi-machine supportGabor Juhos3-0/+37
Signed-off-by: Gabor Juhos <[email protected]> Cc: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1949/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: ath79: add GPIOLIB supportGabor Juhos7-2/+252
This patch implements generic GPIO routines for the built-in GPIO controllers of the Atheros AR71XX/AR724X/AR913X SoCs. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: David Brownell <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1948/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Add initial support for the Atheros AR71XX/AR724X/AR931X SoCsGabor Juhos20-0/+1365
This patch adds initial support for various Atheros SoCs based on the MIPS 24Kc core. The following models are supported at the moment: - AR7130 - AR7141 - AR7161 - AR9130 - AR9132 - AR7240 - AR7241 - AR7242 The current patch contains minimal support only, but the resulting kernel can boot into user-space with using of an initramfs image on various boards which are using these SoCs. Support for more built-in devices and individual boards will be implemented in further patches. Signed-off-by: Gabor Juhos <[email protected]> Signed-off-by: Imre Kaloz <[email protected]> Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Cc: Kathy Giori <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1947/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: jump label: Add MIPS support.David Daney5-0/+110
In order not to be left behind, we add jump label support for MIPS. Tested on 64-bit big endian (Octeon), and 32-bit little endian (malta/qemu). Signed-off-by: David Daney <[email protected]> To: [email protected] Cc: Steven Rostedt <[email protected]> Cc: Jason Baron <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1923/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Use WARN() in uasm for better diagnostics.David Daney1-24/+16
On the off chance that uasm ever warns about overflow, there is no way to know what the offending instruction is. Change the printks to WARNs, so we can get a nice stack trace. It has the added benefit of being much more noticeable than the short single line warning message, so is less likely to be ignored. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1905/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Optimize TLB handlers for Octeon CPUsDavid Daney1-51/+310
Octeon can use scratch registers in the TLB handlers. Octeon II can use LDX instructions. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1904/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Add LDX and LWX instructions to uasm.David Daney3-1/+24
Needed by Octeon II optimized TLB handlers. Signed-off-by: David Daney <[email protected]> To: [email protected] Pachwork: https://patchwork.linux-mips.org/patch/1903/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Use BBIT instructions in TLB handlersDavid Daney1-29/+90
If the CPU supports BBIT0 and BBIT1, use them in TLB handlers as they are more efficient than an AND followed by an branch and then restoring the clobbered register. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1873/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Declare uasm bbit0 and bbit1 functions.David Daney1-0/+2
these are already defined, but declaring them allow them to be used outside of uasm.c. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1872/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Use C0_KScratch (if present) to hold PGD pointer.David Daney3-18/+108
Decide at runtime to use either Context or KScratch to hold the PGD pointer. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1876/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Add DINSM to uasm.David Daney2-1/+11
Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1875/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Probe for presence of KScratch registers.David Daney3-0/+5
Probe c0_config4 for KScratch registers and report them in /proc/cpuinfo. Signed-off-by: David Daney <[email protected]> To: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1877/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Add generic support for multiple machines within a single kernelGabor Juhos6-1/+157
This patch adds a generic solution to support multiple machines based on a given SoC within a single kernel image. It is implemented already for several other architectures but MIPS has no generic support for that yet. [Ralf: This competes with DT but DT is a much more complex solution and this code has been used by OpenWRT for a long time so for now DT is a bad reason to stop the merge but longer term this should be migrated to DT.] Signed-off-by: Gabor Juhos <[email protected]> Cc: [email protected] Cc: [email protected] Cc: Luis R. Rodriguez <[email protected]> Cc: Cliff Holden <[email protected]> Patchwork: https://patchwork.linux-mips.org/patch/1814/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Use printf extension %pR for struct resourceJoe Perches1-5/+2
Using %pR standardizes the struct resource output. Signed-off-by: Joe Perches <[email protected]> To: Jiri Kosina <[email protected]> Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1772/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18MIPS: Sibyte: Use vzalloc in sbbus profilerJoe Perches1-2/+1
Signed-off-by: Joe Perches <[email protected]> To: Jiri Kosina <[email protected]> Cc: [email protected] Cc: [email protected] Patchwork: https://patchwork.linux-mips.org/patch/1756/ Signed-off-by: Ralf Baechle <[email protected]>
2011-01-18Merge branch 'fixes' of ↵Linus Torvalds1-12/+1
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6 * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6: parisc: fix compile breakage caused by inlining maybe_mkwrite parisc : Remove broken line wrapping handling pdc_iodc_print()
2011-01-18Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblazeLinus Torvalds2-2/+5
* 'next' of git://git.monstr.eu/linux-2.6-microblaze: microblaze: Fix asm/pgtable.h microblaze: Fix missing pagemap.h
2011-01-18Merge branch 'for-linus' of ↵Linus Torvalds23-395/+578
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: ALSA: hda - Fix initialization for HP 2011 notebooks ALSA: hda - Add support for VMware controller ALSA: hda - consitify string arrays ALSA: hda - Add add multi-streaming playback for AD1988 ASoC: EP93xx: fixed LRCLK rate and DMA oper. in I2S code ASoC: WM8990: msleep() takes milliseconds not jiffies ALSA : au88x0 - Limit number of channels to fix Oops via OSS emu ALSA: constify functions in ac97 ASoC: WL1273 FM radio: Fix breakage with MFD API changes ALSA: hda - More coverage for odd-number channels elimination for HDMI ALSA: hda - Store PCM parameters properly in HDMI open callback ALSA: hda - Rearrange fixup struct in patch_realtek.c ALSA: oxygen: Xonar DG: fix CS4245 register writes ALSA: hda - Suppress the odd number of channels for HDMI ALSA: hda - Add fixup-call in init callback ALSA: hda - Reorganize fixup structure for Realtek ALSA: hda - Apply Sony VAIO hweq fixup only once ALSA: hda - Apply mario fixup only once ALSA: hda - Remove unused fixup entry for ALC262
2011-01-18Merge branch 'for-linus' of ↵Linus Torvalds38-623/+727
git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (25 commits) m68knommu: fix broken setting of irq_chip and handler m68knommu: switch to using -mcpu= flags for ColdFire targets m68knommu: arch/m68knommu/Kconfig whitespace cleanup m68knommu: create optimal separate instruction and data cache for ColdFire m68knommu: support ColdFire caches that do copyback and write-through m68knommu: support version 2 ColdFire split cache m68knommu: make cache push code ColdFire generic m68knommu: clean up ColdFire cache control code m68knommu: move inclusion of ColdFire v4 cache registers m68knommu: merge bit definitions for version 3 ColdFire cache controller m68knommu: create bit definitions for the version 2 ColdFire cache controller m68knommu: remove empty __iounmap() it is no used m68knommu: remove kernel_map() code, it is not used m68knommu: remove do_page_fault(), it is not used m68knommu: use user stack pointer hardware on some ColdFire cores m68knommu: remove command line printing DEBUG m68knommu: remove fasthandler interrupt code m68knommu: move UART addressing to part specific includes m68knommu: fix clock rate value reported for ColdFire 54xx parts m68knommu: move ColdFire CPU names into their headers ...
2011-01-18Merge branch 'perf-fixes-for-linus' of ↵Linus Torvalds3-30/+4
git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: perf tools: Fix tracepoint id to string perf.data header table perf tools: Fix handling of wildcards in tracepoint event selectors powerpc: perf: Fix frequency calculation for overflowing counters
2011-01-18Merge branch 's5p-fixes-for-linus' of ↵Linus Torvalds7-2/+9
git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung * 's5p-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung: ARM: S5PV310: Add missing virtual ASoC DMA device ARM: S5PV210: Add missing virtual ASoC DMA device ARM: S5P6450: Add missing virtual ASoC DMA device ARM: S5P6440: Add missing virtual ASoC DMA device ARM: S5P6442: Enable I2S device to work on SMDK6442
2011-01-18Merge branch 'for-linus' of ↵Linus Torvalds6-121/+66
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: autofs4: clean ->d_release() and autofs4_free_ino() up autofs4: split autofs4_init_ino() autofs4: mkdir and symlink always get a dentry that had passed lookup autofs4: autofs4_get_inode() doesn't need autofs_info * argument anymore autofs4: kill ->size in autofs_info autofs4: pass mode to autofs4_get_inode() explicitly autofs4: autofs4_mkroot() is not different from autofs4_init_ino() autofs4: keep symlink body in inode->i_private autofs4 - fix debug print in autofs4_lookup() vfs - fix dentry ref count in do_lookup() autofs4 - fix get_next_positive_dentry()
2011-01-18perf: Fix contexted inheritancePeter Zijlstra1-6/+5
Linus reported that the RCU lockdep annotation bits triggered for this rcu_dereference() because we're not holding rcu_read_lock(). Going over the code I cannot convince myself its correct: - holding a ref on the parent_ctx, doesn't avoid it being uncloned concurrently (as the comment says), so we can race with a free. - holding parent_ctx->mutex doesn't avoid the above free from taking place either, it would at best avoid parent_ctx from being freed. I.e. the warning is correct. To fix the bug, serialize against the unclone_ctx() call by extending the reach of the parent_ctx->lock. Reported-by: Linus Torvalds <[email protected]> Signed-off-by: Peter Zijlstra <[email protected]> Cc: Paul Mackerras <[email protected]> Cc: Paul E. McKenney <[email protected]> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <[email protected]>
2011-01-18x86: Clear irqstack thread_infoBrian Gerst1-5/+2
Mathias Merz reported that v2.6.37 failed to boot on his system. Make sure that the thread_info part of the irqstack is initialized to zeroes. Reported-and-Tested-by: Matthias Merz <[email protected]> Signed-off-by: Brian Gerst <[email protected]> Acked-by: Pekka Enberg <[email protected]> Cc: Arjan van de Ven <[email protected]> Cc: Linus Torvalds <[email protected]> LKML-Reference: <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
2011-01-18Merge branch 'fix/asoc' into for-linusTakashi Iwai5-103/+27
2011-01-18x86: Make relocatable kernel work with new binutilsShaohua Li1-2/+9
The CONFIG_RELOCATABLE=y option is broken with new binutils, which will make boot panic. According to Lu Hongjiu, the affected binutils are from 2.20.51.0.12 to 2.21.51.0.3, which are release since Oct 22 this year. At least ubuntu 10.10 is using such binutils. See: http://sourceware.org/bugzilla/show_bug.cgi?id=12327 The reason of the boot panic is that we have 'jiffies = jiffies_64;' in vmlinux.lds.S. The jiffies isn't in any section. In kernel build, there is warning saying jiffies is an absolute address and can't be relocatable. At runtime, jiffies will have virtual address 0. Signed-off-by: Shaohua Li<[email protected]> Cc: Lu Hongjiu<[email protected]> Cc: Huang Ying <[email protected]> Cc: Sam Ravnborg <[email protected]> LKML-Reference: <1295312269.1949.725.camel@sli10-conroe> Signed-off-by: Ingo Molnar <[email protected]>
2011-01-18Merge branch 'fix/hda' into for-linusTakashi Iwai13-254/+497
2011-01-18ALSA: hda - Fix initialization for HP 2011 notebooksVitaliy Kulikov1-43/+10
Fixes for HP 2011 notebooks: enable dock ports and disable BTL initialization in the driver. Signed-off-by: Vitaliy Kulikov <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-01-18ALSA: hda - Add support for VMware controllerBankim Bhavsar1-0/+2
Add the new PCI ID 0x15ad and device ID 0x1977 for VMware HDAudio Controller. [changed to use AZX_DRIVER_GENERIC by tiwai] Signed-off-by: Bankim Bhavsar <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-01-18ALSA: hda - consitify string arraysTakashi Iwai11-78/+95
Signed-off-by: Takashi Iwai <[email protected]>
2011-01-18ALSA: hda - Add add multi-streaming playback for AD1988Raymond Yau1-4/+178
Attached a patch which add a new model to support multi-streaming playback for ad1988. playback another stereo stream through the front panel headphone on device 2 while playback through the speakers connected to rear panel on device 0 at the same time. Tested with ad1988a rev2 codec on asus P5B-V motherboard. Signed-off-by: Raymond Yau <[email protected]> Signed-off-by: Takashi Iwai <[email protected]>
2011-01-18autofs4: clean ->d_release() and autofs4_free_ino() upAl Viro3-19/+16
The latter is called only when both ino and dentry are about to be freed, so cleaning ->d_fsdata and ->dentry is pointless. Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: split autofs4_init_ino()Al Viro3-26/+15
split init_ino into new_ino and clean_ino; the former is what used to be init_ino(NULL, sbi), the latter is for cases where we passed non-NULL ino. Lose unused arguments. Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: mkdir and symlink always get a dentry that had passed lookupAl Viro1-18/+10
... so ->d_fsdata will have been set up before we get there Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: autofs4_get_inode() doesn't need autofs_info * argument anymoreAl Viro3-7/+5
Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: kill ->size in autofs_infoAl Viro3-6/+3
It's used only to pass the length of symlink body to autofs4_get_inode() in autofs4_dir_symlink(). We can bloody well set inode->i_size in autofs4_dir_symlink() directly and be done with that. Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: pass mode to autofs4_get_inode() explicitlyAl Viro3-16/+15
In all cases we'd set inf->mode to know value just before passing it to autofs4_get_inode(). That kills the need to store it in autofs_info and pass it to autofs_init_ino() Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: autofs4_mkroot() is not different from autofs4_init_ino()Al Viro1-12/+1
Kill it. Mind you, it's been an obfuscated call of autofs4_init_ino() ever since 2.3.99pre6-4... Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4: keep symlink body in inode->i_privateAl Viro4-28/+9
gets rid of all ->free()/->u.symlink machinery in autofs; we simply keep symlink bodies in inode->i_private and free them in ->evict_inode(). Acked-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4 - fix debug print in autofs4_lookup()Ian Kent1-1/+2
oz_mode isn't defined any more, use autofs4_oz_mode(sbi) instead. Signed-off-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18vfs - fix dentry ref count in do_lookup()Ian Kent1-1/+3
There is a ref count problem in fs/namei.c:do_lookup(). When walking in ref-walk mode, if follow_managed() returns a fail we need to drop dentry and possibly vfsmount. Clean up properly, as we do in the other caller of follow_managed(). Signed-off-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18autofs4 - fix get_next_positive_dentry()Ian Kent1-2/+2
The initialization condition in fs/autofs4/expire.c:get_next_positive_dentry() appears to be incorrect. If prev == NULL I believe that root should be returned. Further down, at the current dentry check for it being simple_positive() it looks like the d_lock for dentry p should be dropped instead of dentry ret, otherwise when p is assinged to ret we end up with no lock on p and a lost lock on ret, which leads to a deadlock. Signed-off-by: Ian Kent <[email protected]> Signed-off-by: Al Viro <[email protected]>
2011-01-18ARM: S5PV310: Add missing virtual ASoC DMA deviceJassi Brar2-2/+4
Signed-off-by: Jassi Brar <[email protected]> Signed-off-by: Kukjin Kim <[email protected]>