openwrt/staging/blogic.git
15 years ago[ARM] OMAP3 PRCM: add DPLL1-5 powerdomains, clockdomains; mark clocks
Paul Walmsley [Wed, 28 Jan 2009 02:44:18 +0000 (19:44 -0700)]
[ARM] OMAP3 PRCM: add DPLL1-5 powerdomains, clockdomains; mark clocks

Each DPLL exists in its own powerdomain (cf 34xx TRM figure 4-18) and
clockdomain; so, create powerdomain and clockdomain structures for them.
Mark each DPLL clock as belonging to their respective DPLL clockdomain.
cf. 34xx TRM Table 4-27 (among other references).

linux-omap source commits are acdb615850b9b4f7d1ab68133a16be8c8c0e7419 and
a8798a48f33e9268dcc7f30a4b4a3ce4220fe0c9.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP3 clock: move sys_clkout2 clk to core_clkdm
Paul Walmsley [Thu, 8 May 2008 01:19:07 +0000 (19:19 -0600)]
[ARM] OMAP3 clock: move sys_clkout2 clk to core_clkdm

sys_clkout2 belongs in the core_clkdm (3430 TRM section 4.7.2.2).
It's not clear whether it actually is in the CORE clockdomain, or whether
it is technically in a different clockdomain; but this is closer to
reality than the present configuration.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP2/3 clockdomains: add CM and PRM clkdms
Paul Walmsley [Wed, 10 Sep 2008 16:47:36 +0000 (10:47 -0600)]
[ARM] OMAP2/3 clockdomains: add CM and PRM clkdms

Add clockdomains for the CM and PRM.  These will ultimately replace the
"wkup_clkdm", which appears to not actually exist on the hardware.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP2/3 clockdomains: combine pwrdm, pwrdm_name into union in struct clockdomain
Paul Walmsley [Tue, 3 Feb 2009 09:10:03 +0000 (02:10 -0700)]
[ARM] OMAP2/3 clockdomains: combine pwrdm, pwrdm_name into union in struct clockdomain

struct clockdomain contains a struct powerdomain *pwrdm and const char
*pwrdm_name.  The pwrdm_name is only used at initialization to look up
the appropriate pwrdm pointer.  Combining these into a union saves
about 100 bytes on 3430SDP.  This patch should not cause any change in
kernel function.

Updated to gracefully handle autodeps that contain invalid powerdomains,
per Russell King's review comments.

Boot-tested on BeagleBoard ES2.1.

linux-omap source commit is 718fc6cd4db902aa2242a736cc3feb8744a4c71a.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP2: Implement CPUfreq frequency table based on PRCM table
Kevin Hilman [Wed, 28 Jan 2009 02:13:38 +0000 (19:13 -0700)]
[ARM] OMAP2: Implement CPUfreq frequency table based on PRCM table

This patch adds a CPUfreq frequency-table implementation for OMAP2 by
walking the PRCM rate-table for available entries and adding them to a
CPUfreq table.

CPUfreq can then be used to manage switching between all the available
entries in the PRCM rate table.  Either use the CPUfreq sysfs
interface directly, (see Section 3 of Documentation/cpu-freq/user-guide.txt)
or use the cpufrequtils package:
http://www.kernel.org/pub/linux/utils/kernel/cpufreq/cpufrequtils.html

Signed-off-by: Kevin Hilman <khilman@mvista.com>
Updated to try to use cpufreq_table if it exists.

linux-omap source commit is 77ce544fa48deb7a2003f454624e3ca10d37ab87.

Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()
Paul Walmsley [Wed, 28 Jan 2009 02:13:12 +0000 (19:13 -0700)]
[ARM] OMAP: Make dpll4_m4_ck programmable with clk_set_rate()

Filling the set_rate and round_rate fields of dpll4_m4_ck makes
this clock programmable through clk_set_rate().  This is needed
to give omapfb control over the dss1_alwon_fck rate.

This patch includes a fix from Tomi Valkeinen <tomi.valkeinen@nokia.com>.

linux-omap source commits are e42218d45afbc3e654e289e021e6b80c657b16c2 and
9d211b761b3cdf7736602ecf7e68f8a298c13278.

Signed-off-by: Måns Rullgård <mans@mansr.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP: Add CSI2 clock struct for handling it with clock API
Sergio Aguirre [Wed, 28 Jan 2009 02:13:09 +0000 (19:13 -0700)]
[ARM] OMAP: Add CSI2 clock struct for handling it with clock API

Add CSI2 clock struct for handling it with clock API when TI PM is disabled.

linux-omap source commit is 8b20f4498928459276bd3366e3381ad595d23432.

Signed-off-by: Sergio Aguirre <saaguirre@ti.com>
Acked-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP2: Fix definition of SGX clock register bits
Daniel Stone [Wed, 28 Jan 2009 02:13:05 +0000 (19:13 -0700)]
[ARM] OMAP2: Fix definition of SGX clock register bits

The GFX/SGX functional and interface clocks have different masks, for
some unknown reason, so split EN_SGX_SHIFT into one each for fclk and
iclk.

Correct according to the TRM and the far more important 'does this
actually work at all?' metric.

linux-omap source commit is de1121fdb899f762b9e717f44eaf3fae7c00cd3e.

Signed-off-by: Daniel Stone <daniel.stone@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP3 clock: fix 96MHz clocks
Paul Walmsley [Wed, 28 Jan 2009 02:13:02 +0000 (19:13 -0700)]
[ARM] OMAP3 clock: fix 96MHz clocks

Fix some bugs in the OMAP3 clock tree pertaining to the 96MHz clocks.
The 96MHz portion of the clock tree should now have reasonable
fidelity to the 34xx TRM Rev I.

One remaining question mark: it's not clear exactly which 96MHz source
clock the USIM uses.  This patch sticks with the previous setting, which
seems reasonable.

linux-omap source commit is 15c706e8179ce238c3ba70a25846a36b73bd2359.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP3: move USBHOST SAR handling from clock framework to powerdomain layer
Paul Walmsley [Wed, 28 Jan 2009 02:12:57 +0000 (19:12 -0700)]
[ARM] OMAP3: move USBHOST SAR handling from clock framework to powerdomain layer

Remove usbhost_sar_fclk from the OMAP3 clock framework.  The bit that
the clock was tweaking doesn't actually enable or disable a clock; it
controls whether the hardware will save and restore USBHOST state
when the powerdomain changes state.  (That happens to coincidentally
enable a clock for the duration of the operation, hence the earlier
confusion.)

In place of the clock, mark the USBHOST powerdomain as supporting
hardware save-and-restore functionality.

linux-omap source commit is f3ceac86a9d425d101d606d87a5af44afef27179.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP24xx clock: add missing SSI L4 interface clock
Paul Walmsley [Wed, 28 Jan 2009 02:12:54 +0000 (19:12 -0700)]
[ARM] OMAP24xx clock: add missing SSI L4 interface clock

This patch adds a missing OMAP24xx clock, the SSI L4 interface clock,
as "ssi_l4_ick".

linux-omap source commit is ace129d39b3107d330d4cf6934385d13521f2fec.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP: Fix sparse, checkpatch warnings in OMAP2/3 PRCM/PM code
Paul Walmsley [Wed, 28 Jan 2009 02:12:50 +0000 (19:12 -0700)]
[ARM] OMAP: Fix sparse, checkpatch warnings in OMAP2/3 PRCM/PM code

Fix sparse & checkpatch warnings in OMAP2/3 PRCM & PM code.  This mostly
consists of:

- converting pointer comparisons to integers in form similar to
  (ptr == 0) to the standard idiom (!ptr)

- labeling a few non-static private functions as static

- adding prototypes for *_init() functions in the appropriate header
  files, and getting rid of the corresponding open-coded extern
  prototypes in other C files

- renaming the variable 'sclk' in mach-omap2/clock.c:omap2_get_apll_clkin
  to avoid shadowing an earlier declaration

Clean up checkpatch issues.  This mostly involves:

- converting some asm/ includes to linux/ includes

- cleaning up some whitespace

- getting rid of braces for conditionals with single following statements

Also take care of a few odds and ends, including:

- getting rid of unlikely() and likely() - none of this code is particularly
  fast-path code, so the performance impact seems slim; and some of those
  likely() and unlikely() indicators are probably not as accurate as the
  ARM's branch predictor

- removing some superfluous casts

linux-omap source commit is 347df59f5d20fdf905afbc26b1328b0e28a8a01b.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] OMAP2/3: Add non-CORE DPLL rate set code and M, N programming
Paul Walmsley [Wed, 28 Jan 2009 02:12:47 +0000 (19:12 -0700)]
[ARM] OMAP2/3: Add non-CORE DPLL rate set code and M, N programming

Add non-CORE DPLL rate set code and M,N programming for OMAP3.
Connect it to OMAP34xx DPLLs 1, 2, 4, 5 via the clock framework.

You may see some warnings on rate sets from the freqsel code.  The
table that TI presented in the 3430 TRM Rev F does not cover Fint <
750000, which definitely occurs in practice.  However, the lack of this
freqsel case does not appear to impair the DPLL rate change.

linux-omap source commit is 689fe67c6d1ad8f52f7f7b139a3274b79bf3e784.

Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: hsmmc: new short connection id names
Russell King [Wed, 28 Jan 2009 10:22:50 +0000 (10:22 +0000)]
[ARM] omap: hsmmc: new short connection id names

... rather than the clock names themselves.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: omap24xxcam: use short connection IDs for omap2 clocks
Russell King [Sat, 24 Jan 2009 16:27:06 +0000 (16:27 +0000)]
[ARM] omap: omap24xxcam: use short connection IDs for omap2 clocks

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: convert omap RNG clocks to match by devid and conid
Russell King [Mon, 19 Jan 2009 20:58:56 +0000 (20:58 +0000)]
[ARM] omap: convert omap RNG clocks to match by devid and conid

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: spi: arrange for omap_uwire to use connection ID
Russell King [Thu, 22 Jan 2009 19:41:20 +0000 (19:41 +0000)]
[ARM] omap: spi: arrange for omap_uwire to use connection ID

... which now means no driver requests the "armxor_ck" clock directly.
Also, fix the error handling for clk_get(), ensuring that we propagate
the error returned from clk_get().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: w1: convert omap HDQ clocks to match by devid and conid
Russell King [Thu, 22 Jan 2009 10:12:04 +0000 (10:12 +0000)]
[ARM] omap: w1: convert omap HDQ clocks to match by devid and conid

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: i2c: remove conditional ick clocks
Russell King [Fri, 23 Jan 2009 22:57:12 +0000 (22:57 +0000)]
[ARM] omap: i2c: remove conditional ick clocks

By providing a dummy ick for OMAP1510 and OMAP310, we avoid having
SoC conditional clock information in i2c-omap.c.  Also, fix the
error handling by making sure we propagate the error returned via
clk_get().

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: i2c: remove armxor_ck
Russell King [Thu, 22 Jan 2009 19:31:46 +0000 (19:31 +0000)]
[ARM] omap: i2c: remove armxor_ck

On OMAP1, the I2C functional clock (fck) is the armxor_ck, so there's
no need to get "armxor_ck" separately.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: i2c: use short connection ids
Russell King [Mon, 19 Jan 2009 21:02:29 +0000 (21:02 +0000)]
[ARM] omap: i2c: use short connection ids

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: mcbsp: convert to use fck/ick clocks directly
Russell King [Fri, 23 Jan 2009 10:26:46 +0000 (10:26 +0000)]
[ARM] omap: mcbsp: convert to use fck/ick clocks directly

Rather than introducing a special 'mcbsp_clk' with code behind it in
mach-omap*/mcbsp.c to handle the SoC specifics, arrange for the mcbsp
driver to be like any other driver.  mcbsp requests its fck and ick
clocks directly, and the SoC specific code deals with selecting the
correct clock.

There is one oddity to deal with - OMAP1 fiddles with the DSP clocks
and DSP reset, so we move this to the two callback functions.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: mcspi: new short connection id names
Russell King [Mon, 19 Jan 2009 20:49:37 +0000 (20:49 +0000)]
[ARM] omap: mcspi: new short connection id names

... rather than the clock names themselves.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: MMC: provide a dummy ick for OMAP1
Russell King [Fri, 23 Jan 2009 19:03:37 +0000 (19:03 +0000)]
[ARM] omap: MMC: provide a dummy ick for OMAP1

