RE: [GIT PULL] for testing: OMAP hwmod driver conversions: watchdog, UART, i2c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 5 Oct 2010, Nayak, Rajendra wrote:

> So looks like the issue with i2c on n800 isn't really because of additional
> delay needed after a clock enable, but related to the omap_readl/writel's
> done on the 16bit i2c registers as I was suspecting earlier.
> 
> The below patch fixes the n800 issue for me. My mailer might mess up the alignment
> hence attaching it too.
> 
> >From af9733f2e63a16b446635d52015e05d631f0788f Mon Sep 17 00:00:00 2001
> From: Rajendra Nayak <rnayak@xxxxxx>
> Date: Tue, 5 Oct 2010 16:36:30 +0530
> Subject: [PATCH] OMAP: hwmod: Handle modules with 16bit registers
> 
> Some modules which have 16bit registers can cause imprecise
> aborts if a __raw_readl/writel is used to read/write 32 bits.
> 
> Add an additional flag to identify modules which have such
> hard requirement, and handle it in the hwmod framework.
> 
> Signed-off-by: Rajendra Nayak <rnayak@xxxxxx>

Nice work, looks good to me.  Hopefully we won't need that enable_delay
patch!

I was initially concerned that your patch tried to store a 32-bit quantity
into a 16-bit register.  But I guess the cast to unsigned short in
the __raw_writew macro takes care of this:

                __raw_writew(v, oh->_mpu_rt_va + reg_offs);
      28:       16ff3070        uxthne  r3, r0
      2c:       118130b2        strhne  r3, [r1, r2]

gcc for some reason decides to zero-extend it first, but that is not your
bug to fix.

This patch is targeted for merging via 2.6.37 via Tony's tree.

Acked-by: Paul Walmsley <paul@xxxxxxxxx>


- Paul
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux