@@ -131,9 +131,6 @@ struct smsc911x_data {
/* register access functions */
const struct smsc911x_ops *ops;
-
- /* Reset GPIO */
- struct gpio_desc *reset_gpiod;
};
/* Easy access to information */
@@ -369,14 +366,15 @@ smsc911x_rx_readfifo_shift(struct smsc911x_data *pdata, unsigned int *buf,
static int smsc911x_request_resources(struct platform_device *pdev)
{
static const char *const supplies[] = { "vdd33a", "vddvario" };
- struct net_device *ndev = platform_get_drvdata(pdev);
- struct smsc911x_data *pdata = netdev_priv(ndev);
+ struct gpio_desc *reset_gpiod;
struct clk *clk;
/* Request optional RESET GPIO */
- pdata->reset_gpiod = devm_gpiod_get_optional(&pdev->dev,
- "reset",
- GPIOD_OUT_LOW);
+ reset_gpiod =
+ devm_gpiod_get_optional(&pdev->dev, "reset", GPIOD_OUT_LOW);
+ if (IS_ERR(reset_gpiod))
+ return dev_err_probe(&pdev->dev, PTR_ERR(reset_gpiod),
+ "GPIO device not found");
/* Request clock */
clk = devm_clk_get_optional(&pdev->dev, NULL);
Not needed in struct. It seems to be unused actually. Add error handling to avoid unused variable errors and to handle -EPROBE_DEFER, if applicable. Signed-off-by: Rosen Penev <rosenp@gmail.com> --- drivers/net/ethernet/smsc/smsc911x.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)