Re: [PATCH] platform:x86 decouple telemetry driver from the optional IPC resources

From: Andy Shevchenko
Date: Thu Apr 21 2016 - 17:14:03 EST


On Fri, Apr 15, 2016 at 8:05 AM, Darren Hart <dvhart@xxxxxxxxxxxxx> wrote:

>> >>>> + /*
>> >>>> + * The following resources are optional
>> >>>> + * - ISPDRIVER_IPC BASE_DATA
>> >>>> + * - ISPDRIVER_IPC BASE_IFACE
>> >>>> + * - GTDRIVER_IPC BASE_DATA
>> >>>> + * - GTDRIVER_IPC BASE_IFACE
>> >>>> + */
>> >>>> res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
>> >>>> - addr = devm_ioremap_resource(&pdev->dev, res);
>> >>>> - if (IS_ERR(addr))
>> >>>> - return PTR_ERR(addr);
>> >>>> - punit_ipcdev->base[ISPDRIVER_IPC][BASE_DATA] = addr;
>> >>>> + if (res) {
>> >>>> + addr = devm_ioremap_resource(&pdev->dev, res);
>> >>>> + if (!IS_ERR(addr))
>> >>>> + punit_ipcdev->base[ISPDRIVER_IPC][BASE_DATA] = addr;
>> >>>> + }
>> >>>
>> >>> And here, what about just replacing return to dev_warn()?
>> >>
>> >> I don't think we need to continue the subsequent ops if an error address
>> >> returns.
>> >
>> > Why is that? Will the driver fail to provide any functionality? Or could it be
>> > the other IFACEs could still be of some use?
>> >
>> > This one does need a justification.
>> >
>> We discussed this.
>> - For the necessary resources, if we obtain an error address, we should
>> return immediately.
>> - For the optional resources, we keep quiet if we don't get them, that
>> is, not throwing a warning out.
>
> Andy, he's checking for "res" now too, which is a good extra check since
> devm_ioremap_resource will issue a dev_err "invalid resource" if it's NULL, even
> though in our case, that's expected for an optional resource. This adds the
> extra nesting, and a dev_warn wouldn't be appropriate for an option resource.
>
> I'm happy to queue this to fixes at this point. Andy, are you OK with the
> resolution here?

Gmail hided this mail from me by some reason. I'm fine with the resolution.

--
With Best Regards,
Andy Shevchenko