Eliminate the OMAP1 vs OMAP2 clock knowledge in the MMC driver.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: MMC: convert clocks to match by devid and conid
Russell King [Mon, 19 Jan 2009 20:53:30 +0000 (20:53 +0000)]
[ARM] omap: MMC: convert clocks to match by devid and conid

Convert OMAP MMC driver to match clocks using the device ID and a
connection ID rather than a clock name.  This allows us to eliminate
the OMAP1/OMAP2 differences for the function clock.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: watchdog: provide a dummy ick for OMAP1
Russell King [Fri, 23 Jan 2009 12:48:37 +0000 (12:48 +0000)]
[ARM] omap: watchdog: provide a dummy ick for OMAP1

Eliminate the OMAP1 vs OMAP2 clock knowledge in the watchdog driver.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: watchdog: convert clocks to match by devid and conid
Russell King [Mon, 19 Jan 2009 20:44:33 +0000 (20:44 +0000)]
[ARM] omap: watchdog: convert clocks to match by devid and conid

This eliminates the need for separate OMAP24xx and OMAP34xx clock
requesting code sections.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: provide a dummy clock node
Russell King [Fri, 23 Jan 2009 22:34:09 +0000 (22:34 +0000)]
[ARM] omap: provide a dummy clock node

By providing a dummy clock node, we can eliminate the SoC conditional
clock handing in the OMAP drivers, moving this knowledge out of the
driver and into the machine clock support code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: remove pre-CLKDEV clk_get/clk_put
Russell King [Mon, 19 Jan 2009 16:28:32 +0000 (16:28 +0000)]
[ARM] omap: remove pre-CLKDEV clk_get/clk_put

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: convert OMAP3 to use clkdev
Russell King [Mon, 19 Jan 2009 15:51:11 +0000 (15:51 +0000)]
[ARM] omap: convert OMAP3 to use clkdev

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: convert OMAP2 to use clkdev
Russell King [Mon, 19 Jan 2009 15:27:29 +0000 (15:27 +0000)]
[ARM] omap: convert OMAP2 to use clkdev

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: convert OMAP1 to use clkdev
Russell King [Sun, 18 Jan 2009 23:03:15 +0000 (23:03 +0000)]
[ARM] omap: convert OMAP1 to use clkdev

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: allow double-registering of clocks
Russell King [Thu, 22 Jan 2009 16:08:04 +0000 (16:08 +0000)]
[ARM] omap: allow double-registering of clocks

This stops things blowing up if a 'struct clk' to be passed more
than once to clk_register(), which will be required when we decouple
struct clk's from their names.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: ensure devname is set for dummy devices
Russell King [Mon, 19 Jan 2009 18:56:17 +0000 (18:56 +0000)]
[ARM] omap: ensure devname is set for dummy devices

This is needed to use these with the clkdev helpers.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: handle RATE_CKCTL via .set_rate/.round_rate methods
Russell King [Sun, 8 Feb 2009 16:07:46 +0000 (16:07 +0000)]
[ARM] omap: handle RATE_CKCTL via .set_rate/.round_rate methods

It makes no sense to have the CKCTL rate selection implemented as a flag
and a special exception in the top level set_rate/round_rate methods.
Provide CKCTL set_rate/round_rate methods, and use these for where ever
RATE_CKCTL is used and they're not already overridden.  This allows us
to remove the RATE_CKCTL flag.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: move propagate_rate() calls into generic omap clock code
Russell King [Thu, 13 Nov 2008 13:44:15 +0000 (13:44 +0000)]
[ARM] omap: move propagate_rate() calls into generic omap clock code

propagate_rate() is recursive, so it makes sense to minimise the
amount of stack which is used for each recursion.  So, rather than
recursing back into it from the ->recalc functions if RATE_PROPAGATES
is set, do that test at the higher level.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: remove unnecessary calls to propagate_rate()
Russell King [Thu, 13 Nov 2008 13:07:00 +0000 (13:07 +0000)]
[ARM] omap: remove unnecessary calls to propagate_rate()

We've always called propagate_rate() in the parent function to
the .set_rate methods, so there's no point having the .set_rate
methods also call this heavy-weight function - it's mere
duplication of what's happening elsewhere.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: move clock propagation into core omap clock code
Russell King [Thu, 13 Nov 2008 13:01:32 +0000 (13:01 +0000)]
[ARM] omap: move clock propagation into core omap clock code

Move the clock propagation calls for set_parent and set_rate into
the core omap clock code, rather than having these calls scattered
throughout the OMAP1 and OMAP2 implementations.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: provide a standard clk_get_parent() implementation
Russell King [Sun, 8 Feb 2009 17:49:22 +0000 (17:49 +0000)]
[ARM] omap: provide a standard clk_get_parent() implementation

which only has to return clk->parent.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: remove clk_deny_idle and clk_allow_idle
Russell King [Wed, 5 Nov 2008 12:54:04 +0000 (12:54 +0000)]
[ARM] omap: remove clk_deny_idle and clk_allow_idle

Nothing makes any use of these functions, so there's little point in
providing them.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: rearrange clock.h structure order
Russell King [Tue, 4 Nov 2008 21:50:46 +0000 (21:50 +0000)]
[ARM] omap: rearrange clock.h structure order

... to eliminate unnecessary padding.  We have rather a lot of these
structures, so eliminating unnecessary padding results in a saving of
1488 bytes.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: remove clk->owner
Russell King [Tue, 4 Nov 2008 21:42:54 +0000 (21:42 +0000)]
[ARM] omap: remove clk->owner

clk->owner is always NULL, so its existence doesn't serve any useful
function other than bloating the kernel by 992 bytes.  Remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: don't use clkops_omap2_dflt_wait for non-ICLK/FCLK clocks
Russell King [Tue, 4 Nov 2008 21:24:00 +0000 (21:24 +0000)]
[ARM] omap: don't use clkops_omap2_dflt_wait for non-ICLK/FCLK clocks

