Paul Walmsley [Mon, 27 Aug 2007 08:39:12 +0000 (02:39 -0600)]
omap2 clock: remove all {src, rate}_offset fields from struct clk
src_offset and rate_offset are no longer used in OMAP2 clock framework
after the struct clksel/struct clksel_rate additions. Remove these
fields from clock.h and #ifdef out those fields for OMAP24XX compiles.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:11 +0000 (02:39 -0600)]
omap2 clock: convert remaining clksel clocks to use omap2_clksel_recalc
This completes the transition to struct clksel/clksel_rate by converting the
remaining clksel clocks to call omap2_clksel_recalc() on rate recalculation.
Also remove RATE_FIXED from some clocks that can now recalculate their own
rates correctly via clksel.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:06 +0000 (02:39 -0600)]
omap2 clock: convert omap2_get_clksel to use new clksel struct
Convert omap2_get_clksel to use new struct clksel and struct
clksel_rate data. Also fix its parameter order to conform with the
rest of the clock framework functions (i.e., struct clk first).
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:04 +0000 (02:39 -0600)]
omap2 clock: convert omap2_clksel_to_divisor and omap2_divisor_to_clksel to use new clksel struct
Convert omap2_clksel_to_divisor() and omap2_divisor_to_clksel() to use
the new struct clksel and struct clksel_rate data. Add
omap2_get_clksel_by_parent() utility code, called by both functions,
to return the appropriate struct clksel for a given (struct clk, parent
struct clk) combination.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:03 +0000 (02:39 -0600)]
omap2 clock: init clksel clock parents to hardware reality at clock init
Source-selectable clksel clocks have a 'default parent' assigned to them
at compile-time. This default parent may or may not match the reality
that is configured in the hardware registers by the bootloader. Clock tree
recalculations could be erratic if the struct clk parent field contents
don't match the hardware registers.
Resolve this by creating omap2_init_clksel_parent() to read the hardware
registers and update the struct clk parent field as appropriate for clksel
clocks. Add an '.init' field to each source-selectable clk structure so
that the parent is fixed up when the clock is initially registered. (We
don't do this for clksel clocks that are only rate-selectable, since they
only have one possible parent clock.)
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:02 +0000 (02:39 -0600)]
omap2 clock: add clksel and clksel_rate data
Many OMAP2 clocks are either source- or divisor-selectable by twiddling
various register bits; these are 'clksel' clocks. The table of rate divisors
and source clock settings was previously embedded in the clock.c source code.
Encode this data in two data structures:
1) struct clksel_rate for divisor-selection, mapping divisor values to
register bit field values, along with a flags field indicating which
chips the rate is available for -- one for each parent-rate combination; and:
2) struct clksel for source-selection, mapping parent struct clk pointers
to struct clksel_rate array pointers; one for each parent.
Also, add several fields to the clk structure:
1) clksel: pointer to the struct clksel array
2) clksel_reg: pointer to the clksel register
3) clksel_mask: mask for the clksel bitfield
Add this data to each clksel clock. All this data is not yet used by the clock
framework; that functionality is in the following patches.
N.B. Two clocks, sys_clkout and sys_clkout2, could not be converted to
this setup without splitting source selection and divisor selection.
This is because these clocks use separate registers for each
selector. So, create two new clocks, sys_clkout_src and
sys_clkout2_src, and locate source-selection there, and keep divisor
selection in sys_clkout/sys_clkout2. This entailed modifying
board-n800-audio.c.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Paul Walmsley [Mon, 27 Aug 2007 08:39:01 +0000 (02:39 -0600)]
omap2 clock: rename, add comment to omap2_mpu_recalc()
omap2_mpu_recalc() actually just looks up what the MPU speed 'should'
currently be from the current virt_prcm_set rate set, rather than reporting
the actual hardware settings. Clarify this by renaming it to
omap2_table_mpu_recalc() and adding some comments.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
omap2_propagate_rate() seems completely superfluous. It handles two
cases. The first case is for non-fixed rate clocks. It assigns the
parent's rate to the clock, and continues propagating the rate
downwards. This can be handled by adding a RATE_PROPAGATES clock flag
to the clock, if it wasn't there already, and by using
followparent_recalc() directly as the recalc function. The second
case is for fixed rate clocks. Here all we need to do is to call
propagate_rate() directly, so, use that for the recalc function.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Add a new clock framework function, recalculate_root_clocks(), that
recalculates all root clocks (i.e., clocks with no parent clock).
Call this function in omap2_clk_arch_init(), rather than manually
propagating specific clocks. Add propagate_rate() recalcs to func_32k_ck
and osc_ck.
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Felipe Balbi [Mon, 27 Aug 2007 19:11:44 +0000 (15:11 -0400)]
OMAP2: PM: Kill compile warnings at arch/arm/mach-omap2/pm.c
Get rid of the following warnings:
arch/arm/mach-omap2/pm.c: In function 'omap2_enter_full_retention':
arch/arm/mach-omap2/pm.c:509: warning: implicit declaration of function 'omap2_gpio_prepare_for_retention'
arch/arm/mach-omap2/pm.c:536: warning: implicit declaration of function 'omap2_gpio_resume_after_retention'
Signed-off-by: Felipe Balbi <felipe.lima@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
Even more CamelCase removal from CPPI:
- members of cppi_channel struct
- parameters to cppi_channel_program()
- "buffSz" local variables
- "chNum" local variables
- "regVal" local variables
Also
- remove the FIXME about using container_of(), that's resolved now
- stop using the now-pointless private_data fields
- remove the redundant actualLen field (use dma_channel.actual_len)
- remove some redundent local variables
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
More CamelCase removal from the CPPI support. In this case:
- CPPI descriptor members;
- Some members of the controller struct;
- Rename "regBase" variables (as "tibase", vs Mentor registers)
- Rename otgCh variables as cppi_ch;
This code still has a bunch of CaMeLcAsInG going on.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Felipe Balbi [Mon, 27 Aug 2007 19:11:45 +0000 (15:11 -0400)]
MUSB: Kill compile warnings at drivers/usb/musb/tusb6010.c
Get rid of the following warning:
drivers/usb/musb/tusb6010.c: In function 'tusb_otg_ints':
drivers/usb/musb/tusb6010.c:716: warning: unused variable 'devctl'
Signed-off-by: Felipe Balbi <felipe.lima@indt.org.br> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Thu, 7 Dec 2006 01:14:03 +0000 (17:14 -0800)]
ARM: OMAP: abstract debug card setup (smc, leds)
Additional cleanup for debug boards on H2/P2/H3/H4: move the init
code that's not board-specific into a new file where it can be easily
shared between all the different boards (avoiding code duplication,
and making it easier to support more devices). Make H4 use that.
This should be easy to drop in to the OMAP1 boards using these debug
cards; the only difference seems to be that the p2 does an extra reset
of the smc using the fpga (probably all boards could do that, if it's
necessary) and doesn't use the gpio mux or request APIs.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Thu, 7 Dec 2006 01:13:55 +0000 (17:13 -0800)]
ARM: OMAP: omap2/gpmc updates
GPMC updates:
- bugfixes: wrong/missing flags, omitted write, wrong test
- don't map memory segments starting at zero
- improve debug messaging
- export gpmc_get_fclk_perio]d() since it's needed to calc timings
- expect gpmc_cs_set_timings() caller to have initialized sync vs async
Note that this API is glitchy; likely the best fix would be to add
a member to "struct gpmc_timings" to hold GPMC_CONFIG1, since that
holds one key aspect of the GPMC timings (the gpmc_fclk divisor,
and sync vs. async == whether that divisor matters).
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
This adds basic support for Siemens SX1. More patches are available,
with video driver, mixer, and serial ports working. That is enough to
do gsm calls with right userland.
Signed-off-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Tony Lindgren <tony@atomide.com>
This adds support for the keypad on the top of the Amstrad Delta. It's
just a standard omap-keypad so all we need to do is add the keypad
layout and platform data to the board definition file.
Signed-off-by: Jonathan McDowell <noodles@earth.li> Signed-off-by: Tony Lindgren <tony@atomide.com>
General update of the board file for Palm Tungsten E. Registers the
platform devices contained in the PDA (ROM chip, keypad, infra-red)
and updates the configuration for USB and MMC, whose config values
were previously guessed in most cases due to lack of documentation
(and now are confirmed by a number of users). Macros for GPIO pins are
moved to a file in include/asm-arm/arch-omap.
Signed-off-by: Andrzej Zaborowski <balrog@zabor.org> Signed-off-by: Tony Lindgren <tony@atomide.com>
Imre Deak [Mon, 5 Mar 2007 15:34:05 +0000 (17:34 +0200)]
ARM: OMAP: add SoSSI clock (remove manual checking of SoSSI state from idle)
The SoSSI driver should already take care of this by enabling / disabling
its clock when necessary, so this legacy callout from the PM idle code
is not needed any more.
Signed-off-by: Imre Deak <imre.deak@solidboot.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
David Brownell [Mon, 2 Apr 2007 19:45:50 +0000 (12:45 -0700)]
ARM: OMAP: fix OMAP1 dmtimer build warning
Remove the OMAP1 version of omap_dm_timer_get_fclk(), and its associated
compile-time warning. It would only BUG() if called, while it's only
called on OMAP2.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Tony Lindgren <tony@atomide.com>
Andrew Vasquez [Mon, 27 Aug 2007 22:25:01 +0000 (15:25 -0700)]
dm-mpath-rdac: don't stomp on a requests transfer bit
Without this, we get qla2xxx complaining about "ISP System Error".
What's happening here is the firmware is detecting a Xfer-ready from the
storage when in fact the data-direction for a mode-select should be a
write (DATA_OUT).
The following patch fixes the problem (typo). Verified by Brian, as
well.
Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com> Verified-by: Brian De Wolf <bldewolf@csupomona.edu> Signed-off-by: Chandra Seetharaman <sekharan@us.ibm.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Mon, 27 Aug 2007 22:06:28 +0000 (15:06 -0700)]
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
[SPARC32]: Make flush_tlb_kernel_range() an inline function.
[SERIAL]: Fix 32-bit warnings in sunzilog.c and sunsu.c
[SPARC32]: Kill unused vars and macros from prom/console.c
[SPARC32]: Add __cmpdi2() libcall implementation ala. MIPS.
[VIDEO]: Do not prom_halt() in cg3 and bw2 device probe.
[SUNVDC]: Use slice 0xff on VD_DISK_TYPE_DISK.
Linus Torvalds [Mon, 27 Aug 2007 22:06:01 +0000 (15:06 -0700)]
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
[NET]: Mark Paul Moore as maintainer of labelled networking.
[VLAN/BRIDGE]: Fix "skb_pull_rcsum - Fatal exception in interrupt"
[ISDN]: Get rid of some pointless allocation casts in common and bsd comp.
[NET]: Avoid pointless allocation casts in BSD compression module
[IRDA]: Do not do pointless kmalloc return value cast in KingSun driver
[NET]: Fix crash in dev_mc_sync()/dev_mc_unsync()
[PPPOL2TP]: Fix endianness annotations.
[IOAT]: ioatdma needs to to play nice in a multi-dma-client world
[SLIP]: trivial sparse warning fix
[EQL]: sparse warning fix
[NET]: is_power_of_2 in net/core/neighbour.c
[TCP]: Describe tcp_init_cwnd() thoroughly in a comment.
[NET]: Fix IP_ADD/DROP_MEMBERSHIP to handle only connectionless
[KBUILD]: Sanitize tc_ematch headers.
[IPSEC] AH4: Update IPv4 options handling to conform to RFC 4302.
Hugh Dickins [Mon, 27 Aug 2007 15:06:19 +0000 (16:06 +0100)]
fix bogus hotplug cpu warning
Fix bogus DEBUG_PREEMPT warning on x86_64, when cpu brought online after
bootup: current_is_keventd is right to note its use of smp_processor_id
is preempt-safe, but should use raw_smp_processor_id to avoid the warning.
Hugh Dickins [Mon, 27 Aug 2007 15:04:39 +0000 (16:04 +0100)]
reverse CONFIG_ACPI_PROC_EVENT default
Sigh. Again an ACPI assault on the Thinkpad's Fn+F4 to suspend to RAM.
The default and text for CONFIG_THINKPAD_ACPI_INPUT_ENABLED were fixed
in -rc3, but now commit 14e04fb34ffa82ee61ae69f98d8fca12d2e8e31c ("ACPI:
Schedule /proc/acpi/event for removal") introduces the ACPI_PROC_EVENT
config entry, and defaults it to 'n' to disable it again.
Change default to y, and add comment to make it clearer that n is for
future distros.
Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Len Brown <len.brown@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
maxcpus=N is now having no effect on x86_64, and freezing bootup on i386
(because of inconsistency with the separate maxcpus parsing down in
arch/i386, I guess). That's because early_param parsing is a little
different from __setup parsing, and needs the "=" omitted: then it seems
to work as the original commit intended (no mention of IO-APIC in
/proc/interrupts when maxcpus=0).
Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Len Brown <len.brown@intel.com> Cc: Andi Kleen <ak@suse.de> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Linus Torvalds [Mon, 27 Aug 2007 16:42:21 +0000 (09:42 -0700)]
Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc
* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
[POWERPC] Fix SLB initialization at boot time
[POWERPC] Fix undefined reference to device_power_up/resume
[POWERPC] cell: Update cell_defconfig for 2.6.23
[POWERPC] axonram: Do not delete gendisks queue in error path
[POWERPC] axonram: Module modification for latest firmware API changes
[POWERPC] cell: Support pinhole-reset on IBM cell blades
[POWERPC] spu_manage: Use newer physical-id attribute
[POWERPC] pasemi: Another IOMMU bugfix for 64K PAGE_SIZE
Linus Torvalds [Mon, 27 Aug 2007 16:30:52 +0000 (09:30 -0700)]
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6
* 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
[PARISC] Add NOTES section
[PARISC] Use compat_sys_getdents
[PARISC] Do not allow STI_CONSOLE to be modular
[PARISC] Clean up sti_flush
[PARISC] Add dummy isa_(bus|virt)_to_(virt|bus) inlines
[PARISC] Add empty <asm-parisc/vga.h>
David S. Miller [Sat, 25 Aug 2007 22:17:31 +0000 (15:17 -0700)]
[SERIAL]: Fix 32-bit warnings in sunzilog.c and sunsu.c
resource_size_t can be either a u64 or a u32, and we can't
really know for sure, so when printing such a value out
always use long-long printf formatting and cast the argument
to that type.
Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller [Sat, 25 Aug 2007 05:05:44 +0000 (22:05 -0700)]
[SUNVDC]: Use slice 0xff on VD_DISK_TYPE_DISK.
While debugging issues with the VDS server I made the
driver use partition 2 to get at the whole disk since
this is the "whole disk" partition in the Sun disk
label.
We really should use slice 0xff which really means
the whole physical disk in the VIO disk protocol.
Otherwise things won't work well on a disk image
that doesn't have a proper disk label on it.
Signed-off-by: David S. Miller <davem@davemloft.net>