On Wed, Jul 22, 2020 at 06:20:29PM +0100, Suzuki K Poulose wrote:
TPIU driver access the device before the coresight device
is registered. In other words, before the drvdata->csdev
is valid. Thus, we need to make sure that the csdev_access
is valid for both the invocations. Switch to using the
csdev_access directly instead of relying on availability
of drvdata->csdev.
I'm not sure all of the above is needed and based on the wording I could easily
see this patch being selected for stable backport, which would be a mistak.
The gist of this patch is that we are moving to the access abstraction and the
changelog should reflect that.
static int tpiu_disable(struct coresight_device *csdev)
{
- struct tpiu_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
-
if (atomic_dec_return(csdev->refcnt))
return -EBUSY;
- tpiu_disable_hw(drvdata);
+ tpiu_disable_hw(&csdev->access);
dev_dbg(&csdev->dev, "TPIU disabled\n");
return 0;
@@ -152,7 +148,7 @@ static int tpiu_probe(struct amba_device *adev, const struct amba_id *id)
desc.access.base = base;
Any reason for introducing the above in patch 02? I would have done that as
part of this patch... Also part of this patch I would remove drvdata::base
since it is no longer needed.
I'm out of time for today - I will continue tomorrow.
Regards,
Mathieu
/* Disable tpiu to support older devices */
- tpiu_disable_hw(drvdata);
+ tpiu_disable_hw(&desc.access);
pdata = coresight_get_platform_data(dev);
if (IS_ERR(pdata))
--
2.24.1