The original code in omap2_clk_wait_ready() used to check the low 8
bits to determine whether they were within the FCLKEN or ICLKEN
registers.  Specifically, the test is satisfied when these offsets
are used:

 CM_FCLKEN, CM_FCLKEN1, CM_CLKEN, OMAP24XX_CM_FCLKEN2, CM_ICLKEN,
 CM_ICLKEN1, CM_ICLKEN2, CM_ICLKEN3, OMAP24XX_CM_ICLKEN4
 OMAP3430_CM_CLKEN_PLL, OMAP3430ES2_CM_CLKEN2

If one of these offsets isn't used, omap2_clk_wait_ready() merely
returns without doing anything.  So we should use the non-wait clkops
version instead and eliminate that conditional.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: eliminate unnecessary conditionals in omap2_clk_wait_ready
Russell King [Tue, 4 Nov 2008 18:59:32 +0000 (18:59 +0000)]
[ARM] omap: eliminate unnecessary conditionals in omap2_clk_wait_ready

Rather than employing run-time tests in omap2_clk_wait_ready() to
decide whether we need to wait for the clock to become ready, we
can set the .ops appropriately.

This change deals with the OMAP24xx and OMAP34xx conditionals only.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: add default .ops to all remaining OMAP2 clocks
Russell King [Tue, 4 Nov 2008 17:59:52 +0000 (17:59 +0000)]
[ARM] omap: add default .ops to all remaining OMAP2 clocks

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: kill PARENT_CONTROLS_CLOCK
Russell King [Tue, 4 Nov 2008 16:48:35 +0000 (16:48 +0000)]
[ARM] omap: kill PARENT_CONTROLS_CLOCK

PARENT_CONTROLS_CLOCK just makes enable/disable no-op, and is
functionally an alias for ALWAYS_ENABLED.  This can be handled
in the same way, using clkops_null.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: provide a NULL clock operations structure
Russell King [Tue, 4 Nov 2008 16:35:03 +0000 (16:35 +0000)]
[ARM] omap: provide a NULL clock operations structure

... and use it for clocks which are ALWAYS_ENABLED.  These clocks
use a non-NULL enable_reg pointer for other purposes (such as
selecting clock rates.)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: introduce clock operations structure
Russell King [Tue, 4 Nov 2008 14:02:46 +0000 (14:02 +0000)]
[ARM] omap: introduce clock operations structure

Collect up all the common enable/disable clock operation functions
into a separate operations structure.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] omap: remove VIRTUAL_CLOCK
Russell King [Tue, 4 Nov 2008 15:10:54 +0000 (15:10 +0000)]
[ARM] omap: remove VIRTUAL_CLOCK

Nothing tests the clock flags for this bit, so it serves no purpose.
Remove it.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'omap-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind...
Russell King [Sun, 1 Feb 2009 17:53:26 +0000 (17:53 +0000)]
Merge branch 'omap-fixes' of git://git./linux/kernel/git/tmlind/linux-omap-2.6

15 years agoNVRAM depends on RTC_DRV_CMOS
Uwe Kleine-König [Sat, 31 Jan 2009 00:21:59 +0000 (01:21 +0100)]
NVRAM depends on RTC_DRV_CMOS

drivers/char/nvram.c uses rtc_lock, that (on ARM) is only defined if
RTC_DRV_CMOS is enabled.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
15 years agorename platform_driver name "flash" to "sa1100-mtd"
Uwe Kleine-König [Sat, 31 Jan 2009 00:21:58 +0000 (01:21 +0100)]
rename platform_driver name "flash" to "sa1100-mtd"

