1*d2912cb1SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 21ad275e3SDominik Brodowski /* 335200d86SDominik Brodowski * device_id.h -- PCMCIA driver matching helpers 41ad275e3SDominik Brodowski * 535200d86SDominik Brodowski * (C) 2003 - 2004 David Woodhouse 635200d86SDominik Brodowski * (C) 2003 - 2004 Dominik Brodowski 71ad275e3SDominik Brodowski */ 81ad275e3SDominik Brodowski 935200d86SDominik Brodowski #ifndef _LINUX_PCMCIA_DEVICE_ID_H 1035200d86SDominik Brodowski #define _LINUX_PCMCIA_DEVICE_ID_H 1135200d86SDominik Brodowski 1235200d86SDominik Brodowski #ifdef __KERNEL__ 1335200d86SDominik Brodowski 141ad275e3SDominik Brodowski #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \ 151ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ 161ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_CARD_ID, \ 171ad275e3SDominik Brodowski .manf_id = (manf), \ 181ad275e3SDominik Brodowski .card_id = (card), } 191ad275e3SDominik Brodowski 201ad275e3SDominik Brodowski #define PCMCIA_DEVICE_FUNC_ID(func) { \ 211ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \ 221ad275e3SDominik Brodowski .func_id = (func), } 231ad275e3SDominik Brodowski 241ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \ 251ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \ 261ad275e3SDominik Brodowski .prod_id = { (v1), NULL, NULL, NULL }, \ 271ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, 0, 0 }, } 281ad275e3SDominik Brodowski 291ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \ 301ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \ 311ad275e3SDominik Brodowski .prod_id = { NULL, (v2), NULL, NULL }, \ 321ad275e3SDominik Brodowski .prod_id_hash = { 0, (vh2), 0, 0 }, } 331ad275e3SDominik Brodowski 34fbc87d67SPavel Roskin #define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \ 35fbc87d67SPavel Roskin .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \ 36fbc87d67SPavel Roskin .prod_id = { NULL, NULL, (v3), NULL }, \ 37fbc87d67SPavel Roskin .prod_id_hash = { 0, 0, (vh3), 0 }, } 38fbc87d67SPavel Roskin 391ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \ 401ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 411ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2, \ 421ad275e3SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 431ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 }, } 441ad275e3SDominik Brodowski 451ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \ 461ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 471ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3, \ 481ad275e3SDominik Brodowski .prod_id = { (v1), NULL, (v3), NULL }, \ 491ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, (vh3), 0 }, } 501ad275e3SDominik Brodowski 511ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \ 521ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 531ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID4, \ 541ad275e3SDominik Brodowski .prod_id = { (v1), NULL, NULL, (v4) }, \ 551ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, 0, (vh4) }, } 561ad275e3SDominik Brodowski 571ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \ 581ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 591ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 601ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3, \ 611ad275e3SDominik Brodowski .prod_id = { (v1), (v2), (v3), NULL },\ 621ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, } 631ad275e3SDominik Brodowski 641ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \ 651ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 661ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 671ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID4, \ 681ad275e3SDominik Brodowski .prod_id = { (v1), (v2), NULL, (v4) }, \ 691ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, (vh4) }, } 701ad275e3SDominik Brodowski 711ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \ 721ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 731ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 741ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID4, \ 751ad275e3SDominik Brodowski .prod_id = { (v1), NULL, (v3), (v4) }, \ 761ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, (vh3), (vh4) }, } 771ad275e3SDominik Brodowski 781ad275e3SDominik Brodowski #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \ 791ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 801ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 811ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 821ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID4, \ 831ad275e3SDominik Brodowski .prod_id = { (v1), (v2), (v3), (v4) }, \ 841ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, } 851ad275e3SDominik Brodowski 86f0892b89SPavel Roskin #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \ 87f0892b89SPavel Roskin .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ 88f0892b89SPavel Roskin PCMCIA_DEV_ID_MATCH_CARD_ID| \ 89f0892b89SPavel Roskin PCMCIA_DEV_ID_MATCH_PROD_ID1, \ 90f0892b89SPavel Roskin .manf_id = (manf), \ 91f0892b89SPavel Roskin .card_id = (card), \ 92f0892b89SPavel Roskin .prod_id = { (v1), NULL, NULL, NULL }, \ 93f0892b89SPavel Roskin .prod_id_hash = { (vh1), 0, 0, 0 }, } 94f0892b89SPavel Roskin 9514b9f278SPavel Roskin #define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \ 9614b9f278SPavel Roskin .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ 9714b9f278SPavel Roskin PCMCIA_DEV_ID_MATCH_CARD_ID| \ 9814b9f278SPavel Roskin PCMCIA_DEV_ID_MATCH_PROD_ID3, \ 9914b9f278SPavel Roskin .manf_id = (manf), \ 10014b9f278SPavel Roskin .card_id = (card), \ 10114b9f278SPavel Roskin .prod_id = { NULL, NULL, (v3), NULL }, \ 10214b9f278SPavel Roskin .prod_id_hash = { 0, 0, (vh3), 0 }, } 10314b9f278SPavel Roskin 1041ad275e3SDominik Brodowski 1051ad275e3SDominik Brodowski /* multi-function devices */ 1061ad275e3SDominik Brodowski 1071ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \ 1081ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ 1091ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_CARD_ID| \ 1101ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1111ad275e3SDominik Brodowski .manf_id = (manf), \ 1121ad275e3SDominik Brodowski .card_id = (card), \ 1131ad275e3SDominik Brodowski .function = (mfc), } 1141ad275e3SDominik Brodowski 1151ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \ 1161ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1171ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1181ad275e3SDominik Brodowski .prod_id = { (v1), NULL, NULL, NULL }, \ 1191ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, 0, 0 }, \ 1201ad275e3SDominik Brodowski .function = (mfc), } 1211ad275e3SDominik Brodowski 1221ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \ 1231ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1241ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1251ad275e3SDominik Brodowski .prod_id = { NULL, (v2), NULL, NULL }, \ 1261ad275e3SDominik Brodowski .prod_id_hash = { 0, (vh2), 0, 0 }, \ 1271ad275e3SDominik Brodowski .function = (mfc), } 1281ad275e3SDominik Brodowski 1291ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \ 1301ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1311ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1321ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1331ad275e3SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 1341ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ 1351ad275e3SDominik Brodowski .function = (mfc), } 1361ad275e3SDominik Brodowski 1371ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \ 1381ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1391ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 1401ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1411ad275e3SDominik Brodowski .prod_id = { (v1), NULL, (v3), NULL }, \ 1421ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, (vh3), 0 }, \ 1431ad275e3SDominik Brodowski .function = (mfc), } 1441ad275e3SDominik Brodowski 1451ad275e3SDominik Brodowski #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \ 1461ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1471ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1481ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 1491ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 1501ad275e3SDominik Brodowski .prod_id = { (v1), (v2), (v3), NULL },\ 1511ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ 1521ad275e3SDominik Brodowski .function = (mfc), } 1531ad275e3SDominik Brodowski 1541ad275e3SDominik Brodowski /* pseudo multi-function devices */ 1551ad275e3SDominik Brodowski 1561ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \ 1571ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ 1581ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_CARD_ID| \ 1591ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1601ad275e3SDominik Brodowski .manf_id = (manf), \ 1611ad275e3SDominik Brodowski .card_id = (card), \ 1621ad275e3SDominik Brodowski .device_no = (mfc), } 1631ad275e3SDominik Brodowski 1641ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \ 1651ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1661ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1671ad275e3SDominik Brodowski .prod_id = { (v1), NULL, NULL, NULL }, \ 1681ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, 0, 0 }, \ 1691ad275e3SDominik Brodowski .device_no = (mfc), } 1701ad275e3SDominik Brodowski 1711ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \ 1721ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1731ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1741ad275e3SDominik Brodowski .prod_id = { NULL, (v2), NULL, NULL }, \ 1751ad275e3SDominik Brodowski .prod_id_hash = { 0, (vh2), 0, 0 }, \ 1761ad275e3SDominik Brodowski .device_no = (mfc), } 1771ad275e3SDominik Brodowski 1781ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \ 1791ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1801ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1811ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1821ad275e3SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 1831ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ 1841ad275e3SDominik Brodowski .device_no = (mfc), } 1851ad275e3SDominik Brodowski 1861ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \ 1871ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1881ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 1891ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1901ad275e3SDominik Brodowski .prod_id = { (v1), NULL, (v3), NULL }, \ 1911ad275e3SDominik Brodowski .prod_id_hash = { (vh1), 0, (vh3), 0 }, \ 1921ad275e3SDominik Brodowski .device_no = (mfc), } 1931ad275e3SDominik Brodowski 1941ad275e3SDominik Brodowski #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \ 1951ad275e3SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 1961ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 1971ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3| \ 1981ad275e3SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 1991ad275e3SDominik Brodowski .prod_id = { (v1), (v2), (v3), NULL },\ 2001ad275e3SDominik Brodowski .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ 2011ad275e3SDominik Brodowski .device_no = (mfc), } 2021ad275e3SDominik Brodowski 203ea7b3882SDominik Brodowski /* cards needing a CIS override */ 204ea7b3882SDominik Brodowski 205ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \ 206ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 207ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_MANF_ID| \ 208ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_CARD_ID, \ 209ea7b3882SDominik Brodowski .manf_id = (manf), \ 210ea7b3882SDominik Brodowski .card_id = (card), \ 211ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 212ea7b3882SDominik Brodowski 213ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \ 214ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 215ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 216ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2, \ 217ea7b3882SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 218ea7b3882SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ 219ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 220ea7b3882SDominik Brodowski 221ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \ 222ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 223ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 224ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 225ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID3, \ 226ea7b3882SDominik Brodowski .prod_id = { (v1), (v2), (v3), NULL },\ 227ea7b3882SDominik Brodowski .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ 228ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 229ea7b3882SDominik Brodowski 230ea7b3882SDominik Brodowski 231ea7b3882SDominik Brodowski #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \ 232ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 233ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2, \ 234ea7b3882SDominik Brodowski .prod_id = { NULL, (v2), NULL, NULL }, \ 235ea7b3882SDominik Brodowski .prod_id_hash = { 0, (vh2), 0, 0 }, \ 236ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 237ea7b3882SDominik Brodowski 238ea7b3882SDominik Brodowski #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \ 239ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 240ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 241ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 242ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ 243ea7b3882SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 244ea7b3882SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 },\ 245ea7b3882SDominik Brodowski .device_no = (mfc), \ 246ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 247ea7b3882SDominik Brodowski 248ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \ 249ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 250ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_MANF_ID| \ 251ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_CARD_ID| \ 252ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 253ea7b3882SDominik Brodowski .manf_id = (manf), \ 254ea7b3882SDominik Brodowski .card_id = (card), \ 255ea7b3882SDominik Brodowski .function = (mfc), \ 256ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 257ea7b3882SDominik Brodowski 258ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \ 259ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 260ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID1| \ 261ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID2| \ 262ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 263ea7b3882SDominik Brodowski .prod_id = { (v1), (v2), NULL, NULL }, \ 264ea7b3882SDominik Brodowski .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ 265ea7b3882SDominik Brodowski .function = (mfc), \ 266ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 267ea7b3882SDominik Brodowski 268ea7b3882SDominik Brodowski #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \ 269ea7b3882SDominik Brodowski .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ 270ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_PROD_ID4| \ 271ea7b3882SDominik Brodowski PCMCIA_DEV_ID_MATCH_FUNCTION, \ 272ea7b3882SDominik Brodowski .prod_id = { NULL, NULL, NULL, (v4) }, \ 273ea7b3882SDominik Brodowski .prod_id_hash = { 0, 0, 0, (vh4) }, \ 274ea7b3882SDominik Brodowski .function = (mfc), \ 275ea7b3882SDominik Brodowski .cisfile = (_cisfile)} 276ea7b3882SDominik Brodowski 2771ad275e3SDominik Brodowski 2781ad275e3SDominik Brodowski #define PCMCIA_DEVICE_NULL { .match_flags = 0, } 27935200d86SDominik Brodowski 28035200d86SDominik Brodowski #endif /* __KERNEL__ */ 28135200d86SDominik Brodowski #endif /* _LINUX_PCMCIA_DEVICE_ID_H */ 282