aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ieee1394
Commit message (Collapse)AuthorAgeFilesLines
* Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpcLinus Torvalds2006-03-291-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (67 commits) [PATCH] powerpc: Remove oprofile spinlock backtrace code [PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus [PATCH] powerpc: Add oprofile calltrace support [PATCH] for_each_possible_cpu: ppc [PATCH] for_each_possible_cpu: powerpc [PATCH] lock PTE before updating it in 440/BookE page fault handler [PATCH] powerpc: Kill _machine and hard-coded platform numbers ppc: Fix compile error in arch/ppc/lib/strcase.c [PATCH] git-powerpc: WARN was a dumb idea [PATCH] powerpc: a couple of trivial compile warning fixes powerpc: remove OCP references powerpc: Make uImage default build output for MPC8540 ADS powerpc: move math-emu over to arch/powerpc powerpc: use memparse() for mem= command line parsing ppc: fix strncasecmp prototype [PATCH] powerpc: make ISA floppies work again [PATCH] powerpc: Fix some initcall return values [PATCH] powerpc: Workaround for pSeries RTAS bug [PATCH] spufs: fix __init/__exit annotations [PATCH] powerpc: add hvc backend for rtas ...
| * [PATCH] powerpc: Kill _machine and hard-coded platform numbersBenjamin Herrenschmidt2006-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This removes statically assigned platform numbers and reworks the powerpc platform probe code to use a better mechanism. With this, board support files can simply declare a new machine type with a macro, and implement a probe() function that uses the flattened device-tree to detect if they apply for a given machine. We now have a machine_is() macro that replaces the comparisons of _machine with the various PLATFORM_* constants. This commit also changes various drivers to use the new macro instead of looking at _machine. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
* | ohci1394: cleanup the "Unexpected PCI resource length" warning.Jody McIntyre2006-03-281-2/+2
| | | | | | | | | | | | | | | | | | | | This warning happens in practice because the resource length reported by the chipset is too large. This is not actually a problem, so don't warn about it. If it happens to be too small, warn about that, but with a different message so people who are used to ignoring the old message don't. Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: misc debug logging cleanupsStefan Richter2006-03-281-77/+33
| | | | | | | | | | | | | | | | | | | | | | - move call of scsi_print_command from sbp2_send_command to the beginning of sbp2_queue_command to show also commands which are not sent - put sbp2's name into scsi_print_sense - use __FUNCTION__ in log messages - remove a few less useful log messages and comments Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: proper treatment of DID_OKStefan Richter2006-03-281-3/+5
| | | | | | | | | | | | | | | | | | Sbp2 relied on DID_OK to be defined as 0. Always shift DID_OK into the right position anyway, and explicitly return DID_OK together with CHECK_CONDITION. Also comment on some #if 0 code. The patch does not change current behaviour. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: set read permission for parameter disable_irmStefan Richter2006-03-281-1/+1
| | | | | | | | | | | | | | No need to hide it from /sys/module/ieee1394/parameters/. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: check for ARM failureStefan Richter2006-03-281-3/+7
| | | | | | | | | | | | | | | | | | | | Sbp2 did not check for successful registration of the lower address range when CONFIG_IEEE1394_SBP2_PHYS_DMA was set. If hpsb_register_addrspace failed, a "login timed-out" would occur which is misleading. Now sbp2 logs a sensible error message. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ohci1394: clean up asynchronous and physical request filters programmingStefan Richter2006-03-281-18/+19
| | | | | | | | | | | | | | | | | | | | Various cleanups of how ohci1394 programs AsynchronousRequestFilter, PhysicalRequestFilter, and physUpperBoundOffset. In particular, do not rewrite registers within the bus reset interrupt handler if bus resets do not affect the registers in the first place. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: remove amdtp remains from ieee1394_core.hStefan Richter2006-03-281-2/+0
| | | | | | | | | | | | | | since amdtp driver was deleted Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: remove devfs supportStefan Richter2006-03-285-73/+5
| | | | | | | | | | | | | | | | | | | | Devfs has been disabled in the last kernel releases, so let's remove it from ieee1394core, raw1394, video1394, dv1394. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Cc: Dan Dennedy <dan@dennedy.org> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | Signed-off-by: Jody McIntyre <scjody@modernduck.com>Jody McIntyre2006-03-281-3/+5
| |
* | sbp2: prevent unloading of 1394 low-level driverStefan Richter2006-03-281-0/+9
|/ | | | | | | | | | | | | | When a new SBP-2 unit is added, sbp2 now takes a reference on the 1394 low-level driver (ohci1394 or pcilynx). This prevents the 1394 host driver module from being unloaded, e.g. by an administrative routine cleanup of unused kernel modules or when another 1394 driver which depends on ohci1394 is unloaded. The reference is dropped when the SBP-2 unit was disconnected, when sbp2 is unloaded or detached from the unit, or when addition of the SBP-2 unit failed. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* [PATCH] bitops: hweight() related cleanupAkinobu Mita2006-03-261-2/+1
| | | | | | | | | | | | | By defining generic hweight*() routines - hweight64() will be defined on all architectures - hweight_long() will use architecture optimized hweight32() or hweight64() I found two possible cleanups by these reasons. Signed-off-by: Akinobu Mita <mita@miraclelinux.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] x86_64: Implement compat code for raw1394 read/writeAndi Kleen2006-03-251-5/+91
| | | | | | | | | Not for the ioctls so far because I was too lazy. Cc: bcollins@debian.org Cc: dan@dennedy.org Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] video1394: fix "return E;" typoAlexey Dobriyan2006-02-281-1/+1
| | | | | | | | | Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Cc: Ben Collins <bcollins@debian.org> Cc: Jody McIntyre <scjody@modernduck.com> Cc: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* sbp2: update 36byte inquiry workaround (fix compatibility regression)Stefan Richter2006-02-231-23/+19
| | | | | | | | | | | | | Since about Linux 2.6.14, sbp2's inquiry workaround did not work anymore due to changes in the SCSI layer. Update it to become effective again. Testing one of the two known affected bridges has shown that skip_ms_page_8 is required as well. Also, make force_inquiry_hack tunable via /sys/module/sbp2/parameters. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com> (cherry picked from 99496037c6744fd938ffb8ccfc8fc91762322ff8 commit)
* sbp2: variable status FIFO address (fix login timeout)Stefan Richter2006-02-232-69/+59
| | | | | | | | | | | | | | | | | | | | | | | | Let the ieee1394 core select a suitable 1394 address range for sbp2's status FIFO instead of using a fixed range. Since the core only selects addresses which are guaranteed to be out of the "physical range" as per OHCI 1.1, this patch also fixes an old bug: OHCI controllers which implement a writeable PhysicalUpperBound register included sbp2's status FIFO in the physical range. That way sbp2 was never notified of a succesful login and always failed after timeout. Affected OHCI host adapters include ALi and Fujitsu controllers. As another side effect of this patch, the status FIFO is no longer located in a range for which OHCI chips perform "posted writes". Each status write now requires a response subaction. But since large data transfers involve only few status writes, there is no measurable decrease of I/O throughput. What's more, the status FIFO is now safe from potential host bus errors. Nevertheless, posted writes could be re-enabled by extensions to the ARM features of the 1394 stack. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com> (cherry picked from b2d38cccad4ef80d6b672b8f89aae5fe2907b113 commit)
* sbp2: fix another deadlock after disconnectionStefan Richter2006-02-231-2/+8
| | | | | | | | | | | | If there were commands enqueued but not completed before an SBP-2 unit was unplugged (or an attempt to reconnect failed), knodemgrd or any process which tried to remove the device would sleep uninterruptibly in blk_execute_rq(). Therefore make sure that all commands are completed when sbp2 retreats. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com> (cherry picked from 61daa34c132c5d4ed8630e2c46e9bf2f0c7b3428 commit)
* [PATCH] don't mangle INQUIRY if cmddt or evpd bits are setAl Viro2006-02-181-9/+1
| | | | | | | | | sbp2.c mangles INQUIRY response in a way that only applies to standard inquiry data (i.e. when both cmddt and evpd bits are 0). Leave other cases alone; e.g. when asking for VPD the length of reply is in byte 3, not 4 and byte 4 is the first byte of device serial number. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
* Actually remove amdtp.[ch], cmp.[ch].Jody McIntyre2006-01-164-1723/+0
| | | | | | | The feature removal was done in 7301c8d3a05dc52d33598364da7c4eb6ab6357eb but these files were not removed for some reason. Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* [PATCH] don't include ioctl32.h in driversChristoph Hellwig2006-01-103-3/+0
| | | | | | | | | | | These days ioctl32.h is only used for communication of fs/compat.c and fs/compat_ioctl.c and doesn't contain anything of interest to drivers. Remove inclusion in various drivers. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* [PATCH] don't freeze firewire on suspend.Dave Jones2006-01-061-2/+2
| | | | | | | | | | | | | We had a report from one loony user who tried out suspend to disk using a swap partition on a firewire drive. As the firewire thread was put to sleep it didn't work out too well. Signed-off-by: Dave Jones <davej@redhat.com> Cc: Pavel Machek <pavel@ucw.cz> Cc: Ben Collins <bcollins@debian.org> Cc: Jody McIntyre <scjody@modernduck.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
* Merge with http://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.gitJody McIntyre2006-01-052-10/+11
|\
| * Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-2.6Linus Torvalds2006-01-041-10/+10
| |\ | | | | | | | | | Trivial manual merge fixup for usb_find_interface clashes.
| | * [PATCH] driver core: replace "hotplug" by "uevent"Kay Sievers2006-01-041-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | Leave the overloaded "hotplug" word to susbsystems which are handling real devices. The driver core does not "plug" anything, it just exports the state to userspace and generates events. Signed-off-by: Kay Sievers <kay.sievers@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| * | Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuildLinus Torvalds2006-01-041-0/+1
| |\ \ | | |/ | |/|
| | * gitignore: misc filesBrian Gerst2006-01-011-0/+1
| | | | | | | | | | | | | | | | | | | | | Ignore all files generated from *_shipped files, plus a few others. Signed-off-by: Brian Gerst <bgerst@didntduck.org> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
| * | ieee1394: write broadcast_channel only to select nodes (fixes device ↵Stefan Richter2005-12-121-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recognition) Some old 1394-1995 SBP-2 bridges would hang if they received a broadcast write request to BROADCAST_CHANNEL before the config ROM was read. Affected devices include Datafab MD2-FW2 2.5" HDD and SmartDisk VST FWCDRW-V8 portable CD writer. The write request is now directed to specific nodes instead of being broadcast to all nodes at once, and it is only performed if a previous read request at this register succeeded. Fixes an old interoperability problem which was perceived as a 2.6.14-specific regression: http://marc.theaimsgroup.com/?t=113190586800003 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com> (cherry picked from 61c7f775ca25ccfc0e51486103a724fb1a3a08f2 commit)
| * | ieee1394: resume remote ports when starting a host (fixes device recognition)Stefan Richter2005-12-122-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After initializing an IEEE 1394 host, broadcast a resume packet. This makes remote nodes visible which suspended their ports while the host was down. Such nodes had to be unplugged and replugged in order to be recognized. Motorola DCT6200 cable reciever was affected, probably other devices too. http://marc.theaimsgroup.com/?t=113202715800001 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com> (cherry picked from 14c0fa243b358c24040ff5f44b60c47aaf6430c3 commit)
| * | sbp2_command_orb_lock must be held when accessing the _orb_inuse list.Jody McIntyre2005-11-181-0/+6
| |/ | | | | | | | | | | | | | | | | Fixes an oops in sbp2util_find_command_for_SCpnt after sbp2scsi_abort: https://bugzilla.novell.com/show_bug.cgi?id=113734 Signed-off-by: Jody McIntyre <scjody@steamballoon.com> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> (cherry picked from 7945619794314414a5c44df11fca4d3f2a3389cf commit)
* | sbp2: remove duplicate code from sbp2_start_device()Stefan Richter2005-12-131-50/+7
| | | | | | | | | | | | | | Use sbp2_remove_device() to free FIFO and ORB DMAs in a failure case. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: split sbp2_create_command_orb() for better readabilityStefan Richter2005-12-132-184/+178
| | | | | | | | | | | | | | | | | | | | sbp2_create_command_orb() code cleanup: - add two helper functions to reduce nesting depth - omit the return value which was always ignored - remove unnecessary declaration from sb2.h Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ohci1394: log number of implemented isochronous contextsStefan Richter2005-12-131-7/+3
| | | | | | | | | | | | | | | | Print the number of IR and IT contexts which a hardware implements as an informational log message when ohci1394 initializes. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: did not clean up after scsi_add_device() failedStefan Richter2005-12-121-0/+2
| | | | | | | | | | | | | | | | | | If scsi_add_device() at the end of sbp2_start_device() fails, e.g. due to transport errors during SCSI inquiry, sbp2 needs to log out of the device and release all associated resources. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | sbp2: delete sbp2scsi_direction_tableStefan Richter2005-12-122-68/+17
| | | | | | | | | | | | | | | | DMA_BIDIRECTIONAL data direction may be handled properly by Linux in the future. For now, reject it instead to convert it to another direction. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: run high-level updates before high-level probesStefan Richter2005-12-121-3/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After a bus reset, let nodemgr call high-level update hooks first for nodes which do not need to be probed. The main benefit is for a bus with more than one SBP-2 device: SBP-2 reconnects will be performed before SBP-2 logins, thus have a much higher chance to succeed, and their SCSI devices will not be blocked much longer than necessary. This was demonstrated for Linux 2.4 by Dave Cinege a while ago. A better approach would be to perform time-consuming probes in parallel by a subthread. I actually plan to implement this for sbp2 but it may take a while to get that done and tested. Until then, this tweak is a huge improvement for users with multiple SBP-2 devices. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: remove nonexistent functions from nodemgr.hStefan Richter2005-12-051-18/+0
| | | | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: write broadcast_channel only to select nodes (fixes device ↵Stefan Richter2005-12-051-10/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | recognition) Some old 1394-1995 SBP-2 bridges would hang if they received a broadcast write request to BROADCAST_CHANNEL before the config ROM was read. Affected devices include Datafab MD2-FW2 2.5" HDD and SmartDisk VST FWCDRW-V8 portable CD writer. The write request is now directed to specific nodes instead of being broadcast to all nodes at once, and it is only performed if a previous read request at this register succeeded. Fixes an old interoperability problem which was perceived as a 2.6.14-specific regression: http://marc.theaimsgroup.com/?t=113190586800003 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: whitespace cleanup in hosts.[ch], ieee1394_core.[ch]Stefan Richter2005-12-014-526/+526
| | | | | | | | | | Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: hpsb_send_phy_config() cleanupStefan Richter2005-12-011-15/+6
| | | | | | | | | | | | | | | | Eliminate some code in hpsb_send_phy_config() which is provided by hpsb_make_phypacket(). Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: add definitions for phy packet constantsStefan Richter2005-12-013-18/+42
| | | | | | | | | | | | | | | | Introduce new macros related to phy packets and use them in ieee1394_core and nodemgr. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394: resume remote ports when starting a host (fixes device recognition)Stefan Richter2005-12-012-0/+26
| | | | | | | | | | | | | | | | | | | | | | | | After initializing an IEEE 1394 host, broadcast a resume packet. This makes remote nodes visible which suspended their ports while the host was down. Such nodes had to be unplugged and replugged in order to be recognized. Motorola DCT6200 cable reciever was affected, probably other devices too. http://marc.theaimsgroup.com/?t=113202715800001 Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394/raw1394: LIndent fixesJens-Michael Hoffmann2005-11-221-18/+20
| | | | | | | | | | | | | | This patch contains fixes by LIndent. Signed-off-by: Jens-Michael Hoffmann <jensmh@gmx.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394/iso: LIndent fixesJens-Michael Hoffmann2005-11-221-42/+60
| | | | | | | | | | | | | | This patch contains fixes by LIndent. Signed-off-by: Jens-Michael Hoffmann <jensmh@gmx.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394/ieee1394_transactions: LIndent fixesJens-Michael Hoffmann2005-11-221-193/+195
| | | | | | | | | | | | | | This patch contains fixes by LIndent. Signed-off-by: Jens-Michael Hoffmann <jensmh@gmx.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | ieee1394/dma: LIndent fixesJens-Michael Hoffmann2005-11-221-28/+45
| | | | | | | | | | | | | | This patch contains fixes by LIndent. Signed-off-by: Jens-Michael Hoffmann <jensmh@gmx.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | csr1212: add check for !validJody McIntyre2005-11-221-1/+2
| | | | | | | | | | | | | | Don't read the keyval if there's already a valid one in place. May not be necessary but shouldn't hurt. Signed-off-by: Jody McIntyre <scjdy@steamballoon.com>
* | csr1212: check results of keyval readsJody McIntyre2005-11-221-3/+4
| | | | | | | | | | | | | | | | csr1212_parse_csr() did not properly check return values when reading keyvals. Fix this by using _csr1212_read_keyval() instead of csr1212_get_keyval() and checking the return code. Signed-off-by: Jody McIntyre <scjody@steamballoon.com>
* | raw1394: fix memory deallocation in modify_config_romStefan Richter2005-11-211-1/+1
| | | | | | | | | | | | | | raw1394: use correct deallocation macro for CSR cache Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>
* | drivers/ieee1394/raw1394.c: fix a NULL pointerAdrian Bunk2005-11-211-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | The coverity checker spotted that this was a NULL pointer dereference in the "if (copy_from_user(...))" case since the next step is to kfree(cache->filled_head). There's no need to free cache at this point, and it's getting free'd later. Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Jody McIntyre <scjody@modernduck.com>