Re: [PATCH 10/20] [SCSI] mpt3sas: Add branding string support for OEM's HBA

Sreekanth Reddy
2015-06-15T11:12:09Z

On Mon, Jun 15, 2015 at 3:16 PM, Johannes Thumshirn <jthumshirn@suse.de> wrote:
> On Fri, Jun 12, 2015 at 03:12:22PM +0530, Sreekanth Reddy wrote:
>> Added the following Dell branding to the mpt3sas driver.
>>
>> "VendorID" "DeviceID" "SubsystemVendor ID" "SubsystemDevice ID" Dell Branding String
>> 0x1000 0x0097 0x1028 0x1F46 DELL 12Gbps HBA
>>
>> Signed-off-by: Sreekanth Reddy <Sreekanth.Reddy@avagotech.com>
>> ---
>> drivers/scsi/mpt3sas/mpt3sas_base.c | 36 ++++++++++++++++++++++++++++++++++++
>> drivers/scsi/mpt3sas/mpt3sas_base.h | 11 +++++++++++
>> 2 files changed, 47 insertions(+)
>>
>> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> index 6739c0a..db362cb 100644
>> --- a/drivers/scsi/mpt3sas/mpt3sas_base.c
>> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> @@ -2345,6 +2345,41 @@ _base_display_intel_branding(struct MPT3SAS_ADAPTER *ioc)
>>
>>
>> /**
>> + * _base_display_dell_branding - Display branding string
>> + * @ioc: per adapter object
>> + *
>> + * Return nothing.
>> + */
>> +static void
>> +_base_display_dell_branding(struct MPT3SAS_ADAPTER *ioc)
>> +{
>> + if (ioc->pdev->subsystem_vendor != PCI_VENDOR_ID_DELL)
>> + return;
>> +
>> + switch (ioc->pdev->device) {
>> + case MPI25_MFGPAGE_DEVID_SAS3008:
>> + switch (ioc->pdev->subsystem_device) {
>> + case MPT3SAS_DELL_12G_HBA_SSDID:
>> + pr_info(MPT3SAS_FMT "%s\n", ioc->name,
>> + MPT3SAS_DELL_12G_HBA_BRANDING);
>> + break;
>> + default:
>> + pr_info(MPT3SAS_FMT
>> + "Dell 12Gbps HBA: Subsystem ID: 0x%X\n", ioc->name,
>> + ioc->pdev->subsystem_device);
>> + break;
>> + }
>> + break;
>> + default:
>> + pr_info(MPT3SAS_FMT
>> + "Dell 12Gbps HBA: Subsystem ID: 0x%X\n", ioc->name,
>> + ioc->pdev->subsystem_device);
>> + break;
>> + }
>> +}
>> +
>> +
>> +/**
>> * _base_display_ioc_capabilities - Disply IOC's capabilities.
>> * @ioc: per adapter object
>> *
>> @@ -2374,6 +2409,7 @@ _base_display_ioc_capabilities(struct MPT3SAS_ADAPTER *ioc)
>> bios_version & 0x000000FF);
>>
>> _base_display_intel_branding(ioc);
>> + _base_display_dell_branding(ioc);
>>
>> pr_info(MPT3SAS_FMT "Protocol=(", ioc->name);
>>
>> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.h b/drivers/scsi/mpt3sas/mpt3sas_base.h
>> index 2318ef8..c4780c7 100644
>> --- a/drivers/scsi/mpt3sas/mpt3sas_base.h
>> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.h
>> @@ -152,6 +152,17 @@
>> #define MPT3SAS_INTEL_RS3UC080_SSDID 0x3524
>>
>> /*
>> + * Dell HBA branding
>> + */
>> +#define MPT3SAS_DELL_12G_HBA_BRANDING \
>> + "Dell 12Gbps HBA"
>> +
>> +/*
>> + * Dell HBA SSDIDs
>> + */
>> +#define MPT3SAS_DELL_12G_HBA_SSDID 0x1F46
>> +
>> +/*
>> * status bits for ioc->diag_buffer_status
>> */
>> #define MPT3_DIAG_BUFFER_IS_REGISTERED (0x01)
>> --
>> 2.0.2
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
> This might be something you might consider re-organizing for your code-base
> merge as well, as it leads to a lot of code duplication the more OEMs you have.

May I know which hunk of this patch may leads to code duplication for
more OEMs we add? Whether declaring individual function for each OEMs
leads to this code duplication.

Thanks,
Sreekanth
>
> --
> Johannes Thumshirn Storage
> jthumshirn@suse.de +49 911 74053 689
> SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
> GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
> HRB 21284 (AG Nürnberg)

--

Regards,
Sreekanth