* Re: [PATCH] powerpc/fsl_msi: add support for "msi-address-64" property
From: Kumar Gala @ 2011-10-22 21:19 UTC (permalink / raw)
To: Tabi Timur-B04825; +Cc: linuxppc-dev@ozlabs.org, Gala Kumar-B11780
In-Reply-To: <CAOZdJXVJXhiSsjm9cBruGgJ946fr6xwpOZzTLcN2GQGq6eamVw@mail.gmail.com>
On Oct 21, 2011, at 2:16 PM, Tabi Timur-B04825 wrote:
> On Fri, Oct 14, 2011 at 9:15 AM, Kumar Gala <kumar.gala@freescale.com> =
wrote:
>=20
>>> .../devicetree/bindings/powerpc/fsl/msi-pic.txt | 42 =
++++++++++++++++++++
>>> arch/powerpc/sysdev/fsl_msi.c | 20 +++++++---
>>> arch/powerpc/sysdev/fsl_msi.h | 3 +-
>>> 3 files changed, 57 insertions(+), 8 deletions(-)
>>=20
>> applied
>=20
> Applied where, exactly? You don't have a repo on kernel.org, and your
> repo on github.org is over a month old.
I've updated github as still trying to figure out when I'll get my =
kernel.org account back.
- k=
^ permalink raw reply
* Is this mailing list alive ?
From: Xin Tong @ 2011-10-22 21:18 UTC (permalink / raw)
To: kvm-ia64
Is this mailing list alive ?
^ permalink raw reply
* Re: Can you please create a git tree mirror on git.kernel.org?
From: Alex Elder @ 2011-10-22 21:08 UTC (permalink / raw)
To: Christoph Hellwig; +Cc: Wanlong Gao, xfs
In-Reply-To: <20111020083307.GA16743@infradead.org>
On Thu, 2011-10-20 at 04:33 -0400, Christoph Hellwig wrote:
> On Thu, Oct 20, 2011 at 06:53:34PM +1100, Dave Chinner wrote:
> > As it is, I'm not sure we're going to put those trees back on
> > kernel.org - there's been no discussion I've seen about doing this,
> > and the absence of the trees hasn't hurt us at all thanks to Alex
> > pushing stuff into the oss.sgi.com trees quickly.
>
> I'd like to put them back. Right now it means we have a single point
> of failure, and overload Alex who is pretty busy already.
My plan all along has been to update the kernel.org
trees when that became possible. I have not yet updated
my various credentials and have not re-synched kernel.org.
I am out of town and will be until Tuesday night. This
is my first time back online for a few days. I expect
to be updating things this coming week, unless I run into
some sort of roadblock.
-Alex
> > And FWIW, I'm not planning on putting my dev trees back on
> > kernel.org any time soon - too many hoops to jump through now. I'll
> > probably use github or some other site for doing that when the need
> > arises.
>
> Of course we'd need all the regular contributors to have access,
> otherwise a shared repository is rather pointless.
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
^ permalink raw reply
* Re: [PATCH] freetype_2.4.3.bb; Change order of configuration.
From: Ulf Samuelsson @ 2011-10-22 21:00 UTC (permalink / raw)
To: openembedded-devel
In-Reply-To: <1319289285.3496.40.camel@mattotaupa>
2011-10-22 15:14, Paul Menzel skrev:
> Am Samstag, den 22.10.2011, 14:28 +0200 schrieb ulf_samuelsson@telia.com:
>> From: Ulf Samuelsson<ulf_samuelsson@telia.com>
>>
>> Build of freetype-native is broken on Ubuntu 11.10 x64 - possible others.
> It works for me without problem with Debian Squeeze (32-bit). So what is
> the error message in the first place?
>
DIdn't save the logfile, but the problem was that
"./builds/unix/x86_64-linux-libtool" was not present when needed.
instead "./builds/unix/libtool" had been built.
If you run a 32 bit machine, then you obviously do not have a problem.
Would be good to have it tested on a 32 bit machine of course,
but I do not see why a 64 bit version should be built based
on the changes in the patch.
>> Problem fixed in openembedded-core 2.4.4 recipe
> It seems it was not present since the beginning, i. e. version 2.3.12.
>
>> Backporting the change will allow the build to complete.
>>
>> openembedded-core-contrib/meta/recipes-graphics/freetype
>>
>> Signed-Off-By: Ulf Samuelsson<ulf.samuelsson@telia.com>
>> ---
>> recipes/freetype/freetype_2.4.3.bb | 6 +++---
>> 1 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/recipes/freetype/freetype_2.4.3.bb b/recipes/freetype/freetype_2.4.3.bb
>> index 66d2e51..dfc1b43 100644
>> --- a/recipes/freetype/freetype_2.4.3.bb
>> +++ b/recipes/freetype/freetype_2.4.3.bb
>> @@ -1,7 +1,7 @@
>> DESCRIPTION = "Freetype font rendering library"
>> SECTION = "libs"
>> LICENSE = "freetype GPLv2"
>> -PR = "r1"
>> +PR = "r2"
>> DEPENDS = "zlib"
>>
>> SRC_URI = "\
>> @@ -23,9 +23,9 @@ LDFLAGS_append = " -Wl,-rpath-link -Wl,${STAGING_DIR_TARGET}${libdir}"
>>
>> do_configure() {
>> cd builds/unix
>> - gnu-configize --force
>> - aclocal -I .
>> libtoolize --force --copy
>> + aclocal -I .
>> + gnu-configize --force
>> autoconf
>> cd ${S}
>> oe_runconf
>
> Thanks,
>
> Paul
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
--
Best Regards
Ulf Samuelsson
^ permalink raw reply
* Re: make check
From: Kay Sievers @ 2011-10-22 20:58 UTC (permalink / raw)
To: linux-hotplug
In-Reply-To: <20111021220133.GA8417@linux1>
On Sat, Oct 22, 2011 at 17:29, Martin Pitt <martin.pitt@ubuntu.com> wrote:
> William Hubbs [2011-10-21 17:01 -0500]:
>> is "make check" meant to be run on release tarballs, or just in the git
>> repository?
>
> It's meant to work on both. That's what 'make distcheck' verifies, too.
Seems the (huge) sysfs test tree is not packaged into the tarball. So
they work only in the git tree today.
These tests need to run as root (for mknod()), and are ignore if 'make
check' is called as non-root, that's why it's not fatal or visible in
the usual case or during make distcheck.
Kay
^ permalink raw reply
* Re: [PATCH 1/3] ARM: tegra: paz00: add support for the embedded controller
From: Marc Dietrich @ 2011-10-22 20:49 UTC (permalink / raw)
To: Olof Johansson
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA, Colin Cross, Stephen Warren
In-Reply-To: <CAOesGMhVFk6n0n98akeVdM-cLtK9ip0-M01u9jy8WEdJNU+xsg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
On Saturday 22 October 2011 13:27:12 Olof Johansson wrote:
> On Sat, Oct 22, 2011 at 1:16 PM, Marc Dietrich <marvin24-Mmb7MZpHnFY@public.gmane.org> wrote:
> > This adds support for the embedded controller known as NVEC. The driver
> > lives currently in the staging tree and we aim to promote it one level
> > higher in the near future.
> >
> > The NVEC driver uses the I2C resources of the master controller for now
> > until slave support is added to the i2c-tegra driver.
> >
> > diff --git a/arch/arm/mach-tegra/board-paz00.c
> > b/arch/arm/mach-tegra/board-paz00.c index 602f8dd..3f46b37 100644
> > --- a/arch/arm/mach-tegra/board-paz00.c
> > +++ b/arch/arm/mach-tegra/board-paz00.c
> > @@ -44,6 +44,8 @@
> > #include "devices.h"
> > #include "gpio-names.h"
> >
> > +#include "../../../drivers/staging/nvec/nvec.h"
>
> Ick, no! Move the header file containing platform data to
> include/linux/platform_data instead (or break it off in a separate
> header file).
I know this looks ugly, but it is AFAIK the only (and the common) way for a
staging driver to be used. Of course the header will be moved to e.g. to
include/linux/mfd once the driver is ready for mainline, but till that we just
cannot write somewhere outside of the staging dir.
> > static struct platform_device *paz00_devices[] __initdata = {
> > &debug_uart,
> > &tegra_sdhci_device4,
> > @@ -127,6 +134,10 @@ static void paz00_i2c_init(void)
> > platform_device_register(&tegra_i2c_device1);
> > platform_device_register(&tegra_i2c_device2);
> > platform_device_register(&tegra_i2c_device4);
> > +
> > + tegra_i2c_device3.name = "nvec";
> > + tegra_i2c_device3.dev.platform_data = &nvec_pdata;
> > + platform_device_register(&tegra_i2c_device3);
>
> Please define a separate platform_device instead of hijacking the
> current one, please.
ok, I just wanted to keep the patch small ;-)
Marc
^ permalink raw reply
* Re: Does NFS4 need st_gen?
From: Nikolaus Rath @ 2011-10-22 20:10 UTC (permalink / raw)
To: Boaz Harrosh; +Cc: Trond Myklebust, linux-nfs
In-Reply-To: <4EA30FC7.7080600@panasas.com>
Boaz Harrosh <bharrosh@panasas.com> wrote:
>On 10/21/2011 10:44 AM, Nikolaus Rath wrote:
>> Yes, with 64bit inodes everything would be fine. But fuse uses 'long'
>> for inodes, so on 32bit systems you only have 32bit inodes even if
>ino_t
>> is 64bit.
>
>With out knowing any of the details, what kind of brain dead thing is
>putting "long" in an API. What do you do with 32bit user-mode on 64bit
>Kernel.
It's called a bug, they are known to appear occasionally in computer software.
>
>32 bits for inode numbers is a broken system for 15 years already.
>Fix the broken FUSE that falsely calls itself File-System and
>stop bitching about NFS. It's FUSE you should be hacking and fixing.
I merely answered the question of why I was interested in generation numbers in NFS4.
Best,
Nikolaus
--
Sent from my Android phone with K-9 Mail. Please excuse my brevity.
^ permalink raw reply
* Re: [PATCH] kbuild: fix set but not used warnings
From: Peter Foley @ 2011-10-22 19:40 UTC (permalink / raw)
To: Arnaud Lacombe
Cc: Peter Foley, Linux Kernel Mailing List, Linux Kbuild Mailing List,
mmarek
In-Reply-To: <CACqU3MXS6-uE01EVAW1KdCViKioSz_F79YqzYwdTLrmc8hoMAw@mail.gmail.com>
[-- Attachment #1: Type: TEXT/PLAIN, Size: 830 bytes --]
On Sat, 22 Oct 2011, Arnaud Lacombe wrote:
> Hi,
>
> On Sat, Oct 22, 2011 at 2:01 PM, Peter Foley <pefoley2@verizon.net> wrote:
> > Remove set but not used variables to fix warnings.
> >
> > HOSTCC scripts/kconfig/gconf.o
> > /usr/src/lto/scripts/kconfig/gconf.c: In function 'change_sym_value':
> > /usr/src/lto/scripts/kconfig/gconf.c:833:11: warning: variable 'oldval' set but not used [-Wunused-but-set-variable]
> > /usr/src/lto/scripts/kconfig/gconf.c: In function 'update_tree':
> > /usr/src/lto/scripts/kconfig/gconf.c:1281:19: warning: variable 'prop' set but not used [-Wunused-but-set-variable]
> >
> > Signed-off-by: Peter Foley <pefoley2@verizon.net>
> >
> s/kbuild/kconfig/ in the subject, that help to know changes is only
> limited to scripts/kconfig/
>
> - Arnaud
Noted. Should I resend this patch?
Peter
^ permalink raw reply
* Re: tag process's future sockets for iptables rules?
From: Jan Engelhardt @ 2011-10-22 20:43 UTC (permalink / raw)
To: p. awa; +Cc: netfilter
In-Reply-To: <1RHeWb-0000Qb-4M@internal.tormail.net>
On Saturday 2011-10-22 18:34, p. awa wrote:
>i used to do redirection and filtering based on the uid of a packet's
>local socket. the point was to transparently proxy an arbitrary process's
>outbound tcp connections through tor[1]. it had a nice enough interface:
>
>$ sudo torified-user wget http://example.com/
>
>then i switched to filtering based on gid instead of uid: having only
>the gid of regular files created by a process screwed with was less
>intrusive. but it is all still a hack that becomes unwieldy when you
>need more complex filtering rules.
>
>so i wonder if netfilter provides a facility that would allow a process
>to specify tags that are then added onto all sockets/connections/packets
>this process and its children create in the future, and to filter based
>upon those tags. something like:
>
>| netfilter_add_tag("public-addresses-proxied-via-tor");
>| netfilter_add_tag("internal-addresses-directly");
>| netfilter_remove_tag("proxy-dns");
>| execlp("wget", ...);
>
>plus corresponding iptables rules:
>
># iptables ... --with-tag public-addresses-proxied-via-tor \
> --with-tag internal-addresses-directly \
> --without-tag proxy-dns ...
>
>is there such a thing? of course it wouldn't have to be this interface
A socket option, SO_MARK, for use with setsockopt/getsockopt.
^ permalink raw reply
* [PATCH] ARM: gic: fix irq_alloc_descs handling for sparse irq
From: Russell King - ARM Linux @ 2011-10-22 20:36 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1319314808-27007-1-git-send-email-robherring2@gmail.com>
On Sat, Oct 22, 2011 at 03:20:08PM -0500, Rob Herring wrote:
> @@ -657,7 +664,7 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent)
>
> domain->of_node = of_node_get(node);
>
> - gic_init(gic_cnt, 16, dist_base, cpu_base);
> + gic_init(gic_cnt, -1, dist_base, cpu_base);
>
> if (parent) {
> irq = irq_of_parse_and_map(node, 0);
You don't explain this change - '16' is used here to skip the SGI
interrupts which will never be passed to the generic IRQ subsystem
from the GIC.
Moreover, the second parameter is an unsigned integer, not a signed
integer.
And not only that, but:
gic->irq_offset = (irq_start - 1) & ~31;
means that irq_offset ends up being -2 & ~31, or -32. Do you really
want the PPIs to generate IRQ numbers from -16 to -1 ? It doesn't stop
there:
for (i = irq_start; i < irq_limit; i++) {
irq_set_chip_and_handler(i, &gic_chip, handle_fasteoi_irq);
irq_set_chip_data(i, gic);
set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
}
This will start from -1 to irq_limit (-1 + number of GIC IRQs).
Basically, -1 is not legal here - 1 is the minimum valid value that
this function takes for proper operation - but that's just wasteful, so
16 is the realistic minimum value.
^ permalink raw reply
* Re: [PATCH v15 00/10] Add-Synopsys-DesignWare-HS-USB-OTG-driver
From: Olof Johansson @ 2011-10-22 20:30 UTC (permalink / raw)
To: tmarri; +Cc: greg, linux-usb, linuxppc-dev
In-Reply-To: <20111021173302.GB27652@quad.lixom.net>
Hi,
On Fri, Oct 21, 2011 at 10:33 AM, Olof Johansson <olof@lixom.net> wrote:
> On Fri, Oct 14, 2011 at 03:08:34PM -0700, tmarri@apm.com wrote:
>> From: Tirumala Marri <tmarri@apm.com>
>
> Overall this driver seems to be based on the IP vendor driver? It
> looks like a completely flexible driver that implements all possible
> combinations of everything.
After looking a little closer at the patch set, it seems that number
one thing you need to do is simplify the driver. A lot.
I suggest starting from scratch with a clean implementation, only
bringing in the pieces you need. Over time, if other vendors are using
other aspects of the same IP, they get to add those parts of the
driver when they need it. Look at the dwc3 driver for comparison on
cleanliness, it's much cleaner than what you've posted.
-Olof
^ permalink raw reply
* Re: [PATCH 1/3] ARM: tegra: paz00: add support for the embedded controller
From: Olof Johansson @ 2011-10-22 20:27 UTC (permalink / raw)
To: Marc Dietrich
Cc: linux-tegra-u79uwXL29TY76Z2rM5mHXA, Colin Cross, Stephen Warren
In-Reply-To: <b5f0dc6e7996a21d4493f8e7765e322fe6d8b7ef.1319313020.git.marvin24-Mmb7MZpHnFY@public.gmane.org>
On Sat, Oct 22, 2011 at 1:16 PM, Marc Dietrich <marvin24-Mmb7MZpHnFY@public.gmane.org> wrote:
> This adds support for the embedded controller known as NVEC. The driver
> lives currently in the staging tree and we aim to promote it one level
> higher in the near future.
>
> The NVEC driver uses the I2C resources of the master controller for now
> until slave support is added to the i2c-tegra driver.
> diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
> index 602f8dd..3f46b37 100644
> --- a/arch/arm/mach-tegra/board-paz00.c
> +++ b/arch/arm/mach-tegra/board-paz00.c
> @@ -44,6 +44,8 @@
> #include "devices.h"
> #include "gpio-names.h"
>
> +#include "../../../drivers/staging/nvec/nvec.h"
Ick, no! Move the header file containing platform data to
include/linux/platform_data instead (or break it off in a separate
header file).
> static struct platform_device *paz00_devices[] __initdata = {
> &debug_uart,
> &tegra_sdhci_device4,
> @@ -127,6 +134,10 @@ static void paz00_i2c_init(void)
> platform_device_register(&tegra_i2c_device1);
> platform_device_register(&tegra_i2c_device2);
> platform_device_register(&tegra_i2c_device4);
> +
> + tegra_i2c_device3.name = "nvec";
> + tegra_i2c_device3.dev.platform_data = &nvec_pdata;
> + platform_device_register(&tegra_i2c_device3);
Please define a separate platform_device instead of hijacking the
current one, please.
-Olof
^ permalink raw reply
* Re: [PATCH V2] v4l: use i2c_smbus_read_word_swapped
From: Laurent Pinchart @ 2011-10-22 8:57 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-media, khali, kernel, robert.jarzmik
In-Reply-To: <1319203825-23247-1-git-send-email-jic23@cam.ac.uk>
Hi Jonathan,
Thanks for the patch.
On Friday 21 October 2011 15:30:25 Jonathan Cameron wrote:
> Function ensures that error codes don't get mangled.
> Dependant on:
> i2c: boilerplate function for byte swapped smbus_write/read_word_data
> which is working it's way through the i2c tree.
>
> Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
> Acked-by: Jean Delvare <khali@linux-fr.org>
For the mt9v032 driver,
Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
The mt9t001 and mt9p031 drivers should be fixed similarly. I'll send a patch.
> ---
>
> V2: Stray line removed as per Jean's comment. Thanks Jean.
>
> Dependency due to go upstream during next merge window.
>
> drivers/media/video/mt9m001.c | 5 ++---
> drivers/media/video/mt9m111.c | 7 +++----
> drivers/media/video/mt9t031.c | 5 ++---
> drivers/media/video/mt9v022.c | 5 ++---
> drivers/media/video/mt9v032.c | 8 ++++----
> 5 files changed, 13 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/media/video/mt9m001.c b/drivers/media/video/mt9m001.c
> index 4da9cca..862a300 100644
> --- a/drivers/media/video/mt9m001.c
> +++ b/drivers/media/video/mt9m001.c
> @@ -102,14 +102,13 @@ static struct mt9m001 *to_mt9m001(const struct
> i2c_client *client)
>
> static int reg_read(struct i2c_client *client, const u8 reg)
> {
> - s32 data = i2c_smbus_read_word_data(client, reg);
> - return data < 0 ? data : swab16(data);
> + return i2c_smbus_read_word_swapped(client, reg);
> }
>
> static int reg_write(struct i2c_client *client, const u8 reg,
> const u16 data)
> {
> - return i2c_smbus_write_word_data(client, reg, swab16(data));
> + return i2c_smbus_write_word_swapped(client, reg, data);
> }
>
> static int reg_set(struct i2c_client *client, const u8 reg,
> diff --git a/drivers/media/video/mt9m111.c b/drivers/media/video/mt9m111.c
> index a357aa8..41b3029 100644
> --- a/drivers/media/video/mt9m111.c
> +++ b/drivers/media/video/mt9m111.c
> @@ -210,7 +210,7 @@ static int reg_page_map_set(struct i2c_client *client,
> const u16 reg) if (page > 2)
> return -EINVAL;
>
> - ret = i2c_smbus_write_word_data(client, MT9M111_PAGE_MAP, swab16(page));
> + ret = i2c_smbus_write_word_swapped(client, MT9M111_PAGE_MAP, page);
> if (!ret)
> lastpage = page;
> return ret;
> @@ -222,7 +222,7 @@ static int mt9m111_reg_read(struct i2c_client *client,
> const u16 reg)
>
> ret = reg_page_map_set(client, reg);
> if (!ret)
> - ret = swab16(i2c_smbus_read_word_data(client, reg & 0xff));
> + ret = i2c_smbus_read_word_swapped(client, reg & 0xff);
>
> dev_dbg(&client->dev, "read reg.%03x -> %04x\n", reg, ret);
> return ret;
> @@ -235,8 +235,7 @@ static int mt9m111_reg_write(struct i2c_client *client,
> const u16 reg,
>
> ret = reg_page_map_set(client, reg);
> if (!ret)
> - ret = i2c_smbus_write_word_data(client, reg & 0xff,
> - swab16(data));
> + ret = i2c_smbus_write_word_swapped(client, reg & 0xff, data);
> dev_dbg(&client->dev, "write reg.%03x = %04x -> %d\n", reg, data, ret);
> return ret;
> }
> diff --git a/drivers/media/video/mt9t031.c b/drivers/media/video/mt9t031.c
> index 30547cc..e4ac238 100644
> --- a/drivers/media/video/mt9t031.c
> +++ b/drivers/media/video/mt9t031.c
> @@ -81,14 +81,13 @@ static struct mt9t031 *to_mt9t031(const struct
> i2c_client *client)
>
> static int reg_read(struct i2c_client *client, const u8 reg)
> {
> - s32 data = i2c_smbus_read_word_data(client, reg);
> - return data < 0 ? data : swab16(data);
> + return i2c_smbus_read_word_swapped(client, reg);
> }
>
> static int reg_write(struct i2c_client *client, const u8 reg,
> const u16 data)
> {
> - return i2c_smbus_write_word_data(client, reg, swab16(data));
> + return i2c_smbus_write_word_swapped(client, reg, data);
> }
>
> static int reg_set(struct i2c_client *client, const u8 reg,
> diff --git a/drivers/media/video/mt9v022.c b/drivers/media/video/mt9v022.c
> index 51b0fcc..d5272d9 100644
> --- a/drivers/media/video/mt9v022.c
> +++ b/drivers/media/video/mt9v022.c
> @@ -116,14 +116,13 @@ static struct mt9v022 *to_mt9v022(const struct
> i2c_client *client)
>
> static int reg_read(struct i2c_client *client, const u8 reg)
> {
> - s32 data = i2c_smbus_read_word_data(client, reg);
> - return data < 0 ? data : swab16(data);
> + return i2c_smbus_read_word_swapped(client, reg);
> }
>
> static int reg_write(struct i2c_client *client, const u8 reg,
> const u16 data)
> {
> - return i2c_smbus_write_word_data(client, reg, swab16(data));
> + return i2c_smbus_write_word_swapped(client, reg, data);
> }
>
> static int reg_set(struct i2c_client *client, const u8 reg,
> diff --git a/drivers/media/video/mt9v032.c b/drivers/media/video/mt9v032.c
> index c64e1dc..7906929 100644
> --- a/drivers/media/video/mt9v032.c
> +++ b/drivers/media/video/mt9v032.c
> @@ -138,10 +138,10 @@ static struct mt9v032 *to_mt9v032(struct v4l2_subdev
> *sd)
>
> static int mt9v032_read(struct i2c_client *client, const u8 reg)
> {
> - s32 data = i2c_smbus_read_word_data(client, reg);
> + s32 data = i2c_smbus_read_word_swapped(client, reg);
> dev_dbg(&client->dev, "%s: read 0x%04x from 0x%02x\n", __func__,
> - swab16(data), reg);
> - return data < 0 ? data : swab16(data);
> + data, reg);
> + return data;
> }
>
> static int mt9v032_write(struct i2c_client *client, const u8 reg,
> @@ -149,7 +149,7 @@ static int mt9v032_write(struct i2c_client *client,
> const u8 reg, {
> dev_dbg(&client->dev, "%s: writing 0x%04x to 0x%02x\n", __func__,
> data, reg);
> - return i2c_smbus_write_word_data(client, reg, swab16(data));
> + return i2c_smbus_write_word_swapped(client, reg, data);
> }
>
> static int mt9v032_set_chip_control(struct mt9v032 *mt9v032, u16 clear,
> u16 set)
--
Regards,
Laurent Pinchart
^ permalink raw reply
* [PATCH] v4l: mt9p031/mt9t001: Use i2c_smbus_{read|write}_word_swapped()
From: Laurent Pinchart @ 2011-10-22 8:57 UTC (permalink / raw)
To: Jonathan Cameron; +Cc: linux-media, khali, kernel
In-Reply-To: <1319203825-23247-1-git-send-email-jic23@cam.ac.uk>
The MT9P031 and MT9T001 sensors transfer 16-bit data on the I2C bus in
swapped order. Let the I2C core handle byte order by using the
i2c_smbus_{read|write}_word_swapped() functions.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
drivers/media/video/mt9p031.c | 5 ++---
drivers/media/video/mt9t001.c | 5 ++---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/drivers/media/video/mt9p031.c b/drivers/media/video/mt9p031.c
index 5cfa39f..aa01c4b 100644
--- a/drivers/media/video/mt9p031.c
+++ b/drivers/media/video/mt9p031.c
@@ -131,13 +131,12 @@ static struct mt9p031 *to_mt9p031(struct v4l2_subdev *sd)
static int mt9p031_read(struct i2c_client *client, u8 reg)
{
- s32 data = i2c_smbus_read_word_data(client, reg);
- return data < 0 ? data : be16_to_cpu(data);
+ return i2c_smbus_read_word_swapped(client, reg);
}
static int mt9p031_write(struct i2c_client *client, u8 reg, u16 data)
{
- return i2c_smbus_write_word_data(client, reg, cpu_to_be16(data));
+ return i2c_smbus_write_word_swapped(client, reg, data);
}
static int mt9p031_set_output_control(struct mt9p031 *mt9p031, u16 clear,
diff --git a/drivers/media/video/mt9t001.c b/drivers/media/video/mt9t001.c
index cac1416..2ea6a08 100644
--- a/drivers/media/video/mt9t001.c
+++ b/drivers/media/video/mt9t001.c
@@ -132,13 +132,12 @@ static inline struct mt9t001 *to_mt9t001(struct v4l2_subdev *sd)
static int mt9t001_read(struct i2c_client *client, u8 reg)
{
- s32 data = i2c_smbus_read_word_data(client, reg);
- return data < 0 ? data : be16_to_cpu(data);
+ return i2c_smbus_read_word_swapped(client, reg);
}
static int mt9t001_write(struct i2c_client *client, u8 reg, u16 data)
{
- return i2c_smbus_write_word_data(client, reg, cpu_to_be16(data));
+ return i2c_smbus_write_word_swapped(client, reg, data);
}
static int mt9t001_set_output_control(struct mt9t001 *mt9t001, u16 clear,
--
Regards,
Laurent Pinchart
^ permalink raw reply related
* Re: [PATCH] Smack: allow to access /smack/access as normal user
From: James Morris @ 2011-10-22 20:24 UTC (permalink / raw)
To: Casey Schaufler; +Cc: Jarkko Sakkinen, linux-kernel, linux-security-module
In-Reply-To: <4EA1BE30.5080900@schaufler-ca.com>
On Fri, 21 Oct 2011, Casey Schaufler wrote:
> On 10/18/2011 11:21 AM, Jarkko Sakkinen wrote:
> > Allow query access as a normal user removing the need
> > for CAP_MAC_ADMIN. Give RW access to /smack/access
> > for UGO. Do not import smack labels in access check.
> >
> > Signed-off-by: Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
>
> Applied to git://gitorious.org/smack-next/kernel.git#master
>
> James, will you please pull:
Pulled, but please use git-request-pull for these requests.
>
> commit 0e94ae17c857b3835a2b8ea46ce44b5da4e2cc5d
> Author: Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
> Date: Tue Oct 18 21:21:36 2011 +0300
>
> Smack: allow to access /smack/access as normal user
>
> Allow query access as a normal user removing the need
> for CAP_MAC_ADMIN. Give RW access to /smack/access
> for UGO. Do not import smack labels in access check.
>
> Signed-off-by: Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
> Signed-off-by: Casey Schaufler <cschaufler@cschaufler-intel.(none)>
>
> commit d86b2b61d4dea614d6f319772a90a8f98b55ed67
> Author: Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
> Date: Tue Oct 18 14:34:28 2011 +0300
>
> Smack: fix: invalid length set for the result of /smack/access
>
> Forgot to update simple_transaction_set() to take terminator
> character into account.
>
> Signed-off-by: Jarkko Sakkinen <jarkko.j.sakkinen@gmail.com>
> Signed-off-by: Casey Schaufler <cschaufler@cschaufler-intel.(none)>
>
>
>
> > ---
> > security/smack/smack.h | 1 +
> > security/smack/smack_access.c | 27 +++++++++++++++++-------
> > security/smack/smackfs.c | 45 +++++++++++++++++++++++++++-------------
> > 3 files changed, 50 insertions(+), 23 deletions(-)
> >
> > diff --git a/security/smack/smack.h b/security/smack/smack.h
> > index 9da2b2d..2ad0065 100644
> > --- a/security/smack/smack.h
> > +++ b/security/smack/smack.h
> > @@ -208,6 +208,7 @@ int smk_curacc(char *, u32, struct smk_audit_info *);
> > int smack_to_cipso(const char *, struct smack_cipso *);
> > char *smack_from_cipso(u32, char *);
> > char *smack_from_secid(const u32);
> > +void smk_parse_smack(const char *string, int len, char *smack);
> > char *smk_import(const char *, int);
> > struct smack_known *smk_import_entry(const char *, int);
> > struct smack_known *smk_find_entry(const char *);
> > diff --git a/security/smack/smack_access.c b/security/smack/smack_access.c
> > index a885f62..cc7cb6e 100644
> > --- a/security/smack/smack_access.c
> > +++ b/security/smack/smack_access.c
> > @@ -353,17 +353,13 @@ struct smack_known *smk_find_entry(const char *string)
> > }
> >
> > /**
> > - * smk_import_entry - import a label, return the list entry
> > - * @string: a text string that might be a Smack label
> > + * smk_parse_smack - parse smack label from a text string
> > + * @string: a text string that might contain a Smack label
> > * @len: the maximum size, or zero if it is NULL terminated.
> > - *
> > - * Returns a pointer to the entry in the label list that
> > - * matches the passed string, adding it if necessary.
> > + * @smack: parsed smack label, or NULL if parse error
> > */
> > -struct smack_known *smk_import_entry(const char *string, int len)
> > +void smk_parse_smack(const char *string, int len, char *smack)
> > {
> > - struct smack_known *skp;
> > - char smack[SMK_LABELLEN];
> > int found;
> > int i;
> >
> > @@ -381,7 +377,22 @@ struct smack_known *smk_import_entry(const char *string, int len)
> > } else
> > smack[i] = string[i];
> > }
> > +}
> > +
> > +/**
> > + * smk_import_entry - import a label, return the list entry
> > + * @string: a text string that might be a Smack label
> > + * @len: the maximum size, or zero if it is NULL terminated.
> > + *
> > + * Returns a pointer to the entry in the label list that
> > + * matches the passed string, adding it if necessary.
> > + */
> > +struct smack_known *smk_import_entry(const char *string, int len)
> > +{
> > + struct smack_known *skp;
> > + char smack[SMK_LABELLEN];
> >
> > + smk_parse_smack(string, len, smack);
> > if (smack[0] == '\0')
> > return NULL;
> >
> > diff --git a/security/smack/smackfs.c b/security/smack/smackfs.c
> > index 381eecf..6aceef5 100644
> > --- a/security/smack/smackfs.c
> > +++ b/security/smack/smackfs.c
> > @@ -191,19 +191,37 @@ static int smk_set_access(struct smack_rule *srp, struct list_head *rule_list,
> > }
> >
> > /**
> > - * smk_parse_rule - parse subject, object and access type
> > + * smk_parse_rule - parse Smack rule from load string
> > * @data: string to be parsed whose size is SMK_LOADLEN
> > - * @rule: parsed entities are stored in here
> > + * @rule: Smack rule
> > + * @import: if non-zero, import labels
> > */
> > -static int smk_parse_rule(const char *data, struct smack_rule *rule)
> > +static int smk_parse_rule(const char *data, struct smack_rule *rule, int import)
> > {
> > - rule->smk_subject = smk_import(data, 0);
> > - if (rule->smk_subject == NULL)
> > - return -1;
> > + char smack[SMK_LABELLEN];
> > + struct smack_known *skp;
> >
> > - rule->smk_object = smk_import(data + SMK_LABELLEN, 0);
> > - if (rule->smk_object == NULL)
> > - return -1;
> > + if (import) {
> > + rule->smk_subject = smk_import(data, 0);
> > + if (rule->smk_subject == NULL)
> > + return -1;
> > +
> > + rule->smk_object = smk_import(data + SMK_LABELLEN, 0);
> > + if (rule->smk_object == NULL)
> > + return -1;
> > + } else {
> > + smk_parse_smack(data, 0, smack);
> > + skp = smk_find_entry(smack);
> > + if (skp == NULL)
> > + return -1;
> > + rule->smk_subject = skp->smk_known;
> > +
> > + smk_parse_smack(data + SMK_LABELLEN, 0, smack);
> > + skp = smk_find_entry(smack);
> > + if (skp == NULL)
> > + return -1;
> > + rule->smk_object = skp->smk_known;
> > + }
> >
> > rule->smk_access = 0;
> >
> > @@ -327,7 +345,7 @@ static ssize_t smk_write_load_list(struct file *file, const char __user *buf,
> > goto out;
> > }
> >
> > - if (smk_parse_rule(data, rule))
> > + if (smk_parse_rule(data, rule, 1))
> > goto out_free_rule;
> >
> > if (rule_list == NULL) {
> > @@ -1499,14 +1517,11 @@ static ssize_t smk_write_access(struct file *file, const char __user *buf,
> > char *data;
> > int res;
> >
> > - if (!capable(CAP_MAC_ADMIN))
> > - return -EPERM;
> > -
> > data = simple_transaction_get(file, buf, count);
> > if (IS_ERR(data))
> > return PTR_ERR(data);
> >
> > - if (count < SMK_LOADLEN || smk_parse_rule(data, &rule))
> > + if (count < SMK_LOADLEN || smk_parse_rule(data, &rule, 0))
> > return -EINVAL;
> >
> > res = smk_access(rule.smk_subject, rule.smk_object, rule.smk_access,
> > @@ -1560,7 +1575,7 @@ static int smk_fill_super(struct super_block *sb, void *data, int silent)
> > [SMK_LOAD_SELF] = {
> > "load-self", &smk_load_self_ops, S_IRUGO|S_IWUGO},
> > [SMK_ACCESSES] = {
> > - "access", &smk_access_ops, S_IRUGO|S_IWUSR},
> > + "access", &smk_access_ops, S_IRUGO|S_IWUGO},
> > /* last one */
> > {""}
> > };
>
--
James Morris
<jmorris@namei.org>
^ permalink raw reply
* Kernel BUG unable to handle kernel NULL pointer dereference
From: Leonidas Spyropoulos @ 2011-10-22 20:23 UTC (permalink / raw)
To: linux-btrfs
Hello, I got a kernel bug error, my guess from BTRFS.
Here is the report,
Oct 22 20:44:43 localhost kernel: [25554.947970] BUG: unable to handle
kernel NULL pointer dereference at 0000000000000030
Oct 22 20:44:43 localhost kernel: [25554.948002] IP:
[<ffffffffa01ab027>] btrfs_print_leaf+0x37/0x880 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948037] PGD bfa44067 PUD
bfa43067 PMD 0
Oct 22 20:44:43 localhost kernel: [25554.948052] Oops: 0000 [#1] PREEMPT SMP
Oct 22 20:44:43 localhost kernel: [25554.948066] CPU 1
Oct 22 20:44:43 localhost kernel: [25554.948072] Modules linked in:
nls_cp437 vfat fat ipv6 loop fuse hid_apple usbhid hid uvcvideo
videodev media v4l2_compat_ioctl32 adt7475 hwmon_vid evdev nouveau
snd_emu10k1 snd_rawmidi snd_intel8x0 ttm drm_kms_helper sg
snd_ac97_codec snd_seq_device firewire_ohci drm snd_util_mem ac97_bus
snd_pcm snd_hwdep edac_core k8temp psmouse firewire_core emu10k1_gp
snd_timer edac_mce_amd pcspkr snd i2c_algo_bit gameport mxm_wmi wmi
crc_itu_t serio_raw soundcore video snd_page_alloc fan i2c_nforce2
thermal i2c_core floppy processor button uas usb_storage forcedeth
btrfs zlib_deflate crc32c libcrc32c ext4 jbd2 crc16 ext3 jbd mbcache
ohci_hcd ehci_hcd usbcore sr_mod sd_mod cdrom sata_nv pata_amd libata
scsi_mod
Oct 22 20:44:43 localhost kernel: [25554.948321]
Oct 22 20:44:43 localhost kernel: [25554.948327] Pid: 4834, comm:
firefox Not tainted 3.0-ARCH #1 /LP UT NF4 Expert
Oct 22 20:44:43 localhost kernel: [25554.948522] RIP:
0010:[<ffffffffa01ab027>] [<ffffffffa01ab027>]
btrfs_print_leaf+0x37/0x880 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948547] RSP:
0018:ffff8800b341fb38 EFLAGS: 00010282
Oct 22 20:44:43 localhost kernel: [25554.948557] RAX: 00000000ffffffe4
RBX: 0000000000000000 RCX: ffff8800b341ffd8
Oct 22 20:44:43 localhost kernel: [25554.948570] RDX: ffff8800b341e000
RSI: 0000000000000000 RDI: ffff880135075000
Oct 22 20:44:43 localhost kernel: [25554.948582] RBP: ffff8800b341fbc8
R08: ffffffffffffffff R09: 0000000000000000
Oct 22 20:44:43 localhost kernel: [25554.948595] R10: 00000000ffffffe4
R11: 0000000000000000 R12: 0000000000000005
Oct 22 20:44:43 localhost kernel: [25554.948607] R13: 0000000005114000
R14: 00000000ffffffe4 R15: 0000000000001000
Oct 22 20:44:43 localhost kernel: [25554.948621] FS:
00007f1c5a2f4720(0000) GS:ffff88013fd00000(0000)
knlGS:00000000f68227f0
Oct 22 20:44:43 localhost kernel: [25554.948634] CS: 0010 DS: 0000
ES: 0000 CR0: 0000000080050033
Oct 22 20:44:43 localhost kernel: [25554.948645] CR2: 0000000000000030
CR3: 00000000bfa41000 CR4: 00000000000006e0
Oct 22 20:44:43 localhost kernel: [25554.948658] DR0: 0000000000000000
DR1: 0000000000000000 DR2: 0000000000000000
Oct 22 20:44:43 localhost kernel: [25554.948670] DR3: 0000000000000000
DR6: 00000000ffff0ff0 DR7: 0000000000000400
Oct 22 20:44:43 localhost kernel: [25554.948683] Process firefox (pid:
4834, threadinfo ffff8800b341e000, task ffff88012d817300)
Oct 22 20:44:43 localhost kernel: [25554.948701] Stack:
Oct 22 20:44:43 localhost kernel: [25554.948708] 0000000000002000
0000000000001000 ffff8800b341fc70 0000000005114000
Oct 22 20:44:43 localhost kernel: [25554.948730] 0000000000000282
ffffffff81142c03 ffff880135075000 0000000000000090
Oct 22 20:44:43 localhost kernel: [25554.948755] 0000000000000090
0000805037106510 a800000000051140 0000000000001000
Oct 22 20:44:43 localhost kernel: [25554.948777] Call Trace:
Oct 22 20:44:43 localhost kernel: [25554.948787] [<ffffffff81142c03>]
? kmem_cache_alloc+0x133/0x160
Oct 22 20:44:43 localhost kernel: [25554.948807] [<ffffffffa01a32df>]
__btrfs_free_extent+0x61f/0x6d0 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948827] [<ffffffffa01a5b6d>]
? run_clustered_refs+0x11d/0x830 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948847] [<ffffffffa01a5dd9>]
run_clustered_refs+0x389/0x830 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948867] [<ffffffffa01a6348>]
btrfs_run_delayed_refs+0xc8/0x220 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948881] [<ffffffff813f29ce>]
? mutex_unlock+0xe/0x10
Oct 22 20:44:43 localhost kernel: [25554.948900] [<ffffffffa01b8381>]
btrfs_commit_transaction+0x81/0x8a0 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948915] [<ffffffff8107f790>]
? abort_exclusive_wait+0xb0/0xb0
Oct 22 20:44:43 localhost kernel: [25554.948928] [<ffffffff8116e6be>]
? dput+0x10e/0x1a0
Oct 22 20:44:43 localhost kernel: [25554.948948] [<ffffffffa01c6ac4>]
btrfs_sync_file+0x194/0x1e0 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.948961] [<ffffffff8118321f>]
vfs_fsync_range+0x5f/0xa0
Oct 22 20:44:43 localhost kernel: [25554.948973] [<ffffffff811832cc>]
vfs_fsync+0x1c/0x20
Oct 22 20:44:43 localhost kernel: [25554.948984] [<ffffffff811835e3>]
sys_fsync+0x33/0x50
Oct 22 20:44:43 localhost kernel: [25554.948995] [<ffffffff813f4c42>]
system_call_fastpath+0x16/0x1b
Oct 22 20:44:43 localhost kernel: [25554.949008] Code: 89 5d d8 4c 89
65 e0 4c 89 6d e8 4c 89 75 f0 4c 89 7d f8 66 66 66 66 90 65 48 8b 0c
25 48 cd 00 00 48 8d 91 28 e0 ff ff 48 89 f3
Oct 22 20:44:43 localhost kernel: [25554.949269] RIP
[<ffffffffa01ab027>] btrfs_print_leaf+0x37/0x880 [btrfs]
Oct 22 20:44:43 localhost kernel: [25554.949292] RSP <ffff8800b341fb38>
Oct 22 20:44:43 localhost kernel: [25554.949300] CR2: 0000000000000030
Oct 22 20:44:43 localhost kernel: [25554.957960] ---[ end trace
e3b54094ec35959e ]---
Anyone stumble upon it?
After this a couple of BUG dumps followed, check this pastebin
http://paste.pocoo.org/show/496620/
I am a on a Arch system with BTRFS root filesystem
$ pacman -Si linux
Repository : core
Name : linux
Version : 3.0.7-1
URL : http://www.kernel.org/
Licenses : GPL2
Groups : base
Provides : kernel26
Depends On : coreutils linux-firmware module-init-tools>=3.16
mkinitcpio>=0.7
Optional Deps : crda: to set the correct wireless channels of your country
Conflicts With : kernel26
Replaces : kernel26
Download Size : 38639.75 K
Installed Size : 57060.00 K
Packager : Tobias Powalowski <tpowa@archlinux.org>
Architecture : x86_64
Build Date : Wed 19 Oct 2011 09:31:33 AM BST
MD5 Sum : 1fa49419794d5b4c04fdd0b275f6649b
Description : The Linux Kernel and modules
btrfs-tools : Btrfs v0.19-85-gd4bb086
I am on an SSD drive.
My mounts are like:
/dev/sda2 on / type btrfs (rw,noatime,ssd)
/dev/sda3 on /home type btrfs (rw,noatime,ssd)
Regards
Leonidas
--
Caution: breathing may be hazardous to your health.
^ permalink raw reply
* Re: [PATCH] usb: fix unaligned access
From: Sascha Hauer @ 2011-10-22 20:20 UTC (permalink / raw)
To: Fabian van der Werf; +Cc: barebox
In-Reply-To: <1319289593-15251-1-git-send-email-fvanderwerf@gmail.com>
On Sat, Oct 22, 2011 at 03:19:53PM +0200, Fabian van der Werf wrote:
> ---
> drivers/usb/core/usb.c | 12 +++++++-----
> drivers/usb/host/ehci-hcd.c | 9 +++++++--
> 2 files changed, 14 insertions(+), 7 deletions(-)
Looks like a valid patch, I wonder that this never was a problem before.
ARM should break here aswell I think. What architecture are you using?
Sascha
>
> diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
> index 7039a2c..369a393 100644
> --- a/drivers/usb/core/usb.c
> +++ b/drivers/usb/core/usb.c
> @@ -50,6 +50,7 @@
> #include <driver.h>
> #include <linux/ctype.h>
> #include <asm/byteorder.h>
> +#include <asm/unaligned.h>
> #include <xfuncs.h>
> #include <init.h>
>
> @@ -1071,6 +1072,7 @@ static int usb_hub_configure(struct usb_device *dev)
> struct usb_hub_status *hubsts;
> int i;
> struct usb_hub_device *hub;
> + unsigned short hub_chars;
>
> hub = xzalloc(sizeof (*hub));
> dev->hub = hub;
> @@ -1100,8 +1102,8 @@ static int usb_hub_configure(struct usb_device *dev)
> }
> memcpy((unsigned char *)&hub->desc, buffer, descriptor->bLength);
> /* adjust 16bit values */
> - hub->desc.wHubCharacteristics =
> - le16_to_cpu(descriptor->wHubCharacteristics);
> + hub_chars = le16_to_cpu(get_unaligned(&descriptor->wHubCharacteristics));
> + put_unaligned(hub_chars, &hub->desc.wHubCharacteristics);
> /* set the bitmap */
> bitmap = (unsigned char *)&hub->desc.DeviceRemovable[0];
> /* devices not removable by default */
> @@ -1118,7 +1120,7 @@ static int usb_hub_configure(struct usb_device *dev)
> dev->maxchild = descriptor->bNbrPorts;
> USB_HUB_PRINTF("%d ports detected\n", dev->maxchild);
>
> - switch (hub->desc.wHubCharacteristics & HUB_CHAR_LPSM) {
> + switch (hub_chars & HUB_CHAR_LPSM) {
> case 0x00:
> USB_HUB_PRINTF("ganged power switching\n");
> break;
> @@ -1131,12 +1133,12 @@ static int usb_hub_configure(struct usb_device *dev)
> break;
> }
>
> - if (hub->desc.wHubCharacteristics & HUB_CHAR_COMPOUND)
> + if (hub_chars & HUB_CHAR_COMPOUND)
> USB_HUB_PRINTF("part of a compound device\n");
> else
> USB_HUB_PRINTF("standalone hub\n");
>
> - switch (hub->desc.wHubCharacteristics & HUB_CHAR_OCPM) {
> + switch (hub_chars & HUB_CHAR_OCPM) {
> case 0x00:
> USB_HUB_PRINTF("global over-current protection\n");
> break;
> diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
> index 72f1c14..20c518a 100644
> --- a/drivers/usb/host/ehci-hcd.c
> +++ b/drivers/usb/host/ehci-hcd.c
> @@ -33,6 +33,7 @@
> #include <errno.h>
> #include <usb/ehci.h>
> #include <asm/mmu.h>
> +#include <asm/unaligned.h>
>
> #include "ehci.h"
>
> @@ -795,6 +796,7 @@ static int ehci_init(struct usb_host *host)
> struct ehci_priv *ehci = to_ehci(host);
> uint32_t reg;
> uint32_t cmd;
> + unsigned short hub_chars;
>
> ehci_halt(ehci);
>
> @@ -819,12 +821,15 @@ static int ehci_init(struct usb_host *host)
> reg = ehci_readl(&ehci->hccr->cr_hcsparams);
> descriptor.hub.bNbrPorts = HCS_N_PORTS(reg);
>
> + hub_chars = get_unaligned(&descriptor.hub.wHubCharacteristics);
> /* Port Indicators */
> if (HCS_INDICATOR(reg))
> - descriptor.hub.wHubCharacteristics |= 0x80;
> + hub_chars |= 0x80;
> /* Port Power Control */
> if (HCS_PPC(reg))
> - descriptor.hub.wHubCharacteristics |= 0x01;
> + hub_chars |= 0x01;
> +
> + put_unaligned(hub_chars, &descriptor.hub.wHubCharacteristics);
>
> /* Start the host controller. */
> cmd = ehci_readl(&ehci->hcor->or_usbcmd);
> --
> 1.7.0.4
>
>
> _______________________________________________
> barebox mailing list
> barebox@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply
* [PATCH] ARM: gic: fix irq_alloc_descs handling for sparse irq
From: Rob Herring @ 2011-10-22 20:20 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Commit "ARM: gic: add irq_domain support" (2071a2a4b8ed5292) broke SPARSE_IRQ
on platforms with GIC. When SPARSE_IRQ is enabled, all NR_IRQS or
mach_desc->nr_irqs will be allocated by arch_probe_nr_irqs(). This caused
irq_alloc_descs to allocate irq_descs after the pre-allocated space.
Make irq_alloc_descs search for an exact irq range and assume it has
been pre-allocated on failure. For DT probing dynamic allocation is used.
DT enabled platforms should set their nr_irqs to NR_IRQ_LEGACY and have all
irq_chips allocate their irq_descs with irq_alloc_descs if SPARSE_IRQ is
enabled.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
arch/arm/common/gic.c | 13 ++++++++++---
1 files changed, 10 insertions(+), 3 deletions(-)
diff --git a/arch/arm/common/gic.c b/arch/arm/common/gic.c
index 65cf39d..8ab24a5 100644
--- a/arch/arm/common/gic.c
+++ b/arch/arm/common/gic.c
@@ -24,6 +24,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
+#include <linux/err.h>
#include <linux/list.h>
#include <linux/smp.h>
#include <linux/cpu_pm.h>
@@ -571,7 +572,8 @@ void __init gic_init(unsigned int gic_nr, unsigned int irq_start,
if (gic_nr == 0) {
gic_cpu_base_addr = cpu_base;
domain->hwirq_base = 16;
- irq_start = (irq_start & ~31) + 16;
+ if (irq_start > 0)
+ irq_start = (irq_start & ~31) + 16;
} else
domain->hwirq_base = 32;
@@ -586,8 +588,13 @@ void __init gic_init(unsigned int gic_nr, unsigned int irq_start,
gic->gic_irqs = gic_irqs;
domain->nr_irq = gic_irqs - domain->hwirq_base;
- domain->irq_base = irq_alloc_descs(-1, irq_start, domain->nr_irq,
+ domain->irq_base = irq_alloc_descs(irq_start, 16, domain->nr_irq,
numa_node_id());
+ if (IS_ERR_VALUE(domain->irq_base)) {
+ WARN(1, "Cannot allocate irq_descs @ IRQ%d, assuming pre-allocated\n",
+ irq_start);
+ domain->irq_base = irq_start;
+ }
domain->priv = gic;
domain->ops = &gic_irq_domain_ops;
irq_domain_add(domain);
@@ -657,7 +664,7 @@ int __init gic_of_init(struct device_node *node, struct device_node *parent)
domain->of_node = of_node_get(node);
- gic_init(gic_cnt, 16, dist_base, cpu_base);
+ gic_init(gic_cnt, -1, dist_base, cpu_base);
if (parent) {
irq = irq_of_parse_and_map(node, 0);
--
1.7.5.4
^ permalink raw reply related
* [U-Boot] ASALLA M-ALYKUM DEAR FRIEND,
From: Path Qaudri @ 2011-10-22 20:17 UTC (permalink / raw)
To: u-boot
ASALLA M-ALYKUM DEAR FRIEND,
My Name is Path Qaudri. I am writing from Burkina Faso-West Africa. I am a staff of one of the biggest Bank here.
I want to wire $8.3(Eight Million Three Hundred Thousand Dollars) that has been abandoned for 8 years in our Branch to your account abroad. The account owner is dead with his next of kin since year 2003. Get back to me for details if you are interested to receive the money.
Regards,
Jazzack Allah
Path Qaudri
********************************************************************************************************************
This message may contain confidential information. If you are not the intended recipient please inform the
sender that you have received the message in error before deleting it.
Please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents:
to do so is strictly prohibited and may be unlawful.
Thank you for your co-operation.
********************************************************************************************************************
^ permalink raw reply
* [PATCH 3/3] arm/dt: tegra: add dts file for paz00
From: Marc Dietrich @ 2011-10-22 20:16 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA
Cc: Olof Johansson, Colin Cross, Marc Dietrich
In-Reply-To: <cover.1319313019.git.marvin24-Mmb7MZpHnFY@public.gmane.org>
* NOT FOR COMMIT *
This just adds the dts for paz00. I like to add it to board-dt as
well as soon as I find out which tree to base it on.
Signed-off-by: Marc Dietrich <marvin24-Mmb7MZpHnFY@public.gmane.org>
---
arch/arm/boot/dts/tegra-paz00.dts | 51 +++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/boot/dts/tegra-paz00.dts
diff --git a/arch/arm/boot/dts/tegra-paz00.dts b/arch/arm/boot/dts/tegra-paz00.dts
new file mode 100644
index 0000000..2114026
--- /dev/null
+++ b/arch/arm/boot/dts/tegra-paz00.dts
@@ -0,0 +1,51 @@
+/dts-v1/;
+
+/memreserve/ 0x1c000000 0x04000000;
+/include/ "tegra20.dtsi"
+
+/ {
+ model = "Toshiba AC100 / Dynabook AZ";
+ compatible = "compal,paz00", "nvidia,tegra20";
+
+ chosen {
+ bootargs = "console=ttyS0,115200n8 root=/dev/mmcblk1p1";
+ };
+
+ memory@0 {
+ reg = < 0x00000000 0x20000000 >;
+ };
+
+ i2c@7000c000 {
+ clock-frequency = <400000>;
+ };
+
+ i2c@7000c400 {
+ clock-frequency = <400000>;
+ };
+
+ i2c@7000c500 {
+ clock-frequency = <80000>;
+ };
+
+ i2c@7000d000 {
+ clock-frequency = <400000>;
+ };
+
+ serial@70006000 {
+ clock-frequency = < 216000000 >;
+ };
+
+ serial@70006300 {
+ clock-frequency = < 216000000 >;
+ };
+
+ sdhci@c8000000 {
+ cd-gpios = <&gpio 173 0>; /* gpio PV5 */
+ wp-gpios = <&gpio 57 0>; /* gpio PH1 */
+ power-gpios = <&gpio 155 0>; /* gpio PT3 */
+ };
+
+ sdhci@c8000600 {
+ support-8bit;
+ };
+};
--
1.7.5.4
^ permalink raw reply related
* [PATCH 2/3] ARM: tegra: paz00: add support for wakeup gpio key
From: Marc Dietrich @ 2011-10-22 20:16 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA
Cc: Olof Johansson, Colin Cross, Marc Dietrich
In-Reply-To: <cover.1319313019.git.marvin24-Mmb7MZpHnFY@public.gmane.org>
This adds support for a wakeup gpio which is connected to the
embedded controller. This will be used later on for wakeup from suspend.
Signed-off-by: Marc Dietrich <marvin24-Mmb7MZpHnFY@public.gmane.org>
---
arch/arm/mach-tegra/board-paz00.c | 29 ++++++++++++++++++++++++++++-
arch/arm/mach-tegra/board-paz00.h | 3 +++
2 files changed, 31 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index 3f46b37..8a973d1 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -23,8 +23,11 @@
#include <linux/serial_8250.h>
#include <linux/clk.h>
#include <linux/dma-mapping.h>
+#include <linux/gpio.h>
+#include <linux/gpio_keys.h>
#include <linux/pda_power.h>
#include <linux/io.h>
+#include <linux/input.h>
#include <linux/i2c.h>
#include <linux/rfkill-gpio.h>
@@ -36,7 +39,6 @@
#include <mach/iomap.h>
#include <mach/irqs.h>
#include <mach/sdhci.h>
-#include <mach/gpio.h>
#include "board.h"
#include "board-paz00.h"
@@ -121,12 +123,37 @@ static struct nvec_platform_data nvec_pdata = {
.gpio = TEGRA_NVEC_REQ,
};
+static struct gpio_keys_button paz00_gpio_keys_buttons[] = {
+ {
+ .code = KEY_POWER,
+ .gpio = TEGRA_GPIO_POWERKEY,
+ .active_low = 1,
+ .desc = "Power",
+ .type = EV_KEY,
+ .wakeup = 1,
+ },
+};
+
+static struct gpio_keys_platform_data paz00_gpio_keys = {
+ .buttons = paz00_gpio_keys_buttons,
+ .nbuttons = ARRAY_SIZE(paz00_gpio_keys_buttons),
+};
+
+static struct platform_device gpio_keys_device = {
+ .name = "gpio-keys",
+ .id = -1,
+ .dev = {
+ .platform_data = &paz00_gpio_keys,
+ },
+};
+
static struct platform_device *paz00_devices[] __initdata = {
&debug_uart,
&tegra_sdhci_device4,
&tegra_sdhci_device1,
&wifi_rfkill_device,
&leds_gpio,
+ &gpio_keys_device,
};
static void paz00_i2c_init(void)
diff --git a/arch/arm/mach-tegra/board-paz00.h b/arch/arm/mach-tegra/board-paz00.h
index 7e978f3..e88f42b 100644
--- a/arch/arm/mach-tegra/board-paz00.h
+++ b/arch/arm/mach-tegra/board-paz00.h
@@ -35,6 +35,9 @@
/* EC */
#define TEGRA_NVEC_REQ TEGRA_GPIO_PV2
+/* WakeUp */
+#define TEGRA_GPIO_POWERKEY TEGRA_GPIO_PJ7
+
void paz00_pinmux_init(void);
#endif
--
1.7.5.4
^ permalink raw reply related
* [PATCH 1/3] ARM: tegra: paz00: add support for the embedded controller
From: Marc Dietrich @ 2011-10-22 20:16 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA
Cc: Olof Johansson, Colin Cross, Marc Dietrich
In-Reply-To: <cover.1319313019.git.marvin24-Mmb7MZpHnFY@public.gmane.org>
This adds support for the embedded controller known as NVEC. The driver
lives currently in the staging tree and we aim to promote it one level
higher in the near future.
The NVEC driver uses the I2C resources of the master controller for now
until slave support is added to the i2c-tegra driver.
Signed-off-by: Marc Dietrich <marvin24-Mmb7MZpHnFY@public.gmane.org>
---
arch/arm/mach-tegra/board-paz00-pinmux.c | 1 +
arch/arm/mach-tegra/board-paz00.c | 11 +++++++++++
arch/arm/mach-tegra/board-paz00.h | 3 +++
3 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-tegra/board-paz00-pinmux.c b/arch/arm/mach-tegra/board-paz00-pinmux.c
index fb20894..0a0e27a 100644
--- a/arch/arm/mach-tegra/board-paz00-pinmux.c
+++ b/arch/arm/mach-tegra/board-paz00-pinmux.c
@@ -154,6 +154,7 @@ static struct tegra_gpio_table gpio_table[] = {
{ .gpio = TEGRA_WIFI_PWRN, .enable = true },
{ .gpio = TEGRA_WIFI_RST, .enable = true },
{ .gpio = TEGRA_WIFI_LED, .enable = true },
+ { .gpio = TEGRA_NVEC_REQ, .enable = true },
};
void paz00_pinmux_init(void)
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index 602f8dd..3f46b37 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -44,6 +44,8 @@
#include "devices.h"
#include "gpio-names.h"
+#include "../../../drivers/staging/nvec/nvec.h"
+
static struct plat_serial8250_port debug_uart_platform_data[] = {
{
/* serial port on JP1 */
@@ -114,6 +116,11 @@ static struct platform_device leds_gpio = {
},
};
+static struct nvec_platform_data nvec_pdata = {
+ .i2c_addr = 0x8a,
+ .gpio = TEGRA_NVEC_REQ,
+};
+
static struct platform_device *paz00_devices[] __initdata = {
&debug_uart,
&tegra_sdhci_device4,
@@ -127,6 +134,10 @@ static void paz00_i2c_init(void)
platform_device_register(&tegra_i2c_device1);
platform_device_register(&tegra_i2c_device2);
platform_device_register(&tegra_i2c_device4);
+
+ tegra_i2c_device3.name = "nvec";
+ tegra_i2c_device3.dev.platform_data = &nvec_pdata;
+ platform_device_register(&tegra_i2c_device3);
}
static void paz00_usb_init(void)
diff --git a/arch/arm/mach-tegra/board-paz00.h b/arch/arm/mach-tegra/board-paz00.h
index 2dc1899..7e978f3 100644
--- a/arch/arm/mach-tegra/board-paz00.h
+++ b/arch/arm/mach-tegra/board-paz00.h
@@ -32,6 +32,9 @@
#define TEGRA_WIFI_RST TEGRA_GPIO_PD1
#define TEGRA_WIFI_LED TEGRA_GPIO_PD0
+/* EC */
+#define TEGRA_NVEC_REQ TEGRA_GPIO_PV2
+
void paz00_pinmux_init(void);
#endif
--
1.7.5.4
^ permalink raw reply related
* [PATCH 0/3] paz00 updates for 3.3
From: Marc Dietrich @ 2011-10-22 20:16 UTC (permalink / raw)
To: linux-tegra-u79uwXL29TY76Z2rM5mHXA
Cc: Olof Johansson, Colin Cross, Marc Dietrich
Hi,
the following three patches are intended for the 3.3 merge window and are based
on linux-next.
The first one adds support for the embedded controller (which handles keyboard,
touchpad, leds, and suspend functions - and some other stuff). The way it is
initialized will probably change in the future, but we like to include it for
now as it makes debugging more easier.
The second patch adds wakeup support similar to seaboard, but with the
difference that the wakeup gpio is connected to the embedded controller instead
of a real gpio key.
The final patch adds a dts file for paz00. I also like add paz00 to board-dt.c,
but I couldn't find an up to date version of it (which includes all the patches
on the tegra-ml). I'll update this one as soon as it emerges. So take it as some
kind of "preview".
Thanks
Marc
Marc Dietrich (3):
ARM: tegra: paz00: add support for the embedded controller
ARM: tegra: paz00: add support for wakeup gpio key
arm/dt: tegra: add dts file for paz00
arch/arm/boot/dts/tegra-paz00.dts | 51 ++++++++++++++++++++++++++++++
arch/arm/mach-tegra/board-paz00-pinmux.c | 1 +
arch/arm/mach-tegra/board-paz00.c | 40 +++++++++++++++++++++++-
arch/arm/mach-tegra/board-paz00.h | 6 +++
4 files changed, 97 insertions(+), 1 deletions(-)
create mode 100644 arch/arm/boot/dts/tegra-paz00.dts
--
1.7.5.4
^ permalink raw reply
* [U-Boot] pick up the first $5,000.00,USD
From: Western Union @ 2011-10-22 20:03 UTC (permalink / raw)
To: u-boot
Hello, The below payment has been awarded to you by the Nigeria
Government/World Bank to compensate you on the past experience had
with scammers and internet fraudsters. We have already sent you
$5,000.00 through Western Union as we have been given the mandate to
transfer your full compensation payment total sum of $250,000.00 via
Western Union by the Government. I have on a good authority email you
the MTCN and sender's details to enable you pick up the first
$5,000.00,USD and confirm receipt to us so as to enable us wire the
next USD5,000.00 by tomorrow and subsequent ones since we can only
send USD5,000.00 a day. Please pick up this information and get to
any western union in your country to pick up the $5,000.00 and email
the Western Union outlets incharge of the payment so that they could
send you another payment tomorrow and you are to fill the form below
for confirmation. Rev Godspower Umukoro Western Union contact
information: Manager: Email: wumt_moneytransfer at w.cn your
contact is
needed If there is any problem with them paying you, make sure to
contact this Western Union outlet with the information given to you
above.Below is the western union information for pick up: and you are
to Track your payment on the website to be
sure:https://wumt.westernunion.com/asp/orderStatus.asp?country=global
MONEY TRANSFER CONTROL NUMBER(MTCN): 780-670-9836 FIRST NAME OF
SENDER: Norma LAST NAME OF SENDER: Caycho Question: COLOUR Answer:
PINK Amount:$5,000.00 They will be expecting your e-mail via this
email: wumt_moneytransfer at w.cn
^ permalink raw reply
* Re: [PATCH v2 1/3] nl80211: Add probe response offload attribute
From: Johannes Berg @ 2011-10-22 20:00 UTC (permalink / raw)
To: Guy Eilam; +Cc: linux-wireless
In-Reply-To: <1319313081-28722-1-git-send-email-guy@wizery.com>
On Sat, 2011-10-22 at 21:51 +0200, Guy Eilam wrote:
> +/**
> + * enum nl80211_probe_resp_offload_support_attr - definition of optional
> + * supported protocols for probe response offloading by the driver/firmware
> + * to be used with the %NL80211_ATTR_PROBE_RESP_OFFLOAD_SUPPORT
> + * attribute. Each enum value represents a bit in the bitmap of
> + * supported protocols.
Oops I should have pointed that out before -- that's not valid
kernel-doc.
Also, maybe this should say how it'll be supported (i.e. by passing the
frame up for userspace to reply to, I think?)
johannes
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.