Re: [PATCH 2/2] pwm: add this series patch to support for rk-pwm and vop-pwm.

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

 



Hi Thierry,

于 2014年07月18日 18:03, Thierry Reding 写道:
On Fri, Jul 18, 2014 at 01:05:56PM +0800, caesar wrote:
于 2014年07月18日 03:24, Beniamino Galvani 写道:
On Thu, Jul 17, 2014 at 02:08:14PM +0800, caesar wrote:
[...]
@@ -119,9 +185,12 @@ static int rockchip_pwm_probe(struct platform_device *pdev)
  		return -ENOMEM;
  	r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	pc->base = devm_ioremap_resource(&pdev->dev, r);
-	if (IS_ERR(pc->base))
-		return PTR_ERR(pc->base);
+	pc->base = of_iomap(np, 0);
+	if (!pc->base) {
+		dev_err(&pdev->dev, "failed to map controller\n");
+		ret = -ENOMEM;
+		goto fail_map;
+	}
I think that this change is not needed. devm_ioremap_resource()
guarantees an automatic unmapping when the device is destroyed.

Moreover, when of_iomap() fails you don't need to call iounmap().

Beniamino
VOP-PWM base has be requested for lcdc.
Why?
VOP is  a seperate controllers for rk3288 and genenation SoCs.
The VOP contains lcdc,pwm......

For example :Rk3288 SOC address mapping

lcdc0: lcdc@ff930000                     vop0pwm: pwm@ff9301a0
reg = <0xff930000 0x10000>       reg = <0xff9301a0 0x10>;
offset = 0x10000                            offset = 0x10

lcdc1: lcdc@ff940000                    vop1pwm: pwm@ff9401a0
reg = <0xff940000 0x10000>      reg = <0xff9401a0 0x10>;
offset = 0x10000                           offset = 0x10

In a word, lcdc and vop-pwm has shared the map address.
When I use devm_ioremap_resource(), the vop-pwm will request region fail.

Example:.931020] rockchip-pwm ff9401a0.pwm: can't request region for
resource [mem 0xff9401a0-0xff9401af] /pwm@ff9401a0.
So ,I have to charge it.

I will be simplyfied by having:
- pc->base = devm_ioremap_resource(&pdev->dev, r);
+ if (!strcmp(of_id->compatible, "rockchip,vop-pwm"))
+ pc->base = devm_ioremap(&pdev->dev, r->start, resource_size(r));
+ else
+ pc->base = devm_ioremap_resource(&pdev->dev, r);

Maybe, Could you give me better suggestions for it?
The right thing to do is not have two drivers access the same device.
Why does lcdc request the PWM register region?

Thierry
Ditto,
Maybe,Could you give me a better suggestion to do it?


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




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux