Thread (87 messages) 87 messages, 8 authors, 2007-05-07

Re: [PATCH 9/13] powerpc: Add arch/powerpc mv64x60 I2C platform data setup

From: Arnd Bergmann <arnd@arndb.de>
Date: 2007-05-03 06:53:56

On Wednesday 02 May 2007, Dale Farnsworth wrote:
+=A0=A0=A0=A0=A0=A0=A0static int called_count;
+=A0=A0=A0=A0=A0=A0=A0int instance =3D called_count++;
I would think it's simpler to count the instances in the outer loop
when looking for the devices than having a static counter here.
+       pdev =3D platform_device_register_simple(MV64XXX_I2C_CTLR_NAME,
+                                              instance, r, 2);
+       if (IS_ERR(pdev))
+               return PTR_ERR(pdev);
+
+       err =3D platform_device_add_data(pdev, &pdata, sizeof(pdata));
+       if (err) {
+               platform_device_unregister(pdev);
+               return err;
Doing the initialization in this order means that you have to add the
devices before the driver is loaded. I haven't checked if you do
the same thing in the oder places as well, but I think it would be
better to do it open coded like

	pdev =3D platform_device_alloc(MV64XXX_I2C_CTLR_NAME, instance);
	if (!pdev)
		return -ENOMEM;
	err =3D platform_device_add_resources(pdev, r, 2);
	if (err)
		goto error;
	err =3D platform_device_add_data(pdev, &pdata, sizeof(pdata));
	if (err)
		goto error;
	err =3D platform_device_add(pdev);
	if (err)
		goto error;
	return pdev;
error:
	platform_device_put(pdev);
	return ERR_PTR(err);


	Arnd <><
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help