Thread (8 messages) 8 messages, 4 authors, 2013-04-16

Re: [PATCH v2] backlight: platform_lcd: introduce probe callback

From: Jingoo Han <hidden>
Date: 2013-04-16 00:53:16
Also in: lkml

On Tuesday, April 16, 2013 8:07 AM, Andrew Morton wrote:
On Thu, 11 Apr 2013 13:24:50 -0700 Andrew Bresticker [off-list ref] wrote:
quoted
Platform LCD devices may need to do some device-specific
initialization before they can be used (regulator or GPIO setup,
for example), but currently the driver does not support any way of
doing this.  This patch adds a probe() callback to plat_lcd_data
which platform LCD devices can set to indicate that device-specific
initialization is needed.

index 17a6b83..f46180e 100644
--- a/drivers/video/backlight/platform_lcd.c
+++ b/drivers/video/backlight/platform_lcd.c
@@ -86,6 +86,12 @@ static int platform_lcd_probe(struct platform_device *pdev)
 		return -EINVAL;
 	}

+	if (pdata->probe) {
+		err = pdata->probe(pdata);
+		if (err)
+			return err;
+	}
+
 	plcd = devm_kzalloc(&pdev->dev, sizeof(struct platform_lcd),
 			    GFP_KERNEL);
 	if (!plcd) {
diff --git a/include/video/platform_lcd.h b/include/video/platform_lcd.h
index ad3bdfe..23864b2 100644
--- a/include/video/platform_lcd.h
+++ b/include/video/platform_lcd.h
@@ -15,6 +15,7 @@ struct plat_lcd_data;
 struct fb_info;

 struct plat_lcd_data {
+	int	(*probe)(struct plat_lcd_data *);
 	void	(*set_power)(struct plat_lcd_data *, unsigned int power);
 	int	(*match_fb)(struct plat_lcd_data *, struct fb_info *);
 };
Sigh.  I see that this entire interface has been lovingly undocumented.
It's an invitation for us to grow bugs, incompatibilities, leaks, etc.

Possible example: what happens if pdata->probe does some resource
allocation or device initialisation which should be backed out if, say,
platform_lcd_probe() later fails?
Hi Andrew,

I agree with you.
Indeed, the documentation is necessary.

Andrew Bresticker,
Would you make the document?
It would be very helpful.

Best regards,
Jingoo Han

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