RE: [patch v1] x86/platform/mellanox: introduce support for Mellanox systems platform

From: Vadim Pasternak
Date: Mon Sep 12 2016 - 03:57:29 EST




> -----Original Message-----
> From: Greg KH [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> Sent: Monday, September 12, 2016 10:05 AM
> To: Vadim Pasternak <vadimp@xxxxxxxxxxxx>
> Cc: tglx@xxxxxxxxxxxxx; mingo@xxxxxxxxxx; hpa@xxxxxxxxx;
> davem@xxxxxxxxxxxxx; geert@xxxxxxxxxxxxxx; akpm@xxxxxxxxxxxxxxxxxxxx;
> kvalo@xxxxxxxxxxxxxx; mchehab@xxxxxxxxxx; linux@xxxxxxxxxxxx;
> x86@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; platform-driver-
> x86@xxxxxxxxxxxxxxx; jiri@xxxxxxxxxxx
> Subject: Re: [patch v1] x86/platform/mellanox: introduce support for Mellanox
> systems platform
>
> On Mon, Sep 12, 2016 at 06:44:03AM +0000, Vadim Pasternak wrote:
> >
> >
> > > -----Original Message-----
> > > From: Greg KH [mailto:gregkh@xxxxxxxxxxxxxxxxxxx]
> > > Sent: Monday, September 12, 2016 9:13 AM
> > > To: Vadim Pasternak <vadimp@xxxxxxxxxxxx>
> > > Cc: tglx@xxxxxxxxxxxxx; mingo@xxxxxxxxxx; hpa@xxxxxxxxx;
> > > davem@xxxxxxxxxxxxx; geert@xxxxxxxxxxxxxx;
> > > akpm@xxxxxxxxxxxxxxxxxxxx; kvalo@xxxxxxxxxxxxxx; mchehab@xxxxxxxxxx;
> > > linux@xxxxxxxxxxxx; x86@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx;
> > > platform-driver- x86@xxxxxxxxxxxxxxx; jiri@xxxxxxxxxxx
> > > Subject: Re: [patch v1] x86/platform/mellanox: introduce support for
> > > Mellanox systems platform
> > >
> > > On Mon, Sep 12, 2016 at 06:29:58AM +0000, vadimp@xxxxxxxxxxxx wrote:
> > > > From: Vadim Pasternak <vadimp@xxxxxxxxxxxx>
> > > >
> > > > Enable system support for the Mellanox Technologies platform,
> > > > which provides support for the next Mellanox basic systems:
> > > > "msx6710", "msx6720", "msb7700", "msn2700", "msx1410", "msn2410",
> > > > "msb7800", "msn2740", "msn2100" and also various number of
> > > > derivative systems from the above basic types.
> > >
> > > What does "system support" mean?
> > >
> > > Why can't this just be a "normal" PCI driver, as you are just
> > > accessing a PCI device and doing something with it, seems odd to claim it is a
> "platform" driver.
> > >
> >
> > This driver also activates probes to create i2c platform driver and muxes.
>
> And how does it do that? Through the PCI device?
>
> > For ARM and PPC based systems I can activate such stuff through dts.
> > To be honest I don't know what is the right way to do such things for
> > x86 systems.
>
> How is it found in a x86 system, in ACPI?
>

We have no support in ACPI.
Currently it could be found through DMI.

> > If I will move PCI related stuff to separate driver, could you suggest
> > some right location for that?
>
> Depends on what it does.

It creates platform i2c driver (Mellanox controller), like:
platform_device_register_simple("i2c_mlxcpld", -1,
NULL, 0);
And two mux platform device instances, like:
platform_device_register_resndata(dev,
" i2c-mux-reg", i, NULL,
0, &mlxplat_mux_data[i],
sizeof(mlxplat_mux_data[i]));

>
> > For example, could I have the code like in f.e. in
> > arch/x86/platform/ts5500/ts5500.c as a platform initialization code?
>
> How does it talk to the hardware for this?
>
It defines several platform devices, like:
static struct platform_device ts5500_dio1_pdev = {
.name = "ts5500-dio1",
.id = -1,
.resource = ts5500_dio1_resource,
.num_resources = 1,
};
And registers them in __init, like:
platform_device_register(&ts5500_dio1_pdev)


> thanks,
>
> greg k-h

Thanks,
Vadim.