"flash" is a very generic name for a platform_driver that is only
available on SA11x0.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Nicolas Pitre <nico@marvell.com>
15 years agoannotate that [fp, #-4] is the saved lr
Uwe Kleine-König [Sat, 31 Jan 2009 00:21:56 +0000 (01:21 +0100)]
annotate that [fp, #-4] is the saved lr

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
15 years agoUse __SPIN_LOCK_UNLOCKED to initialize bad_irq_desc.lock
Uwe Kleine-König [Sat, 31 Jan 2009 00:21:55 +0000 (01:21 +0100)]
Use __SPIN_LOCK_UNLOCKED to initialize bad_irq_desc.lock

SPIN_LOCK_UNLOCKED is deprecated as lockdep cannot properly work with
locks initialized with it.

This fix is necessary to compile the linux-rt tree for ARM.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Cc: Steven Rostedt <srostedt@redhat.com>
15 years agoARM: OMAP: fix fault in enter_full_retention()
Kevin Hilman [Thu, 29 Jan 2009 16:57:18 +0000 (08:57 -0800)]
ARM: OMAP: fix fault in enter_full_retention()

In omap24xx_cpu_suspend assembly routine, the r2 register which holds
the address of the SDRC_POWER reg is set to zero before the value is
written back triggering a fault due to writing to address zero.

It's hard to tell where this change was introduced since this file
has been moved and merged.

While this fix prevents a crash, suspend on my n810 is broken with
current kernels.  I never come out of suspend.

Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Mask interrupts when disabling interrupts, v2
김규원 [Thu, 29 Jan 2009 16:57:17 +0000 (08:57 -0800)]
ARM: OMAP: Mask interrupts when disabling interrupts, v2

By Ingo Molnar, interrupts are not masked by default.
(refer to 76d2160147f43f982dfe881404cfde9fd0a9da21)

But if interrupts are not masked, the processor can wake up while in
Suspend-to-RAM state by an external interrupt. For example, if an
OMAP3 board is connected to Host PC by USB and entered to Suspend-to-RAM
state, it wake up automatically by M_IRQ_92. The disable_irq() function
can't disable the interrupt in H/W level, So I modified
arch/arm/mach-omap2/irq.c

Signed-off-by: Kim Kyuwon <chammoru@gmail.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: gptimer min_delta_ns corrected
Aaro Koskinen [Thu, 29 Jan 2009 16:57:17 +0000 (08:57 -0800)]
ARM: OMAP: gptimer min_delta_ns corrected

When 32 kHz timer is used the min_delta_ns should be initialized so
that it reflects the timer programming cost. A write to the timer
device will be usually posted, but it takes roughly 3 cycles before
it is effective. If the timer is reprogrammed before that, the CPU
will stall until the previous write completes. This was pointed out by
Richard Woodruff.

Since the lower bound for min_delta_ns is 1000, the change is visible
only with tick rates less than 3 MHz.

Also note that the old value is incorrect for 32 kHz also due to
a rounding error, and it can cause the timer queue to hang (due to
clockevent code trying to program the timer with zero ticks).

Signed-off-by: Aaro Koskinen <Aaro.Koskinen@nokia.com>
Reviewed-by: Richard Woodruff <r-woodruff2@ti.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix hsmmc init, v2
Tony Lindgren [Thu, 29 Jan 2009 16:57:16 +0000 (08:57 -0800)]
ARM: OMAP: Fix hsmmc init, v2

The naming accidentally broke while changing the name for the
driver to not to conflict with the other mmc driver.

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix omap34xx revision detection for ES3.1
Tony Lindgren [Thu, 29 Jan 2009 16:57:16 +0000 (08:57 -0800)]
ARM: OMAP: Fix omap34xx revision detection for ES3.1

Fix omap34xx revision detection for ES3.1

Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: DMA: Fix uninitialized channel flags
Jarkko Nikula [Thu, 29 Jan 2009 16:57:12 +0000 (08:57 -0800)]
ARM: OMAP: DMA: Fix uninitialized channel flags

This has similar symptoms than 66c23551b1b774e2be3c7bdf91c0ebf2c7a3519e
where just omap_request_dma, omap_dma_link_lch and omap_dma_unlink_lch
can cause incorrect dump_stack(). Here it can happen if channel has been
used before and the channel flags variable holds old status.

Signed-off-by: Jarkko Nikula <jarkko.nikula@nokia.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix race in OMAP2/3 DMA IRQ handling
Juha Yrjola [Thu, 29 Jan 2009 16:57:12 +0000 (08:57 -0800)]
ARM: OMAP: Fix race in OMAP2/3 DMA IRQ handling

CSR must be cleared before invoking the callback.

If the callback function starts a new, fast DMA transfer on the same
channel, the completion status might lost if CSR is cleared after
the callback invocation.

Signed-off-by: Juha Yrjola <juha.yrjola@solidboot.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoARM: OMAP: Fix McBSP spin_lock deadlock
Stanley.Miao [Thu, 29 Jan 2009 16:57:12 +0000 (08:57 -0800)]
ARM: OMAP: Fix McBSP spin_lock deadlock

A spin_lock deadlock will occur when omap_mcbsp_request() is invoked.

omap_mcbsp_request()
\- clk_enable(mcbsp->clk)         [takes and holds clockfw_lock]
    \- omap2_clk_enable()
       \- _omap2_clk_enable()
           \- omap_mcbsp_clk_enable()
              \- clk_enable(child clock)   [tries for clockfw_lock again]

mcbsp_clk is a virtual clock and it comprises several child clocks. when
enable mcbsp_clk in omap_mcbsp_request(), the enable function of mcbsp_clk
will enable its child clocks, then the deadlock occurs.

The solution is to remove the virtual clock and enable these child clocks in
omap_mcbsp_request() directly.

Signed-off-by: Stanley.Miao <stanley.miao@windriver.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
15 years agoLinux 2.6.29-rc3
Linus Torvalds [Wed, 28 Jan 2009 18:49:30 +0000 (10:49 -0800)]
Linux 2.6.29-rc3

15 years agoMerge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
Linus Torvalds [Wed, 28 Jan 2009 17:01:42 +0000 (09:01 -0800)]
Merge branch 'merge' of git://git./linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
  powerpc/mm: Fix handling of _PAGE_COHERENT in BAT setup code
  powerpc/pseries: Correct VIO bus accounting problem in CMO env.
  powerpc: More printing warning fixes for the l64 to ll64 conversion
  powerpc: Remove arch/ppc cruft from Kconfig
  powerpc: Printing fix for l64 to ll64 conversion: phyp_dump.c
  powerpc/embedded6xx: Update defconfigs
  powerpc/8xx: Update defconfigs
  powerpc/86xx: Update defconfigs
  powerpc/83xx: Update defconfigs
  powerpc/85xx: Update defconfigs
  powerpc/mpc8313erdb: fix kernel panic because mdio device is not probed
  powerpc/4xx: Update multi-board PowerPC 4xx defconfigs
  powerpc/44x: Update PowerPC 44x defconfigs
  powerpc/40x: Update PowerPC 40x defconfigs
  powerpc/85xx: Fix typo in mpc8572ds dts
  powerpc/44x: Warp patches for the new NDFC driver
  powerpc/4xx: DTS: Add Add'l SDRAM0 Compatible and Interrupt Info

15 years ago[ARM] 5366/1: fix shared memory coherency with VIVT L1 + L2 caches
Nicolas Pitre [Fri, 16 Jan 2009 22:02:54 +0000 (23:02 +0100)]
[ARM] 5366/1: fix shared memory coherency with VIVT L1 + L2 caches

When there are multiple L1-aliasing userland mappings of the same physical
page, we currently remap each of them uncached, to prevent VIVT cache
aliasing issues. (E.g. writes to one of the mappings not being immediately
visible via another mapping.)  However, when we do this remapping, there
could still be stale data in the L2 cache, and an uncached mapping might
bypass L2 and go straight to RAM.  This would cause reads from such
mappings to see old data (until the dirty L2 line is eventually evicted.)

This issue is solved by forcing a L2 cache flush whenever the shared page
is made L1 uncacheable.

Ideally, we would make L1 uncacheable and L2 cacheable as L2 is PIPT. But
Feroceon does not support that combination, and the TEX=5 C=0 B=0 encoding
for XSc3 doesn't appear to work in practice.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu
Linus Torvalds [Wed, 28 Jan 2009 16:41:57 +0000 (08:41 -0800)]
Merge branch 'for-linus' of git://git./linux/kernel/git/gerg/m68knommu

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
  m68knommu: fix 5329 ColdFire periphal addressing
  uclinux: add process name to allocation error message
  m68knommu: correct the mii calculations for 532x ColdFire FEC
  m68knommu: add ColdFire M532x to the FEC configuration options
  m68knommu: fix syscall restarting
  m68knommu: remove the obsolete and long unused comempci chip support
  m68knommu: remove the no longer used PCI support option
  m68knommu: remove obsolete and unused eLIA board
  m68knommu: set NO_DMA
  m68knommu: fix cache flushing for the 527x ColdFire processors
  m68knommu: fix ColdFire 5272 serial baud rates in mcf.c
  m68knommu: use one exist from execption

15 years agodmi: Fix build breakage
Kumar Gala [Wed, 28 Jan 2009 06:07:20 +0000 (00:07 -0600)]
dmi: Fix build breakage

Commit d7b1956fed33d30c4815e848fd7a143722916868 ("DMI: Introduce
dmi_first_match to make the interface more flexible") introduced compile
errors like the following when !CONFIG_DMI

    drivers/ata/sata_sil.c: In function 'sil_broken_system_poweroff':
    drivers/ata/sata_sil.c:713: error: implicit declaration of function 'dmi_first_match'
    drivers/ata/sata_sil.c:713: warning: initialization makes pointer from integer without a cast

We just need a dummy version of dmi_first_match() to fix this all up.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agodrm: Rip out the racy, unused vblank signal code.
Eric Anholt [Wed, 28 Jan 2009 05:19:41 +0000 (21:19 -0800)]
drm: Rip out the racy, unused vblank signal code.

Schedule a vblank signal, kill the process, and we'll go walking over freed
memory.  Given that no open-source userland exists using this, nor have I
ever heard of a consumer, just let this code die.

Signed-off-by: Eric Anholt <eric@anholt.net>
Requested-by: Linus Torvalds <torvalds@linux-foundation.org>
Acked-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years ago[ARM] call undefined instruction exception handler with irqs enabled
Russell King [Tue, 27 Jan 2009 23:20:00 +0000 (23:20 +0000)]
[ARM] call undefined instruction exception handler with irqs enabled

Aaro says:
> With spinlock debugs enabled I get might_sleep() warnings when using
> ptrace.

tracked down to a missing enable_irq before calling do_undefinstr().

Reported-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Tested-by: Aaro Koskinen <aaro.koskinen@nokia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] msm: fix build errors
Russell King [Tue, 27 Jan 2009 22:44:12 +0000 (22:44 +0000)]
[ARM] msm: fix build errors

arch/arm/mach-msm/board-halibut.c:45: error: implicit declaration of function 'MSM_GPIO_TO_INT'
arch/arm/mach-msm/board-halibut.c:45: error: initializer element is not constant
arch/arm/mach-msm/board-halibut.c:45: error: (near initialization for 'smc91x_resources[1].start')
arch/arm/mach-msm/board-halibut.c:46: error: initializer element is not constant
arch/arm/mach-msm/board-halibut.c:46: error: (near initialization for 'smc91x_resources[1].end')

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years ago[ARM] etherh: continue fixing build failure
Russell King [Tue, 27 Jan 2009 22:32:29 +0000 (22:32 +0000)]
[ARM] etherh: continue fixing build failure

Further to 483a2b3a3182abcb7fcea986d7ea13e793bb00b1, also fix:

drivers/net/arm/etherh.c:649: error: 'eth_set_mac_addr' undeclared here (not in a function)

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
15 years agopowerpc/mm: Fix handling of _PAGE_COHERENT in BAT setup code
Gerhard Pircher [Fri, 23 Jan 2009 06:51:28 +0000 (06:51 +0000)]
powerpc/mm: Fix handling of _PAGE_COHERENT in BAT setup code

_PAGE_COHERENT is now always set in _PAGE_RAM resp. PAGE_KERNEL.
Thus it has to be masked out, if the BAT mapping should be non
cacheable or CPU_FTR_NEED_COHERENT is not set.

This will work on normal SMP setups because we force-set
CPU_FTR_NEED_COHERENT as part of CPU_FTR_COMMON on SMP.

Signed-off-by: Gerhard Pircher <gerhard_pircher@gmx.net>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 years agopowerpc/pseries: Correct VIO bus accounting problem in CMO env.
Robert Jennings [Thu, 22 Jan 2009 09:40:00 +0000 (09:40 +0000)]
powerpc/pseries: Correct VIO bus accounting problem in CMO env.

In the VIO bus code the wrappers for dma alloc_coherent and free_coherent
calls are rounding to IOMMU_PAGE_SIZE.  Taking a look at the underlying
calls, the actual mapping is promoted to PAGE_SIZE.  Changing the
rounding in these two functions fixes under-reporting the entitlement
used by the system.  Without this change, the system could run out of
entitlement before it believes it has and incur mapping failures at the
firmware level.

Also in the VIO bus code, the wrapper for dma map_sg is not exiting in
an error path where it should.  Rather than fall through to code for the
success case, this patch adds the return that is needed in the error path.

Signed-off-by: Robert Jennings <rcj@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 years agopowerpc: More printing warning fixes for the l64 to ll64 conversion
Stephen Rothwell [Wed, 21 Jan 2009 13:16:28 +0000 (13:16 +0000)]
powerpc: More printing warning fixes for the l64 to ll64 conversion

These are all powerpc specific drivers.

res.start in fsl_elbc_nand.c needs to be cast since it may be either 32
or 64 bit.  Thanks to Scott Wood for noticing.

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: Arnd Bergmann <arnd@arndb.de> call_edac bits in particular
Acked-by: Olof Johansson <olof@lixom.net> pasemi_nand peices
Acked-by: Scott Wood <scottwood@freescale.com> fsl_elbc fixes
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 years agopowerpc: Remove arch/ppc cruft from Kconfig
Josh Boyer [Tue, 20 Jan 2009 05:16:36 +0000 (05:16 +0000)]
powerpc: Remove arch/ppc cruft from Kconfig

Remove some leftover cruft from the arch/ppc days

Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Acked-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 years agopowerpc: Printing fix for l64 to ll64 conversion: phyp_dump.c
Stephen Rothwell [Sun, 18 Jan 2009 23:33:38 +0000 (23:33 +0000)]
powerpc: Printing fix for l64 to ll64 conversion: phyp_dump.c

Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
15 years agoMerge commit 'jwb/jwb-merge' into merge
Benjamin Herrenschmidt [Wed, 28 Jan 2009 06:15:34 +0000 (17:15 +1100)]
Merge commit 'jwb/jwb-merge' into merge

Manual merge of:
arch/powerpc/configs/44x/warp_defconfig

15 years agoMerge commit 'kumar/kumar-merge' into merge
Benjamin Herrenschmidt [Wed, 28 Jan 2009 06:14:54 +0000 (17:14 +1100)]
Merge commit 'kumar/kumar-merge' into merge

15 years agosmackfs load append mode fix
Casey Schaufler [Wed, 28 Jan 2009 03:56:30 +0000 (19:56 -0800)]
smackfs load append mode fix

Given just how hard it is to find the code that uses MAY_APPEND
it's probably not a big surprise that this went unnoticed for so
long. The Smack rules loading code is incorrectly setting the
MAY_READ bit when MAY_APPEND is requested.

Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
Reviewed-by: James Morris <jmorris@namei.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
15 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
Linus Torvalds [Wed, 28 Jan 2009 00:08:04 +0000 (16:08 -0800)]
Merge git://git./linux/kernel/git/gregkh/usb-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (36 commits)
  USB: Driver for Freescale QUICC Engine USB Host Controller
  USB: option: add QUANTA HSDPA Data Card device ids
  USB: storage: Add another unusual_dev for off-by-one bug
  USB: unusual_dev: usb-storage needs to ignore a device
  USB: GADGET: fix !x & y
  USB: new id for ti_usb_3410_5052 driver
  USB: cdc-acm: Add another conexant modem to the quirks
  USB: 'option' driver - onda device MT503HS has wrong id
  USB: Remove ZTE modem from unusual_devices
  USB: storage: support of Dane-Elec MediaTouch USB device
  USB: usbmon: Implement compat_ioctl
  USB: add kernel-doc for wusb_dev in struct usb_device
  USB: ftdi_sio driver support of bar code scanner from Diebold
  USB: ftdi_sio: added Alti-2 VID and Neptune 3 PID
  USB: cp2101 device
  USB: usblp.c: add USBLP_QUIRK_BIDIR to Brother HL-1440
  USB: remove vernier labpro from ldusb
  USB: CDC-ACM quirk for MTK GPS
  USB: cdc-acm: support some gps data loggers
  USB: composite: Fix bug: low byte of w_index is the usb interface number not the whole 2 bytes of w_index
  ...

15 years agoUSB: Driver for Freescale QUICC Engine USB Host Controller
Anton Vorontsov [Sat, 10 Jan 2009 02:03:21 +0000 (05:03 +0300)]
USB: Driver for Freescale QUICC Engine USB Host Controller

This patch adds support for the FHCI USB controller, as found
in the Freescale MPC836x and MPC832x processors. It can support
Full or Low speed modes.

Quite a lot the hardware is doing by itself (SOF generation, CRC
generation and checking), though scheduling and retransmission is on
software's shoulders.

This controller does not integrate the root hub, so this driver also
fakes one-port hub. External hub is required to support more than
one device.

Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: option: add QUANTA HSDPA Data Card device ids
Alex.Cheng@quantatw.com [Thu, 22 Jan 2009 08:01:57 +0000 (16:01 +0800)]
USB: option: add QUANTA HSDPA Data Card device ids

This patch adds the support  for the QUANTA Q101 series HSDPA Data Card.
With the vendor and product IDs are set properly,
the data card can be detected and works fine.

Signed-off-by: Alex Cheng <alex.cheng@quantatw.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: storage: Add another unusual_dev for off-by-one bug
Phil Dibowitz [Tue, 20 Jan 2009 22:42:52 +0000 (23:42 +0100)]
USB: storage: Add another unusual_dev for off-by-one bug

Argosy has released another device with the off-by-one sector. This is a
harddrive with an internal cardreader which is affected.

Based on a patch written by Martijn Hijdra <martijn.hijdra@gmail.com>

Signed-off-by: Phil Dibowitz <phil@ipom.com>
Cc: Martijn Hijdra <martijn.hijdra@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: unusual_dev: usb-storage needs to ignore a device
Phil Dibowitz [Tue, 20 Jan 2009 22:48:36 +0000 (23:48 +0100)]
USB: unusual_dev: usb-storage needs to ignore a device

This patch adds an unusual_devs entry for a Sony Ericsson modem. Like many
other modems, we have to ignore the storage device in order to access the
modem.

At this time usb_modeswitch does not work with this device.

Reported-by: The Solutor <thesolutor@gmail.com>.
Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: GADGET: fix !x & y
Roel Kluin [Sat, 17 Jan 2009 15:52:17 +0000 (16:52 +0100)]
USB: GADGET: fix !x & y

! has a higher precedence than &

Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: new id for ti_usb_3410_5052 driver
Oliver Neukum [Mon, 12 Jan 2009 12:31:16 +0000 (13:31 +0100)]
USB: new id for ti_usb_3410_5052 driver

This adds a new device id

Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: cdc-acm: Add another conexant modem to the quirks
Alan Cox [Sun, 11 Jan 2009 19:53:10 +0000 (19:53 +0000)]
USB: cdc-acm: Add another conexant modem to the quirks

Another Conexant, another device with the same quirk

Signed-off-by: Alan Cox <alan@redhat.com>
Acked-by: Oliver Neukum <oliver@neukum.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: 'option' driver - onda device MT503HS has wrong id
Marcel Sebek [Sun, 28 Dec 2008 13:06:50 +0000 (14:06 +0100)]
USB: 'option' driver - onda device MT503HS has wrong id

While trying to make GSM modem Onda MT503HS working, I found a mismatch
between device id in the driver code (0x0200) and id in the lsusb
output (0x2000).

This patch fixed it for me, but I don't know if the original device id was
also correct and the new ID should be added instead of replacing the
old one.

Signed-off-by: Marcel Sebek <sebek64@post.cz>
Acked-by: Domenico Riccio <domenico.riccio@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: Remove ZTE modem from unusual_devices
Phil Dibowitz [Sun, 11 Jan 2009 17:46:20 +0000 (18:46 +0100)]
USB: Remove ZTE modem from unusual_devices

The ZTE modem entry causes usb-storage to ignore the device, but for some
versions of the device, usb-storage mode is required to get to modem ode. For
both kinds the tool: http://www.draisberghof.de/usb_modeswitch/ should work.

Note that the various versions of the device have the same ProductId,
VendorId, and bcdDevice number, so we cannot have the entry for some and not
others.

Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: storage: support of Dane-Elec MediaTouch USB device
Jean-Baptiste Onofre [Sat, 20 Dec 2008 19:11:55 +0000 (20:11 +0100)]
USB: storage: support of Dane-Elec MediaTouch USB device

This adds another unusual_devs.h entry for a device that can't handle more
than 64k reads/writes in a single command.

Signed-off-by: Jean-Baptiste Onofre <jb@nanthrax.net>
Signed-off-by: Phil Dibowitz <phil@ipom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: usbmon: Implement compat_ioctl
Pete Zaitcev [Sat, 20 Dec 2008 19:56:08 +0000 (12:56 -0700)]
USB: usbmon: Implement compat_ioctl

Running a 32-bit usbmon(8) on 2.6.28-rc9 produces the following:
ioctl32(usbmon:28563): Unknown cmd fd(3) cmd(400c9206){t:ffffff92;sz:12} arg(ffd3f458) on /dev/usbmon0

It happens because the compatibility mode was implemented for 2.6.18
and not updated for the fsops.compat_ioctl API.

This patch relocates the pieces from under #ifdef CONFIG_COMPAT into
compat_ioctl with no other changes except one new whitespace.

Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Cc: stable <stable@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: add kernel-doc for wusb_dev in struct usb_device
Inaky Perez-Gonzalez [Thu, 8 Jan 2009 20:52:19 +0000 (12:52 -0800)]
USB: add kernel-doc for wusb_dev in struct usb_device

Reported by Randy Dunlap from a warning on the v2.6.29 merge window.

Signed-off-by: Inaky Perez-Gonzalez <inaky@linux.intel.com>
Cc: David Vrabel <david.vrabel@csr.com>
Cc: Randy Dunlap <randy.dunlap@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: ftdi_sio driver support of bar code scanner from Diebold
Mhayk Whandson [Fri, 9 Jan 2009 10:48:16 +0000 (06:48 -0400)]
USB: ftdi_sio driver support of bar code scanner from Diebold

Added the product id of bcs(bar code scanner) from Diebold Procomp Brazil.

Signed-off-by: Mhayk Whandson <eu@mhayk.com.br>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: ftdi_sio: added Alti-2 VID and Neptune 3 PID
Robie Basak [Mon, 12 Jan 2009 23:05:59 +0000 (23:05 +0000)]
USB: ftdi_sio: added Alti-2 VID and Neptune 3 PID

This patch adds the vendor and product ID for the Alti-2 Neptune 3
(http://www.alti-2.com) which uses the FTDI chip.

Signed-off-by: Robie Basak <rb-oss-1@justgohome.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: cp2101 device
Tomasz K [Sun, 4 Jan 2009 11:47:11 +0000 (12:47 +0100)]
USB: cp2101 device

My girl use modem GSM (EDGE) Commanader 2 on iPlus Polsih provider,

PLEASE add this vendor=0x10C4 and product=0x822B to USB serial driver cp2101.c

From: Tomasz K <eros81@o2.pl>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: usblp.c: add USBLP_QUIRK_BIDIR to Brother HL-1440
Brandon Philips [Mon, 5 Jan 2009 16:30:39 +0000 (08:30 -0800)]
USB: usblp.c: add USBLP_QUIRK_BIDIR to Brother HL-1440

My Brother HL-1440 would print one document before CUPS would stop
printing with the error "Printer not connected; will retry in 30
seconds...". I traced this down to the CUPS usb backend getting an EIO
out of usblp on the IOCNR_GET_DEVICE_ID IOCTL. Adding the
USBLP_QUIRK_BIDIR fixes the problem but is it the right solution?

output from strace /usr/lib/cups/backend/usb after printing a document
(Note: SNDCTL_DSP_SYNC == IOCNR_GET_DEVICE_ID):

before patch

open("/dev/usb/lp0", O_RDWR|O_EXCL)     = 3
ioctl(3, SNDCTL_DSP_SYNC, 0x7fff2478cef0) = -1 EIO (Input/output error)

after patch

open("/dev/usb/lp0", O_RDWR|O_EXCL)     = 3
ioctl(3, SNDCTL_DSP_SYNC, 0x7fffb8d474c0) = 0

Possibly related bug: https://bugs.launchpad.net/ubuntu/+source/cupsys/+bug/35638

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: remove vernier labpro from ldusb
sware [Wed, 7 Jan 2009 23:35:55 +0000 (15:35 -0800)]
USB: remove vernier labpro from ldusb

Labpro device is in both ldusb and vstusb device tables.
Should only be a vstusb device.

Signed-off-by: stephen ware <stephen.ware@eqware.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: CDC-ACM quirk for MTK GPS
Andrew Lunn [Tue, 23 Dec 2008 16:31:23 +0000 (17:31 +0100)]
USB: CDC-ACM quirk for MTK GPS

This patch adds a device quirk for a MediaTek Inc GPS chipset. The
device implements USB CDC ACM, but is missing the union descriptor, so
the ACM class driver fails to probe the device.

I've tested this patch with an iBlue A+ GPS which uses this chipset
and using kernel 2.6.28-rc9.

Signed-off-by: Andrew Lunn, <andrew@lunn.ch>
Acked-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: cdc-acm: support some gps data loggers
James A. Treacy [Sun, 25 Jan 2009 04:37:43 +0000 (23:37 -0500)]
USB: cdc-acm: support some gps data loggers

Below is a patch which allows a number of GPS loggers to work
under linux. It is known to support the i-Blue 747 (all models),
i-Blue 757, Qstarz BT-Q1000, i.Trek Z1, Konet BGL-32, and the Holux
M-241.

From: James A. Treacy <treacy@debian.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
15 years agoUSB: composite: Fix bug: low byte of w_index is the usb interface number not the...
Bryan Wu [Wed, 7 Jan 2009 16:21:19 +0000 (00:21 +0800)]
USB: composite: Fix bug: low byte of w_index is the usb interface number not the whole 2 bytes of w_index

In some usb gadget driver, for example usb audio class device, the high
byte of w_index is the entity id and low byte is the interface number.
If we use the 2 bytes of w_index as the array number, we will get a
wrong pointer or NULL pointer.

This patch fixes this issue.

Signed-off-by: Bryan Wu <cooloney@kernel.org>
Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>