lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <2397536.bIp6BuhYPD@ws-stein>
Date:	Thu, 26 May 2016 11:11:30 +0200
From:	Alexander Stein <alexander.stein@...tec-electronic.com>
To:	linux-kernel@...r.kernel.org
Cc:	Meng Yi <meng.yi@....com>, Mark Brown <broonie@...nel.org>,
	"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
	David Airlie <airlied@...ux.ie>,
	Stefan Agner <stefan@...er.ch>,
	"airlied@...hat.com" <airlied@...hat.com>
Subject: Re: fsl-dcu not works on latest "drm-next"

On Thursday 26 May 2016 08:23:42, Meng Yi wrote:
> Hi Mark,
> 
> > You've not specifically described the problem here - what are the
> > endiannesses of both the CPU and the device you're talking to?  What
> > specifically is the endianess problem you are seeing, what are you seeing
> > and what do you expect to see?
> 
> The CPU is little endian and the device DCU is big endian, specified
> big-endian in DTS,
> 
> And here is my DTS and regmap_config,
> 
> Specified "big-endian" in DTS,
> 
>         dcu: dcu@...0000 {
>             compatible = "fsl,ls1021a-dcu";
>             reg = <0x0 0x2ce0000 0x0 0x10000>;
>             interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
>             clocks = <&platform_clk 0>;
>             clock-names = "dcu";
>             big-endian;
>             status = "disabled";
>         };
> 
> I can't tell the difference of "reg_format_endian" and " val_format_endian
> ", so I had tried four conditions. And all failed.
> 
> static const struct regmap_config fsl_dcu_regmap_config = {
>     .reg_bits = 32,
>     .reg_stride = 4,
>     .val_bits = 32,
>     .cache_type = REGCACHE_RBTREE,

This needs to be a flat cache. See https://lists.freedesktop.org/archives/dri-devel/2016-January/099121.html or https://lkml.org/lkml/2016/3/24/281
max_register also needs an appropriate value.

> //  .reg_format_endian = REGMAP_ENDIAN_BIG, //  .val_format_endian =
> REGMAP_ENDIAN_BIG,
> 
>     .volatile_reg = fsl_dcu_drm_is_volatile_reg, };
> 
> 
> I expect that regmap write as big endian, and I am seeing is regmap write as
> little endian.

Check your actual regmap reg_write function.

Best regards,
Alexander

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